Skip to content

This repository contains the code and assets for the ROS-based project Turtlebot_Autonomous_Maneuvers

Notifications You must be signed in to change notification settings

atefemran/AuE893-Turtlebot_Autonomous_Maneuvers_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Cover

This repository contains the code and assets for the ROS-based project "TurtleBot Autonomous Maneuvers". As a part of class AUE893 - Autonomy Science and Systems, at Clemson University International Center for Automotive Research (CU-ICAR).

Project Overview

The project is ROS based using the Turtlebot3 Burger in simulation (Gazebo) and real-world environments to go through a prespecified course in which the TurtleBot will have to deal with 4 maneouvers:

Track

  1. Wall follower and Obstacle avoidance: Turtlebot maintains safe distance from obstacle and maneuvers through course until it finds yellow lanes. In this it manipulates Lidar values for the design of controller.

  2. Line following: Turtlebot follows the yellow line using image processing (open-cv package). The controller uses lane centroid to control the angular speed of the bot, with maintained linear velocity.

  3. Traffic sign detection: YOLO is used for traffic sign detection. Traffic sign callback functions stop the turtlebot for 3 seconds, then it proceeds following the line.

  4. April Tag follower: AprilTag_ros package is used to detect apriltags and then its co-ordinates are used to design the controller for tracking the april tag, and maintain a sfae distance.

Autonomous switching:

Navigating the whole course autonomously without any manual entry. This is being excuted using the below ROS archicture. ROS_switching

Results

Gazebo simulation

Gazebo gif https://youtu.be/JvIXgb4VtXY

Real-World Demo

realworld gif https://youtu.be/KOGwsMkNCMc

Further Imporovements

The architecture used in the project could be enhanced by having a controller node that governs the switching between the modes based on the subscribed topics from the sensing nodes. Accordingly, using semaphore flags through publishing control topics, each node could be turned on or off. Using this architecture will allow for better modularity and scalability.

Running the project

The project was created on ROS1 on Ubuntu 20.04.

Clone the repository into your local PC. Make sure to name the cloned folder "project_turtlebot_maneouvres".

Dependencies

  1. Turtlebot3 package
  2. Turlebot3 simulation
  3. open cv
  4. Apriltag ROS
  5. Darknet Ros(YOLO)

Running Commands

Use the below lines in your terminal to start the launch files.

  1. For Gazebo simulation
1. '$ roslaunch project_turtlebot_maneouvres turtlebot3_maneouvres.launch'
2. '$ rosrun project_turtlebot_maneouvres keyboard_teleop_apriltag.py'    -- for operating the 2nd turtlebot with apriltag in the gazebo world.
  1. For real world
1. Bring-up the turtleot and the raspicam
2. '$ rosrun image_transport republish compressed in:=/raspicam_node/image raw out:=camera/rgb/image_raw'     -- tp republish raspicam/image to rgb/camera/raw
3. '$ roslaunch project_turtlebot_maneouvres turtlebot3_maneouvres_real.launch'

About

This repository contains the code and assets for the ROS-based project Turtlebot_Autonomous_Maneuvers

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published