Segway RMP 50XL Odometry value problem

RMP 50, 50XL, 100, 200, 400
Akin
Posts: 24
Joined: Mon Aug 13, 2012 12:21 pm
Contact:

Segway RMP 50XL Odometry value problem

Post by Akin » Mon Aug 13, 2012 8:41 pm

Hi,

I recently got a Segway RMP 50XL platform. I used the rmi_demo_usb demo software to check the odometry values of the platform and I see that the numbers are way off. The "fore/aft distance traveled" and "Int. yaw position" values given by the platform are quite wrong.

For a displacement of 0.67m "fore/aft distance traveled" is 11513. And for a turn of 180 degrees the "int yaw position" is given as 80.

What are the units of these two values? I have found an old document for RMP 50 and 100 (Segway Robotic Mobility Platform (RMP) Interface Guide v2.0). This documents mentions "counts" as units, but does not give the conversion numbers for RMP 50XL. Is there such a document for 50XL?

I am surprised that the odometry is that much wrong. Am I interpreting those two fields wrong? What do you recommend to fix the values?

Thank you

Akin

User avatar
phussey
Posts: 79
Joined: Fri Apr 20, 2012 8:12 am
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by phussey » Tue Aug 14, 2012 11:30 am

What you are seeing is the fixed point unitless representation of the feedback data. You need to convert these values using scale factors to engineering units. I am not 100% sure how the demo represents the data for the old architecture systems but the scaling for the raw data coming from the platform has been verified.

It gives the fixed to floating point conversion needed to get the value into engineering units. This documentation should have been included with the user material.



Data Conversion Reference

Conversion factors for data items contained in monitoring messages. Data is refreshed at 100 Hz by the CU processors.


Variable conversion
Pitch1 7.8 counts/ deg
Pitch Rate1 7.8 counts/ deg/sec
Roll Angle1 7.8 counts/ deg
Roll Rate1 7.8 counts/ deg/sec
Left Wheel Speed2 332 counts/ m/sec
Right Wheel Speed2 332 counts/ m/sec
Yaw Rate1 7.8 counts/ deg/sec
Servo Frame counter 0.01 sec/ frame
Integrated Left Wheel Position2 33216 counts/ m
Integrated Right Wheel Position2 33216 counts/ m
Integrated Fore/aft position2 33216 counts/ m
Integrated Turn position2 17929 counts/ rad
Powerbase Battery Voltage 4 counts/Volt
User Interface Battery Voltage (equation) (VDC= 0.0154 * counts + 0.166)
Left Motor Current 78.65 counts/A0pk
Right Motor Current 78.65 counts/A0pk
Minimum Motor Drive Current limit 78.65 counts/A0pk
Minimum Battery State of Charge 2.55 cnts/ percent (255 counts full range)
Raw inertial yaw rate 64 counts/ (rad/s)
1 These estimates come from a pitch state estimator that synthesizes low frequency and high frequency sensors to arrive at estimates of angles and angular rates. Rough terrain and other high acceleration maneuvers will reduce the accuracy of these numbers. Some platforms do not have a BSA and therefor do not have this data available (RMP50XL, RMP50)
2 These estimates are based on the nominal rolling diameter of the wheel. Deviations as large as 10% can occur with changes in tire pressure and payload.
PATRICK HUSSEY
Principal Engineer

STANLEY INNOVATION, INC
www.stanleyinnovation.com

Akin
Posts: 24
Joined: Mon Aug 13, 2012 12:21 pm
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by Akin » Tue Aug 14, 2012 1:46 pm

Thank you Patrick,

The conversion chart is what I was looking for. There are big differences in numbers from RMP 50 conversion chart that I was using. Now I wonder if I even parse the status messages coming from the serial port in a correct way.

I don't have the documentation that you have mentioned. The platform came with a usb drive containing demo programs and a user manual which does not contain anything about status messages, value addresses or conversion units. I will contact sales to get the missing document. Is there an official name for it? It would help me to ask the document by name.

Thanks again,

Akin

Akin
Posts: 24
Joined: Mon Aug 13, 2012 12:21 pm
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by Akin » Wed Aug 15, 2012 10:35 pm

After verifying all the headers, values and conversion units with the correct document I still have "integrated for/aft position" reporting x0.5 of the real value and "integrated yaw position" reporting x0.52 of the real value*.

