go_away

Author Topic: Mapping  (Read 8110 times)

0 Members and 1 Guest are viewing this topic.

Offline HDL_CinC_Dragon

  • Supreme Robot
  • *****
  • Posts: 1,261
  • Helpful? 5
Re: Mapping
« Reply #30 on: December 01, 2007, 04:10:17 PM »
You could probably use encoders and have the robot track its own movements using the encoders on the wheels... dunno how accurate that would be after a while though.
United States Marine Corps
Infantry
Returns to society: 2014JAN11

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,659
  • Helpful? 169
    • Society of Robots
Re: Mapping
« Reply #31 on: December 01, 2007, 04:36:02 PM »
so encoders will work for awhile until error builds up . . . you can also try a gryo or digital compass, but they aren't perfect either . . . you can also trying combining them to minimize error

what you need is a 'global sensor', meaning something that the robot can use to correct for large global errors.

what about a beacon(s) of some type? you can use the beacon positions to detect error . . .

Offline Ro-Bot-X

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,431
  • Helpful? 25
  • Store: RoBotXDesigns.ca
Re: Mapping
« Reply #32 on: December 02, 2007, 02:45:56 AM »
Admin is right, error is building up. Depending on your level of accuracy required, you may use just wheel encoders, or add a compass, then a beacon triangulation.

A few tips to minimise error adding up when using wheel encoders:
- slowly accelerate and decelerate your robot, so there is no wheel slipage
- try to use it on hard surfaces only, avoid carpet
- calculate a wheel circumference of integer number of inches or cm
- divide that into integer numbers of clicks for the wheel encodes
- use pid control for your motors
- avoid crashes into objects!

When using a compass:
- install it high above the motors and other electronics that can cause electromagnetical fields
- give it a little time to update the angle after turning (check the data sheet)

Beacon triangulation:
- the best system it is supposed to be a mixture of IR light and Ultrasound
- fire each beacon at a regular interval, large enough to eliminate the sound bouncing off walls
- fire both IR and sound at the same time, light will reach the robot almost instantly, then calculate the time the sound needs to get to the robot, bigger distance, more time it needs to get there
- use cones to center the signal to the US and IR sensors on the robot, one sensor for each carrier is enough
- install the beacons in the corners of the room
- if one beacon is blocked by an object, make sure the robot keeps track of distance traveled out of range, then recalculate position after it gets back in range

« Last Edit: December 02, 2007, 03:01:01 AM by Ro-Bot-X »
Check out the uBotino robot controller!

Offline paulstreats

  • Supreme Robot
  • *****
  • Posts: 1,381
  • Helpful? 21
Re: Mapping
« Reply #33 on: December 02, 2007, 08:39:43 AM »
why not try a different approach at mapping. This is something that i am going to be working on soon:-

take 1 scan and store it in memory. (98 120 0 0 0 67 54 73 89)

Move and take another scan. (54 73 89 43 98 0 0 0 56)

compare the scan and see if scan 1 and 2 overlap(with a slight error threshhold)(98 120 0 0 0 67 54 73 89 43 98 0 0 0 56)

if so join them up together to make 1 piece and scan again.

Your robot can find its position by scanning the area and comparing it to whats in memory.

Remember, your robot doesnt actually have to use a grid reference system like a1=empty, c3 = object. This is a system created by humans, our own intelligence doesnt it.

Offline benji

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: Mapping
« Reply #34 on: December 02, 2007, 02:06:41 PM »
well im sorry i forgot to mention that my robot is a hexapod ... so noway i can use encoders.
about becaons i dont prefer to use em,,,maybe the compass is my choice
..i have no info about em,, do they provide 1 degree resolution?? what are good ones to use? their numbers? thanks
good ol' BeNNy

Offline DomoArigato

  • Full Member
  • ***
  • Posts: 54
  • Helpful? 1
Re: Mapping
« Reply #35 on: December 03, 2007, 11:30:22 AM »
maybe GPS? I've thought about rigging up an encoder using a computer mouse.  The only tricky part would be touching it to the ground, but I don't think that would be too hard to do.  Maybe a camera aimed at the ground if you money to do it.

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,659
  • Helpful? 169
    • Society of Robots
Re: Mapping
« Reply #36 on: December 03, 2007, 12:00:23 PM »
One method I've seen is randomly spreading beacons on the floor every few meters.

Then the robot counts beacons as it passes them, given the know direction it passes between beacons, and beacon signal strengths to triangulate.

Offline Ro-Bot-X

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,431
  • Helpful? 25
  • Store: RoBotXDesigns.ca
