On-line force capability evaluation based on efficient polytope vertex search

by Antun Skuric, Vincent Padois, David Daney
Published at ICRA2021

New on-line polytope vertex search algorithm optimised for force and velocity polytope evaluation of serial robots.

This repository consists of

On-line force capability evaluation based on efficient polytope vertex search (submitted for presentation at ICRA 2021) from Auctus on Vimeo.

Matlab / Octave testing scripts

In the matlab_octave directory you can find two testing scripts intended for benchmarking of vertex search algorithms

panda_test_polytope_algorithms

and

ur5_test_polytope_algorithms

They are both testing the performance of three vertex search algorithms on Franka Emika Panda robot and UR5 robot:

On-line force capability evaluation based on efficient polytope vertex search
by Antun Skuric, Vincent Padois, David Daney

[f_vert, matrix_inverse_count] = polytope_auctus(Jacobian_mat,tau_min,tau_max);

Evaluation of Force Capabilities for Redundant manipulatiors
by P.Chiacchio, Pierrot et al.

[f_vert, matrix_inverse_count] = polytope_pierrot(Jacobian_mat,tau_min,tau_max);

Vertex search algorithm of convex polyhedron representing upper limb manipulation ability
by Sasaki et al.

[f_vert, matrix_inverse_count] = polytope_sasaki(Jacobian_mat,tau_min,tau_max);

Python capacity module

The work described in the paper is fully implemented in python in the frame of the pycapacity pip package. This module you can easily integrate in your python project by isntalling it using pip

pip install pycapacity

The pycapacity module implements multiple task-space capacity metrics for robots and human musculoskeletal models. The robot metrics are contained in the pycapacity.robot module.

import pycapacity.robot as capacity

Module functions


See demo_notebook.ipynb for one example use case of the module.

ROS panda capacity package and catkin

In the ROS_nodes directory you can find the implementation of the python capacity module for a specific use case of Panda robot. The directory consists of two ros packages:

Install the ros packages - using catkin

To run panda robot capacity calculation nodes first clone the repository and submodules:

git clone --recurse-submodules git@gitlab.inria.fr:askuric/polytope_vertex_search.git

panda_capacity package will calculate is an example implementation of the task space capacity calculation for for Franka Emika Panda robot in a form of a catkin ros package.

It uses the library KDL for reading the robot urdf ad it depends on

The three packages are shown in the ROS/packages folder. And you can find an example catkin workspace in the ROS/catkin_ws folder.

Create your won catkin workspace

Then create new catkin workspace:

mkdir ~/capacity_ws && cd ~/capacity_ws/
mkdir src && cd src

Then you can either copy the folders from ROS/packages into the capacity_ws/src folder for example:

cp -r ~/polytope_vertex_search/ROS/packages/* .

or clone the packages directly

git clone git@gitlab.inria.fr:auctus-team/people/antunskuric/ros_nodes/panda_capacity.git
git clone git@gitlab.inria.fr:auctus/panda/torque-qp-extended/franka_description.git
git clone git@gitlab.inria.fr:auctus-team/people/antunskuric/ros_nodes/hrl-kdl.git

Finally you can build the workspace

cd ..
catkin_make # catkin build

And you should be ready to go!

Dependancies

For visualizing the polytopes in RVIZ you will need to install the jsk-rviz-plugin

sudo apt install ros-*-jsk-rviz-plugins # melodic/kinetic... your ros version

And you'll need to install the pip package pycapacity

pip install pycapacity

One panda simulation

Once when you have everything installed you will be able to run the interactive simulations and see the polytope being visualised in real-time.

To see a simulation with one panda robot and its force and velocity manipulatibility ellipsoid and polytope run the command in the terminal.

source ~/capacity_ws/devel/setup.bash 
roslaunch panda_capacity one_panda.launch

Two panda simulation

To demonstrate the collaborative robotics applications of our algorithm we have provided an interactive simulation of two panda robots where use can visualise their separate and joint force capacities.

For the interactive simulation of two panda robots with their own capacity measures you can simply run the commands:

source ~/capacity_ws/devel/setup.bash 
roslaunch panda_capacity two_panda.launch

Minkowski sum of polytopes

Open a new terminal and run the command:

rosrun panda_capacity panda_force_polytope_sum.py

Intersection of polytopes

Open a new terminal and run the command:

rosrun panda_capacity panda_force_polytope_intersection.py

results matching ""

    No results matching ""