I know that the odometry should be calibrated, but I'm surprised that it is x2 wrong. Or is there a logic behind this that these values should be multiplied by 2?

Akin

* I'm looking at the count number reported by the platform and divide it by the numbers count/m (or count/rad) values in the chart.

User avatar
phussey
Posts: 79
Joined: Fri Apr 20, 2012 8:12 am
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by phussey » Fri Aug 17, 2012 5:26 pm

Hi Akin,

Could you please send me some raw data ( just the raw packets) from the RMP using either CAN or USB. Then I can send you an example for conversion. I will take a look at the demo program on Monday and see if I can answer the question, but raw data will be the fastest path.

Thanks,
Patrick
PATRICK HUSSEY
Principal Engineer

STANLEY INNOVATION, INC
www.stanleyinnovation.com

Akin
Posts: 24
Joined: Mon Aug 13, 2012 12:21 pm
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by Akin » Fri Aug 17, 2012 9:42 pm

Hi Patrick,

I logged the raw usb packets (18byte) with robot moving 2meters, stop, and turning 180 degrees. The !!!packet ones are the integrated forward and yaw positions with ID 0x0404. I hope that was what you were asking.

Thanks

Akin

packet: 0xF0 0x55 0xAA 0x0E 0x80 0x40 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x74 0x74 0xCF
!!!packet: 0xF0 0x55 0xAA 0x73 0x80 0x80 0x1F 0xFD 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x76
packet: 0xF0 0x55 0xAA 0xD8 0x80 0xC0 0x80 0x00 0x08 0x00 0x01 0x00 0x00 0x01 0x8A 0x01 0x32 0xAD
packet: 0xF0 0x55 0xAA 0x3D 0x80 0x00 0x1F 0xFD 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x01 0x2B 0xC9
packet: 0xF0 0x55 0xAA 0xA2 0xD0 0x00 0x80 0x00 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x4F
[INFO] [WallTime: 1345228698.796039] Using max_linear_vel: 0.700000 and max_angular_vel: 0.200000
packet: 0xF0 0x55 0xAA 0x07 0x80 0x60 0x1F 0xFD 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03
packet: 0xF0 0x55 0xAA 0x6C 0x80 0xA0 0x80 0x00 0x08 0xFF 0xE7 0x00 0x00 0x00 0x80 0x00 0x00 0x91
packet: 0xF0 0x55 0xAA 0xD1 0x80 0xE0 0x1F 0xFD 0x08 0x00 0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0xBD
packet: 0xF0 0x55 0xAA 0x36 0x80 0x20 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xB0
packet: 0xF0 0x55 0xAA 0x9B 0x80 0x40 0x1F 0xFD 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x74 0xD9 0x40
!!!packet: 0xF0 0x55 0xAA 0x00 0x80 0x80 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x86
packet: 0xF0 0x55 0xAA 0x65 0x80 0xC0 0x1F 0xFD 0x08 0x00 0x01 0x00 0x00 0x01 0x8A 0x01 0x32 0x84
packet: 0xF0 0x55 0xAA 0xCA 0x80 0x00 0x80 0x00 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x01 0xF5 0x0E
packet: 0xF0 0x55 0xAA 0x2F 0xD0 0x00 0x1F 0xFD 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x26
packet: 0xF0 0x55 0xAA 0x94 0x80 0x60 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x12
packet: 0xF0 0x55 0xAA 0xF9 0x80 0xA0 0x1F 0xFD 0x08 0xFF 0xED 0x00 0x00 0x00 0x80 0x00 0x00 0x61
packet: 0xF0 0x55 0xAA 0x5E 0x80 0xE0 0x80 0x00 0x08 0x00 0x13 0x00 0x00 0x00 0xF9 0x00 0x00 0xBA
packet: 0xF0 0x55 0xAA 0xC3 0x80 0x20 0x1F 0xFD 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x86
packet: 0xF0 0x55 0xAA 0x28 0x80 0x40 0x80 0x00 0x08 0x00 0x0B 0x00 0x09 0x00 0x00 0x75 0x3E 0xD6
!!!packet: 0xF0 0x55 0xAA 0x8D 0x80 0x80 0x1F 0xFD 0x08 0x00 0xF0 0x00 0x00 0xFF 0xDA 0xFF 0xFF 0x90
packet: 0xF0 0x55 0xAA 0xF2 0x80 0xC0 0x80 0x00 0x08 0x00 0x01 0x00 0x00 0x01 0x8A 0x01 0x32 0x93
packet: 0xF0 0x55 0xAA 0x57 0x80 0x00 0x1F 0xFD 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x02 0xBF 0x1A
packet: 0xF0 0x55 0xAA 0xBC 0xD0 0x00 0x80 0x00 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x35
packet: 0xF0 0x55 0xAA 0x21 0x80 0x60 0x1F 0xFD 0x08 0x05 0x26 0x00 0x00 0x04 0xF5 0x00 0x00 0xC3
packet: 0xF0 0x55 0xAA 0x86 0x80 0xA0 0x80 0x00 0x08 0x00 0xE9 0x01 0x18 0x00 0x80 0x00 0x00 0x5C
packet: 0xF0 0x55 0xAA 0xEB 0x80 0xE0 0x1F 0xFD 0x08 0x00 0x60 0x00 0x00 0x00 0xF9 0x00 0x00 0x43
packet: 0xF0 0x55 0xAA 0x50 0x80 0x20 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x96
packet: 0xF0 0x55 0xAA 0xB5 0x80 0x40 0x1F 0xFD 0x08 0x00 0x2F 0x00 0x2C 0x00 0x00 0x75 0xA3 0xFF
!!!packet: 0xF0 0x55 0xAA 0x1A 0x80 0x80 0x80 0x00 0x08 0x0D 0x80 0x00 0x00 0xFF 0xDC 0xFF 0xFF 0x02
packet: 0xF0 0x55 0xAA 0x7F 0x80 0xC0 0x1F 0xFD 0x08 0x00 0x01 0x00 0x00 0x01 0x8B 0x01 0x32 0x69
packet: 0xF0 0x55 0xAA 0xE4 0x80 0x00 0x80 0x00 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x03 0x89 0x5E
packet: 0xF0 0x55 0xAA 0x49 0xD0 0x00 0x1F 0xFD 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x0C
packet: 0xF0 0x55 0xAA 0xAE 0x80 0x60 0x80 0x00 0x08 0x15 0xD6 0x00 0x00 0x15 0xB5 0x00 0x00 0x41
packet: 0xF0 0x55 0xAA 0x13 0x80 0xA0 0x1F 0xFD 0x08 0x00 0x72 0x00 0x81 0x00 0x80 0x00 0x00 0x42
packet: 0xF0 0x55 0xAA 0x78 0x80 0xE0 0x80 0x00 0x08 0x00 0x64 0x00 0x00 0x00 0xF9 0x00 0x00 0x4F
packet: 0xF0 0x55 0xAA 0xDD 0x80 0x20 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x57
packet: 0xF0 0x55 0xAA 0x42 0x80 0x40 0x80 0x00 0x08 0x00 0x2C 0x00 0x2B 0x00 0x00 0x76 0x08 0xAE
!!!packet: 0xF0 0x55 0xAA 0xA7 0x80 0x80 0x00 0x32 0x08 0x1F 0xB6 0x00 0x00 0xFF 0xEE 0xFF 0xFF 0x68
packet: 0xF0 0x55 0xAA 0x0C 0x80 0xC0 0x80 0x00 0x08 0x00 0x01 0x00 0x00 0x01 0x8F 0x01 0x32 0x75
packet: 0xF0 0x55 0xAA 0x71 0x80 0x00 0x00 0x32 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x04 0x53 0x55
packet: 0xF0 0x55 0xAA 0xD6 0xD0 0x00 0x80 0x00 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x1B
packet: 0xF0 0x55 0xAA 0x3B 0x80 0x60 0x00 0x32 0x08 0x28 0xE0 0x00 0x00 0x28 0xDF 0x00 0x00 0xA8
packet: 0xF0 0x55 0xAA 0xA0 0x80 0xA0 0x80 0x00 0x08 0x01 0x01 0x00 0xFD 0x00 0x80 0x00 0x00 0x45
packet: 0xF0 0x55 0xAA 0x05 0x80 0xE0 0x00 0x32 0x08 0x00 0x8C 0x00 0x00 0x00 0xF9 0x00 0x00 0xE8
packet: 0xF0 0x55 0xAA 0x6A 0x80 0x20 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7C
packet: 0xF0 0x55 0xAA 0xCF 0x80 0x40 0x00 0x32 0x08 0x00 0x41 0x00 0x41 0x00 0x00 0x76 0x6D 0xDE
!!!packet: 0xF0 0x55 0xAA 0x34 0x80 0x80 0x80 0x00 0x08 0x36 0x81 0x00 0x00 0x00 0x0B 0x00 0x00 0x8F
packet: 0xF0 0x55 0xAA 0x99 0x80 0xC0 0x00 0x32 0x08 0x00 0x01 0x00 0x00 0x01 0x8B 0x01 0x32 0x3A
packet: 0xF0 0x55 0xAA 0xFE 0x80 0x00 0x80 0x00 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x05 0x1D 0xAE
packet: 0xF0 0x55 0xAA 0x63 0xD0 0x00 0x00 0x32 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0xDC
packet: 0xF0 0x55 0xAA 0xC8 0x80 0x60 0x80 0x00 0x08 0x43 0x4F 0x00 0x00 0x43 0x53 0x00 0x00 0xB4
packet: 0xF0 0x55 0xAA 0x2D 0x80 0xA0 0x00 0x32 0x08 0x00 0x99 0x00 0xA9 0x00 0x80 0x00 0x00 0xC3
packet: 0xF0 0x55 0xAA 0x92 0x80 0xE0 0x80 0x00 0x08 0x00 0x96 0x00 0x00 0x00 0xF9 0x00 0x00 0x03
packet: 0xF0 0x55 0xAA 0xF7 0x80 0x20 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x3D
packet: 0xF0 0x55 0xAA 0x5C 0x80 0x40 0x80 0x00 0x08 0x00 0x43 0x00 0x41 0x00 0x00 0x76 0xD2 0x9C
!!!packet: 0xF0 0x55 0xAA 0xC1 0x80 0x80 0x00 0x32 0x08 0x52 0x58 0x00 0x00 0x00 0x06 0x00 0x00 0x62
packet: 0xF0 0x55 0xAA 0x26 0x80 0xC0 0x80 0x00 0x08 0x00 0x01 0x00 0x00 0x01 0x8A 0x01 0x32 0x60
packet: 0xF0 0x55 0xAA 0x8B 0x80 0x00 0x00 0x32 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x05 0xE7 0xA5
packet: 0xF0 0x55 0xAA 0xF0 0xD0 0x00 0x80 0x00 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x01
packet: 0xF0 0x55 0xAA 0x55 0x80 0x60 0x00 0x32 0x08 0x5F 0xA9 0x00 0x00 0x5F 0x92 0x00 0x00 0xA4
packet: 0xF0 0x55 0xAA 0xBA 0x80 0xA0 0x80 0x00 0x08 0x00 0x5E 0x00 0x8B 0x00 0x80 0x00 0x00 0x41
packet: 0xF0 0x55 0xAA 0x1F 0x80 0xE0 0x00 0x32 0x08 0x00 0x96 0x00 0x00 0x00 0xF9 0x00 0x00 0xC4
packet: 0xF0 0x55 0xAA 0x84 0x80 0x20 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x62
packet: 0xF0 0x55 0xAA 0xE9 0x80 0x40 0x00 0x32 0x08 0x00 0x43 0x00 0x47 0x00 0x00 0x77 0x37 0xF1
!!!packet: 0xF0 0x55 0xAA 0x4E 0x80 0x80 0x80 0x00 0x08 0x6F 0x1F 0x00 0x00 0xFF 0xED 0xFF 0xFF 0xBB
packet: 0xF0 0x55 0xAA 0xB3 0x80 0xC0 0x00 0x32 0x08 0x00 0x01 0x00 0x00 0x01 0x89 0x01 0x32 0x22
packet: 0xF0 0x55 0xAA 0x18 0x80 0x00 0x80 0x00 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x06 0xB1 0xFF
packet: 0xF0 0x55 0xAA 0x7D 0xD0 0x00 0x00 0x32 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0xC2
packet: 0xF0 0x55 0xAA 0xE2 0x80 0x60 0x80 0x00 0x08 0x7C 0x57 0x00 0x00 0x7C 0x4F 0x00 0x00 0x24
packet: 0xF0 0x55 0xAA 0x47 0x80 0xA0 0x00 0x32 0x08 0xFF 0x99 0xFF 0xBF 0x00 0x80 0x00 0x00 0x93
packet: 0xF0 0x55 0xAA 0xAC 0x80 0xE0 0x80 0x00 0x08 0x00 0x4F 0x00 0x00 0x00 0xF9 0x00 0x00 0x30
packet: 0xF0 0x55 0xAA 0x11 0x80 0x20 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x24
packet: 0xF0 0x55 0xAA 0x76 0x80 0x40 0x80 0x00 0x08 0x00 0x26 0x00 0x20 0x00 0x00 0x77 0x9C 0xF5
!!!packet: 0xF0 0x55 0xAA 0xDB 0x80 0x80 0x00 0x32 0x08 0x85 0x3F 0x00 0x00 0xFF 0xF8 0xFF 0xFF 0x3B
packet: 0xF0 0x55 0xAA 0x40 0x80 0xC0 0x80 0x00 0x08 0x00 0x01 0x00 0x00 0x01 0x87 0x01 0x32 0x49
packet: 0xF0 0x55 0xAA 0xA5 0x80 0x00 0x00 0x32 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x07 0x7B 0xF5
packet: 0xF0 0x55 0xAA 0x0A 0xD0 0x00 0x80 0x00 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0xE7
packet: 0xF0 0x55 0xAA 0x6F 0x80 0x60 0x00 0x32 0x08 0x86 0x3B 0x00 0x00 0x86 0x52 0x00 0x00 0xEA
packet: 0xF0 0x55 0xAA 0xD4 0x80 0xA0 0x80 0x00 0x08 0xFE 0x64 0x01 0xA9 0x00 0x80 0x00 0x00 0x03
packet: 0xF0 0x55 0xAA 0x39 0x80 0xE0 0x00 0x32 0x08 0x00 0x00 0x00 0x49 0x00 0xF9 0x00 0x00 0xF7
packet: 0xF0 0x55 0xAA 0x9E 0x80 0x20 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x48
packet: 0xF0 0x55 0xAA 0x03 0x80 0x40 0x00 0x32 0x08 0xFF 0xDB 0x00 0x27 0x00 0x00 0x78 0x01 0x95
!!!packet: 0xF0 0x55 0xAA 0x68 0x80 0x80 0x80 0x00 0x08 0x85 0xDE 0x00 0x00 0x0C 0x69 0x00 0x00 0x44
packet: 0xF0 0x55 0xAA 0xCD 0x80 0xC0 0x00 0x32 0x08 0x00 0x01 0x00 0x00 0x01 0x87 0x01 0x32 0x0A
packet: 0xF0 0x55 0xAA 0x32 0x80 0x00 0x80 0x00 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x00 0x45 0x58
packet: 0xF0 0x55 0xAA 0x97 0xD0 0x00 0x00 0x32 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0xA8
packet: 0xF0 0x55 0xAA 0xFC 0x80 0x60 0x80 0x00 0x08 0x79 0x53 0x00 0x00 0x94 0x57 0x00 0x00 0xF0
packet: 0xF0 0x55 0xAA 0x61 0x80 0xA0 0x00 0x32 0x08 0xFE 0xE8 0x01 0x17 0x00 0x80 0x00 0x00 0xD2
packet: 0xF0 0x55 0xAA 0xC6 0x80 0xE0 0x80 0x00 0x08 0x00 0x00 0x00 0x4F 0x00 0xF9 0x00 0x00 0x16
packet: 0xF0 0x55 0xAA 0x2B 0x80 0x20 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x0A
packet: 0xF0 0x55 0xAA 0x90 0x80 0x40 0x80 0x00 0x08 0xFF 0xDC 0x00 0x23 0x00 0x00 0x78 0x66 0x57
!!!packet: 0xF0 0x55 0xAA 0xF5 0x80 0x80 0x00 0x32 0x08 0x86 0x4B 0x00 0x00 0x2B 0xEC 0x00 0x00 0xF4
packet: 0xF0 0x55 0xAA 0x5A 0x80 0xC0 0x80 0x00 0x08 0x00 0x01 0x00 0x00 0x01 0x8D 0x01 0x32 0x29
packet: 0xF0 0x55 0xAA 0xBF 0x80 0x00 0x00 0x32 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x01 0x0F 0x4E
packet: 0xF0 0x55 0xAA 0x24 0xD0 0x00 0x80 0x00 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0xCD
packet: 0xF0 0x55 0xAA 0x89 0x80 0x60 0x00 0x32 0x08 0x69 0x3B 0x00 0x00 0xA5 0x33 0x00 0x00 0xED
packet: 0xF0 0x55 0xAA 0xEE 0x80 0xA0 0x80 0x00 0x08 0xFE 0xE4 0x00 0xFE 0x00 0x80 0x00 0x00 0x14
packet: 0xF0 0x55 0xAA 0x53 0x80 0xE0 0x00 0x32 0x08 0x00 0x00 0x00 0x61 0x00 0xF9 0x00 0x00 0xC5
packet: 0xF0 0x55 0xAA 0xB8 0x80 0x20 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x2E
packet: 0xF0 0x55 0xAA 0x1D 0x80 0x40 0x00 0x32 0x08 0xFF 0xD6 0x00 0x2E 0x00 0x00 0x78 0xCB 0xAE
!!!packet: 0xF0 0x55 0xAA 0x82 0x80 0x80 0x80 0x00 0x08 0x86 0xAE 0x00 0x00 0x51 0x72 0x00 0x00 0x0B
packet: 0xF0 0x55 0xAA 0xE7 0x80 0xC0 0x00 0x32 0x08 0x00 0x01 0x00 0x00 0x01 0x91 0x01 0x32 0xE5
packet: 0xF0 0x55 0xAA 0x4C 0x80 0x00 0x80 0x00 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x01 0xD9 0xA8
packet: 0xF0 0x55 0xAA 0xB1 0xD0 0x00 0x00 0x32 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x8E
packet: 0xF0 0x55 0xAA 0x16 0x80 0x60 0x80 0x00 0x08 0x56 0x43 0x00 0x00 0xB8 0xC4 0x00 0x00 0x79
packet: 0xF0 0x55 0xAA 0x7B 0x80 0xA0 0x00 0x32 0x08 0xFF 0x02 0x00 0xE5 0x00 0x80 0x00 0x00 0xD0
packet: 0xF0 0x55 0xAA 0xE0 0x80 0xE0 0x80 0x00 0x08 0x00 0x00 0x00 0x55 0x00 0xF9 0x00 0x00 0xF5
packet: 0xF0 0x55 0xAA 0x45 0x80 0x20 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xEF
packet: 0xF0 0x55 0xAA 0xAA 0x80 0x40 0x80 0x00 0x08 0xFF 0xEE 0x00 0x12 0x00 0x00 0x79 0x30 0x71
!!!packet: 0xF0 0x55 0xAA 0x0F 0x80 0x80 0x00 0x32 0x08 0x86 0xA8 0x00 0x00 0x72 0x72 0x00 0x00 0xB1
packet: 0xF0 0x55 0xAA 0x74 0x80 0xC0 0x80 0x00 0x08 0x00 0x01 0x00 0x00 0x01 0x8D 0x01 0x32 0x0F
packet: 0xF0 0x55 0xAA 0xD9 0x80 0x00 0x00 0x32 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x02 0xA3 0x9E
packet: 0xF0 0x55 0xAA 0x3E 0xD0 0x00 0x80 0x00 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0xB3
packet: 0xF0 0x55 0xAA 0xA3 0x80 0x60 0x00 0x32 0x08 0x4E 0x28 0x00 0x00 0xC0 0x92 0x00 0x00 0x87
packet: 0xF0 0x55 0xAA 0x08 0x80 0xA0 0x80 0x00 0x08 0xFF 0xB9 0x00 0x18 0x00 0x80 0x00 0x00 0x0C
packet: 0xF0 0x55 0xAA 0x6D 0x80 0xE0 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0x0D
packet: 0xF0 0x55 0xAA 0xD2 0x80 0x20 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x14
packet: 0xF0 0x55 0xAA 0x37 0x80 0x40 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x79 0x95 0xCE
!!!packet: 0xF0 0x55 0xAA 0x9C 0x80 0x80 0x80 0x00 0x08 0x86 0xA4 0x00 0x00 0x72 0x6A 0x00 0x00 0xE1
packet: 0xF0 0x55 0xAA 0x01 0x80 0xC0 0x00 0x32 0x08 0x00 0x01 0x00 0x00 0x01 0x8A 0x01 0x32 0xD3
packet: 0xF0 0x55 0xAA 0x66 0x80 0x00 0x80 0x00 0x08 0x0B 0xEA 0x06 0x0E 0x0B 0x22 0x03 0x6D 0xF8
packet: 0xF0 0x55 0xAA 0xCB 0xD0 0x00 0x00 0x32 0x08 0x00 0x05 0x00 0x80 0x00 0x00 0x04 0x3B 0x74
packet: 0xF0 0x55 0xAA 0x30 0x80 0x60 0x80 0x00 0x08 0x4E 0x28 0x00 0x00 0xC0 0x92 0x00 0x00 0xAC
packet: 0xF0 0x55 0xAA 0x95 0x80 0xA0 0x00 0x32 0x08 0xFF 0xBF 0x00 0x18 0x00 0x80 0x00 0x00 0xC6
packet: 0xF0 0x55 0xAA 0xFA 0x80 0xE0 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0x31
packet: 0xF0 0x55 0xAA 0x5F 0x80 0x20 0x00 0x32 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xD5
packet: 0xF0 0x55 0xAA 0xC4 0x80 0x40 0x80 0x00 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x79 0xFA 0x8D

