Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

About the package

Currently this package is used for docking an omnidirectional robot 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.

Installation

For the purpose of docking, we use the Ar tags [1] provided by the ar_track_alvar ROS package.

  1.  Clone the ar_track_alvar ROS package (branch: kinetic-devel, it also works for Melodic)

    Code Block
    languagesqlbash
    themeRDark
    linenumberstrue
    cd to_your_workspace/src/
    git clone https://github.com/neobotix/ar_track_alvar


  2. In your workspace, clone the neo_docking package

    Code Block
    languagesqlbash
    themeRDark
    linenumberstrue
    cd to_your_workspace/src/
    git clone https://github.com/neobotix/neo_docking
    cd ..
    catkin_make


Interface

There are a set of parameters that could be configured for the docking service in folder configs:

  1. ar_track_alvar_single.yaml

    ParameterDefault ValueDescriptionOptions
    markers2, 8, 10A vector that defines which markers are included.Anything coded in a marker(see http://wiki.ros.org/ar_track_alvar).


  2. stations.yaml

    ParameterDefault ValueDescriptionOptions
    offsetx: 0.409, y: 0, theta: 0It describes the geometric size of a station, and decides where exactly the connection would happen w.r.t. the base_link of robot.Any value of float type.
    functionality'Charging'A string describes the functionality of a station, in case of further movements needed....


Setup server

  1. Start up the robot(or simulator) and launch navigation_basic_neo from package neo_mpo_700:

    Code Block
    languagesqlbash
    themeRDark
    linenumberstrue
    roslaunch neo_mpo_700 navigation_basic_neo.launch


  2. Run neo_docking with launch file:

    Code Block
    languagesqlbash
    themeRDark
    linenumberstrue
    roslaunch neo_docking dock_with_individual_marker_mb.launch


Proceed docking

  1. Bring robot to a position and orientation where it can detect the marker with its camera via remote controller.
  2. Call neo_docking service by running the following command, and its argument is the station number:

    Code Block
    languagesqlbash
    themeRDark
    linenumberstrue
    rosservice call /auto_docking 10


  3. After it docked to the station, the terminal would print the accuracy of docking process.

Video demo

Coming soon...

References