Causal HRSI Dataset: Human-Robot Spatial Interaction Dataset for Causal Analysis from Mobile Platforms
This repository contains the scripts for processing and visualising our dataset named "Human-Robot Spatial Interaction Dataset for Causal Analysis from Mobile Platforms".
The dataset captures a Human-Robot Spatial Interaction (HRSI) scenario between a person and the TIAGo robot. It includes:
- rosbags containing: Velodyne LiDAR point cloud, robot and human state (position, orientation and velocities);
- CSV files containing trajectories of the person and the robot generated by post-processing the rosbags;
- the map of the environment extracted from the TIAGo robot.
15 participants took part in the experiment, with the dataset capturing 5 minutes of Human-Robot Spatial Interaction (HRSI) motion for each participant.
The dataset is available on Zenodo at this link
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={2024 33nd IEEE International Conference on Robot and Human Interactive Communication (RO-MAN)},
pages={},
year={2024},
organization={IEEE}
}
The rosbags, contained in the RosBags folder of the dataset, have been processed to extract the trajectories of both the agent and the TIAGo robot for each of the 15 experiments. The processing pipeline involves two main steps:
- Extracting the goal position of the participant for each timestep
- Extracting the trajectory of the participant (along with the goal) and the robot
The first step is carried out by launching the extract_Goal.launch launch file in the bag_processing_bringup ROS node.
roslaunch bag_processing_bringup extract_Goal.launch bagname:=A1
Note
Replace A1 with the corresponding rosbag identifier for the participant, which could be any value between A1 and A15. Ensure that the chosen rosbag is placed inside the bags folder of the bag_processing_bringup ROS node.
This procedure will generate a CSV file named A1_goal.csv in the data folder of the bag_processing_bringup ROS node.
The extracted CSV file is then utilised for the second step, executed by launching the extract_Agent.launch launch file in the bag_processing_bringup ROS node.
roslaunch bag_processing_bringup extract_Agent.launch bagname:=A1 only_visual:=False
Note
Replace A1 with the corresponding rosbag identifier for the participant, which could be any value between A1 and A15. Ensure that the chosen rosbag is placed inside the bags folder of the bag_processing_bringup ROS node.
Note
the only_visual flag determines whether to generate the CSV file containing the trajectories. If set to True, the CSV is not generated.
This process will generate a CSV file in the traj folder of the bag_processing_bringup ROS node and the post-processed CSV file in the pptraj folder of the same node. The post-processing script is located within the roscausal framework, specifically in /roscausal/roscausal_data/pp_scripts. It calculates the velocity of the participant (v), his/her distance to the goal (
Note
If you intend to derive different variables from the trajectories, you can place your post-processing script in the folder /roscausal/roscausal_data/pp_scripts.
The CSV files containing the trajectories, which have already been processed, are stored in the Trajectories folder of the dataset. You can visualize these trajectories using two scripts located in the trajectory_plot folder:
- trajPlot.py -- it plots both the participant and robot trajectories corresponding to the 5 minutes experiment
- trajAnim.py -- it generates an animation of the experiment
For both scripts to function properly, it's necessary to place the CSV file containing the trajectories in the path /trajectory_plot/trajectories. Below is an example: