sphanit / CoHAN_Planner

BSD 3-Clause "New" or "Revised" License
18 stars 5 forks source link

Latest Version

# # # #

The latest stable version of code with improvements and invisible humans can be found here: https://github.com/sphanit/cohan_planner_multi

# # # #

Co-operative Human Aware Navigation (CoHAN) Planner

The CoHAN Planner provides a set of packages for the Human-Aware Robot Navigation in various contexts. These packages built over ROS navigation stack, includes humans into both global and local planners to plan a human-aware trajectory for the robot considering several social criteria. Our system also provides multiple modes of planning that shift based on the context or can be set manually by simple changing the parameters.

The system uses Human-Aware Timed Elastic Band (hateb) local planner for human-aware trajectory planning which is based on teb_local_planner ROS package.

Go here for ros-kinetic instalaltion guide.

Citation

If you are using our code for your research, please consider citing at least one of our papers (bibtex below).

Installation (ros-melodic)

  1. This installation assumes that the ROS is already installed along with the 2D navigation stack. Otherwise please install them before continuing to next steps.
  2. Install the requirements
    sudo apt install python-pip python-catkin-tools
    pip install scipy
  3. Clone the git repository
    mkdir -p cohan_ws/src
    cd  cohan_ws/src
    git clone https://github.com/sphanit/CoHAN_Planner.git -b master
    cd ..   
  4. Install the dependencies using rosdep
    rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
  5. Build
    catkin build

    Note: catkin build might make the cpu busy utilizing all threads if not configured properly, you can instead use it with less jobs. For example, catkin build -j4, can run up to four jobs at a time.

Usage

  1. Our packages are built as plugins to standard 2D navigation stack and hence they follow the same topics to publish navigation goals.

  2. To include humans into the system, the tracked humans or the known humans have to be published on /tracked_humans topic following the message structure provided here. All the message structures can be found in the human_msgs package. The default segement for navigation is TORSO and hence care has to be taken while setting the type of TrackedSegment.

  3. Once the /tracked_humans topic is available, the system automatically starts planning human aware paths and trajectories.

  4. CoHAN_Navigation package provides some configuration files and examples for testing the system. It is strongly suggested to check these before you start experimenting.

Bibtex

CoHAN

@inproceedings{singamaneni2021human,
  author = {Singamaneni, Phani Teja and Favier, Anthony and Alami, Rachid},
  title = {Human-Aware Navigation Planner for Diverse Human-Robot Ineraction Contexts},
  booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  year = {2021},
}

HATEB

@inproceedings{singamaneni2020hateb,
  author = {Singamaneni, Phani Teja and Alami, Rachid},
  title = {HATEB-2: Reactive Planning and Decision making in Human-Robot Co-navigation},
  booktitle = {International Conference on Robot \& Human Interactive Communication},
  year = {2020},
  doi={10.1109/RO-MAN47096.2020.9223463}}
}