
Andy Roid
Many members of this forum have discussed and built many styles of indoor navigation. Some designs were fairly simple with minimal accuracy. Some were developed with great sophistication and complexity and of course the resulting ability was very good.
Some controls were based on camera feedback using glyphs, colors or objects as way points, ultrasonic distance measurements, compass directions, encoder values, LIDAR feedback etc. etc. as stand alone sensors, or in combinations. Also beacons, and other point of location devices are used for references as robot is here.
I am curious what has worked for you and what has not. I am not looking for the details of the script you built (unless you want to share it), but rather a direction to go to build something that will work reasonably well. Information on your successes and failures would be appreciated. I have built a few scripts, but never got what I really wanted. I would also like to keep the cost down, so I rather not use LIDAR and specialty sensors.
I have an Adventure Bot which has a camera on a servo, 3 ultrasonic sensors mounted front and sides, a compass which is not currently mounted, but available, and the ability to get pulsed signals from the 5 spoke wheels mounted on the continuous servos (poor man encoder ( approx. 1.67 inches or 42.7 mm per step)).
Open for discussion.
I look forward to feedback on this subject.
Ron
I will be straight forward , navigation is the holy grail project for robotics. In a DIY world you need to focus your time on an achievable goal. Each environment can use a specific navigation method. Try to keep it simple. You only need two or three pieces of information to navigate a robot.
Relative position in a room or operating area
Orientation , aka North , South, East, West
Approximation to the nearest object or obstacles
If you simplify you needs down to these you can get some basic navigation, adding vision can smooth these out but vision is generally difficult to navigate by itself and needs these other pieces of information anyways.
Examples
Robot in the yard- in my yard I will have more than one robot that needs to come exist. So I need these robots not to collide , not leave the yard and also be able to drive back to the house and charge. I immediately thought of using RFID tags on top of spikes like a golf tee and stick them in the ground. A antenna then reads these as the robot passes over then and also reads a compass which tells it the directional orientation. Inside a home you could stick these tags under the carpet by slicing a tiny slit in the backing, sliding a RFID tag in and then stitching the backing back together.
Thanks for your input Josh. I knew you had made a number of navigation systems. Presenting the basics and your examples helps when considering the hardware and a way to attack navigation indoors or outdoors.
Ron
@Richard & @CochranRobotics
Can you share any updates on using RoboRealm?
Frank
Hey Josh,
How did you plan to read the RFID tags? I assumed you use them as way points for correction, and then as a way for directional heading changes? What is the distance from tag to receiver that will read?
I am working on a compass, encoder and 3 ultrasonic sensor idea. What I want to have is a "way marker" to either sense to travel to a current listed (way point) location or as a correction value to the track. This way if I had to deviate from the tracking due to an obstruction I could search out the next RFID and then correct the track and continue. I was going to try a camera color tracking to see if it would work.
Any info and sources would be helpful.
Ron
I saw a 433mhz transmitter/receiver for arduino on Amazon. Can something like this be used as a beacon?
If you want beacons, you can use BLE Bluetooth Low Energy boards like this one:
https://www.sparkfun.com/products/13729
the design is very good, you can program the board using another board available as a kit:
https://www.sparkfun.com/products/14071
The program (firmware) is the same, the difference is the beacon Id hardcoded. you will need a wired power source (fixed beacon) or a battery, box etc.
you will need 3 or more per room, and via trilateration you can calculate the position.
The BLE receiver (on the robot) gets a list of beacons, and the signal strength (rssi).
If you do a manual calibration, you can convert the RSSI to a distance, knowing 3 or more points (beacons) and the room configuration you can obtain the position.
Possible BLE receivers:
https://www.sparkfun.com/products/13632 https://www.adafruit.com/products/2829
You can do all the calculations on the desktop and use i2c to interact with the BLE receiver, or create a firmware to send the results via serial to the EZB.
Is not a 100% working solution, there are a few issues like interferences, room configuration.
Last year i did a POC using BLE beacons to control and managed restricted areas: e.g. under the stairs, elevators, high traffic areas.
We had some issues, but it worked, the maintenance crew, had a few beacons, and they used to flag working areas or dangerous places for the roaming robots.
Some references:
http://stackoverflow.com/questions/20332856/triangulate-example-for-ibeacons
http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing
Hello @ptp,
Thanks for the info. I will look it over and also thanks for including the references. My computer/programming/ scripting skills are VERY minimal, so examples and references are of great help.
My goal is a decent, reasonably non-complex, indoor navigation system using a minimal number of non- EZ Robot components. Ron
@rz90208 I really like your approach.
I'll start testing it and give you feedback as soon as I get my plugin loading issue resolved. I just submitted a post on that
Regards, Frank