![]() |
ros2-ackermann-vehicle-gz-sim-harmonic-nav2 repositorygazebo ros2 nav2 ackerman-steering gzsim saye_behaviortree saye_bringup saye_control saye_description saye_localization saye_msgs |
Repository Summary
Description | This repository includes the simulation of a vehicle with an Ackermann drive system in ROS2 Jazzy and Gazebo Sim Harmonic, utilizing the Nav2 package for autonomous navigation. |
Checkout URI | https://github.com/alitekes1/ros2-ackermann-vehicle-gz-sim-harmonic-nav2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | gazebo ros2 nav2 ackerman-steering gzsim |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
saye_behaviortree | 0.0.0 |
saye_bringup | 0.0.0 |
saye_control | 0.0.0 |
saye_description | 0.0.0 |
saye_localization | 0.0.0 |
saye_msgs | 0.0.0 |
README
Ackermann Steering Vehicle Simulation in ROS2 with Gazebo Sim Harmonic
This project features the simulation of a custom vehicle with Ackermann steering capabilities, developed using ROS2 and the Gazebo Sim Harmonic environment. The model integrates a variety of sensors and navigation tools for autonomous operation, making it one of the first implementations of an Ackermann steering vehicle in this simulation framework.
Features
1. Ackermann Steering
- A custom vehicle model built with realistic Ackermann steering dynamics for accurate maneuverability.
2. ROS2 Communication
- All sensor data and control signals are fully integrated into the ROS2 ecosystem for seamless interoperability.
3. Sensors
- IMU: Provides orientation and angular velocity.
- Odometry: Ensures accurate vehicle state feedback.
- LiDAR: Mounted for obstacle detection and environmental scanning.
-
Cameras:
- Front-facing
- Rear-facing
- Left-side
- Right-side
Note: By default, only the front camera is bridged to ROS 2.If you want to use all cameras (left, right, rear) in ROS 2,remove the
#
at the beginning of the relevant camera sections insaye_bringup/config/ros_gz_bridge.yaml
to activate them (e.g.,/camera/left_raw
,/camera/right_raw
,/camera/rear_raw
).
4. Navigation
- Integrated with the Nav2 stack for autonomous navigation.
- AMCL (Adaptive Monte Carlo Localization) for improved positional accuracy.
- SLAM techniques implemented for real-time mapping and understanding of the environment.
- Fine-tuned parameters for optimized navigation performance.
5. Manual Control (with external joystick)
- Added support for joystick-based manual control in the simulation environment, enabling users to test vehicle movement interactively.
6. Visualization
- Full model and sensor data visualization in RViz2, providing insights into robot states and environmental feedback.
Requirements
- ROS2 (Humble)
- Gazebo Sim Harmonic
- RViz2
- Nav2
Local Installation
- Your need to sure that installation of Gazebo Harmonic and ROS (ros_gz):
sudo apt-get install ros-${ROS_DISTRO}-ros-gz
sudo apt-get install ros-humble-ros-gzharmonic
(Only Humble version)
More details about installation Gazebo and ROS: Link - Clone the repository:
mkdir -p ackermann_sim/src && cd ackermann_sim/src
git clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2
cd ..
- Build the project:
colcon build && source install/setup.bash
- Set environment variables:
# Set environment variables for current session
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/
For Permanent Setup:
To make these environment variables permanent, add them to your .bashrc
file:
# Add environment variables to .bashrc
echo 'export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
echo 'export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/your/path/ackermann_sim/src/ackermann-vehicle-gzsim-ros2/' >> ~/.bashrc
# Apply changes
source ~/.bashrc
Note: Replace
/your/path/
with your actual installation path.
Docker Installation
You can also run the simulation using Docker, which ensures a consistent environment across different systems.
Prerequisites
- Docker
- Docker Compose
- NVIDIA Container Toolkit (for GPU support)
Steps to Run with Docker
- Clone the repository:
mkdir -p ackermann_sim/src && cd ackermann_sim/src
git clone https://github.com/alitekes1/ackermann-vehicle-gzsim-ros2
cd ackermann-vehicle-gzsim-ros2
- Build and run the Docker container:
```bash
File truncated at 100 lines see the full file