This repository contains code and instructions for autonomous navigation of a TortoiseBotProMax using various algorithms in ROS. Below, you will find information about the algorithms used, references, completed tasks, and commands to run.
- Aruco Scanning using OpenCV: Aruco marker detection is used for robot localization.
- Gmapping for Map Generation: Gmapping is employed to create a map of the environment.
- MoveBase for Navigation: MoveBase is used for robot navigation to predefined waypoints.
- AMCL for Localization: AMCL (Adaptive Monte Carlo Localization) is used for precise localization of the robot.
- base_local_planner for Path Planning: The DWA (Dynamic Window Approach) planner is utilized for path planning and obstacle avoidance.
- ROS Wiki - Setting up the Navigation Stack for TurtleBot: ROS Wiki
- GitHub - ROS Course Part 2 - navigate_goal.py: GitHub
- Mapping (Manually): A map of the environment has been created manually using Gmapping.
- Aruco Marker Scanning Achieved: The robot can detect and scan IDs of Aruco markers in the environment.
- Waypoint poses calculated: After scanning ID,
rostopic echo
was used to find the pose coordinates and save to a text file. - Autonomous Navigation Package and Launch files created: Autonomous navigation setup has been successfully configured.
- Path Planning to Waypoints Done: The robot can plan paths to waypoints of Aruco poses.
- Obstacle Avoidance Done: The robot's footprint size has been increased to avoid obstacles and corners in its path.
- Navigation to Waypoints: The robot navigates to the sequence of waypoints and pauses for a duration of 30 s.
- Speed of robot has been increased to reduce the time of autonomous navigation.
After bringing up Gazebo model and RViz using given launch files,
cd catkin_ws/src
rosrun map_server map_server map.yaml
roslaunch tortoisebotpromax_navigation amcl.launch
roslaunch tortoisebotpromax_navigation move_base.launch
cd Robonautica_ws/Scripts
python nav_to_waypoints.py