GlobalDrive Is a ROS2 project that simulates the motion of a differntial drive robot, all the way from planning to control.
This Project leverages the existing turtlebot3 waffle gazebo simulation setup, inorder to streamline the process.
for more details regarding architecture, algorithmn selection, etc. please refer to THEORY.md
path_smoothening : implemented quinitc hermite spline
trajectory_generation : done alogn with quintic hermite spline
trajectory_tracking_controller : implemented LPV MPC for trajectory tracking
obstacle_avoidance : tried implementing CBF (C3BF to be exact) - incomplete
test_generation : have 3 test codes to test the algorithmns here
| # | Requirement | Description | Installlation guide | notes |
|---|---|---|---|---|
| 1 | ROS 2 Humble (or later) | Provides the middleware, colcon build tooling, and message runtime. | Install ROS 2 Humble | |
| 2 | GZ harmonic | Needed for running turtlebot3 waffle world simulations. | install GZ harmonic (source install for humble) | Additionally also install the ros depencies for gz harmonics, eg ros-gz-bridge, etc. |
| 3 | TurtleBot3 packages | Supplies robot description, navigation stacks, and launch files. | follow steps mentioned below | |
| 4 | Python 3.10+ | Used for control, planning scripts, and utilities. | - default - | |
| 5 | cvxpy | Needed for running convex optimisation for the mpc controller. | pip install cvxpy |
|
| 6 | numpy 2.0+ | This is used to handle the matrices and its operations. | pip install numpy |
|
| 7 | plotly | used for visualising the results and other graphs directly (can be used for recreating the graphs presented). | pip install plotly |
|
| 8 | RViz (2) | Normally installed alongside with ROS2 | follow ros2 installation guide for rviz. |
1). Create a workspace for the project and cd into it
mkdir globalDrive
cd globalDrive2). clone the src folder.
[note the turtlebot setup and will be done in the next step.]
#inside globalDrive
git clone https://github.com/AkshayArjun/globalDrive.git3). next inside src run
git clone -b new_gazebo https://github.com/azeey/turtlebot3_simulations.git
# this installs the turtlebot for gz sims4). in your root directory run
colcon build --packages-selct gDrive --symlink-install
colcon build --packages-select turtlebot3_simulations --symlink-install
source install/setup.bash5). run rosdep to handle all dependencies
Inside gDrive package find the file name mission.csv under /gDrive/resources
use this file to add the waypoints to the global planner
#simply use the launch file :
ros2 launch gDrive simulation.launch.py
[comment: It should be noted that the controller isn't best tuned and further tunign can improve the performance ]
click here for the demo run video
This project is licensed under the GNU GPL v3 LICENSE



