neo_docking¶
neo_docking is an exclusive package for docking of all the Neobotix robots with visual feedback to a charging station.
This package is modular and can be extended for other docking applications as well. Example: Docking with a supply cart for industrial purpose.
User will demand the robot to dock to a desired station.
Attention
Currently neo_docking only supports ROS-1
Installation¶
For the purpose of docking, we use the Ar tags provided by the ar_track_alvar ROS package.
For the vision data, we need a depth camera. For this particular application, we developed the entire package using the Realsense D435i. Please follow the installation steps for the Realsense camera, or the camera which you have decided to use.
Supported ROS-DISTROS: melodic and noetic.
Install the rgbd-launch
sudo apt install ros-$ROS_DISTRO-rgbd-launch
Clone the ar_track_alvar ROS package
Note
Please change the branch according to your pre-existing ROS-Distro
cd to_your_workspace/src/ git clone https://github.com/neobotix/ar_track_alvar
In your workspace, clone the neo_docking package
cd to_your_workspace/src/ git clone https://github.com/neobotix/neo_docking cd .. catkin_make
Parameters¶
There are a set of parameters that could be configured for the docking service in folder configs:
ar_track_alvar_single.yaml
Parmeters Default Value Description Options markers 2, 8, 10 A vector that defines which markers are included. Anything coded in a marker(see http://wiki.ros.org/ar_track_alvar).
Setup server¶
Start up the robot(or simulator) and launch navigation_basic_neo from package neo_mpo_700:
roslaunch neo_mpo_700 navigation_basic_neo.launch
Run neo_docking with launch file:
roslaunch neo_docking dock_with_individual_marker_mb.launch
Docking Process¶
Bring robot to a position and orientation where it can detect the marker with its camera via remote controller.
Call neo_docking service by running the following command, and its argument is the station number:
rosservice call /auto_docking 10
After it docked to the station, the terminal would print the accuracy of docking process.
Now in order for the robot to start the process of charging, (for the simulation you can skip this step)
rosservice call /relayboard_v2/start_charging
In order to stop the charging
rosservice call /relayboard_v2/stop_charging
Now in order for the robot to start the process of charging, (for the simulation you can skip this step)
rosservice call /auto_undocking 10