This is a project for my NUS undergraduate EG2605 UROP, to build an auto docking functionality to allow the SDR mobile robot provided by Solustar Pte Ltd to dock with charging station using visual input to detect AR tag and using PI-control to adjust wheel velocity. The robot should start docking from 1.5 meter in front of the tag. The motivation is to let the robot complete all its navigation task, then return to this position, then start to dock to the charging station.
You may watch the actual SDR docking testruns here: youtubelink
You may watch the the Gazebo simulation testrun here: youtubelink
This project is developed using Ubuntu 18.04 and ROS1 Melodic. The ARTag used is ID:8 and size 9cm x 9cm. The back realsense camera is used for visual input. For more detailed explanation of the methodology implementation, please refer to my final report pdf
For simulating the files in Gazebo:
Prereq: Ubuntu and ROS1 installed.
You will need to install this application by follwoing the guide:
- realsense SDK 2.0 application link
You will need to download and build the following packages in your workspace.
- ar_track_alvar: link
- realsense-gazebo-plugin link
- realsense-ros link
- SDR-simulation under this respiratory
You will need to check your ~/.gazebo folder for 'worlds' and 'models' folders. If they are not there, do the followings:
- download from https://github.com/leonhartyao/gazebo_models_worlds_collection and copy both folders there, especially the willowgarage.world + sun, ground models.
- download from https://github.com/osrf/gazebo_models and copy the additional models there. especially willowgarage models.
And do the following:
- Download the 'Gazebo models' from this respiratory and unzip.
- Copy the 'willowgarage_with_artag.world' file to .gazebo/worlds of your computer.
- Copy the 'artag123123' folder to .gazebo/model of your computer.
Then, to simulate it, just run this three launch files in order with roslaunch:
- movingparts.launch (will launch gazebo with model and rviz)
- pr2_indic_no_kinect_copy.launch (will run artag detection node)
- rotate_and_dock.launch (will run the auto docking operation)
You may be curious what other files do:
- rotate_align_dock is an incomplete implementation of enabling robot to move to the opposite of artag before dock, as shown here: youtubelink, feel free to work on it.
For running the docking files in the actual SDR Robot (from Solustar): You just need to download and build the following packages in the SDR's NUC:
- ar_track_alvar: link
- auto_docking under this respitatory
Then, to run the autodocking operation, just do the following in order:
- (initialize the SDR robot to start the wheel and realsense)
- roslaunch pr2_indic_no_kinect_copy.launch (will run artag detection node)
- roslaunch rotate_and dock.launch (will start running the auto docking operation)
The UROP Presentation (1).pdf file is outdated and should not be used as guide.
If you need any more information or help, feel free to contact me~