ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Hi,
I see two possibilities:
You could divide your possible velocities in two parts, one part for translation, one part for rotation. For example: set max translation velocity 1/2 of total possible veloctiy, the rotation gets the rest of the possible velocity (or choose another ratio). The sum of both velocities for translation and rotation can't be faster than the real wheel maximal velocity.This lowers your maximal speeds, but you can be sure that every possible velocity command in these limits can be carried out.
Or you could set both the max. rotation and translation velocities to the physical maximum and observe the resulting wheel velocities after you sum these values. If you max out the possible velocity of a wheel you scale down the velocity of the other wheel so that you keep the ratio of the velocities of both wheels. (Example: your scaling sets these velocities: left wheel: 100 rpm, right wheel 200 rpm, but your physical max. velocity is 150 rpm, so after scaling: left wheel: 75 rpm, right wheel 150 rpm ) You keep the max. possible velocities if you only translate or rotate, and you keep the shape of the trajectory if a wheel velocity is maxed out. (But the velocity while driving curves can be lower than the velocity that the planner has calulated).
2 | No.2 Revision |
Hi,
I see two possibilities:
You could divide your possible velocities in two parts, one part for translation, one part for rotation. For example: set max translation velocity 1/2 of total possible veloctiy, the rotation gets the rest of the possible velocity (or choose another ratio). The sum of both velocities for translation and rotation can't be faster than the real wheel maximal velocity.This lowers your maximal speeds, but you can be sure that every possible velocity command in these limits can be carried out.
Or you could set both the max. rotation and translation velocities to the physical maximum and observe the resulting wheel velocities after you sum these values.
If you max out the possible velocity of a wheel you scale down the velocity of the other wheel so that you keep the ratio of the velocities of both wheels. (Example: your scaling input sets these velocities: left wheel: 100 rpm, right wheel 200 rpm, but your physical max. velocity is 150 rpm, so after scaling: left wheel: 75 rpm, right wheel 150 rpm )
You keep the max. possible velocities if you only translate or rotate, and you keep the shape of the trajectory if a wheel velocity is maxed out. (But the velocity while driving curves can be lower than the velocity that the planner has calulated).
3 | No.3 Revision |
Hi,
I see two possibilities:
You could divide your possible velocities in two parts, one part for translation, one part for rotation. For example: set max translation velocity 1/2 of total possible veloctiy, the rotation gets the rest of the possible velocity (or choose another ratio). The sum of both velocities for translation and rotation can't be faster than the real wheel maximal velocity.This lowers your maximal speeds, but you can be sure that every possible velocity command in these limits can be carried out.
Or you could set both the max. rotation and translation velocities to the physical maximum and observe the resulting wheel velocities after you sum these values.
If you max out the possible velocity of a wheel you scale down the velocity of the other wheel so that you keep the ratio of the velocities of both wheels. (Example: your input sets these velocities: left wheel: 100 rpm, right wheel 200 rpm, but your physical max. velocity is 150 rpm, so after scaling: left wheel: 75 rpm, right wheel 150 rpm )
You keep the max. possible velocities if you only translate or rotate, and you keep the shape of the trajectory if a wheel velocity is maxed out. (But the velocity while driving curves can be lower than the velocity that the planner has calulated). calculated).