differential drive plugin in real robot
Hello,
I have used the differential drive plugin in the gazebo environment as described here (scroll below in the page) to do some tasks with a 3 wheel robot. The plugin as you can see requests some characteristics of the vehicle and it creates an interface so I can interact with my robot in gazebo. The main feature of this interface is the cmd_vel
topic which is actually what moves the robot. The cmd_vel
is a topic that understands geometry_msgs/Twist
messages, which are simple messages like linear.x
velocity commands in m/s or angular.z
velocity commands in rad/s. With these messages you can move and control your robot easily in the gazebo environment.
I want to create a similar real robot now and implement one similar plugin as this. I use Tiva microcontrollers to control my motors. I know that a way I can do this is by implementing a PID controller through Tiva and the encoders on my motors, so I can create a topic similar to cmd_vel
, but this will require to build from scratch what the cmd_vel
does. This means creating two controllers for the two seperate motors and then build a function that will somehow do what the cmd_vel
does.
To avoid building from scratch a differential drive and to save time I would like to ask if there is a simpler and faster way (ready packages provided by ROS for example) to actually create the cmd_vel
topic for a real robot with Tiva microcontrollers ?
Thank you for answering and for your time in advance,
Chris