ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Using the Turtlebot gyro without ROS

asked 2012-03-10 10:28:40 -0500

Royal2000H gravatar image


We're using the iRobot Create for a project with a laptop mounted on board, like the turtlebot. However, we're using Windows rather than ROS. After some testing, we saw the dead reckoning of the iRobot is pretty poor (most problems from angle rotated), and found the turtlebot's gyro sensor and power board, which looks very convenient!

Is it possible to access and make use of this gyro sensor through the serial port to improve on the navigation within our C# program?

Is there any documentation or anywhere someone can point me to that would show me how to interface with the sensor and perform any necessary navigation-correcting calculations?


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2012-03-10 14:18:21 -0500

Ryan gravatar image

The gyro on the power board provides input to the "user analog input" pin on the Create. Your Windows API will likely provide a method for reading this. If it doesn't, check out this document.

The next step you'll have is to correct for sensor error. There are two primary types you should worry about:

  1. Scale error. The gyro may provide an analog value for a given rotational rate which doesn't quite match up with the spec. The turtlebot_calibration node can automatically determine this error by comparing a prediction based on the gyro with an actual observation of motion from the TurtleBot's Kinect sensor.
  2. Drift. The analog value corresponding to a zero rotational rate drifts over time. The TurtleBot is constantly recalibrating what the "zero value" is by averaging gyro sensor values when both wheels are not moving, and using that value as an offset.

After you do those two corrections, you're left with incorporating that data into your position estimates. You can start by integrating it to determine chassis rotation in your current dead-reckoning approach, and improve it further by adding Kinect data via an extended Kalman Filter. I'm not sure what direction you want to go in for this latter point, but hopefully the above helps...1.

edit flag offensive delete link more


I second all of the above; at this point, though, you've just reinvented a bunch of stuff that ROS does for you, in a well-debugged, well-integrated manner. I'm told there's some rudimentary ROS support on windows; probably enough to let a linux machine do the work, and a windows do the controls.

Mac gravatar image Mac  ( 2012-03-10 15:12:49 -0500 )edit

Question Tools

1 follower


Asked: 2012-03-10 10:28:40 -0500

Seen: 540 times

Last updated: Mar 10 '12