User avatar
phussey
Posts: 79
Joined: Fri Apr 20, 2012 8:12 am
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by phussey » Mon Aug 20, 2012 3:02 pm

Hi Akin,

To start I verified the odometry is infact correct for the RMP50XL we have here from FCC testing, with the rmi_demo_usb.exe application and via CAN using my own raw data collection. So I think it is a parsing issue.

I am a little confused by the raw packets you sent. To start the CAN ID in the packet does not make sense

!!!packet: 0xF0 0x55 0xAA 0x73 0x80 0x80 0x1F 0xFD 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x76

The beginning of the packet seems fine (0xF0,0x55,0xAA). But the highlighted section should be 0x04 0x04, can you double check the data.

There have also been some known issues with the USB driver on the deuce board system architecture with newer versions of windows, linux and the FTDI drivers. We always recommend that customers use CAN to interface with the deuce board systems where possible. If that is an option I would switch to CAN.
PATRICK HUSSEY
Principal Engineer

STANLEY INNOVATION, INC
www.stanleyinnovation.com

Akin
Posts: 24
Joined: Mon Aug 13, 2012 12:21 pm
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by Akin » Wed Aug 29, 2012 2:37 pm

Hi Patrick,

Thank you for your reply. I am not using USB-FTDI drivers for communication. I use serial communication. I dumped directly what I receive from the serial port with printf(%x).

