Create Autonomy + ROS + iRobot Create - odometry

We are experimenting with an iRobot Create (IC) and using the Create Autonomy (CA) library. We have a few anomalies that maybe someone can shed a light on:

1) We are not getting /nav_msgs/Odometry messages published, even though we have the IC rotating on the floor.

2) Regarding the /bumper message type: I assume that is_light_left etc. messages correspond to when the wheels are not solidly on the ground, right? I found that they are very unreliable, in some cases not responding at all to the wheel, and sometimes being very slow to respond. Is that a sign of a problem with the hardware?

3) Regarding the omni IR sensor: It looks like it returns either 0 or 161 -- is that correct? But the range is very short (like 10-20 cm). I know a Roomba can find its way to the base from a longer distance. Is it not relying on the IR?

Thanks!

edit retag close merge delete

Do you have a link to the library?

( 2018-01-10 15:33:58 -0500 )edit

Sort by » oldest newest most voted

1) We are not getting /nav_msgs/Odometry messages published, even though we have the IC rotating on the floor.

By "published", do you mean the odometry is not updating correctly or are there no messages at all? After starting the driver you should hear a "beep" from the robot and the center LED should turn off. This is a good indication that the driver has started properly. After that you can try the command rostopic hz /odom to check that messages are being published.

Also, note that the odometry may not be accurate if you are pushing the robot around by hand since it infers wheel rotation direction based on commands sent to the motors.

2) Regarding the /bumper message type: I assume that is_light_left etc. messages correspond to when the wheels are not solidly on the ground, right? I found that they are very unreliable, in some cases not responding at all to the wheel, and sometimes being very slow to respond. Is that a sign of a problem with the hardware?

This is not correct. The bumper message is regarding the forward facing bumpers. is_light_left in particular refers to whether the left-most light sensor on the front bumper is detecting an obstacle. For detecting if a one of the wheels is not on the ground you can use the /wheeldrop topic, which outputs an std_msgs/Empty message if one of the two wheels is not on the ground.

3) Regarding the omni IR sensor: It looks like it returns either 0 or 161 -- is that correct? But the range is very short (like 10-20 cm). I know a Roomba can find its way to the base from a longer distance. Is it not relying on the IR?

Off the top of head, the IR code returned is passed on from the base itself. You can find a list of values on page 25 of the Create 2 IO Spec.

more