Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.

Get Started
Asked — Edited

Stairs / Edge Avoidance With Sonar Sensor , Whats Best For Omnibot 2000

User-inserted image

User-inserted image

Is sonar a good option to avoid stairs and objects in all conditions? Is there a better option? Does having a couple sensors on same side of bot ( but not aimed in same direction) cause interference?

AI Support Bot
Related Content
Based on your post activity, we found some content that may be interesting to you. Explore these other tutorials and community conversations.
When I was asking a similar question a couple months ago, someone recommended just nailing a board high enough that the robot would get stuck to the edge of the top stair. Sometimes the easy solution is better than the elegant one. Depends on if you live alone or need to worry about tripping your wife/girlfriend/parents down the stairs in order to protect your robot:)

I would think just using a child gate would be better then nailing a board to the stairs, plus can remove it when your robot aint on the prowel.
I have roomates and dogs niether of those will work. The Omnibot has over 2 inch clearence so someone would break their neck lol
You have little bot's who follow lines.

Use the same sensor and draw a Thick black line on your stairs.

if the bot detect the Black line , he have to turn

or something like that
I have dark brown carpet..... And I rent my place. So that's not going to work
An on board metal detector on underside of robot & place a light metal plate under carpet ?
I appreciate the ideas but can we focus on what we can do to the robot to avoid stairs instead of modifying my house which is not mine so that's a no go. Is the sonar sensor good enough to point at floor and get a solid reading from like 3 inches? If it can maybe I could just make up a "all stop" command or reverse whenever the sensor sees the floor isn't there anymore , the sensor would be pointed down at the floor right in front of the front edge of the Omnibots base.

Just some ideas here. Just brain-storming...

First, how does the Roomba's keep from going down stairs? If I remember right, don't you place some reflectors or something across the stair drop-off that it can sense?

Also, what about having a flexible wire drag along the ground encased by a spring. The wire and spring would flex slightly as it drug along carpet, hardwood floors, etc. This would cause the wire and spring to "connect" constantly and you could track this with the ez-b as a "full-on" state. When the edge of the bot started to go off the stairs, the wire and spring would "straighten out", causing the contact to be broken, giving the ez-b a "full off" state. You could then program the ez-b to tell the bot to back up and turn if the full-off state is envoked.

I've attached a couple of renders I whipped up that hopefully describes with pictures what I was trying to explain.

The 1st picture shows a robot chassis. Notice the spring at the front with the wire inside of it. As the robot moves around, the spring allows for adjustment as it travels over different terrains such as carpet, hardwood, etc.
User-inserted image

This second image is a close-up of the spring and wire. Notice how the wire is in contact with the srpring.
User-inserted image

The third image shows the robot at the edge of a stair and the spring is no longer in contact with the ground and straightens out along with the wire. In fact, instead of a wire, you could use two different sized springs so they always want to straighten out.
User-inserted image

Just an idea...

@btallis spring idea sounds like it could be a idea , I am concerned that would chew up my hardwood floor or get caught on a rug/ carpet all the time however it could be an option. Roomba uses IR LEDs and IR sensor pairs to detect edges. They have 4 , two along front edge and one in each side in front of each wheel. From what I read the ir sensor is on constantly and reads light but once it passes over a edge the light is no longer reflected back which trips sensors signal to change.
I think DJ did something like this on his original Omnibot. I was going to try and use a distance sensor on each side of the front caster. then run a script to compare the values while the robot is running autonomously . maybe this one could do it?

If ( Digital ( [Port] ) [Condition] [Value] )

Queries a Digital Port for its state against your condition.
Port is a Digital Port (between d0 and d20)
Condition is either =,
Value is either True or False
If true, the following command (next line) is executed
If false, the following command (next line) is skipped
Example: If (Digital(D0) = false)
Specs for the ultrasonic sensor:
HCSR04 range finder

power supply :5V DC
quiescent current : <2mA
effectual angle: <15
ranging distance : 2cm - 500 cm
resolution : 0.3 cm

Resolution is how accurate the sensor is , 2cm is min distance which is less than a inch. The omnibot is about 2 inches maybe more off the ground so it seems like this will work. Basically calibrate it for 2.5 inches (or whatever the height is in cm) and if it sees a farther distance it stops , backs up a couple inches and turns. How does this sound , one on the front one on the back face directly down? Any ideas (besides remodeling the house lol) super appreciated. This is my first real robot. Thanks
@jstarne1 - I was going to try and use some of those Sharp analog IR distance sensors (or equivalent) aimed at an angle toward the floor for cliff avoidance. You'd use these with an ADC port on the EZ-B.

I think someone got some advice about using these sensors for stair avoidance. If you search the posts I'm sure you'll find it (I can't seem to at the moment... *eyeroll*).

EDIT: Found it!
Sharp IR - Big WALL-E post Starting at post #5. Hope this helps!:D
@jt ok cool so someone has done it , that's good. I believe ill put one on each end then facing down at a slight angle as to catch the bit before the wheels get to the edge.
Thanks , based off that it sounds like it works well.