There are 4 colcon packages contained in this repo. Each of these packages performs a specific purpose in the ROS structure, which are covered below
osr_control
: core code that talks to motor drivers and listens to commandsosr_interfaces
: custom message definitionsosr_bringup
: configuration and launch files for starting the rover
Please refer to the docstrings wihin each file to gain understanding of the internals as that is the most up-to-date and complete source of information.
roboclaw.py
: copy of the roboclaw python library, API to the roboclaw controllers. ROS agnosticroboclaw_wrapper.py
: ROS node that wraps around and abstracts the roboclaw library. Takes in commands and reports state of each motorservo_control.py
: ROS node that takes commands from the Rover node to send the corner servo motors to an angle and relays those to the PCA9685 chiprover.py
: ROS node that controls the rover, taking in high-level commands and calculating motor commands which are sent toroboclaw_wrapper.py
Note that a positive angular twist corresponds to a positive turning radius and turning left while driving forward.
Contains custom message definitions used for the rover. Please refer to the message definitions for details and units.
The osr_bringup package contains the launch file necessary to start all the ROS nodes, as well as the operating parameters for the robot.