Configuration
Before running the driver, check and edit the configuration files in the config/ directory.
- rbq_params.yaml:
- Set the serial port (e.g., /dev/ttyACM0 ) and baud rate.
- Set your robot's physical properties (wheelbase, wheel diameter, gear ratio).
- Configure odometry settings (topics, frames).
- Set the publish rate (e.g., 5.0 [Hz]).
- query.yaml :
- Define which telemetry data you want to receive from the controller.
- The RoboteQ driver is designed to be dynamic and users can publish the controller queries as
per their requirements. The publishing queries is not limited to any value. By default total 9
queries are published by launching this driver. Users can change or add queries in configuration
file.
Launching
- Serial port permissions
# Check permissions ls -l /dev/ttyACM0 # Grant read/write permissions if necessary sudo chmod 666 /dev/ttyACM0
2. Launch the node
cd ~/ros2_ws source install/setup.bash ros2 launch rbq_driver_node driver.launch.xml
You should see logs indicating successful initialization and configuration query.
ROS API reference
| Topic Name | Message Type | Description |
| /read | std_msgs/msg/String | Raw serial string received from the controller |
| /odom | nav_msgs/msg/Odometry | Calculated odometry with covariance matrices |
| /tf | tf2_msgs/msg/TFMessage | Transform from odom to base_link |
| /<query_name> | rbq_driver_msgs/msg/ChannelValues | Telemetry data defined in query.yaml |
| /<flag_name> | std_msgs/msg/String | Flag data(?FF,?FM,?FS) converted to strings |
| /cmd_vel | geometry_msgs/msg/Twist | Velocity command of the robot |
| /config_service | ConfigSrv | Sends configuration commands(^). Saves to EEPROM. |
| /command_service | CommandSrv | Sends runtime commands(!). 0,1 or 2 arguments |
| /maintenance_service | MaintenanceSrv | Sends maintenance commands(%), Handles safety keys |
| /query_service | QuerySrv | Sends(?,~) and returns the response synchronously |
Examples