For the CAN ID I dumped directly the message coming from the serial port without processing it further for the ID. The manual indicates to use this piece of code to obtain the correct ID:

packet.id = ((usb_packet[4] << 3) | ((usb_packet[5] >> 5) & 7)) & 0x0fff;
for (int i = 0; i < 8; i++) {
packet.data = usb_packet[i + 9];
}

I dumped them without using that code:

for(int i=0; i<18; i++)
printf("0x%02X ", usb_packet);

So 0x80 0x80 is actually 0x0404.

Thanks again.

Akin

User avatar
phussey
Posts: 79
Joined: Fri Apr 20, 2012 8:12 am
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by phussey » Thu Sep 13, 2012 10:09 pm

Hi Akin,

I have re-written the demo using KVASER USB-CAN hardware, I found that the USB driver does not work with most recent versions of the FTDI driver and newer versions of windows.

To address your questions about accuracy of the data reported by the demo; there were some issues with the constants used in the PC software interpreting the data. It assumes certain physical constants such as wheel diameter and track width to derive fixed point conversion constants. The new version takes various platforms into consideration and corrects feedback into engineering units accordingly.

The caveat is that you need to communicate via KVASER USB-CAN hardware with the new version of the demo (ie Windows 7 does not support the FTDI USB driver used on the deuce). I also added some functions to show how the yaw rate target is derived in the platform firmware. I would be happy to send you the new version if you would find it valuable.
PATRICK HUSSEY
Principal Engineer

STANLEY INNOVATION, INC
www.stanleyinnovation.com

Akin
Posts: 24
Joined: Mon Aug 13, 2012 12:21 pm
Contact:

Re: Segway RMP 50XL Odometry value problem

Post by Akin » Fri Sep 14, 2012 1:56 pm

Hi Patrick,

I don't have the KVASER USB-CAN, but I can check out the demo source code and extract the correct information for my code.

Thanks

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests