Skip to content

ppswaroopa/autobot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 

Repository files navigation

AuE8930 Final Project

Group Members:

  1. Pranava Swaroopa | GitHub

  2. Tanmay Chhatbar | GitHub

  3. Prasanna Gupta | GitHub

  4. Zainul Belgaumwala | GitHub

Project Description: Autonomous navigation of Turtlebot

  • Task 1: Wall following/Obstacle avoidance

  • Successfully follow the wall and avoid the obstacles until it reaches the yellow line.

  • Task 2: Line following and Stop Sign Detection

  • Successfully follow the yellow line.

  • While navigating the yellow line, the the Turtlebot should stop at the stop sign for 3 seconds before continuing. The stop-sign will be detected by TinyYOLO.

  • Task 3: AprilTag tracking

  • Spawn and AprilTag in the simulation world and the Turtlebot should track it.

Development environment

  • OS: Ubuntu 20.04
  • ROS: ROS 1 - Noetic
  • Robot: Turtlebot 3 Burger - ROS installed, Camera Installed, Setup and Calibrated.

The catkin workspace aue-finals reside has all external and internal dependencies.

Gazebo World

Gazebo World Gazebo World

External Dependencies (Submodules in this git repo)

  1. apriltag
  2. aprilrag_ros
  3. darknet_ros
  4. turtlebot3_simulations

How to Run

Clone the repo:

git clone --recurse-submodules https://github.com/ppswaroopa/Aue8230Spring2022_Group7.git
cd group7_ws
catkin build -DCMAKE_BUILD_TYPE=Release

Note

  • For working with darknet_ros you will need to have nvidia-toolkit installed on your system. Otherwise building of darknet_ros will fail.

  • apriltag and apriltag_ros packages just need to be built

Turtlebot Setup:

  • Setup the robot using: Quick Start Guide
  • Setup camera access on the Turtlebot 3 Burger.
  • Calibrate the camera following the instruction given on this link: Camera Calibraiton
  • Brinup Turtlebot and Camera. You can edit the bringup launch file to load the camera module with it
roslaunch turtlebot3_bringup turtlebot3_robot.launch

Running Code

There are TWO main launch files, One for running it in simulation and the other in real world.

The launch files evoke same nodes but only differ in the subscribers.

  • In simulation the camera topic is
/camera/rgb/image
  • In the real world based on the camera publisher this topic changes. In our case it was
/raspicam_node/image
  • In the real world due to network constraints the 1280x720 image cannot be processed at processing speeds at par with simulation. This meant using a smaller image dimension and compressed images. We utilized the image_transport method to compress and republish the images. In our case the images are available at
/raspicam_node/image_better

Simulation

To launch the "autobot" node in simulation run:

roslaunch aue_finals simulation_integration_turtlebot3_autonomy_final.launch

Real World

To launch the "autobot" node in realworld run:

roslaunch aue_finals real_integration_turtlebot3_autonomy_final.launch

Demo

Final Demo on YouTube

Simulation Run

In simulation you can run all the tasks seperately. Hence the launch files will ensure the bot starts at the right spot to start that task. Corresoponding scripts implement the task independent of other tasks.

  1. Wall following/Obstacle avoidance:
roslaunch aue_finals lidar_turtlebot3_autonomy_final.launch

Wall Following Obstacle Avoidance

  1. Line following:
roslaunch aue_finals follow_line_turtlebot3_autonomy_final.launch

Line Following

  1. Stop Sign Detection:
roslaunch aue_finals stop_sign_turtlebot3_autonomy_final.launch

Stop Sign Detection

  1. AprilTag tracking:
roslaunch aue_finals april_tag_turtlebot3_autonomy_final.launch

April Tag Tracking

Real World Run

Autobot in Action

roslaunch aue_finals real_integration_turtlebot3_autonomy_final.launch

Report

Final Report submitted for Course credit is uploaded here.