Author Topic: Autonomous navigation and obstacle avoidance  (Read 8367 times)

0 Members and 1 Guest are viewing this topic.

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Autonomous navigation and obstacle avoidance
« on: December 10, 2007, 11:24:09 AM »
Hello all!

I'm new to the forum and to the world of robotics. I recently undertook a project to design a very special 32bit processor from scratch, which I have recently finished. I am in the process not of testing its functionality in the real world and I wanted to put this processor into an RC Car/Truck and give the vechile autonomous capabilities such as gps waypoint following and obstacle avoidance. After designing the processor I do not have the strength and time to write the software to go on top of the processor.

So I was wondering if any of you guys could help me out in this area. I figured you guys had been doing stuff like this for years and would probably be glad to help or could point me in the direction of some help.
I basically have all of the hardware figured out, designed and working I just need the software to start with. Can anyone help me? I would pefer the code be written in C or C++ but beggers can't complain.

Offline airman00

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 3,650
  • Helpful? 21
  • narobo.com
    • Narobo.com - Mechatronics and related
Re: Autonomous navigation and obstacle avoidance
« Reply #1 on: December 10, 2007, 11:40:37 AM »
I am in the process not of testing its functionality in the real world and I wanted to put this processor into an RC Car/Truck and give the vechile autonomous capabilities such as gps waypoint following and obstacle avoidance.

What does that mean?
More details


Wait, so your not testing its functionality in the real world?
Check out the Roboduino, Arduino-compatible board!


Link: http://curiousinventor.com/kits/roboduino

www.Narobo.com

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #2 on: December 10, 2007, 11:54:14 AM »
  Hi

   What I mean by "real world" is actual lab tests on real hardware.  I mean I'm done with the software simulation phase of testing this processor and I want to put the processor in a real hardware environment and test it there.  Putting it in an RC Car or truck is what I had in mind.  I wanted the car to have the ability to navigate autonomously from one point to another avoiding obstacles along the way.

    The software doesn't have to be extremely fancy or complicated just so long as I can input a starting point, an ending point and waypoints in between, start the vechile up and let it navigate its way from start to finish.

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,703
  • Helpful? 173
    • Society of Robots
Re: Autonomous navigation and obstacle avoidance
« Reply #3 on: December 10, 2007, 01:16:40 PM »
Quote
The software doesn't have to be extremely fancy or complicated just so long as I can input a starting point, an ending point and waypoints in between, start the vechile up and let it navigate its way from start to finish.
What about this?
http://www.societyofrobots.com/programming_wavefront.shtml

If you scroll down to the bottom, you will see a video of it in action.

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #4 on: December 10, 2007, 01:19:47 PM »
  Hi

     I am really glad that you responded.  I did look over that site and the program seems pretty cool, and the robot too nice work!  However I'm kinda looking for a program which doesn't require a pre-loaded map, but a set of pre-loaded waypoints and an end point.  I'd like the robot to have the ability to navigate to the end point following the waypoints using a gps receiver for orientation and a set of sensors to avoid obstacles.  It looks like your program might be able to do just that with a little hacking.  What do you think?
« Last Edit: December 10, 2007, 01:29:25 PM by derrick_chi »

Offline cooldog

  • Supreme Robot
  • *****
  • Posts: 751
  • Helpful? 4
  • be nice to nerds, one day they will be your boss
Re: Autonomous navigation and obstacle avoidance
« Reply #5 on: December 10, 2007, 03:16:50 PM »
 a look again it id adaptive so you set the rotationsof the wheels that are measured by an encorder then it adapts to objects that was not there when you set the wheel rotations no map needed
robot will rule the world and i will be building them
-admin

favorite web sites
http://www.societyofrobots.com/
http://www.instructables.com/

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,703
  • Helpful? 173
    • Society of Robots
Re: Autonomous navigation and obstacle avoidance
« Reply #6 on: December 10, 2007, 03:28:33 PM »
Quote
a look again it id adaptive so you set the rotationsof the wheels that are measured by an encorder then it adapts to objects that was not there when you set the wheel rotations no map needed
What cooldog was trying to say is that the map is created as the robot travels. It adapts around objects that it discovers in the way.

