This project focuses on developing obstacle avoidance and wall-following algorithms using a LiDAR sensor mounted on a custom-built robot. Designed for navigation in a custom environment, the robot uses LiDAR data to detect and avoid obstacles and maintain a consistent distance from walls, enabling smooth and efficient navigation
Prequisites
• Linux Ubuntu 22.04
• Ros2 humble
• Nav2
• Gazebo
• Rviz
• Visual studio code
• Cyclone DDS
Step 1: Install ROS 2 Humble
Follow the ROS 2 Humble installation instructions for your operating system if ROS 2 is not already installed.
Step 2: Install Required ROS 2 Packages
Install the necessary ROS 2 packages.
sudo apt-get install ros-humble-ros2-control
sudo apt-get install ros-humble-ros2-controllers
sudo apt-get install ros-humble-xacro
sudo apt-get install ros-humble-ros-gz-*
sudo apt-get install ros-humble-*-ros2-control
sudo apt-get install ros-humble-joint-state-publisher-gui
sudo apt-get install ros-humble-turtlesim
sudo apt-get install ros-humble-robot-localization
sudo apt-get install ros-humble-joy-teleop
sudo apt-get install ros-humble-tf-transformations
Step 3: Install Python Packages
Install Python and additional packages:
sudo apt-get install python3-pip
pip install transforms3d
Clone the project
git clone git@github.com:shivasamkumar/PythonFinalProject.git
Go to the project directory
cd proj_wrkspace
build the project
colcon build
Source your workspace
source /opt/ros/humble/setup.bash
source ~/workspace/install/setup.bash
Launch the project
Slam algorithm with turtle bot and way point follower
• open terminal emulator in linux ubuntu 22.04 with ros2 and Nav2 pre installed
• Run the commands
ros2 launch turtlebot3_gazebo turtlebot3_my_world.launch.py
• run the command in the other terminal
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=/home/shiva/maps/custom_map.yaml"
NOTE
- Note: You have to use the cyclone DDS processor
Wall Follower and obstacle avoidance
• Clone the repo into your ros2 workspace
• Use colcon build select-packages -mobile_robo
• Then launch the launch file using "ros2 launch mobile_robo mobile_robo_launch.py"
Fig 1.1 Wall Following and Obstacle avoidance
Fig 1.2 Map in Rviz
Fig 1.3 Slam algorithm and waypoint Follower in Gazebo and Rviz
Fig 1.4 Gazebo virtual environment
Video
This video shows the Demonstation of the project
-
Implementing IMU sensors and Control algorithm
Integrating IMU sensors and control algorithm for the coustom robot and also implement sensor fusion algorithms
-
Hardware Integration