This repository contains the Finite State Machine (FSM) mc_rtc
controller used in the experiments presented in our work titled "Autonomous Initiation of Human Physical Assistance by a Humanoid" published in RO-MAN 2020 conference proceedings
Anastasia Bolotnikova (anastasia.bolotnikova[at]epfl.ch)
@inproceedings{bolotnikova2020roman,
author = {Anastasia Bolotnikova and S{\'e}bastien Courtois and Abderrahmane Kheddar},
title = {Autonomous Initiation of Human Physical Assistance by a Humanoid},
booktitle = {IEEE International Conference on Robot and Human Interactive Communication},
address = {Naples, Italy},
month = {31 August--4 September},
year = {2020}
}
master
- controller for real experiment using Azure Kinect Body Tracking visual feedback for navigation towards a person, and contact detection (DOI: 10.1109/ROMAN.2018.8525774, 10.1109/HUMANOIDS.2018.8624946) for establishing contacts with human in closed looptopic/withHumanModel
- controller for experiment simulation with a human model
This repository is a fork of a base Pepper FSM mc_rtc
controller PepperFSMController.
mc_rtc
mc_pepper
Azure_Kinect_ROS_Driver
XGBoost
- Note: do system install (e.g.
set(CMAKE_INSTALL_PREFIX "/usr/local/")
) to enable CMake tofind_package(xgboost)
- Note: do system install (e.g.
- StandStraight
- NavigateToHuman
- IntentCommunication
- PreContactBack
- MakeContactBack
- PreContactHand
- MakeContactHand
- RemoveContacts
- MoveMobileBase
git clone [email protected]:anastasiabolotnikova/autonomous_phri_init.git
cd pepperfsmcontroller-roman2020
mkdir build
cd build
cmake ..
make
sudo make install
Use your preferred interface to run this controller. Some option are:
mc_rtc_ticker
frommc_rtc_ros
(simulation only)mc_naoqi
(for experiments with real robot)
To run this controller, make sure to setup correctly following interface configuration entries:
# Main robot in controller
MainRobot: PepperExtraHardware
# Enabled controller
Enabled: PepperFSMController_RO-MAN2020
Visualizing the controller in RViz
To visualize controller state in RViz
, you will first need to ensure that you have ROS installed and mc_rtc
built with ROS support.
Run roslaunch launch/display.launch]
, using display.launch
file provided in this repository, to launch controller display RViz
node.
Once RViz
node is started, configure it by clicking in RViz
File -> Open Config -> select file
roman2020_display.rviz
, provided in launch
folder in this repository
Optionally, you can configure RViz
to use roman2020_display.rviz
configuration automatically when running roslaunch launch/display.launch
by adding it to your ROS path:
cp launch/roman2020_display.rviz ~/.ros/
Thanks to @gergondet and @arntanguy for reviewing and helping with this controller and the mc_rtc
framework