ACADA RoboticsDocumentationROSRiderROS Drivers

> Installing ROSRider Drivers

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.

⚠️ Checkpoint
Before continuing, run the following test command to see if ROS is installed: 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
⚠️ Verify Workspace Sourcing 
Confirm that ROS 2 can find the ROSRider package by running: 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.

⚠️ Checkpoint
Ensure you are receiving the expected diagnostics and odometry data, following instructions below

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

Diagnostics Output

This command will output the following diagnostic information to your terminal:

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
Monitoring Odometry Output

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