A Gazebo-based human-robot interaction simulator that accurately mimics HRI scenarios involving a TIAGo robot and multiple pedestrians modelled using the pedsim_ros ROS library. To better emulate human behaviours, we incorporated the option for user teleoperation (via keyboard) of a simulated person, not influenced by social forces.
The simulator has been designed to facilitate the setup of real-life HRI scenarios and the execution of causal analysis within them. For the latter, ROS-Causal, a ROS-based causal analysis framework for HRI applications, has been integrated in the ROS-Causal_HRISim simulator.
- Individual and group walking pedestrian and other social activities simulation using pedsim
- Single-person teleoperation
- Customisable HRI scenario and world
- Customisable plans for the TIAGo robot
- Causal analysis
After cloning the repository, use the following commands to build the Docker image and run it:
cd /path/to/ROS-Causal_HRISim
sudo ./build_run_docker.sh
Once the Docker image is built, you can use the following command to run the container:
cd /path/to/ROS-Causal_HRISim
sudo ./run_docker.sh
Once inside the Docker container, run the following command to view the tmule file containing all the simulator parameters:
roscd hrisim_tmule/tmule
cat tiago_sim.yaml
Editable parameters:
- TIAGO_TYPE - represents the type of TIAGo;
- WORLD - world and map to load. It can be chosen among ["maze", "maze_corridor", "maze_corridor_withTurn", "maze_corridor_withDoors"]
If you want to add your own WORLD, you can include your .world file in hrisim_gazebo/worlds and your map in hrisim_gazebo/tiago_maps.
Note that the map must have the same name as the .world file; - SCENARIO - pedsim scenario to load. It can be chosen among ["single_agent_avoidance", "multi_agent_avoidance"]
If you want to add your own SCENARIO, you can include your .xml file in hrisim_pedsim/scenarios; - MAX_HUMAN_SPEED - teleop humam max speed
- ROBOT_RADIUS - robot size
- HUMAN_x - teleop human init x-coordinate
- HUMAN_y - teleop human init y-coordinate
- SPAWN_AGENT - bit to decide whether to spawn agents driven by social forces (if present in the SCENARIO)
- SPAWN_TELEOP_AGENT - bit to decide whether to spawn teleop agent
- SPAWN_TIMEOUT - spawn timeout
If you want to modify any of these parameters, you can edit the tiago_sim.yaml by:
nano tiago_sim.yaml
Once the tmule file is configured, you can start the simulator with the following command:
tm-start
to visualise the tmule session
tm-show
once inside the tmule, run the following command to change panel:
Ctrl+b
panel number [0-6]
and finally to stop it
Ctrl+b
panel number 0
tm-stop
The ROS-Causal_HRISim includes the PetriNetPlans to define predefined plans for the TIAGo robot. The plan is a combination of actions and conditions that can be defined to create your own plan. Three different folders have been pre-created for plans, actions, and conditions, and they are:
- hrisim_plans
- hrisim_actions
- hrisim_conditions
For more details on how to define plans, actions, and conditions, visit the PetriNetPlans GitHub reposity.
The causal analysis is perform through the ROS-Causal ROS library. An example of causal model reconstructed from a HRI scenario involving the TIAGo robot and a single teleoperated human is shown in the following:
The raw data collected through the simulator and the corresponding post-processed data used in the causal analysis can be found here.
If you found this useful for your work, please cite this papers:
@inproceedings{castri2024exp,
title={Experimental Evaluation of ROS-Causal in Real-World Human-Robot Spatial Interaction Scenarios},
author={Castri, Luca and Beraldo, Gloria and Mghames, Sariah and Hanheide, Marc and Bellotto, Nicola},
booktitle={33nd IEEE International Conference on Robot and Human Interactive Communication (RO-MAN)},
pages={},
year={2024},
organization={IEEE}
}
Version | Changes |
---|---|
1.0.0 | package released |