Quote
However I'm kinda looking for a program which doesn't require a pre-loaded map, but a set of pre-loaded waypoints and an end point.  I'd like the robot to have the ability to navigate to the end point following the waypoints using a gps receiver for orientation and a set of sensors to avoid obstacles.  It looks like your program might be able to do just that with a little hacking.  What do you think?
My program can handle exactly what you want. Just set the start location and end location based on gps coordinates instead of arbitrary destinations like I did. Instead of using only encoders, use gps to make sure your robot doesn't drift or lose its place.

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #7 on: December 10, 2007, 04:09:00 PM »
Hmmmm
   
  OK I'll take a closer look at the program and get back to you if I have any questions, thanks for you help!

Offline Rebelgium

  • Supreme Robot
  • *****
  • Posts: 637
  • Helpful? 0
  • It's called the future ... We like it here
    • orgcrime.net
Re: Autonomous navigation and obstacle avoidance
« Reply #8 on: December 10, 2007, 04:38:07 PM »
keep in mind that gps only has an accuracy of about 3 meters.
To relax after some hard work on robotics: A very fun free online text based MMORPG
orgcrime.net

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #9 on: December 10, 2007, 05:11:37 PM »
  Yes this is true, very true.   I have been trying to think of a way of compensating for this high margin of error, and so far the only thing I can think of is using an electronic compass to aid in staying on course while navigating.  Do you have any suggestions?

Offline cooldog

  • Supreme Robot
  • *****
  • Posts: 751
  • Helpful? 4
  • be nice to nerds, one day they will be your boss
Re: Autonomous navigation and obstacle avoidance
« Reply #10 on: December 10, 2007, 05:15:40 PM »
encoders, gps, compass, some device that will edmit a signal from the point and tell the robot how far it is from there, camera
robot will rule the world and i will be building them
-admin

favorite web sites
http://www.societyofrobots.com/
http://www.instructables.com/

Offline dunk

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 1,086
  • Helpful? 21
    • dunk's robot
Re: Autonomous navigation and obstacle avoidance
« Reply #11 on: December 10, 2007, 05:30:37 PM »
Quote
Do you have any suggestions?
you have just stumbled upon the localisation problem. (or "localization problem" if you are from that part of the wold.)
it is far harder to solve than it at first appears. much research has been done on the matter and it is still a largely unsolved problem.

GPS sounds good on paper but the signal is easily blocked and distorted by obstacles making it virtually useless indoors.

for simple home projects a combination of different sensor types and as much attention to accuracy as possible is your best bet.


dunk.

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #12 on: December 10, 2007, 10:42:28 PM »
  Hi

  Cooldog you mention encoders before could you explain exactly what these encoders are and how they can help with this localization problem?
« Last Edit: December 10, 2007, 10:43:04 PM by derrick_chi »

Offline cooldog

  • Supreme Robot
  • *****
  • Posts: 751
  • Helpful? 4
  • be nice to nerds, one day they will be your boss
Re: Autonomous navigation and obstacle avoidance
« Reply #13 on: December 11, 2007, 04:57:38 AM »
encoders are small disks you put on your wheels with a sensor. it counts the # of rotaitions it takes to get from point a to point b. encoders readouts can be used to measure many things, like speed and distance. so if you count the # of rotaitions before hand you can program your robot to go only that far or to go that far and then move to the next point
robot will rule the world and i will be building them
-admin

favorite web sites
http://www.societyofrobots.com/
http://www.instructables.com/

Offline Ro-Bot-X

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,431
  • Helpful? 25
  • Store: RoBotXDesigns.ca
    • Ro-Bot-X Designs
Re: Autonomous navigation and obstacle avoidance
« Reply #14 on: December 11, 2007, 05:04:24 AM »
To better understand how encoders work, read the turotial here: http://www.societyofrobots.com/sensors_encoder.shtml
Check out the uBotino robot controller!

Offline airman00

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 3,650
  • Helpful? 21
  • narobo.com
    • Narobo.com - Mechatronics and related
Re: Autonomous navigation and obstacle avoidance
« Reply #15 on: December 11, 2007, 05:33:45 AM »
but you can't really rely on encoders

the wheels slip and the robot mistakes that as the bot moving. It has too many problems
Check out the Roboduino, Arduino-compatible board!


Link: http://curiousinventor.com/kits/roboduino

www.Narobo.com

Offline cooldog

  • Supreme Robot
  • *****
  • Posts: 751
  • Helpful? 4
  • be nice to nerds, one day they will be your boss
