Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Rightclick on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
From: Mac Mason <mac@cs...>  20091108 05:03:18

Hello list! I've been using the Create driver, and (as far as I can tell) it returns yaw odometry in units of whole degrees. Is that a limitation of the Create, or the driver? Is there something fancy that needs doing to improve things? Thanks! Mac  Julian "Mac" Mason mac@... http://www.cs.duke.edu/~mac 
From: Mac Mason <mac@cs...>  20091110 03:48:31

On Nov 7, 2009, at 11:44 PM, Mac Mason wrote: > Hello list! > > I've been using the Create driver, and (as far as I can tell) it > returns yaw odometry in units of whole degrees. Is that a limitation > of > the Create, or the driver? Is there something fancy that needs doing > to > improve things? I've answered my own question, so here it is for posterity. The Create's serial interface provides anglesincelastturn in units of whole degrees. The internal counters are doing something smarter (if you've got one lying around, try several extremely small turns in a row), but there's no way to access those data. To add insult to injury, there's no way to directly access the wheel encoders, so we can't construct the data manually, either. Mac  Julian "Mac" Mason mac@... http://www.cs.duke.edu/~mac 
From: Jonathan Paxman <jonpaxman@gm...>  20091112 02:04:31
Attachments:
Message as HTML

> > I've answered my own question, so here it is for posterity. The Create's > serial interface provides anglesincelastturn in units of whole > degrees. The internal counters are doing something smarter (if you've > got one lying around, try several extremely small turns in a row), but > there's no way to access those data. To add insult to injury, there's no > way to directly access the wheel encoders, so we can't construct the > data manually, either. The resolution is actually approximately 0.44 degree. This is according to the Roomba SCI specification: Angle Packet subset: 2 Range: 32768 – 32767 Data type: 2 bytes, signed The angle that Roomba has turned through since the angle was last requested. The angle is expressed as the difference in the distance traveled by Roomba’s two wheels in millimeters, specifically the right wheel distance minus the left wheel distance, divided by two. This makes counterclockwise angles positive and clockwise angles negative. This can be used to directly calculate the angle that Roomba has turned through since the last request. Since the distance between Roomba’s wheels is 258mm, the equations for calculating the angles in familiar units are: Angle in radians = (2 * difference) / 258 Angle in degrees = (360 * difference) / (258 * Pi). If the value is not polled frequently enough, it will be capped at its minimum or maximum. 
From: Mac Mason <mac@cs...>  20091112 16:42:48

On Nov 11, 2009, at 9:04 PM, Jonathan Paxman wrote: > The resolution is actually approximately 0.44 degree. > > This is according to the Roomba SCI specification: > > Angle > Packet subset: 2 > Range: 32768 – 32767 > Data type: 2 bytes, signed > > The angle that Roomba has turned through since the angle was last > requested. The angle is expressed as the difference in the distance > traveled by Roomba’s two wheels in millimeters, specifically the right > wheel distance minus the left wheel distance, divided by two. This > makes counterclockwise angles positive and clockwise angles negative. > This can be used to directly calculate the angle that Roomba has > turned through since the last request. Since the distance between > Roomba’s wheels is 258mm, the equations for calculating the angles in > familiar units are: > > Angle in radians = (2 * difference) / 258 > Angle in degrees = (360 * difference) / (258 * Pi). > If the value is not polled frequently enough, it will be capped at > its minimum or maximum. Interesting. That contradicts the description of the Angle command in the Create Open Interface document [0] (page 19), which reads: > The angle in degrees that iRobot Create has turned since the angle was > last requested is sent as a signed 16bit value, high byte first. > Counterclockwise angles are positive and clockwise angles are negative. > If the value is not polled frequently enough, it is capped at its > minimum or maximum. > Range: 32768 – 32767 Both Player's Create driver and ERDOS report in whole degrees. I guess iRobot decided hobbyists don't need good odometry data... [0] http://www.irobot.com/filelibrary/create/Create%20Open%20Interface_v2.pdf  Julian "Mac" Mason mac@... http://www.cs.duke.edu/~mac 
Sign up for the SourceForge newsletter:
No, thanks