A ROS-based project demonstrating autonomous navigation of a kinematic car model using path planning and advanced control techniques.
- Kinematic Car Simulation: A Python-based simulator accurately models the vehicle's kinematic behavior for realistic testing and development.
- Global Path Planning: Implements a global path planner to generate optimal routes within a provided map.
- Stanley Path Following Controller: A robust implementation of the Stanley controller for precise and efficient path tracking, a core algorithm in autonomous driving.
- PID Speed Control: A Proportional-Integral-Derivative (PID) controller is used for longitudinal speed regulation.
- ROS Integration: The project is seamlessly integrated with the Robot Operating System (ROS), featuring modular nodes and launch files for straightforward execution and interoperability.
- Autonomous Navigation & Visualization: Includes launch files for complete autonomous navigation demonstrations and pre-configured RVIZ setups for real-time visualization of the vehicle's state, planned path, and environment.
src/kinematic_car_ros.py: The main ROS node for the kinematic car model simulation.src/global_path_planner.py: The node responsible for generating a global path for the vehicle to follow.src/stanley_path_follower.py: The implementation of the Stanley control algorithm for vehicle path tracking.src/waypoint_following.py: A script for basic waypoint navigation logic.launch/: Contains various launch files (demo.launch,auto_nav.launch) to run simulations and demonstrations.maps/: Pre-built maps used for navigation tasks.rviz_cfg/: RVIZ configuration files for advanced visualization.
To get started with this project, you can build and launch the ROS nodes.
- Build the ROS package:
catkin_make
- Source the workspace:
source devel/setup.bash - Run the main demonstration:
roslaunch kinematic_car_ros demo.launch
