actor-critic-model-predictive-force-controller
Related paper: "Experimental Validation of an Actor-Critic Model Predictive Force Controller for Robot-Environment Interaction Tasks"
https://github.com/unisa-acg/actor-critic-model-predictive-force-controller
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 7 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.9%) to scientific vocabulary
Keywords
Repository
Related paper: "Experimental Validation of an Actor-Critic Model Predictive Force Controller for Robot-Environment Interaction Tasks"
Basic Info
- Host: GitHub
- Owner: unisa-acg
- License: bsd-3-clause
- Language: Python
- Default Branch: release
- Homepage: http://dx.doi.org/10.5220/0012160700003543
- Size: 48.7 MB
Statistics
- Stars: 17
- Watchers: 0
- Forks: 3
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
Readme.md
Experimental validation of an Actor-Critic Model Predictive Force Controller for robot-environment interaction tasks
This repository collects the work conducted by a collaboration between UniSa, PoliMi and IDSIA. The repository is thought as a support and demonstration material for the homonymous paper.
Getting Started
This section explains how to setup the environment needed to launch the demos. First, MuJoCo needs to be installed, then some preliminary packages are required for the virtual environment creation.
Install MuJoCo 2.1.0
In order to install MuJoCo you need to:
- Create a hidden folder:
sh
cd
mkdir .mujoco
- Download MuJoCo library
sh
cd .mujoco
wget https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz
- Extract the MuJoCo downloaded library into the hidden folder
.mujoco
sh
tar -xf mujoco210-linux-x86_64.tar.gz -C .
rm mujoco210-linux-x86_64.tar.gz
- Add these lines to the
.bashrcfile:
sh
export LD_LIBRARY_PATH=$HOME/.mujoco/mujoco210/bin #substitute username with your username
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia #if nvidia graphic
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
export PATH="$LD_LIBRARY_PATH:$PATH"
- Source the
.bashrcfile:
sh
cd
source .bashrc
- Test the installation:
sh
cd ~/.mujoco/mujoco210/bin
./simulate ../model/humanoid.xml
Prerequisites
You will need Pip for the virtual environment packages installation, venv for the virtual environment and some other packages as prerequisites for Mujoco-Py. sudo can be needed for some installations.
- Pip
apt install pip
- Packages needed for Mujoco-Py
apt install libosmesa6-dev libgl1-mesa-glx libglfw3
apt install patchelf gcc
apt install python3-dev build-essential libssl-dev libffi-dev libxml2-dev
apt install libxslt1-dev zlib1g-dev libglew-dev
- Python-venv
apt install python3.8-venv
Clone the repository
Clone environment_identification repository
cd
git clone https://bitbucket.org/unisa-polimi-idsia/environment_identification/
Setting up the virtual environment
Create a python venv and activate it
python3 -m venv venv --python=python3.8 # Create the venv
source venv/bin/activate # Activate the venv
Install via pip the required packages into the virtual environment
cd environment_identification
python3 -m pip install -r requirements.txt
Substitute the base robosuite controllers
Substitute the files base_controller.py and osc.py in robosuite (substitute USERNAME with your user name in the command lines):
sh
cp dataset_generation_utilities/osc.py /home/USERNAME/venv/lib/python3.8/site-packages/robosuite/controllers # substitute USERNAME with your user name
cp dataset_generation_utilities/base_controller.py /home/USERNAME/venv/lib/python3.8/site-packages/robosuite/controllers # substitute USERNAME with your user name
Usage
Refer to the Readme.md in the ACMPFC folder.
Citation
If you find this code useful, please cite our work as:
bibtex
@inproceedings{Pozzi_2023_ACMPFC,
title = {Experimental Validation of an Actor-Critic Model Predictive Force Controller for Robot-Environment Interaction Tasks},
author = {Pozzi, Alessandro and Puricelli, Luca and Petrone, Vincenzo and Ferrentino, Enrico and Chiacchio, Pasquale and Braghin, Francesco and Roveda, Loris},
booktitle = {Proceedings of the 20th International Conference on Informatics in Control, Automation and Robotics},
year = {2023},
pages = {394--404},
publisher = {SCITEPRESS - Science and Technology Publications},
doi = {10.5220/0012160700003543},
url = {http://dx.doi.org/10.5220/0012160700003543}
}
If you want to cite this repo:
bibtex
@software{Pozzi_Experimental_Validation_of_2023,
author = {Pozzi, Alessandro and Puricelli, Luca and Petrone, Vincenzo and Ferrentino, Enrico and Chiacchio, Pasquale and Braghin, Francesco and Roveda, Loris},
license = {BSD-3-Clause},
month = feb,
title = {{Experimental Validation of an Actor-Critic Model Predictive Force Controller for Robot-Environment Interaction Tasks}},
url = {https://github.com/unisa-acg/actor-critic-model-predictive-force-controller},
year = {2023}
}
Authors
- Vincenzo Petrone - UniSa - Automatic Control Group
- Loris Roveda - IDSIA
Contributors
Master students
Owner
- Name: Automatic Control Group @ UNISA
- Login: unisa-acg
- Kind: organization
- Repositories: 2
- Profile: https://github.com/unisa-acg
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: >-
Experimental Validation of an Actor-Critic Model
Predictive Force Controller for Robot-Environment
Interaction Tasks
message: 'Related paper: http://dx.doi.org/10.5220/0012160700003543'
type: software
authors:
- given-names: Alessandro
family-names: Pozzi
email: alessandro11.pozzi@mail.polimi.it
affiliation: Politecnico di Milano
orcid: 'https://orcid.org/0000-0002-6460-4669'
- given-names: Luca
family-names: Puricelli
email: luca.puricelli@mail.polimi.it
affiliation: Politecnico di Milano
orcid: 'https://orcid.org/0000-0003-1736-0822'
- given-names: Vincenzo
family-names: Petrone
email: vipetrone@unisa.it
affiliation: University of Salerno
orcid: 'https://orcid.org/0000-0003-4777-1761'
- given-names: Enrico
family-names: Ferrentino
email: eferrentino@unisa.it
affiliation: University of Salerno
orcid: 'https://orcid.org/0000-0003-0768-8541'
- given-names: Pasquale
family-names: Chiacchio
email: pchiacchio@unisa.it
affiliation: University of Salerno
orcid: 'https://orcid.org/0000-0003-3385-8866'
- given-names: Francesco
family-names: Braghin
email: francesco.braghin@polimi.it
affiliation: Politecnico di Milano
orcid: 'https://orcid.org/0000-0002-0476-4118'
- given-names: Loris
family-names: Roveda
email: loris.roveda@supsi.ch
affiliation: IDSIA USI-SUPSI
orcid: 'https://orcid.org/0000-0002-4427-536X'
identifiers:
- type: doi
value: 10.5220/0012160700003543
description: >-
Related paper published in In Proceedings of the 20th
International Conference on Informatics in Control,
Automation and Robotics (ICINCO 2023) - Volume 1,
pages 394-404
repository-code: >-
https://github.com/unisa-acg/actor-critic-model-predictive-force-controller
url: 'https://www.youtube.com/watch?v=7ysG4lz5lVY'
abstract: >-
In industrial settings, robots are typically employed to
accurately track a reference force to exert on the sur-
rounding environment to complete interaction tasks.
Interaction controllers are typically used to achieve this
goal. Still, they either require manual tuning, which
demands a significant amount of time, or exact modeling of
the environment the robot will interact with, thus
possibly failing during the actual application. A
significant advancement in this area would be a
high-performance force controller that does not need
operator calibration and is quick to be deployed in any
scenario. With this aim, this paper proposes an
Actor-Critic Model Pre- dictive Force Controller (ACMPFC),
which outputs the optimal setpoint to follow in order to
guarantee force tracking, computed by continuously trained
neural networks. This strategy is an extension of a
reinforcement learning-based one, born in the context of
human-robot collaboration, suitably adapted to
robot-environment interaction. We validate the ACMPFC in a
real-case scenario featuring a Franka Emika Panda robot.
Com- pared with a base force controller and a
learning-based approach, the proposed controller yields a
reduction of the force tracking MSE, attaining fast
convergence: with respect to the base force controller,
ACMPFC reduces the MSE by a factor of 4.35.
keywords:
- physical robot-environment interaction
- artificial neural networks
- optimized interaction control
- impedance control
license: BSD-3-Clause
commit: d45c57be51106c66d2013cfbc040bd4e8ca6d6d6
date-released: '2023-02-20'
GitHub Events
Total
- Watch event: 12
- Push event: 4
- Fork event: 1
Last Year
- Watch event: 12
- Push event: 4
- Fork event: 1
Dependencies
- Pillow ==9.4.0
- PyOpenGL ==3.1.6
- PyQt5 ==5.15.7
- PyQt5-Qt5 ==5.15.2
- PyQt5-sip ==12.11.0
- free-mujoco-py ==2.1.6
- matplotlib ==3.6.3
- mujoco ==2.3.1.post1
- mujoco-py ==2.1.2.14
- numba ==0.53.1
- numpy ==1.23.5
- pandas ==1.5.2
- pycairo ==1.23.0
- pycparser ==2.21
- pyparsing ==3.0.9
- python-dateutil ==2.8.2
- python-qt-binding ==0.4.4
- pytictoc ==1.5.2
- pytz ==2022.7
- pyyaml ==6.0
- qt-dotgraph ==0.4.2
- qt-gui ==0.4.2
- qt-gui-cpp ==0.4.2
- qt-gui-py-common ==0.4.2
- robosuite ==1.3.1
- rospkg ==1.4.0
- scikit-learn ==1.2.0
- scipy ==1.10.0
- tensorboard ==2.11.2
- termcolor ==2.2.0
- torch ==1.13.1
- torchensemble ==0.1.3
- torchvision ==0.14.1
- Click ==7.0
- matplotlib ==3.1.2
- mujoco_py ==2.1.2.14
- numpy ==1.17.4
- opencv_python ==4.5.5.64
- pandas ==1.4.1
- Pillow ==9.4.0
- PyOpenGL ==3.1.6
- PyQt5 ==5.15.7
- PyQt5-Qt5 ==5.15.2
- PyQt5-sip ==12.11.0
- free-mujoco-py ==2.1.6
- matplotlib ==3.6.3
- mujoco ==2.3.1.post1
- mujoco-py ==2.1.2.14
- numba ==0.53.1
- numpy ==1.23.5
- pandas ==1.5.2
- pycairo ==1.23.0
- pycparser ==2.21
- pyparsing ==3.0.9
- python-dateutil ==2.8.2
- python-qt-binding ==0.4.4
- pytictoc ==1.5.2
- pytz ==2022.7
- qt-dotgraph ==0.4.2
- qt-gui ==0.4.2
- qt-gui-cpp ==0.4.2
- qt-gui-py-common ==0.4.2
- robosuite ==1.3.1
- scikit-learn ==1.2.0
- scipy ==1.10.0
- tensorboard ==2.11.2
- termcolor ==2.2.0
- torch ==1.13.1
- torchensemble ==0.1.3
- torchvision ==0.14.1