Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Devel #17

Open
wants to merge 108 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
63c9394
CI & Badges
nim65s Aug 20, 2020
3bafdc2
Merge pull request #10 from nim65s/devel
nim65s Aug 20, 2020
16eb515
Cleaning and refactoring
nim65s Aug 20, 2020
363d543
optimize generate problem methods
Apr 12, 2021
1ddce3b
switch to dictionary for biped - complex1 works
Apr 13, 2021
53dfcbd
small improvments
Apr 14, 2021
956d4a7
add heightmap tools
Apr 13, 2021
e3027a3
add heightmap_generator
Apr 21, 2021
2ace28a
minor changes
Apr 21, 2021
da6a4f1
test complex1 scenario with generic or biped planner
Apr 23, 2021
caf8998
add weights to costs
Apr 23, 2021
827546b
remove plot_plytopes and polytope_conversion_utils
Apr 23, 2021
441e00f
update stand_alone_scenarios
Apr 23, 2021
16a4e7b
add anymal and solo stand_alone scenarios
Apr 27, 2021
15c9831
fix bug and add surface_indices to problem data
Apr 29, 2021
a000b38
answer gulhem style review
Apr 30, 2021
75615e6
change surfaces path
Apr 30, 2021
e2ad8b0
fix surface_indices return
Apr 30, 2021
2a99262
Merge pull request #12 from FannyRis/dictionary
stonneau May 6, 2021
ae35e14
smal_fixes
May 7, 2021
c4e4aa7
Merge pull request #13 from FannyRis/devel
stonneau May 7, 2021
3a370c8
add planner_gait and constraint_gait
Apr 30, 2021
87fb201
first test with gait planner
May 6, 2021
78af130
add solo_trot
May 6, 2021
cc27455
com optional and fix gait planner
May 7, 2021
50f3ca8
working gait_planner
May 7, 2021
21c5c47
fix sparsity for gait planner
May 17, 2021
6ed8833
gait planner updated
May 20, 2021
3dc394c
fix bugs
May 20, 2021
5e4bb82
fix sparsity for gait planner fixed
May 20, 2021
a418c97
fix sparsity for gait of not
May 21, 2021
eab479a
update solo_stairs.py
May 21, 2021
0014556
anymal_stairs
May 21, 2021
f79f3fc
Optional com in planner
May 25, 2021
c6e38d7
fixed unknown projection 3d on some matplotlib versions
stonneau May 7, 2021
bf37cc3
problem definition does not require rbprm robot
stonneau May 11, 2021
f9841f5
anymal stairs working
stonneau May 18, 2021
5d1f302
cvxpy uses CBC
stonneau May 21, 2021
b1ab32c
added quadratic cost for cvxpy
stonneau May 21, 2021
bcaf0b5
Merge pull request #2 from stonneau/merge_fann_fails
FannyRis May 25, 2021
873851c
anymal_stairs without rbprm
May 26, 2021
be215b7
working hrp2 stand alone scenarios
May 26, 2021
b80a8ca
talos stand_alone_scenarios
May 26, 2021
6218939
solo_stairs stand_alone scenario working
May 26, 2021
5b0230c
add hrp2 constraint files
May 26, 2021
afcc0e2
fix stairs solo surfaces
May 26, 2021
986818b
solo_trot stand_alone_scenario
May 26, 2021
a7dd297
dont compute com constraints in generation
May 26, 2021
4142945
update talos planner scenarios
May 26, 2021
5d1b509
update hrp2 planner scenario -not_working
May 26, 2021
16bb2ba
remove old generic planner
May 27, 2021
0dff9b0
CBC works like sl1m, first feasibility then QP
stonneau May 28, 2021
fa74ff5
[BUG FIX] fix target position cost
stonneau Jun 1, 2021
590c839
fix plot_tools
Jun 1, 2021
c7aff90
Merge pull request #3 from stonneau/stand_alone
FannyRis Jun 1, 2021
1ecb7c5
change M and None as initial feet positions allowed
Jun 2, 2021
60f8304
Merge pull request #14 from FannyRis/gait_planner
stonneau Jun 7, 2021
3a1f02b
When using gurobi no changes in solve_MIP
Jun 4, 2021
3806380
fix step_size cost big
Jun 16, 2021
b40b7d1
fix scenarios
Jun 17, 2021
3bc9c48
fix pr
Jun 22, 2021
de2dcd8
fot test
Jun 29, 2021
ac6754f
remove useless imports
nim65s Jul 1, 2021
f59236d
Add cost function to take into account distance from shoulders
Jul 2, 2021
7c3bec4
fix plotting
Jul 13, 2021
acc67a8
Merge pull request #16 from nim65s/devel
nim65s Aug 18, 2021
c4dde8f
update problem_definition_talos
Aug 31, 2021
52e01c9
Merge pull request #15 from FannyRis/gait_planner
stonneau Oct 22, 2021
ff94d60
Fix typos
wxmerkt Nov 24, 2021
9c036e9
Fix literal comparison
wxmerkt Nov 24, 2021
fa985c9
Fix indentation
wxmerkt Nov 24, 2021
70dd9d6
Add package.xml for compatibility with catkin/colcon environments
wxmerkt Nov 24, 2021
05ddeb0
Typo/copy-paste doc
wxmerkt Dec 13, 2021
07a41ee
Add more Python dependencies incl. newly introduced rosdep keys
wxmerkt Dec 17, 2021
94648e2
Merge pull request #18 from ori-drs/topic/fix-build-in-catkin-env
thomascbrs Jan 19, 2022
9a594e4
try com cost 3D
Nov 22, 2021
5e8f4e3
Raise error if the number of potential surfaces not consistent with m…
thomascbrs Jan 19, 2022
bed5a36
Separate CoM cost in X, Y and Z axis to allow different weight
thomascbrs Jan 19, 2022
99730ad
New test file for Anymal, trotting and walking in stairs
thomascbrs Jan 19, 2022
1a216b4
Add new costs in com_cost list
thomascbrs Jan 19, 2022
fd767b3
Add SL1M solver in Anymal trot example, but not working properly
thomascbrs Jan 19, 2022
2f8e9a7
Merge pull request #20 from loco-3d/debug-anymal-gait
FannyRis Feb 21, 2022
0b35397
add dummy .pre-commit-config.yaml
nim65s May 4, 2022
6cdab23
Merge pull request #24 from nim65s/devel
nim65s May 6, 2022
992626b
[Fix] getSurfacesFromGuide and continuous functions not adding the ri…
JasonChmn Apr 27, 2022
6934cc2
[Fix] wrong use of sorted() function, the list was not sorted.
JasonChmn Apr 27, 2022
69b408d
[Fix] in generate_combinatorial, decided surfaces were not fixed.
JasonChmn May 11, 2022
c1d67c4
Remove stop condition when combinatorics too big to handle + Add vari…
JasonChmn May 11, 2022
cb3295e
[Fix] Gait and Biped, indices of selected surfaces were not right + t…
JasonChmn May 11, 2022
42476f7
fix the usage of solve_L1_combinatorial
MaximilienNaveau May 16, 2022
ccb47fc
fix some demos and update the README a little bit
MaximilienNaveau May 4, 2022
bea599d
update readme
MaximilienNaveau May 4, 2022
9d42565
Update Readme
MaximilienNaveau May 16, 2022
f2bd180
update the path fetchinf for the constraints in the examples
MaximilienNaveau May 18, 2022
aa9d99d
Add notes on valid settings for solo_trot
wxmerkt Dec 13, 2021
a0b2a14
anymal_stairs: Add option for SL1M, add costs, remove use of INSTALL_…
wxmerkt Dec 13, 2021
e0b2e13
Add anymal_trot.py standalone example. Not yet fully working
wxmerkt Dec 16, 2021
47f7d73
fix the surface defintion of the quadruped standalones
MaximilienNaveau May 18, 2022
639d9b2
fix sl1m/stand_alone_scenarios/anymal_trot.py
MaximilienNaveau May 18, 2022
46dce8c
fix the sparsity for several moving foot
MaximilienNaveau May 19, 2022
6973ad0
[format] format the surfaces for better reading
MaximilienNaveau May 19, 2022
19120b8
fix standalone examples
MaximilienNaveau May 19, 2022
73f9fb4
Mnaveau/format (#26)
MaximilienNaveau Dec 16, 2022
302c6f6
Ensure Python2/3 compatibility
MaximilienNaveau Jan 10, 2023
d17f054
Revert "Ensure Python2/3 compatibility"
MaximilienNaveau Jan 11, 2023
e4ef9ef
Ensure Python2/3 compatibility
MaximilienNaveau Jan 10, 2023
e66ebfb
Add anymal standalone scenario with inclined surfaces
thomascbrs Feb 16, 2023
38656a4
[Fix] Fix inequalities for inclined surfaces
thomascbrs Feb 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.vscode/*
build/*
*.pyc
*.aux
*.glo
Expand Down
1 change: 1 addition & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include: https://rainboard.laas.fr/project/sl1m/.gitlab-ci.yml
8 changes: 8 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.1.0
hooks:
- id: check-json
- id: check-symlinks
- id: check-toml
- id: check-yaml
80 changes: 50 additions & 30 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,67 +22,72 @@ FINDPYTHON()
SET(${PROJECT_NAME}_SOURCES
__init__.py
constants_and_tools.py
solver.py
generic_solver.py
fix_sparsity.py
planner_l1.py
planner.py
problem_data.py
constraints.py
constraints_biped.py
planner_generic.py
planner_biped.py
problem_definition.py
qp.py
)

SET(${PROJECT_NAME}_PLANNER_SCENARIOS_SOURCES
SET(${PROJECT_NAME}_PLANNER_SCENARIOS_HRP2_SOURCES
__init__.py
complex1.py
complex.py
escaliers.py
flat_ground.py
lp_complex1.py
)
SET(${PROJECT_NAME}_PLANNER_SCENARIOS_HRP2_PATH_SOURCES
lp_complex_path.py
lp_complex.py
lp_stair_bauzil_10.py
lp_stair_bauzil_hrp2_path_10.py
lp_stair_bauzil_hrp2_path.py
lp_stair_bauzil.py
stairs_10cm.py
lp_stair_bauzil_hrp2_path_10.py
)

SET(${PROJECT_NAME}_PLANNER_SCENARIOS_TALOS_SOURCES
__init__.py

complex1.py
constraints.py
lp_complex1_path.py
lp_complex1.py
complex.py
stairs.py
rubbles.py
)
SET(${PROJECT_NAME}_PLANNER_SCENARIOS_TALOS_PATH_SOURCES
lp_complex_path.py
lp_ramp_path.py
lp_rubbles_path.py
lp_slalom_debris_path.py
lp_slalom_debris.py
maze.py
ramp_noGuide.py
rubbles.py
rubble_stairs.py
slalom_debris.py
lp_stairs_path.py
)

SET(${PROJECT_NAME}_RBPRM_SOURCES
__init__.py
narrow_convex_hull.py
constants_and_tools.py
surfaces_from_planning.py
)

SET(${PROJECT_NAME}_STANDALONE_SCENARIOS_SOURCES
__init__.py
complex.py
constraints.py
escaliers.py
hrp2_complex.py
hrp2_stairs.py
talos_ramp.py
talos_rubble_stairs.py
problem_definition_talos.py
problem_definition_hrp2.py
)

SET(${PROJECT_NAME}_STANDALONE_SURFACES_SOURCES
__init__.py
stair_surfaces.py
complex_surfaces.py
flat_ground.py
ramp_surfaces.py
inclined_surfaces.py
)
SET(${PROJECT_NAME}_TOOLS_SOURCES
__init__.py
geom_utils.py
obj_to_constraints.py
plot_plytopes.py
plot_utils.py
polytope_conversion_utils.py
plot_tools.py
heightmap_tools.py
transformations.py
)

Expand All @@ -97,11 +102,26 @@ ENDFOREACH(src ${PROJECT_NAME}_PLANNER_SCENARIOS_SOURCES)
FOREACH(src ${${PROJECT_NAME}_PLANNER_SCENARIOS_TALOS_SOURCES})
PYTHON_INSTALL_ON_SITE(${PROJECT_NAME}/planner_scenarios/talos ${src})
ENDFOREACH(src ${PROJECT_NAME}_PLANNER_SCENARIOS_TALOS_SOURCES)
FOREACH(src ${${PROJECT_NAME}_PLANNER_SCENARIOS_TALOS_PATH_SOURCES})
PYTHON_INSTALL_ON_SITE(${PROJECT_NAME}/planner_scenarios/talos/path_files ${src})
ENDFOREACH(src ${PROJECT_NAME}_PLANNER_SCENARIOS_TALOS_PATH_SOURCES)

FOREACH(src ${${PROJECT_NAME}_PLANNER_SCENARIOS_HRP2_SOURCES})
PYTHON_INSTALL_ON_SITE(${PROJECT_NAME}/planner_scenarios/hrp2 ${src})
ENDFOREACH(src ${PROJECT_NAME}_PLANNER_SCENARIOS_HRP2_SOURCES)

FOREACH(src ${${PROJECT_NAME}_PLANNER_SCENARIOS_HRP2_PATH_SOURCES})
PYTHON_INSTALL_ON_SITE(${PROJECT_NAME}/planner_scenarios/hrp2/path_files/ ${src})
ENDFOREACH(src ${PROJECT_NAME}_PLANNER_SCENARIOS_HRP2_PATH_SOURCES)

FOREACH(src ${${PROJECT_NAME}_RBPRM_SOURCES})
PYTHON_INSTALL_ON_SITE(${PROJECT_NAME}/rbprm ${src})
ENDFOREACH(src ${PROJECT_NAME}_RBPRM_SOURCES)

FOREACH(src ${${PROJECT_NAME}_STANDALONE_SURFACES_SOURCES})
PYTHON_INSTALL_ON_SITE(${PROJECT_NAME}/stand_alone_scenarios/surfaces ${src})
ENDFOREACH(src ${PROJECT_NAME}_STANDALONE_SURFACES_SOURCES)

FOREACH(src ${${PROJECT_NAME}_STANDALONE_SCENARIOS_SOURCES})
PYTHON_INSTALL_ON_SITE(${PROJECT_NAME}/stand_alone_scenarios ${src})
ENDFOREACH(src ${PROJECT_NAME}_STANDALONE_SCENARIOS_SOURCES)
Expand Down
74 changes: 68 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,71 @@
Python dependencies:
scipy
quadprog
matplotlib
pycddlib
cvxpy
# sl1m

[![Pipeline status](https://gitlab.laas.fr/$ORG/sl1m/badges/master/pipeline.svg)](https://gitlab.laas.fr/loco-3d/sl1m/commits/master)
[![Coverage report](https://gitlab.laas.fr/loco-3d/sl1m/badges/master/coverage.svg?job=doc-coverage)](http://projects.laas.fr/gepetto/doc/loco-3d/sl1m/master/coverage/)

## Install

> 📝 Upon installing via the `robotpkg` *ppa* please ensure the correct version of
python is noted, e.g. `sudo apt install robotpkg-py38-quadprog` means you
install the `quadprog` software with `Python3.8` as it's dependency.

### Python dependencies:


python -m pip install scipy
sudo apt install robotpkg-py38-quadprog
python -m pip install matplotlib
python -m pip install pycddlib
python -m pip install cvxpy

:warning: this package requires gurobi :warning:
A free academic license can be obtained at https://www.gurobi.com

### Demo dependencies:

These are the dependencies for the robot and rbprm server.
```
sudo apt install -y robotpkg-py38-hpp-rbprm-corba
```

### Installation troubleshooting:

- If you realize you a python package such as `rbprm`, `anymal_rbprm`,
`solo_rbprm`, or `talos_rbprm` Please so the following:

```
sudo apt install -y robotpkg-py38-hpp-rbprm-corba \
robotpkg-py38-hpp-rbprm \
robotpkg-py38-anymal-rbprm \
robotpkg-py38-solo-rbprm \
robotpkg-py38-talos-rbprm
```

## Run demo:

```
# Source you install prefix.
source ~/devel/workspace_sl1m/install/setup.bash
# Locate where the Solo12 specific data are.
export SOLO3D_ENV_DIR=/home/mnaveau/Documents/cloud_laas/Shared/Solo3D/
# Point toward you HPP installation folder
export INSTALL_HPP_DIR=/opt/openrobots/share
# Add the data folder to the ROS environment for urdf parsing.
export ROS_PACKAGE_PATH=/opt/openrobots/share/example-robot-data/robots:${SOLO3D_ENV_DIR}:$ROS_PACKAGE_PATH
```

Execute the scripts:

```bash
python sl1m/stand_alone_scenarios/anymal_stairs.py
python sl1m/stand_alone_scenarios/anymal_trot.py
python sl1m/stand_alone_scenarios/data.pickle
python sl1m/stand_alone_scenarios/hrp2_complex.py
python sl1m/stand_alone_scenarios/hrp2_stairs.py
python sl1m/stand_alone_scenarios/problem_definition_hrp2.py
python sl1m/stand_alone_scenarios/problem_definition_talos.py
python sl1m/stand_alone_scenarios/solo_stairs.py
python sl1m/stand_alone_scenarios/solo_trot.py
python sl1m/stand_alone_scenarios/talos_ramp.py
python sl1m/stand_alone_scenarios/talos_rubble_stairs.py
```
27 changes: 27 additions & 0 deletions package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version='1.0'?>
<package format='3'>
<name>sl1m</name>
<version>0.1.1</version>
<description>Implementation of the sl1m solver for multi contact planning</description>

<maintainer email='[email protected]'>Guilhem Saurel</maintainer>
<license>BSD</license>

<author>Steve Tonneau</author>

<!-- The following tags are recommended by REP-136 -->
<exec_depend condition="$ROS_VERSION == 1">catkin</exec_depend>
<buildtool_depend>cmake</buildtool_depend>
<depend condition="$ROS_PYTHON_VERSION == 2">python</depend>
<depend condition="$ROS_PYTHON_VERSION == 3">python3</depend>
<depend condition="$ROS_PYTHON_VERSION == 2">python-numpy</depend>
<depend condition="$ROS_PYTHON_VERSION == 3">python3-numpy</depend>
<depend condition="$ROS_PYTHON_VERSION == 2">python-matplotlib</depend>
<depend condition="$ROS_PYTHON_VERSION == 3">python3-matplotlib</depend>
<depend>python3-cvxpy-pip</depend>
<depend>python3-glpk-pip</depend>
<depend>python3-gurobipy-pip</depend>
<export>
<build_type>cmake</build_type>
</export>
</package>
Loading