Re: Autonomous navigation and obstacle avoidance
« Reply #16 on: December 11, 2007, 06:04:24 AM »
but if you still want top use them get some foam aircraft hight traction wheels and use them inside they can be relyable (in the right conditions)
robot will rule the world and i will be building them
-admin

favorite web sites
http://www.societyofrobots.com/
http://www.instructables.com/

paulstreats

  • Guest
Re: Autonomous navigation and obstacle avoidance
« Reply #17 on: December 11, 2007, 06:30:22 AM »
what if its being building up a map based on the encoders for 3 hours, and it gets kicked by accident, or it bumps into something and the wheels spin? the map data from that moment on will be wrong and any previous collected data will be unusable

Offline cooldog

  • Supreme Robot
  • *****
  • Posts: 751
  • Helpful? 4
  • be nice to nerds, one day they will be your boss
Re: Autonomous navigation and obstacle avoidance
« Reply #18 on: December 11, 2007, 06:38:33 AM »
true but why would you run a robot for 3hrs

maybe you can get it to wirelessly send the data it's collected to a computer every X minutes so you can upload  it to the robot if something like that happens.

also put some sensors like IR range finders and bumper switches so it doesn't hit a wall and let the wheels spin.

just thought of this maybe put a tilt sensor on it so if it gets kicked it will stop the motors. and once it is right side up it will cointinuse from where it last took data from in the program
robot will rule the world and i will be building them
-admin

favorite web sites
http://www.societyofrobots.com/
http://www.instructables.com/

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,703
  • Helpful? 173
    • Society of Robots
Re: Autonomous navigation and obstacle avoidance
« Reply #19 on: December 11, 2007, 07:28:13 AM »
Quote
true but why would you run a robot for 3hrs
Actually, I find my encoders are significantly off just after a 5 minutes. You need a global reference to detect errors (GPS, compass, beacons, etc).

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #20 on: December 11, 2007, 11:38:16 AM »
OK seems like encoders are out ;D

  I have sensors which can tell me the rpms based on what it reads from the motor and I can compare that with gps to get a more accurate mph.  Although I believe the GPS receiver I'll be using actually gives me speed and heading so I might be able to get a really accurate calculation between the two.  If you guys are interested you can check it out out at the link shown below.


https://buy.garmin.com/shop/shop.do?pID=175
« Last Edit: December 11, 2007, 11:39:08 AM by derrick_chi »

Offline Ro-Bot-X

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,431
  • Helpful? 25
  • Store: RoBotXDesigns.ca
    • Ro-Bot-X Designs
Re: Autonomous navigation and obstacle avoidance
« Reply #21 on: December 11, 2007, 12:05:40 PM »
Remember, GPS system was designed to work with cars, so an acuracy of 3 meters for a car is not a big deal. But for a small robot it is a lot. And as far as I know, GPS doesn't work good indoors.

For an all terain robot, encoders don't do much good also, because the robot may slip sideways, or flip or whatever.

Encoders are good for measuring distance traveled on smooth staight surfaces, for short distances. And the robot must recalculate position using beacons or distance sensors. So depending on what exactly you want to use the robot, choose the method that works best.
Check out the uBotino robot controller!

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #22 on: December 11, 2007, 12:12:32 PM »
     
I plan on putting this system in a number of things including an air plane, so the more suggestions you guys have for increased accuracy the better.

Offline JonHylands

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 562
  • Helpful? 3
  • Robot Builder/ Software Developer
    • Jon's Place
Re: Autonomous navigation and obstacle avoidance
« Reply #23 on: December 11, 2007, 12:47:15 PM »
I suggest you read this page:

http://geology.heroy.smu.edu/~dpa-www/robo/Encoder/imu_odo/

for an in-depth example of a hobby robot using encoders plus an IMU for incredibly accurate navigation...

When you're done, the main page also makes for some interesting reading and viewing (lots of movies):

http://www.geology.smu.edu/~dpa-www/robo/jbot/

- Jon

Offline Mega

  • Full Member
  • ***
  • Posts: 88
  • Helpful? 0
    • MegaBot Blog
Re: Autonomous navigation and obstacle avoidance
« Reply #24 on: December 11, 2007, 01:13:29 PM »
Quote
I suggest you read this page:

http://geology.heroy.smu.edu/~dpa-www/robo/Encoder/imu_odo/