Re: Mapping
« Reply #37 on: December 03, 2007, 12:01:11 PM »
I am building a biped and I am facing the same problems regarding the encoders. I am still planning the thing, not started the construction yet.

But here are my thoughts:
- keep track of gait, number of steps, etc;
- devise step lenght so it will be easy to calculate how many steps will be necesary to go a certain distance;
- use a compass for turning corectly;
- use known fixed points of reference to recalculate the position on the map;
- if there are no such fixed points of reference, try to determine at least 3, measure the distance to them, calculate the coordinates and mark them on the map;
- if one of the 3 points of reference moves or dissapears from it's place, find another point and mark it on the map.
- use both ultrasonic and IR sensors to determine the distance to the the points of reference;

Another possibility may be to use a camera to establish the fixed points of reference, but that is too advanced for me to tackle. If I'll be able use the AVRcam to find objects, go to them and pick them up I'll be more than happy.
Theoreticaly I know what I have to do, but to code that... it's still a lot for now.

I'll build a wheeled platform to test out some code...
Check out the uBotino robot controller!

Offline Ro-Bot-X

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,431
  • Helpful? 25
  • Store: RoBotXDesigns.ca
Re: Mapping
« Reply #38 on: December 03, 2007, 12:35:33 PM »
Hey, I just remembered something, about 12 years ago I was working on digitizing street maps using AutoCad12. After a while, the company brought us street survey measurements. This is how it is done:

On the streets the are some places marked by a bolt burried in asphalt. Those places have known real world coordinates. The survey team mounts their measurement instrument on a trypod, making sure it's center points a lead string to that bolt in the asphalt. They verify the real world coordinates looking at other points of reference, like verry tall buildings, radio antenae and so on. This is the first station. They measure the height the instrument is at, so they can calculate the z coordinate. Then one team member goes to the points they need to survey, one point after the other, holding a divided stick verticaly. The other team member looks at the stick with the instrument, reads the division to get the height difference, reads the angle the instrument is turned at, and reads the distance to the stick. This is done for each point they need to include in the survey. Each point is numbered, and the data is recorded in a notebook. Then they move the instrument at a certain distance and angle from the first station and they survey more points, them move the instrument again a few times until they reach another bolt in the asphalt, where they check back some of their readings from the previous station. At the end of the day, there are several stations with several points related. All this data is entered in a data base, then the coordinates of these points are calculated and entered in a map (x, y, z, where z is height measured from sea level). Then a program connects these points with lines, following certain pattern rules.

Now lets say that the instrument is the servo. It rotates at known angles, the sensor measures the distance to the points and records them on the map. Coordinates can then be calculated, then lines can be drawn to determine boundaries of the objects. And so on... Error corection measurements can be done to a point from different stations...

What do you think about this?
Check out the uBotino robot controller!

Offline benji

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: Mapping
« Reply #39 on: December 05, 2007, 05:40:52 PM »
hey folks, are there any already made libraries in c i can use for mapping? i think that would save some time
good ol' BeNNy

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,659
  • Helpful? 169
    • Society of Robots
Re: Mapping
« Reply #40 on: December 05, 2007, 07:22:57 PM »
you mean other than my wavefront C code? :P

or the D* code posted awhile back?

 ;D

Offline benji

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: Mapping
« Reply #41 on: December 06, 2007, 06:28:49 PM »
the wavefront doesnt explain how u build the whole map,,,,,,it just explains the way the bot traces its goal
good ol' BeNNy

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,659
  • Helpful? 169
    • Society of Robots
Re: Mapping
« Reply #42 on: December 06, 2007, 08:58:32 PM »
Quote
the wavefront doesnt explain how u build the whole map,,,,,,it just explains the way the bot traces its goal
my code also creates and modifies the map ;D

making the map is the easy part (its just a matrix), the hard part is making the map useful . . .

Offline benji

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: Mapping
« Reply #43 on: December 07, 2007, 02:34:52 PM »
well my approach to mapping is to send a 90 scan to the computer after each scan and the software there will build the map,the robot would only know where to go,, the computer will tell the bot to stop after the map has been built, so the robot has roamed the whole room, the computer programing part isnt that easy, you have to make a software that takes the info from the serial port and plots the room step after step...... ;) , ,it need info about (range,degree) for each scan and when the bot changes its orientation you have to send data also to the pc so we have to use a compass here,,that makes the pc software a little harder, when the pc sees a closed line (robot has scanned the room) it should make the bot stop (mission complete) . im not discussing here any goal trackin or anythin.
so the functions im talkin about are both functions that can help (computer side and robot saide)
somthin like dealin with adc with functions(easier) , or servos(its a hexapod)
........... thats whats it about
good ol' BeNNy

 


Get Your Ad Here