Faster and smoother autonomous navigation!

Until now, Oculus Prime strictly used turn in place moves to change direction. This is a common approach to skid steering, and allows for very accurate odometry using a gyro and wheel encoder. But, following a curvy path requires a lot of time consuming starting and stopping to make small turns.

With the latest software update, the robot has evolved: it can now perform arc moves; that is, move forward and turn at the same time. This allows it to more closely follow the intended method of movement of the move_base package of the ROS navigation stack.

The end result is smooth continuous movement, and pretty much double the overall navigation speed—watch the above video to see it in action.

The ROS move_base package is optimized for mobile bases that have purely differential steering; ie., two main drive wheels only, along with one or more passive caster-type swivel wheels. But with a 4WD skid steering setup like Oculus Prime, it’s more difficult to retain accurate linear odometry during arc moves (especially with an encoder on only one wheel). So we came up with an algorithm that makes pretty good guesses at the linear distance travelled. The robustness of the ROS AMCL package easily handles any inaccuracies, and keeps Oculus Prime correctly located on the map.

The minimum turn radius is a little over 0.5 meters. If the path planner calls for tighter turns than that, the robot will stop and perform a turn-in-place. Also, when getting close to the target pose (within 0.9m) it reverts to the previous turn-in-place-only steering method, since it’s more accurate and avoids overshooting the target.

Arc moves don’t work as well on high friction surfaces like deep carpet, so the system will revert to the turn-in-place-only steering method if it senses it’s not turning easily (and will switch back if turning gets easier again).

Update Oculus Prime to the latest Java server and ROS module using the usual method