The ROSRider package provides the necessary ROS nodes and drivers to interact with the ROSRider board. It allows you to control motors, read sensor data, and perform other tasks using ROS.
While previous versions of ROSRider utilized middleware to integrate with ROS, our latest iterations have transitioned to native C++ drivers. This shift eliminates the performance overhead associated with middleware, resulting in faster and more predictable system behavior. By directly interfacing with the hardware, we can optimize resource utilization and minimize latency, ensuring optimal performance in robotics applications.
The ROSRider firmware incorporates a timing control feature that synchronizes itself to the host computer’s polling rate, resulting in a latency of 1-2 milliseconds. By actively adjusting its internal clock based on received packets, the ROSRider firmware ensures precise timing and synchronization, preventing data inconsistencies and errors that can occur due to timing drifts. This guarantees that ROS packets are delivered on time, ensuring reliable and efficient system operation.
ros2 topic list
This command should output at least two ROS topics
/rosout and
/parameter_events.
Driver Installation
Create a ROS Workspace:
mkdir -p rosrider_ws/src
cd rosrider_ws/src
Clone the ROSRider Repository:
git clone https://github.com/acadadev/rosrider.git
If not done during ROS installation, Initialize ROS Dependency System:
sudo rosdep init
rosdep update
Install ROS Dependencies:
cd ..
rosdep install --from-paths src -y --ignore-src
Build the Workspace:
colcon build
source devel/setup.bash
To ensure that your system can find the necessary ROSRider components, you’ll need to add the following line to your Bash configuration file:
echo "source ~/rosrider_ws/install/setup.bash" >> ~/.bashrc
ros2 pkg prefix rosrider
If it returns Package not found, you must run the source command above.
Starting ROSRider
Once you’ve successfully installed the ROSRider package and configured your environment, it’s time to bring the ROSRider board to life!
Make sure you have sourced the setup script source devel/setup.bash either manually before running the command, or have permanently configured it in your .bashrc file.
To launch the ROSRider node and establish communication between ROS and your ROSRider hardware, execute the following command in your terminal:
ros2 launch rosrider_node rosrider_node.launch.py
Once this command executes, the driver will start and attempt to synchronize with the hardware. If the parameters in your ROS configuration differ from those currently stored on the board, the driver will automatically write the new values to the EEPROM.
You may see a few checksum errors in the logs during the initial handshake process. This is completely normal behavior as the connection stabilizes and does not indicate a hardware fault.
Monitoring Diagnostics
To monitor the health and performance of your ROSRider, you can view real-time diagnostic information by using the following command:
ros2 topic echo /rosrider/diagnostics
Running this command will output diagnostic information to your terminal. You should see an output similar to the following
This command will output the following diagnostic information to your terminal:
- Motor Control: PWM values for left and right motors, and their corresponding RPMs.
- Current Sensing: Current consumption of the left and right motors.
- Power Status: Information about the battery voltage and current draw.
- System Status: Overall system health and error flags.
- Packet Age: The delay between the ROSRider and the host computer.
By monitoring these values, you can ensure optimal performance and troubleshoot any potential issues.
Monitoring Odometry
To monitor the odometry data being published by the ROSRider, you can use the following command:
ros2 topic echo /odom
ROS Parameter Server
The ROS Parameter Server is a mechanism that allows you to dynamically configure parameters in your ROS nodes.
When you launch a ROS node with a YAML file, the parameters defined in the file are loaded into the ROS Parameter Server.
This makes them accessible to other nodes and allows you to modify them at runtime using tools like ros2 param.
The ROSRider node reads the configuration parameters from the YAML file and stores them in its non-volatile memory (EEPROM).
This allows the ROSRider to retain its configuration settings even after a power cycle.
Dynamic parameters, such as PID control gains, can be adjusted on-the-fly using tools like ros2 param or our custom ROSRider Parameter Manager and the changes are immediately applied.
Next Chapter: Parameters
Copyright © 2026, ACADA Robotics • https://acada.dev