CarROS is a project developed in ROS Noetic on Ubuntu 20.04 that simulates a small autonomous car using Gazebo and RViz. The car can navigate autonomously by avoiding obstacles or be manually controlled, providing an ideal environment to experiment with and learn robotics and autonomous navigation concepts.
- Extensibility: Designed to be easily extended with new features or sensors.
- ROS Integration: ROS-based implementation leveraging nodes, services, topics, and parameters for modular management.
- Simulation: Compatibility with Gazebo for advanced simulation and RViz for visualization.
- Autonomous Mode: Autonomous mode with obstacle avoidance using virtual sensors.
- Manual Control: Manual control via a GUI or direct commands.
Make sure you have installed:
- ROS Noetic: Follow the official guide.
- Gazebo: Pre-installed with ROS, but you can verify with:
sudo apt install gazebo
- RViz: Included in ROS Desktop Full.
-
Clone the Repository:
git clone https://github.com/Endless077/Simple_CarROS.git cd CarROS
-
Build the Project:
- Navigate to the project's workspace and build using
catkin_make
:catkin_make
- Navigate to the project's workspace and build using
-
Source the Environment:
- Source the development environment:
source devel/setup.bash
- Source the development environment:
-
Gazebo Dependencies:
- At first launch Gazebo may require additional dipenences.
-
Run the Simulation:
- Launch an Autonomous Simulation with:
roslaunch ros_car_cmd ros_car_autonomus.launch
- Launch a Manual Simulation with:
roslaunch ros_car_cmd ros_car_manual.launch
- Launch an Autonomous Simulation with:
- For the best experience, use Ubuntu 20.04 with ROS Noetic Desktop Full.
- Customize your simulation with all the params files in ros_car_cmd packaage.
The project leverages ROS's modular architecture with:
- Nodes: For managing control and navigation functionalities.
- Services: For high-level commands like switching between autonomous and manual modes.
- Topics: For communication of sensor data and movement commands.
- Parameters: For dynamic configurations during runtime.
Refer to the auto-generated ROS documentation for a detailed list with this (package)[https://wiki.ros.org/rosdoc_lite].
Gazebo is a robotic simulation tool that allows testing algorithms and models in a realistic environment.
RViz is a visualization tool for ROS that shows sensor data and robot states in real time.
A JavaScript library for interfacing with ROS via WebSocket, useful for creating interactive GUIs for manual control.
ROS is an open-source framework for robotics that provides tools and libraries to create complex robotic applications. CarROS uses nodes, topics, services, and parameters to achieve a modular and scalable system.
This project is licensed under the GNU General Public License v3.0.
GNU General Public License v3.0
Contributors:
- No contributors
Project Manager:
For support, email [email protected] or contact the project contributors.
See the documentation project here.