I have no robotics training and this is my first non-trivial RobotC project but am trying to create a robot with complex movement behaviors such as: 'explore this classroom without bumping into any chairs', 'go from where you are now to 3m forward without hitting the sofa in your way', 'point yourself directly at the nearest wall', and 'move along this wall, staying 30cm distant from it'.

I am using a LEGO MINDSTORMS NXT. I have an ultrasonic sensor (rangefinder) affixed to the top of the robot that can sweep left/right. I am using a differential drive. My motors are at a 40:12 gear ratio and I am using the large, 'motorcycle' wheels (maybe 3" diameter?). At max power, the robot moves at 'speed-walking' velocities. (the built in RobotC motor synching / PID controller fails to control the robot: my proportional controller seems to manage well, but rigorous tests are yet forthcoming)

I first wrote up a big, long post on what I was planning to do, but I got the feeling I was reinventing the wheel. Would some kind people please point me in the right direction?

Tue Jan 17, 2012 7:17 pm

SciQuest_csp

Rookie

Joined: Tue Jan 17, 2012 5:39 pmPosts: 4

Re: Robot navigation - trying not to reinvent the wheel

Eh, I figured I might as well post some of the ideas I had.

Currently I have code that allows me to pivot on a wheel, spin on a dime, go straight, and follow any circular arc. I can also follow a line and square off perpendicularly to the line. I few good, customized data logging functions (using file write, not the built-in data log: should I rewrite this to do things the built-in way?). I can give it a list of commands in a file using a formal grammar and have the robot execute those commands.

I can also sweep the rangefinder around to detect (with a little easy math), in X-Y space relative to the robot, the location of obstacles.

For localization I was thinking I could try: start the robot with position (0,0) and direction 0. Each time you enter the control loop, if your rotation sensor's change from prior values is equal, update the position by the relevant amount. If they are unequal, update the position and direction assuming that the robot carried out a circular arc. I know that this accumulates errors rapidly and I know that Kalman filtering helps, but the wikipedia page on it is not targeted for beginners. When not trying to get to a specific location, this could be reset periodically. (along with dropping remembered obstacles?)

When detecting obstacles, treat each obstacle detected each sensor sweep as a circle with radius > robot's footprint (so the robot may be treated as a point for easier pathfinding). During a sensor sweep, ignore all obstacles beyond threshold, or ones sufficiently close to another obstacle. When the number of obstacles becomes to great, drop the obstacle furthest from the robot.

Assuming I have a set of N circles acting as obstacles, a point-like robot, and a target region, I do not know how best to get the robot from its current location to the target region (because the real world is not an A*-ready graph, and trying to make it one seems inefficient).

When aligning to a wall, stop the robot, do a sensor sweep. [BEGIN LOOP] If there are enough points, run an outlier insensitive linear regression. If there are enough points within a certain distance of this line, this line is wall N. Drop all points sufficiently close to wall N. [END LOOP] Determine which wall is closest, then turn in place to face towards it.

---

EDIT:

I read more on the Kalman filter. While I do not feel like I am ready to tackle it just yet, I do feel I understand the mathematical principles at play and its limitations. I think I might focus on expanding my mathematical and theoretical grounding before continuing. Also, purchasing additional sensors (IMU, gyro, compass, etc), while expensive, might be beneficial. Any one know of any good resources I can utilize for this line of pursuit? Perhaps starting with a matrix math library?

Tue Jan 17, 2012 7:51 pm

Spiked3

Expert

Joined: Tue Feb 28, 2012 3:10 pmPosts: 197

Re: Robot navigation - trying not to reinvent the wheel

Ever get anywhere with this? I am also trying to make that step in learning, although I seem to be taking my time.

I'm not currently knowledgeable about all those topics, but I have looked into them and I do not see anything that scares me away.

I'd be interested in trading learning experiences with you. I've gotten wall recognition working (RANSAC), next I need to turn it into landmark recognition. then kalman filter (as you mentioned, but used differently), then some sort of path planning.

If all that stuff is spam, then EDV's the subtlest spammer I've ever seen . Also, it means he's been faking you guys out for years!!!

_________________A.K.A. inxt-generationSelf-proclaimed genius, and future world dominator.My Brickshelf Folder"Don't they teach recreational mathematics anymore?" - The Tenth DoctorBow down to Nikola Tesla, King of the Geek Gods.

Tue May 08, 2012 10:29 am

EDV

Rookie

Joined: Tue Sep 28, 2010 7:29 amPosts: 22

Re: Robot navigation - trying not to reinvent the wheel

NeXT-Generation wrote:

If all that stuff is spam, then EDV's the subtlest spammer I've ever seen . Also, it means he's been faking you guys out for years!!!

We're not saying the program is fake, but your latest message seemed kinda spamm-y. You didn't post much info, didn't mention your own work, it linked to a site where you get a paid for program, but it related to the threads content, so nobody was sure.

Some of the spam we've been seeing here lately was similar to your latest message, so naturally suspicions arise.

I'm sorry if I have offended you.

_________________A.K.A. inxt-generationSelf-proclaimed genius, and future world dominator.My Brickshelf Folder"Don't they teach recreational mathematics anymore?" - The Tenth DoctorBow down to Nikola Tesla, King of the Geek Gods.

Tue May 08, 2012 12:26 pm

Spiked3

Expert

Joined: Tue Feb 28, 2012 3:10 pmPosts: 197

Re: Robot navigation - trying not to reinvent the wheel

It's SPAM. No where was anyone looking for a commercial product, that has nothing to do with RobotC. He just wants the link he posted to up his link count in google. He went from here to my web site, where after saying I was doing SLAM on a LEGO he suggesting his product that requires a video camera. And again he spams his link more in his replies. If it has anything to do with robotC, then fine. Does he tell you what his algorithm is? I'm not saying he doesn't have something, I'm not saying it is not useful to tell people about it in some context. But posting it here like that, on a 4 month old thread had 1 and only 1 purpose.

We didn't. Most likely it is someone else pretending to be us for whatever reason. If you'd like you can contact us using our site contact form and we will help track down the person and communicate this desire.

Thanks, STeven.

But if you looked into AVM Navigator documentation then you would know that AVM Navigator module is a third party module and RoboRealm Team do not have any relations to the comment in which I advised you could try to use AVM Navigator in your navigation task on your web site in this topic.

I am developer of this module and if you have some questions or pretensions then you can ask me for clearing up of this situation.

And can you manage without affront like a “Look losers” in your posts?

As I mentioned if you have a more advanced robot navigation solution that is based on the visual landmarks then just show me it.

Spiked3 wrote:

Your product has nothing to do with what either of us were talking about, AND you do not educate us as to your wonderful algorithm, instead its buried in a compiled DLL file, that costs more than RobotC to obtain.

>> Your product has nothing to do with what either of us were talking about

AVM Navigator provide an autonomous robot navigation and this purpose is correspond to topic name where we are talking about.

In our case the visual navigation for robot is just sequence of images with associated coordinates that was memorized inside AVM tree. The navigation map is presented at all as the set of data (such as X, Y coordinates and azimuth) that has associated with images inside AVM tree. We can imagine navigation map as array of pairs: [image -> X,Y and azimuth] because tree data structure needed only for fast image searching. The AVM algorithm can recognize image that was scaled and this image's scaling also is taking into consideration when actual location coordinates is calculating.

Let's call pair: [image -> X,Y and azimuth] as location association.

So, each of location association is indicated at navigation map of AVM Navigator dialog window as the yellow strip with a small red point in the middle. You also can see location association marks in camera view as thin red rectangles in the center of screen.

And so, when you point to target position in "Navigation by map" mode then navigator just builds route from current position to target point as chain of waypoints. Further the navigator chooses nearest waypoints and then starts moving to direction where point is placed. If the current robot direction does not correspond to direction to the actual waypoint then navigator tries to turn robot body to correct direction. When actual waypoint is achieved then navigator take direction to other nearest waypoint and so further until the target position will be achieved.

>> instead its buried in a compiled DLL file, that costs more than RobotC to obtain1. You can use NON commercialLibrary AVM SDK simple.NET for purpose of object recognition and robot navigation for free.

2. You can get FREE 30 day trial of RoboRealm package with AVM Navigator and try it in your task.

Spiked3 wrote:

So unless you can show me the algorithm of Roborealm AVM Navigator, that works on a LEGO Nxt with a Range finder, shut the F up.

Who is online

Users browsing this forum: No registered users and 1 guest

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum