Roboclaw ROS2 Setup (Norlab Driver – Verified Working on /ws_big_robot/ws_big_robot)
We use Université Laval’s Northern Robotics Lab (Norlab) Roboclaw ROS2 driver.
The ROS package uses the Python driver by Team Chat Robotique (tcr-roboclaw).
This guide reflects what we confirmed working today in /ws_big_robot/ws_big_robot.
1) Install Python dependency into the same Python ROS uses
ROS2 console scripts run with the Python that launches the node (often system Python in containers). Install tcr-roboclaw in that same environment.
Verify:
2) Clone repositories into /ws_big_robot/ws_big_robot/src
3) Install required ROS system dependencies
grid_map_msgsfixes thefalcon_msgsbuild failure.
4) Fix message definitions in Norlab Custom Interfaces
The message definitions must match what roboclaw_ros publishes.
EncoderState.msg
Replace the file contents with:
MotorState.msg
Replace the file contents with:
5) Configure the Roboclaw serial port
First, find the real device name:
Then edit the config:
Set:
⚠️ Do not use /dev/ACM* — Python won’t expand wildcards.
6) Build only what you need (Roboclaw packages)
From the workspace root (NOT inside src/):
Source the workspace:
7) Serial permissions (recommended instead of chmod 777)
Then log out/in (or reboot).
(If you are always running as root in the container, this may not matter.)
8) Launch the node
9) Verify topics (optional)
In another terminal:
To use teleop keyboard (only key I and O works right now):
In terminal:
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/twist_mux/cmd_vel
Reference: see google doc for robotic mouse project: Teleop_keyboard_operation