Science Score: 44.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
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: agimus-project
  • License: bsd-2-clause
  • Language: C++
  • Default Branch: main
  • Size: 6.47 MB
Statistics
  • Stars: 29
  • Watchers: 5
  • Forks: 7
  • Open Issues: 3
  • Releases: 1
Created about 2 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

COLMPC: Collision Avoidance for MPC

This repo is addon residuals for Crocoddyl for collision avoidance for trajectory optimisation and model predictive control (MPC). It is composed of two different constraints: - The first one is ResidualDistanceCollision, defined in depths in this paper. Simply, it is the distance between the closest points of the two objects in the collision pair given in input of the residual. - The second one is ResidualModelVelocityAvoidance, defined in depths in this paper. Not only this residual takes the distance between the closest points of the two objects but their approach speed toward each other as well. However, this second residual only works on ellipsoids and spheres for now.

An in-depth comparison is here and a practical comparison is provided here along 3 different scenarios.

Dependencies

For OCP & MPC scripts:

  • Coal (tag: v3.0.0) for collision computations.
  • Pinocchio (tag: v3.3.0) fast rigid body dynamics.
  • Crocoddyl (tag: v2.1.0) framework for the solver.

For visualization:

For the examples:

Installation

From source

Coal & Pinocchio must be built from sources. Build pinocchio with the flag : WITHCOLLISIONSUPPORT=ON.

[!NOTE] Don't forget to switch to the right commits!

Using Docker

You can run examples with docker with following command: bash docker container run -it --rm -p 7000:7000 ghcr.io/agimus-project/colmpc:v0.2.0 python colmpc/examples/main_ocp.py --scene 1

Possible issue

  • If you have a problem with FakeCollisionGeometry, it is likely that the linking of Pinocchio with Coal wasn't done properly. Verify that you have the right commits & the right compilation flags.
  • The main branch of Coal doesn't compute well the closest points and thus, this repo needs to be built upon the devel branch. If it built but doesn't avoid collision, make sure that you didn't built the main branch.

For the OCP part:

To see the different scenarios with collision avoidance simply run in the main directory python examples/main_ocp.py -s i, where i is the index of the scenario, going from 1 to 3.

As the code is still in developpement, the code is constantly moving and sometimes, examples do not work. Hence, do not hesitate to contact me at ahaffemaye@laas.fr.

Citation

To cite COLMPC in your academic research, please use the following bibtex entry: ```bibtex @inproceedings{haffemayermodel2024, title = {Model predictive control under hard collision avoidance constraints for a robotic arm}, author = {Haffemayer, Arthur and Jordana, Armand and Fourmy, Médéric and Wojciechowski, Krzysztof and Saurel, Guilhem and Petrík, Vladimír and Lamiraux, Florent and Mansard, Nicolas}, booktitle={Ubiquitous Robots (UR)} year = {2024}, }

@unpublished{haffemayer:hal-04707324, TITLE = {{Collision Avoidance in Model Predictive Control using Velocity Damper}}, AUTHOR = {Haffemayer, Arthur and Jordana, Armand and de Matte{\"i}s, Ludovic and Wojciechowski, Krzysztof and Lamiraux, Florent and Mansard, Nicolas}, URL = {https://laas.hal.science/hal-04707324}, NOTE = {working paper or preprint}, YEAR = {2024}, MONTH = Sep, PDF = {https://laas.hal.science/hal-04707324v1/file/ICRA20251-11.pdf}, HALID = {hal-04707324}, HALVERSION = {v1}, } ```

Owner

  • Name: agimus-project
  • Login: agimus-project
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
title: 'Model predictive control under hard collision avoidance constraints for a robotic arm'
message: 'If you use this software, please cite it using the metadata from this file.'
type: conference-paper
authors:
  - given-names: Arthur
    family-names: Haffemayer
    email: ahaffemaye@laas.fr
  - given-names: Armand
    family-names: Jordana
  - given-names: Médéric
    family-names: Fourmy
  - given-names: Krzysztof
    family-names: Wojciechowski
  - given-names: Guilhem
    family-names: Saurel
  - given-names: Vladimír
    family-names: Petrík
  - given-names: Florent Lamiraux
    family-names: Lamiraux
  - given-names: Nicolas
    family-names: Mansard
identifiers:
  - type: url
    value: 'https://dumas.ccsd.cnrs.fr/AGIMUS/hal-04425002v2'
  - type: repository-code
    value: 'https://github.com/agimus-project/colmpc'
url: 'https://gepettoweb.laas.fr/articles/haffemayer2024.html'
abstract: >
  We design a method to control the motion of a manipulator
  robot while strictly enforcing collision avoidance in a
  dynamic obstacle field. We rely on model predictive
  control while formulating collision avoidance as a hard
  constraint. We express the constraint as the requirement
  for a signed distance function to be positive between
  pairs of strictly convex objects. Among various
  formulations, we provide a suitable definition for this
  signed distance and for the analytical derivatives needed
  by the numerical solver to enforce the constraint. The
  method is completely implemented on a manipulator "Panda"
  robot, and the efficient open-source implementation is
  provided along with the paper. We experimentally
  demonstrate the efficiency of our approach by performing
  dynamic tasks in an obstacle field while reacting to
  non-modeled perturbations.
license: BSD-2-Clause

GitHub Events

Total
  • Issues event: 6
  • Watch event: 8
  • Delete event: 9
  • Issue comment event: 28
  • Push event: 106
  • Pull request review comment event: 8
  • Pull request review event: 11
  • Pull request event: 98
  • Fork event: 1
  • Create event: 14
Last Year
  • Issues event: 6
  • Watch event: 8
  • Delete event: 9
  • Issue comment event: 28
  • Push event: 106
  • Pull request review comment event: 8
  • Pull request review event: 11
  • Pull request event: 98
  • Fork event: 1
  • Create event: 14

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 3
  • Total pull requests: 55
  • Average time to close issues: 12 days
  • Average time to close pull requests: 4 days
  • Total issue authors: 3
  • Total pull request authors: 6
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.47
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 22
Past Year
  • Issues: 3
  • Pull requests: 55
  • Average time to close issues: 12 days
  • Average time to close pull requests: 4 days
  • Issue authors: 3
  • Pull request authors: 6
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.47
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 22
Top Authors
Issue Authors
  • MuziYT (2)
  • nim65s (1)
  • MaximilienNaveau (1)
  • jmirabel (1)
  • ArthurH91 (1)
Pull Request Authors
  • pre-commit-ci[bot] (21)
  • hrp2-14 (17)
  • nim65s (11)
  • ArthurH91 (11)
  • Kotochleb (10)
  • MaximilienNaveau (4)
  • jmirabel (2)
  • LudovicDeMatteis (1)
Top Labels
Issue Labels
bug (1)
Pull Request Labels

Dependencies

pyproject.toml pypi