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
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
Metadata Files
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:
- MiM Solvers (tag: v0.0.5) solver for the SQP and Constrained-SQP solver, and Mim Robot.
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
- Repositories: 1
- Profile: https://github.com/agimus-project
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)