for an in-depth example of a hobby robot using encoders plus an IMU for incredibly accurate navigation...

When you're done, the main page also makes for some interesting reading and viewing (lots of movies):

http://www.geology.smu.edu/~dpa-www/robo/jbot/

Excellent information Jon, this is very useful input for my HummBot project!

Thanks, Mega
Visit my robotics blog at http://megabotblog.blogspot.com/

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #25 on: December 11, 2007, 01:54:50 PM »
I agree thanks for the links. 

   However I have a real suspicion that this idea of heading holding, and orientation is being over complicated, greatly over complicated, the sensor that guy uses costs over 1500 dollars!  And the math involved is crazy in my humble opinion, somehow i don't really believe it takes all of that to get the job done, i really don't.  When I think about getting from point A to point B, all I need is a map and the ability to read it and maybe a good compass.  I don't calculate many things in my head, a few yes very low level and basic math, certainly not trig, :) no way. 

   I really have to take a look at this from a more simpler prospective and examine exactly how do I get from point A to B, or how do walk on a straight line and see if I can apply the methodology to the robot's program and get a high level of accuracy and performance.  As I am going over this in my head I'm convinced there is a simpler way.

Offline JonHylands

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 562
  • Helpful? 3
  • Robot Builder/ Software Developer
    • Jon's Place
Re: Autonomous navigation and obstacle avoidance
« Reply #26 on: December 11, 2007, 02:22:42 PM »
You have much better sensors, so you can manage to navigate using mainly visual servoing. Your robot could use a 3-axis compass with tilt compensation to avoid using the expensive IMU, but then you have to worry about magnetic interference between the motors and the compass.

I agree that the way we do it is better and simpler, but it requires vision, and the ability to recognize and classify objects.

We use complex math in robots because we don't know how to do it the "right" way.

- Jon

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,703
  • Helpful? 173
    • Society of Robots
Re: Autonomous navigation and obstacle avoidance
« Reply #27 on: December 11, 2007, 02:32:27 PM »
Quote
When I think about getting from point A to point B, all I need is a map and the ability to read it and maybe a good compass.  I don't calculate many things in my head, a few yes very low level and basic math, certainly not trig, no way. 
You'd be surprised what goes on in your head subconsciously.

Early AI researchers fell for the same incorrect reasoning. ;D

Do the method I did, but don't worry that the encoders will have high error.

Use a beacon or GPS for the end location, and use that data to keep the encoders from drifting more than the GPS error of 3 meters. For an outside robot, 3 meters is no big deal.

For an indoor robot use a beacon (bright light and a CMUcam? etc), and your error will be within feet.

Offline derrick_chiTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 0
Re: Autonomous navigation and obstacle avoidance
« Reply #28 on: December 11, 2007, 02:49:58 PM »
  Thanks for the input Jon.
     I agree with what you said 100% 

Use a beacon or GPS for the end location, and use that data to keep the encoders from drifting more than the GPS error of 3 meters. For an outside robot, 3 meters is no big deal.

     Good point.
      I was planning on using 3axis gyros and a compass for the heading hold, and error correction, what do you guys think?


« Last Edit: December 11, 2007, 03:10:53 PM by derrick_chi »

Offline JonHylands

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 562
  • Helpful? 3
  • Robot Builder/ Software Developer
    • Jon's Place
Re: Autonomous navigation and obstacle avoidance
« Reply #29 on: December 11, 2007, 03:08:01 PM »
     I was planning on using 3axis gyros and a compass for the heading hold, and error correction, what do you guys think?

You don't really need a 3-axis gyro. What you should look at is a one-axis gyro (vertical) like an ADXRS300 and a compass. The trick with a compass is the 2-axis ones just don't work for anything other than perfectly level ground. To get an accurate reading for a RoboMagellan-type bot, you really need a 3-axis compass with a two-axis tilt sensor, like this one:

http://www.sparkfun.com/commerce/product_info.php?products_id=8507

Most two-axis compasses start becoming wildly inaccurate after being tilted more than a couple degrees.

You need to mount the compass up on a pole, as far away from your motors as you can manage.

For GPS input, do dead reckoning as a baseline, and use the GPS to correct your dead reckoning when it is available, keeping in mind the uncertainty inherent in GPS. Don't depend on always getting a valid GPS reading.

- Jon

 


Get Your Ad Here