Page 1 of 1

Is there a stop command?

Posted: Wed Oct 03, 2012 4:52 am
by luca.lucci
Hello,
I communicate with an RMP 440LE throught CAN bus and I update the motion command as stated in the CCU Interface Document. If I try to set the velocity to 0 the rmp sets at the maximum speed. To stop it I must stop to update command.

To move the rmp I use a simple software in visual basic .net that convert a single precision variable in the IEEE754 format. It there a command to send a stop to the rmp?

Re: Is there a stop command?

Posted: Fri Oct 05, 2012 1:31 pm
by Craig
Hi,

You should be able to set 0 velocity and have the machine decelerate at the deceleration limit until it stops.

You need to check / verify several parameters.

1.) Are you using velocity or acceleration based mapping?
2.) What is your decel accelleration limit set at?

Please use a CAN sniffing program and provide the traffic showing your command messages and the transition to sending 0 velocity. Please make sure the feedback bitmaps are set to return the wheel velocity so we can see what the wheel velocity is doing during the transition. This test should be performed with the wheels off the ground or removed.

/Craig

Re: Is there a stop command?

Posted: Mon Oct 08, 2012 6:26 am
by luca.lucci
Hello Craig,
now I'm using acceleration based mapping and the decel acceleration limit is set at 3.923 mps2. I've attached the traffic on can bus (in figure on the right) after send a motion command (in figure on the left) where I set yaw rate to 0.0 and velocity to 0.1.

I use the follow parameters set by RMP_OCU software:
-fault_status_word1
-fault_status_word2
-fault_status_word3
-fault_status_word4
-mcu_0_fault_status
-mcu_1_fault_status
-mcu_2_fault_status
-mcu_3_fault_status
-frame_count
-operational_state
-dynamic_response
-min_propulsion_batt_soc
-aux_batt_soc

-inertial_z_rate_rps
-vel_limit_mps
-linear_accel_mps2รน
-linear_vel_mps
-differential_wheel_vel_rps
-vel_target_rps
-yaw_rate_target_rps
-frame_decel_limit_mps2
-frame_dtz_decel_limit_mps2

From the log file I can see clearly that when I set yaw rate to 0.0 the yaw_rate_target_rps will set to 1 and return to 0 because I don't update the command. I would attach also this latter one, but I can upload file such as .ods, .pdf or .cvs.

Luca

Re: Is there a stop command?

Posted: Tue Oct 09, 2012 11:39 am
by Craig
Luca,

I am confused by your two posts. In the first post you expressed a concern that the RMP would continue at the maximum speed after you sent 0 velocity. If you are using acceleration based input mapping then the velocity command word is used to send an acceleration not a velocity. If you send 0 then you are requesting 0 acceleration not 0 velocity. A zero acceleration would command the platform to continue at the present speed.

In your second post you have switched to talking about yaw rate. I'm not really sure I understand.

You can post attachments of any content by simply changing putting the contents in a zip file.

/Craig

Re: Is there a stop command?

Posted: Wed Oct 10, 2012 9:03 am
by luca.lucci
Hi Craig,
I'm sorry if I confused you. I try to explain better what I mean. From a standing start, if I send a motion command with value 0, the rmp start to move as I send the same command with 1 (so at the maximum velocity). This happens in any situation, whether to send a velocity command or to send a yaw command. If I set velocity based mapping or acceleration based mapping it's all the same.
This happens even while I move the rmp: if I send a motion command with a small value, e.g. 0.1, everything works fine, but if I send a motion command with 0 (0x3f800000 in IEEE754 rappresentation) the rmp move with the maximum velocity.
In the example attached to the previous post I set the yaw rate to 0 and the velocity to 0.1 from a standing point. As you can see from the file attach to this post the yaw rate target become 1 as the command have been received.

Thank you for the support

Luca

Re: Is there a stop command?

Posted: Wed Oct 10, 2012 11:06 am
by Craig
Luca,

Thank you for taking the time to clarify. I believe I understand much better now.

I think your problem is in the conversion to IEEE 754.

1 in IEEE 754 is 0x3F80000
0 in IEEE 754 is 0x0000000

In the RMP commands are normalized -1 to 1 based on the target you set for the maximum velocity or acceleration(based on the chosen mapping).
As an aside most customers use velocity based mapping because control for a remote operator is more straight forward. Acceleration based mapping was designed to allow the simulation of a brake and gas pedal which is not as intuitive when using a handheld controller.

For example:

Assume you are using the velocity based mapping and have the maximum speed set to 5 m/s have the acceleration rate set at 1 m/s^2
Sending 0x3F80000 would be the same as requesting the machine accellerate to 5 m/s at 1 m/s^2.
Sending 0x3F00000 would be the same as requesting the machine accelerate to 2.5 m/s at 1 m/s^2
Sending 0x0000000 would be the same as requesting the machine decelerate to 0 m/s at the deceleration rate.


/Craig

Re: Is there a stop command?

Posted: Mon Oct 15, 2012 6:42 am
by luca.lucci
Hi Craig,
I found my mistake: when I tried to set 0 I haven't taken in account that the mantissa have an hidden 1 in IEEE 754.

With 0x0000000 the rmp stop correctly

Thank you for the support

Luca