Pages: [1]   Go Down
Author Topic: Non-Odometric Navigation?  (Read 2384 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

I've looked at several methods of navigation like SLAM and WAVEFRONT and well, they're extremely complex. It seems to me that a lot of the concrete implementations involve odometry. However odometry is generally unreliable.

Is there a way to calculate distance moved based on original positioning without utilizing odometry?

I've seen some stuff using a Kinect to recognize glyphs and such, but that's a little expensive for me. That, and it relies on sticking glyphs/beacons everywhere. I'd prefer a non-beacon based navigation/mapping

I've had some thoughts about utilizing sonar 'topography' IE, defining a region by sweeping around a PING sensor around on a servo. Since I have a heading given by a compass unit, I can assign that 'sweep' to an array. If I move forward, say 10 cm which I determine with the PING sensor, I take another sweep. If I turn, I know via my compass heading..and so on and so forth.

I feel like I'm on to something, but I don't quite know what. Maybe mapping/navigation based on wall following??
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 224
Posts: 13915
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Is there a way to calculate distance moved based on original positioning without utilizing odometry?
Yes, people look at the stars, sextants on ships, look in history books how people did navigation in centuries before. Think there is a lot to learn.

E.g. Place some light bulbs as beacons and an LDR can detect its intensity and if you have three you can do triangulation.

Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Phoenix, Arizona USA
Offline Offline
Faraday Member
**
Karma: 40
Posts: 5597
Where's the beer?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

I've looked at several methods of navigation like SLAM and WAVEFRONT and well, they're extremely complex. It seems to me that a lot of the concrete implementations involve odometry. However odometry is generally unreliable.

Is there a way to calculate distance moved based on original positioning without utilizing odometry?

Yeah - it's called SLAM - but you already knew that.

I've seen some stuff using a Kinect to recognize glyphs and such, but that's a little expensive for me. That, and it relies on sticking glyphs/beacons everywhere. I'd prefer a non-beacon based navigation/mapping

This is SLAM too - the only thing different, is that true SLAM relies on recognising rooms and such based on their layout, and the position of the robot within that layout, as remembered by previous mapping trials, whereas a glyph/beacon system is more or less the same thing, except utilising an "artificial" and "known" feature to identify the location.

I've had some thoughts about utilizing sonar 'topography' IE, defining a region by sweeping around a PING sensor around on a servo. Since I have a heading given by a compass unit, I can assign that 'sweep' to an array. If I move forward, say 10 cm which I determine with the PING sensor, I take another sweep. If I turn, I know via my compass heading..and so on and so forth.

I feel like I'm on to something, but I don't quite know what. Maybe mapping/navigation based on wall following??

This too, is SLAM, whether your know/understand it or not. I suggest you read further on SLAM, and hopefully you can understand the mathematics behind it (don't ask me, I've never worked with it - I agree it is very complex); if the mathematics are beyond your knowledge level, then you'll need to learn enough of that to understand what is going on. One little step at a time; don't expect to know it all in one shot...

Good luck!

smiley
Logged

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hah, I figured as much... I took a course on AI back in college. Understanding, then IMPLEMENTING complex algorithms takes a long time, never mind various optimizations, trouble shooting, blah blah blah. Took me a week of working a few hours a day just to get a SAT solver running.

I was hoping there was some kind of SLAM library out there, you know like how there are libraries for quicksort in Java or C++ and the like..sigh.

I'll do a separate post asking about SLAM resources and the like.
Logged

Phoenix, Arizona USA
Offline Offline
Faraday Member
**
Karma: 40
Posts: 5597
Where's the beer?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hah, I figured as much... I took a course on AI back in college. Understanding, then IMPLEMENTING complex algorithms takes a long time, never mind various optimizations, trouble shooting, blah blah blah. Took me a week of working a few hours a day just to get a SAT solver running.

I was hoping there was some kind of SLAM library out there, you know like how there are libraries for quicksort in Java or C++ and the like..sigh.

I'll do a separate post asking about SLAM resources and the like.

You probably won't find much or anything for the Arduino; the main issue being lack of processing power and memory - not to mention the fact that most people using an Arduino for robotics generally aren't familiar with SLAM. I expect this to change in the future, though, as more people become familiar with the concept (I can imagine a simple "micro-SLAM" implementation - likely 2D only, and using ultrasonic or Sharp IR sensors for the mapping). This will also change as more powerful microcontrollers become the norm for certain tasks (like the Due, for instance - also the Raspberry Pi could easily do SLAM, I think).

Most of what you will find will be designed around to run on more powerful machines - PCs and the like, where you have more memory, speed, and other resources. There exist plenty of open-source and other libraries out there for SLAM in that arena...
Logged

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

0
Offline Offline
Tesla Member
***
Karma: 145
Posts: 9698
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Is there a way to calculate distance moved based on original positioning without utilizing odometry?

If there was an easy way, you would already see lots of projects using it. 
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Full Member
***
Karma: 1
Posts: 109
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

SLAM for dummies from MIT:

http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-412j-cognitive-robotics-spring-2005/projects/1aslam_blas_repo.pdf
Logged

Phoenix, Arizona USA
Offline Offline
Faraday Member
**
Karma: 40
Posts: 5597
Where's the beer?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I saw this update - then saw my comments - and now I'm going to comment some more!

If you want to learn and understand how SLAM works, and how WAVEFRONT (and other such methods of route planning, like A* and such) work - I suggest you take this course:

http://www.udacity.com/overview/Course/cs373/CourseRev/apr2012

I signed up for it not long after my last post (April 16th, 2012); I completed it and got my certificate on June 14th - I don't consider myself an expert on SLAM, but I had a fun time, and now know much more than I did then! I also learned that I really need a follow up course on probabilities and statistics!

Yes - it is very complicated - but it was worth all the effort, hours and tears I put into it. Between it and the Machine Learning class I took last year (which you can still take via Coursera, I think) - they are both some of the best resources out there for learning and applying artificial intelligence.

I'm afraid there aren't any shortcuts to this process - but there is still a very wide open field and lots of potential applications to apply such learning and skills toward!
Logged

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Pages: [1]   Go Up
Jump to: