Giter Site home page Giter Site logo

roahmlab / armour Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 2.0 27.6 MB

Autonomous Robust Manipulation via Optimization with Uncertainty-aware Reachability

Home Page: https://roahmlab.github.io/armour/

License: GNU General Public License v3.0

MATLAB 74.04% C++ 5.68% Cuda 16.15% C 1.82% Shell 0.06% M 0.05% HTML 2.21%

armour's Introduction

Autonomous Robust Manipulation via Optimization with Uncertainty-aware Reachability

Authors: Jonathan Michaux ([email protected]), Patrick Holmes ([email protected]), Bohao Zhang ([email protected]), Che Chen ([email protected]), Baiyue Wang ([email protected]), Shrey Sahgal ([email protected]), Tiancheng Zhang ([email protected]), Sidhartha Dey ([email protected]), Shreyas Kousik ([email protected]), and Ram Vasudevan ([email protected]).

Introduction

Robotic manipulators have the potential to assist humans in a wide variety of collaborative settings, such as manufacturing, package delivery, and in-home care. However, such settings are typically constrained and uncertain; nevertheless, the robot must operate in a safety-critical fashion. This makes it challenging to directly apply high-torque manipulators that can ignore uncertainty due to their own mass and the mass of manipulated objects. Instead, it is necessary to develop motion planning and control strategies that can operate safely by accounting for these types of uncertainty in real-time. In this context, safety means avoiding collisions while obeying joint position, velocity, and torque limits. To address the safety challenge, this paper proposes Autonomous Robust Manipulation via Optimization with Uncertainty-aware Reachability, a method for guaranteed-safe, real-time manipulator motion planning and control. An overview of this method is given in figure below.

Dependency

The repo has been verified on MATLAB R>=2021b and Ubuntu >= 20.04

This repo depends on the following repos:

You need to download this repo and add to your MATLAB path.

This repo assumes that you have installed the following libraries:

  • libboost-dev
  • libeigen3-dev (3.3.7)
  • libipopt
  • libcoinhsl

Install Boost C++ library

Simply run the following command:

 sudo apt install libboost-dev 

Install Eigen3

In this work, we use Boost C++ library for interval arithmetic computation. We further put intervals into Eigen library to create interval matrix and interval vector. However, currently we only know how to do this for Eigen 3.3.7. We have not found any solutions to dump Boost intervals to the latest version of Eigen yet. If you are working in Ubuntu 20.04, the default Eigen library version should be Eigen 3.3.7, so you can install the correct version of Eigen simply by running the following command:

 sudo apt install libeigen3-dev 

If you are working in later version of Ubuntu, you would have to manually install Eigen 3.3.7. We provide a possible way to do this in the instructions below. Download eigen-3.3.7 by following this link.

 cd ~/Downloads
 tar -xvzf eigen-3.3.7.tar.gz
 mv eigen-3.3.7 /your/favorite/path/
 cd /your/favorite/path/eigen-3.3.7
 mkdir build && cd $_
 cmake ..
 sudo make
 sudo make install

Install Ipopt and HSL (TODO: Maybe add more introduction, but will be fairly long)

libipopt and libcoinhsl could be very annoying to install and to work with MATLAB. Suppose libipopt and libcoinhsl are both installed in /usr/local/lib. You need to add that path to both user's environmental variable 'LD_LIBRARY_PATH' and MATLAB's environment variable 'LD_LIBRARY_PATH' Check here and here for more information.

Building

Run

  • initialize.m
  • kinova_src/initialize.m

in MATLAB before you run any other scripts!

Usage

Before running any scripts, make sure you run the initalization scripts successfully and put the Ipopt libraries in the proper path.

All of our results in the paper is developed based on Kinova Gen3. All of the related test scripts are included in kinova_src. Check the README in that folder for more information.

License

ARMOUR is released under a GNU license. For a list of all code/library dependencies, please check dependency section. For a closed-source version of ARMOUR for commercial purpose, please contact the authors.

An overview of the theoretical and implementation details has been published in arxiv. If you use ARMOUR in an academic work, please cite using the following BibTex entry:

@article{article,
author = {Michaux, Jonathan and Holmes, Patrick and Zhang, Bohao and Chen, Che and Wang, Baiyue and Sahgal, Shrey and Zhang, Tiancheng and Dey, Sidhartha and Kousik, Shreyas and Vasudevan, Ram},
year = {2023},
month = {01},
pages = {},
title = {Can't Touch This: Real-Time, Safe Motion Planning and Control for Manipulators Under Uncertainty}
doi={10.48550/arXiv.2301.13308}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.