The Firmware and ROS package for a robot with mecanum wheels that can be controlled by sending it ROS Twist messages.
The robot chasis was build using this kit from robu.in. The robot is controlled using a ESP32-WROOM (38-Pin).
The firmware is written in C++ and uses the Arduino framework and should be flashed to the ESP32-WROOM using the Arduino IDE.
This repo is also a ROS package that contains a ROS node that can be used to bring up the robot. The node uses the rosserial package to communicate with the ESP32-WROOM. The node can be started using the following command:
roslaunch mecanumbot bringup.launch
The robot can be controlled by publishing to the /cmd_vel
topic. The message type is geometry_msgs/Twist
.
To control the robot using a joystick / gamepad, the joystick
parameter can be set to true
while launching the node. This then uses the joy
package to publish the /joy
topic and convert the joystick messages to Twist
messages.
- Publish odometry by using reverse kinematics
- The firmware is based on the ros_mecanum_robot by Reinbert.
- The kinematics have been adapted from this blog post by David Kohanbash.