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

actor-critic force-control impedance-control neural-networks reinforcement-learning robotics
Last synced: 6 months ago · JSON representation ·

Repository

Related paper: "Experimental Validation of an Actor-Critic Model Predictive Force Controller for Robot-Environment Interaction Tasks"

Basic Info
Statistics
  • Stars: 17
  • Watchers: 0
  • Forks: 3
  • Open Issues: 0
  • Releases: 0
Topics
actor-critic force-control impedance-control neural-networks reinforcement-learning robotics
Created about 3 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

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:

  1. Create a hidden folder:

sh cd mkdir .mujoco

  1. Download MuJoCo library

sh cd .mujoco wget https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz

  1. 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

  1. Add these lines to the .bashrc file:

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"

  1. Source the .bashrc file:

sh cd source .bashrc

  1. 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

Contributors

Master students

Back to top

Owner

  • Name: Automatic Control Group @ UNISA
  • Login: unisa-acg
  • Kind: organization

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

ACMPFC/requirements_ACMPFC.txt pypi
  • 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
mujoco_panda_master/mujoco_panda/examples/simple_exp/requirements.txt pypi
  • 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
requirements.txt pypi
  • 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