Pages: [1]   Go Down
Author Topic: simultaneous localization and mapping (slam)  (Read 1089 times)
0 Members and 1 Guest are viewing this topic.
Rochefort, France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 73
Arduino is a king
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am trying for some time now to localize in a plane a mobile using ultrasonic time-of-flight (TOF). The mobile carries a circle of US emitters and US receivers are placed at two corners of the plane. Synchronization between US reception and emission is done through RF.
To improve the precision of this localization I would like to use a simple SLAM. For that I will add rotational encoders to the wheels. That is, the idea is to use the US as beacons allowing the "map" construction and the encoders will do the "localization" part.
Does someone has any experience with this type of approach?
I have read:
http://ocw.mit.edu/NR/rdonlyres/Aeronautics-and-Astronautics/16-412JSpring-2005/...
and
http://dspace.nitle.org/bitstream/handle/10090/782/s10csi2007hieberttreuer.pdf?s...
but I am still very far from being able to write a nice java code to do the job!
Help!
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
but I am still very far from being able to write a nice java code to do the job!
Help!

What would you do with the java code, if you had it?
Logged

Norway
Offline Offline
Sr. Member
****
Karma: 0
Posts: 344
Just dip it in mercury and power it up
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Are you using the phone's java to interface with the arduino?
it's serial interface that's you're interessed in, the arduino's code is in C and will have to process some/all the data before sending them by serial  to your program, or send raw data to your program by serial.
This latter option adds delay to your processing. serial takes time.
The sampling rate of the arduino is not too great so do not expect super duper results.
You could try compressive sensing to deal with low sample rate
http://en.wikipedia.org/wiki/Compressed_sensing
but all your calculations must then be done on relativly powrreful computer.

David
Logged

Rochefort, France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 73
Arduino is a king
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My idea is simple, the implementation can be impossible, though!
I would like to improve the precision of my position data beyond the simplest averaging that I am doing right now. I understood, from some readings, the best way to do that is to use a second set of data - in my case I would get encoder measurements of the wheels positions - on top of the US time-of-flights. Then, some appropriate statistical methods should allow me to optimize the measurements. I first thought about Kalman filter, but then SLAM seemed more adapted. Technically it is in the end a manipulation of several matrices -positions, velocities, errors -.
My question to the Arduino/Processing's experts is:
how to translate these statistical treatments of data (Kalman and/or SLAM) in Processing language (I thought it was some kind of Java, that is the reason why a refer to it)?
Does anyone ever tried to have an efficient statistical treatment of data coming out of sensors and going to a computer through an Arduino board?
If yes, please let me knoow what it was.
Logged

Pages: [1]   Go Up
Jump to: