The latest version for ROS1 is maintained here: https://github.com/LAAS-HRI/CoHAN2.0
The latest version for ROS2 is maintained here: https://github.com/sphanit/CoHAN-Nav2
This package provides the configuration files and examples for the CoHAN Planner.
It uses slightly modified versions of stage_ros and MORSE simulators for simulating the robot and the humans. The modified version of stage_ros is already included and the installation guide for MORSE can be found here.
-
Download and build the package
cd cohan_ws/src git clone https://github.com/sphanit/CoHAN_Navigation.git -b master cd .. rosdep install --from-paths src --ignore-src --rosdistro=melodic -y catkin build(install any other depencies if needed)
-
Install MORSE seperately before running its examples.
- PR2 with two humans and stage GUI
roslaunch cohan_navigation stage_pr2_full.launch gui:=true map_name:=laas_adream localize:=amcl - Running stage in fast mode
roslaunch cohan_navigation stage_pr2_full.launch fast_mode:=true map_name:=laas_adream localize:=fake
- PR2 with two humans and GUI
Launch MORSE simulator scenario:
In a separate terminal, launch the navigation:
roslaunch morse_ros morse_pr2.launch map_name:=laas_adream with_humans:=trueroslaunch cohan_navigation morse_pr2_full.launch map_name:=laas_adream localize:=amcl - Running on a different map
roslaunch morse_ros morse_pr2.launch map_name:=maze with_humans:=true roslaunch cohan_navigation morse_pr2_full.launch map_name:=maze
error: terminate called after throwing an instance of 'std::runtime_error'
what(): Time is out of dual 32-bit range
This occurs if the simulator is not launched properly before the navigation due to some delayed communications. One solution is to launch the simulator separately and wait until it is completely launched before launching navigation. You can also control this delay using node_start_delay argument of launch files.