Rosanswers logo

Hi all,

I have a robotic research platform with caster wheels on the front and drive wheels at the back. At the moment it's driving with caster wheels at the front but I feel the dynamics could be improved by driving with the caster wheels at the back.


I have been thinking of different ways to accomplish this:

  1. Put a negative infront of motor control commands. This approach is on the lowest level. I am controlling the motors via an Arduino and putting a negative infront of motor control signals could accomplish the behaviour I desire. However the problem is that the frames such as base_link won't know the robot is moving in the other direction so control commands will all be reversed. Thus navigation will stop working.
  2. Change orientation of base_link frame. I tried doing this already but it didn't work, the robot simply drove in the casters-forward direction. My thought was that by changing the direction of base_link all commands would 'trickle down'. So the robot would take forwards at the casters-back direction and the footprint and move_base functionality should remain.

As I mentioned, I haven't has success in these approaches so would love to hear if anyone has ideas on how to make the robot consider the typically 'backwards' direction as forwards.


Originally posted by mcarr on ROS Answers with karma: 145 on 2017-04-28

Post score: 0


1 Answer 1


Rosanswers logo

If you reverse the motor commands, the motors will drive backwards but the ODOM will also report backward and ROS will be very confused.

You'll need to accommodate the motor commands and ODOM reporting, as well as adjust your transforms and robot shape parameters to account for the new 'shape' of the robot.

Your laser scanner will now be pointed backward (if there is one) so your laser_baselink transform needs to be updated and any other sensors will need new transforms as well. Left became right and forward is now backwards, etc.

I couldn't open the link to see the robot so making some assumptions about the sensors included.

Originally posted by billy with karma: 1850 on 2017-04-28

This answer was ACCEPTED on the original site

Post score: 0

Original comments

Comment by mcarr on 2017-05-02:
Great, thanks. I agree that it will probably require quite a few changes (I was hoping it would be one simple transformation). Need to change:

  • Motor commands in my Arduino motor driving code
  • Rotate base_link frame 180 degrees w.r.t. odom frame
  • Rotate laser frame 180 deg

Comment by billy on 2017-05-05:
Assuming your robot shape currently is setup so the center of rotation is at 0,0, you also need to update the shape parameters. The casters used to stick out the front, now they stick out the back. The change could cause unneeded collisions in tight spaces.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.