-
Notifications
You must be signed in to change notification settings - Fork 3
Codebase Walkthrough
David Calderon edited this page Aug 25, 2024
·
10 revisions
This page will serve as an interactive "lab" that will help familiarize you with the codebase.
We use the ROS 2 Control framework for real-time control of our rover. As a primer, please review this page first, which outlines the architecture of the framework.
Hardware Interfaces
- Our collection of hardware interface implementations can be found in urc_hw/src/hardware_interfaces. In each of the
.cpp
files you will find some sort of implementation for the hardware interface template class, such asdecode()
andread()
. - For each of the hardware interfaces, you will find them plugged into to the rover model at urc_hw_description/urdf/ros2_control.xacro. When the model is pulled as part of a launch invocation, each of the hardware interfaces is read and available for use.
Controllers - We only have one controller, the
rover_drivetrain_controller
, which is a copy of the previously implementedDiffDriveController
from theros2_controllers
packages. It is specified at urc_bringup/config/controller_config.yaml.
Have questions? Post them in the #robonav-software-help channel.