Interfacing robot hardware with ROS
In this section, we will see how we can interface a robot's embedded controller with ROS. The embedded controller can send speed commands to the motors and obtain speed commands from robot controller nodes. The ROS robot controller nodes receive linear and angular Twist
command from the ROS navigation stack. The Twist
command will be subscribed to by the robot controller node and converted into equivalent motor velocity, that is Vl and Vr.
The robot controller nodes also receive encoder ticks from the embedded controller and calculate the distance traveled by each wheel. Let's take a look at the robot controller nodes.
The Chefbot robot controller nodes are placed in chefbot_bringup/scripts
. You can check out each node; they're all written in Python.
launchpad_node.py
: This is the ROS driver node for handling Launchpad boards. This node will receive serial data from Launchpad and also send data to the board. After running this node, we will...