Welcome to the OpenBase2 Project! This repository contains the ROS2 packages necessary for controlling and simulating a differential drive robot. The packages included are:
openbase2_msgs
: Custom message definitionsopenbase2_scripts
: Python scripts for hardware drivers and nodesopenbase2_description
: URDF files and robot descriptionopenbase2_bringup
: Launch files for bringing up the entire system
-
Clone the repository:
cd <your_workspace>/src git clone <github-repo-url> openbase2
-
Build the packages:
cd <your_workspace> colcon build
-
Source the setup script:
. install/setup.bash
This package contains custom message definitions used by other packages.
- Messages:
MotorVels.msg
: Contains twoint16
fields for left and right PWM values.EncoderData.msg
: Contains twoint64
fields for left and right wheel encoder data.
This package contains Python scripts for hardware drivers and ROS2 nodes.
- Nodes:
hardware_driver
: Handles communication with the hardware.odom_node
: Publishes odometry information based on encoder data.diff_drive_node
: Handles differential drive calculations and commands.
This package contains URDF files and robot description files for visualization and simulation.
- Files:
display.launch.py
: Launch file to display the robot in RViz.robot.urdf
: URDF file describing the robot.
This package contains launch files to bring up the entire system.
- Launch Files:
bringup.launch.py
: Launches the entire system in order.
-
Bring up the entire system:
ros2 launch openbase2_bringup bringup.launch.py
-
Run individual nodes:
# Run the hardware driver ros2 run openbase2_scripts hardware_driver # Run the odometry node ros2 run openbase2_scripts odom_node # Run the differential drive node ros2 run openbase2_scripts diff_drive_node
-
Visualize the robot:
ros2 launch openbase2_description display.launch.py
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the [TODO: Add your license here].
For more information, please contact the project maintainer.