Shop OBEX P1 Docs P2 Docs Learn Events
unlevel terrain navigation — Parallax Forums

unlevel terrain navigation

jefflautjefflaut Posts: 8
edited 2008-04-11 15:51 in BASIC Stamp
Greetings.

I am working on a project which is a small-scale robot that will create an elevation map of a designated area.
The robot is to drive across a rectangular peice of land, the dimensions of which it is told.· While driving it will note and record the elevation at some number of points.

I figure I can use tilt sensors to measure the angle that the robot is at.· Knowing the distance the robot travelled, and the angle it travelled, I can get the elevation.·

One problem in my head that I can't seem to come up with a solution for is how to keep the robot moving in a straight line.

If the robot is to come in contact with a peice of land at an angle, it will be skewed from a straight path.

I've been looking for a solution to this for a while, and haven't come up with anything practical...so any suggestions are appreciated.

thanks in advance for any help.

Comments

  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-10 01:05
    jefflaut--

    Traveling in a straight line can be difficult!

    If the robot is a tracked vehicle and has enough power to spin the tracks when under load, then optical encoders on the track motors are not going to help. I have such a robot and it can easily spin a track on any surface. The motors are powerful enough to spin the tracks despite any practical track-width. (There might be a lesson here worth thinking about.) If the tracks did not spin, then the motors on my machine would break something on the robot. But, I use optical encoders on the gearmotors and whenever one track gets ahead of the other I speed the slow one up until it regains "sync." Still, when I make a hard turn, both tracks are going to spin directly dependent on the severity of the turn and I lose "track" (pardon the pun!) of where I am . . . pretty much.

    If the robot is a two wheel drive machine--I've never seen one--then much the same problem would exist, however it might be less severe.

    If the robot were a tricycle and both drive and steering were incorporated in the single wheel, it looks like the problem would be minimized, but not eliminated.

    I have been thinking about this very problem for a LONG time. I have thought of optical encoder-equipped idler wheels that ride on the ground. When the tracks or wheels slipped, the followers wouldn't do a thing and you would have an accurate count. But, what about turns? How do the followers account for that?

    I have thought of beacons and even worked a highly accurate system out. However, it would not work on uneven ground. I am not POSITIVE it would work at the hobbyist level, at all. But, NASA uses it (or used it) with the GPS constellation.

    Lately, I have been thinking of ways to turn, stop and figure out exactly where the machine is . . . but, that was really your original question, wasn't it? [noparse]:)[/noparse]

    Robots are mostly blind and deaf. They can be given limited "sight" and hearing. But, how can we expect them to perform anywhere near as good as a blind, deaf human being with a real BRAIN? Especially with the on-board computing power available? Of course, that is the solution that I want to investigate: I want to place a LOT of computing power in a stationary place and communicate with the robot wirelessly. Given enough disk storage and the ability to depend on the absolute location of certain landmarks (house corners, underground wires, etc.), this might be a workable solution.

    You might consider a different approach. Why does it need to travel in a straight line? Especially if it knows the property boundaries? Think of the property as a 3D surface your machine can discover and record. After enough discovery, you should be able to determine your position pretty accurately be examining the highly detailed map previously built and refined every time you go for a drive. Better think about a LOT of disk storage available wirelessly! But, it would certainly be fun and unique.

    I don't have an answer. I have done some of these things--the simpler ones--and want to try the rest. Maybe there is something here for you to think about.

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • jefflautjefflaut Posts: 8
    edited 2008-04-10 01:26
    The robot doesn't need to travel in a straight line, I just figured it would be the easiest way to keep track of where the robot has been.

    I guess the real problem is getting the robot to know where it is at all times.· I could let the robot roam randomly, but as it hits imperfections in the terrain, its path is going to differ from that which it thinks it is travelling.

    Right now im thinking of some sort of a beacon system for triangulation.· another idea was using the hitachi HM55B compass...but I'm thinking it won't be accurate enough.

    I suppose a beacon system on uneven ground would require 3 beacons.·

    As far as data storage is concerned...I plan on tackling that obstacle once i figure out this one.

    Thanks for the reply.

    ·
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-10 01:43
    jefflaut--

    I guess I should have said that traveling in a straight line is IMPOSSIBLE. Not even you and I can do it. What we do is "head that way" and make corrections enroute. This works very well as long as you can continually determine where the end point lies.

    We only care about straight lines in math. In reality, a straight line does not exist.

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • jefflautjefflaut Posts: 8
    edited 2008-04-10 02:18
    I understand what you are saying.

    I guess travelling in a straight line isn't important...the robot just needs to have a somewhat precise idea as to where it is after moving, so it can say "I am here and the elevation is this."· After travelling to a sufficient number of spots, a map can be made.
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-10 02:32
    jefflaut--

    This conversation suggests that I should experiment with both laser beacons and an array of photocells (?) and figure out how laser designators work. (Probably the same as a laser beacon.)

    I can imagine, say, a 6x6 array of photosensors pointed in the direction of something like a laser bore sight. Some of the photosensors--or maybe just one--will receive more photons than the others and consequently produce more electricity, which can be measured. I seems like a navigation system based on this would be relatively straightforward.

    Perhaps you start off with a simple array of photosensors and, if necessary, progress to light blocking tubes of x length around each sensor and then to a lens that focuses the light. The latter seems like it would provide great sensitivity, especially if the laser target were not a direct beacon, but a laser illuminated "target."

    If there were a fence around your property you could use one laser mounted somewhere and controlled to illuminate different parts of the fence so the robot could always "see" the destination quite clearly, head that way and correct its path as needed enroute.

    Of course, it would be easy to do in the house. (My back yard sits on a cliff above a·golf course, so we have no fences!)

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • jefflautjefflaut Posts: 8
    edited 2008-04-10 11:14
    I have been thinking of maybe 3 beacons that each emit an ultrasonic chirp, wait a certain known amount of time, then make a second chirp.· The robot could measure the time between the chirps and compare it to what it should be to determine its distance from each beacon.· I'm still trying to figure out in my head if this could work.
  • bobledouxbobledoux Posts: 187
    edited 2008-04-10 13:23
    The sound time of flight might work.

    Most all Olympic shooting sport targets are provided by a Swiss company-Suis Ascor. The target has a microphone in each corner of the target. The differences in the time, each microphone hears a shot penetrating the target, is used to calculate the shot score.
  • JonathanJonathan Posts: 1,023
    edited 2008-04-10 14:21
    Funny you should mention an ultrasonic navigation system. I have been working on just such a thing.

    My 'bot is based on a propeller. There are three US beacons, each with a RF reciever. The 'bot can request a "ping" from each beacon individually. The 'bot has a US receiver, times the length of time to receive the ping. We know know the distance from each beacon. This part of the system is all working.

    Now I am working on the trig aspect to reduce the range readings to an x/y coord system. The 'bot has a bluetooth connection to a laptop, and when done you will be able to click on a spot on the map and the 'bot willl do it's best to get there.

    The 'bot also has an odometer and a V2Xe compass module for dead reackoning. So far the system is designed for smooth surfaces like found in the classroom. I'm having some trouble with the math, so if anyone is a trig genius feel free to contact me. [noparse]:)[/noparse]



    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.madlabs.info - Home of the Hydrogen Fuel Cell Robot
  • jefflautjefflaut Posts: 8
    edited 2008-04-10 14:37
    Jonathan,

    I have pretty much the same idea in my head right now.

    What would control the beacons? another microcontroller?

    I'm thinking of a very similar concept, except the robot doesnt request a ping...the beacons instead emit pings at known time intervals.· The robot knows when to expect a ping, and would compare that to when the ping is actually recieved.· I guess the big problem with this method is getting the robot synchronized with the beacons...perhaps for that reason your method is better.
  • stamptrolstamptrol Posts: 1,731
    edited 2008-04-10 14:44
    Hello all,

    I must admit I'm not a robotisist, but you're working on an interesting problem and I can't resist! Maybe we can get moved to the Sandbox and continue for a while.

    How about a rotating beam of light (laser or focused infrared) on the robot. Probably should be self-leveling. The robot will always know which way the beam is pointed by an encoder or other system. I'm thinking the beam would be very narrow, but tall enough to help with the uneven terrain. Very similar to the previous post based on ultrasonic, but may give a narrower spread at long distances.

    In the corners of the field are posts with detecting circuitry. When a post sees the beam go by, it radios the robot that it has been "beamed". After hearing from 2, 3, or 4 posts, the robot can calculate where it is.

    Cheers,

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tom Sisk

    http://www.siskconsult.com
    ·
  • JonathanJonathan Posts: 1,023
    edited 2008-04-10 14:58
    Jeff,

    The beacons use a SX chip. They wait for their beacon request, then pump out the US signal. It is necessary to be able to request a ping. There is no way you are ever going to keep synch otherwise.

    Stamptrol,

    I did some experiments with light instead of US. I found that it was going to be much more expensive to develop. Part of my goal is to make a cheap system that can be used for classroom navigation. Once I get over the math hump, I think the system I am working on will work pretty well and be not *too* expensive.

    I am developing a "mission to mars" class. Students will have control of the bot via a laptop. The bot will be semi-autonomous, like a mars rover. The idea will be to explore "mars", finding an objective and returning to "base". I want to expose students to interpreting data and making decisions.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.madlabs.info - Home of the Hydrogen Fuel Cell Robot
  • jefflautjefflaut Posts: 8
    edited 2008-04-10 15:03
    stamptrol,

    your idea seems like it would work, but I'm not sure how well it would work on uneven terrain.· The self-leveling beam of light will take the changes in elevation out of the picture, which is good and bad.· This system would be able to find where the robot is on the x-y plane, but not the elevation.· Using the ultrasonic beacon idea would tell me the location and the elevation, and also I don't think it would require and self leveling sensors.
  • jefflautjefflaut Posts: 8
    edited 2008-04-10 15:12
    Jonathan,

    What kind of US reciever should be on the robot?

    I assume you would need something that is close to omnidirectional, or have multiple sensors.· Most of the ones i have looked at have a narrow range in terms of the angle of the US signal.
  • JonathanJonathan Posts: 1,023
    edited 2008-04-10 15:38
    My bot has two RX transducers mounted in opposition by 180 degrees. The transducers are on a servo that can move 180 degrees. So I can sweep all 360 degrees. The bot pings the beacons, checking the readings in six positions. It finds the lowest reading, returns to the best reception position and then pings the beacon 10 times and averages the readings. This seems to work pretty well.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.madlabs.info - Home of the Hydrogen Fuel Cell Robot
  • stamptrolstamptrol Posts: 1,731
    edited 2008-04-10 16:40
    The idea of a self-leveling beam would be to keep the beam itself level as it rotated on a gimbal arrangement. Potentially, it would let the corner post also read an elevation and send it back to the robot. Would require multiple sensors up the post, though. Also would work if the terrain blocked the signal to 1 or two posts. Presumably the "downhill" posts would still be in view.

    This is the same technique that surveyors use when plotting levels with an automated electronic level. The rotating laser light is checked with a leveling rod at multiple places in the field as the laser spins.

    Anyway, sounds like there are several ways to proceed; as always, its the limitations of time and money that shape the path.

    Cheers,

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tom Sisk

    http://www.siskconsult.com
    ·
  • tedbeautedbeau Posts: 48
    edited 2008-04-10 16:42
    Jeffalut said...
    (The self-leveling beam of light will take the changes in elevation out of the picture, which is good and bad.· This system would be able to find where the robot is on the x-y plane, but not the elevation.
    I don't know if this is quite accurate. The elevation would not be·able to be determined any better using ultrasonic verses light. Both methods rely on time the energy wave, (light or sound) takes ot travel to the bot.
    In fact on uneven terrain they would give false distances to some degree based on the difference in vertical height. See sketch below of to exact same distance readings from differrent elevations.

    Both times the distance from robot to beacon is 12 feet yet horizontal distance is less. Given that both sound and light spread out as they travel there is no really good way to tell if the beacon is above, below, or at same height as robot.

    It would be possible to use beacons with multiple targets that recieve the light beam, perhaps a laser would be better since it can be focused. If you aim at the beacon, and it tells you which height target you are hitting and if you know the robot is setting horizontal you can figure the vertical height, then determine the actually horizontal distance. To know if robot is tilted you could use a sensor like a mecury switch or you could aim at all the beacons. If East is high and west is low, the robot must be tilted East side high. The angle could be found from this.
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-10 21:37
    All--

    Yesterday afternoon, after discussing this quite a bit with jefflaut, I continued to think. I couldn't help but get a photoresistor out (I don't have any photocells on hand) and hook it up to a meter. Then, I grabbed one of my bore sights and hit the photoresistor from as far as I could get . . . about 25 feet away.

    Whenever I hit it, the resistance immediately dropped to zero. I am sure that indoors, at least, the photoresistor would easily detect a Class III laser. I am going to try a photocell because it seems to me that a navigation "system" designed to use light should use photocells. If my results are as good as yesterday with the photoresistor, I will build a 20x20 array and start experimenting.

    My thoughts are similar to stamptrol's. I will mount the array on a dual axis stepper so I can search for the laser beacon. It should be easy to write code that will navigate towards the laser beacon by moving in the direction of the photocell that has detected the laser. (It COULD be adjacent photocells; no problem . . . go that a'way.)

    What I REALLY want to do is learn enough to allow me to build something that will detect a laser DOT, rather than the laser itself. This may involve light shielding tubes, but it probably means light magnification. There are jillions of cheap magnifing lens available in every diameter you could name. One glued to the end of a light shielding tube at the len's focal length SOUNDS like it might detect a laser spot.

    jefflaut, in my way of thinking, this will allow one to make their robot go "straight" by allowing it to definitely identify the endpoint and use traditional methods to navigate towards it. As it is moving towards it, it could also be sensing the elevation of the terrain, somehow. Ultrasonics are far less precise than a laser beam or hopefully a laser dot. If this works out, dot or beacon, then one could build a laser beacon system rather easily. If the laser dot detection proved feasible, you could use a single laser mounted on a dual axis stepper setup--on a seperate platform from your robot--to form a tri-axis beacon, or even greater.

    I know the laser beacon idea will work, because I essentially did it yesterday. You could build beacons out of individual laser modules, if necessary. What I do not know is if ANYTHING would work in outdoor, full daylight. The human eye is most sensitive to green, so it is tempting to use a 532nm green beam laser. But, the human eye and a photocell don't have that much in common.

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • jmalaysiajmalaysia Posts: 97
    edited 2008-04-11 03:24
    I usually don't get involved in projects that I know NOTHING about,· but this one is quite interesting and got me thinking today.· Since I do NO robotics or sensors,· my idea might be impossible.· If I was going to try to make a robot travel in a straight line without fixed reference points,· I think I would have to experiment with hauling the reference point with me,· like a trailer.· I'm picturing something like the action of·a truck hauling a boat at slow speed.· I don't know if available sensors would be accurate enough,· but if there were three,· representing left,· centered,· and right,· the skew of the "trailer" could be used to make course corrections for the "truck."· Obviously this would only work at pretty low speed.

    Ok,· stop laughing!!· Geez!
  • LSBLSB Posts: 175
    edited 2008-04-11 04:07
    The problem with ultrasonics outside is air movement. Wind will distort the time of flight reading and any position based on readings from fixed beacon locations. About the best idea I've come up with is using super bright and/or modulated light sources as beacons and a focused receptor on the robot. As the receptor spins sighting any two beacons will allow triangulation. This AND dead reckoning should keep you on course--I think.
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-11 12:57
    jmalaysia--

    Your idea is actually very good. It is the idea I proposed earlier in this thread with the "idler" wheels equipped with encoders. I have seen this implemented and "heard" reports that it works very well.

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-11 13:01
    LSB--

    I wonder if "super bright" light, say at 25 yards,·could compete with the sun in full daylight? I don't know if it could, but I kind of doubt it. I like the laser beacon idea and, if possible, the laser dot idea.

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • jmalaysiajmalaysia Posts: 97
    edited 2008-04-11 13:03
    A rotational encoder hooked up to the "hitch" axis would probably be far easier, more accurate, and would mostly solve the problem of "missing" sensors due to unlevel terrain.
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-11 13:27
    jmalaysia--

    A rotational encoder hooked up to the "hitch" axis would probably be far easier, more accurate, and would mostly solve the problem of "missing" sensors due to unlevel terrain.
    Ever tow a boat? [noparse]:)[/noparse]

    Unless you are going PERFECTLY straight--forwards or backwards--the boat trailer does not follow your track. However, a big plus for your idea might be if you decided the towed platform was really the key machine. In other words, all the robot would do is pull it around and receive navigation commands from it based on the towed platform's correct encoder readings.

    There is an idea in that concept. (I woud hate to watch the robot back it up, though.)

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • jmalaysiajmalaysia Posts: 97
    edited 2008-04-11 14:02
    Bill,

    I think we are almost on the same wavelength here, but not quite. The fact that the trailer does not follow your tracks unless you are going straight is the whole key. If you set the "truck" and "trailer" in a straight line pointed at your destination the encoder would be at 0 degrees. If the "truck" veered 10 degrees left of the desired straight route, the encoder, incorporated into the hitch, would register that 10 degree error. The error signal could then be used to put the truck back on the straight and narrow path.

    Another decent benefit would be making precise turns. Want the 'truck' to turn 90 degrees? Turn it until the encoder tells you it's rotated 90 degrees.
  • Bill ChennaultBill Chennault Posts: 1,198
    edited 2008-04-11 14:26
    jmalaysia--

    Oh! You would put the encoder--at least one of them--in the HITCH! I think that is a great idea. However, the hitch will be pulled through a smaller percentage of any turns by the truck. (Imagine pulling that boat around a curve. The trailer tracks inside the curve of the pulling vehicle . . . but then it all evens out at the end of the curve.)

    I think.

    I like your hitch-encoder idea and will think about it some more.

    My thought was to design a four wheel wagon to put the logic in and put the batteries in the pulling machine ahead of it. Sensors could go both on the pulling machine and the wagon. The wagon would be equipped with optical encoders on the two rear wheels. The pulling machine would be equipped with optical encoders on two wheels, as well. That way you could easily detect when the pulling machine was spinning.

    Ain't the Internet a wunerful thing? [noparse]:)[/noparse]

    --Bill

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    You are what you write.
  • jefflautjefflaut Posts: 8
    edited 2008-04-11 15:51
    the trailer idea seems pretty clever...
Sign In or Register to comment.