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 Video demo ---------- .. raw:: html