I tried installing the library as documented in the README and running the example.
By installing the example as documented in the README:
(castest) traversaro@IITICUBLAP257:~$ pip install "liecasadi @ git+https://github.com/ami-iit/lie-casadi.git"
Collecting liecasadi@ git+https://github.com/ami-iit/lie-casadi.git
Cloning https://github.com/ami-iit/lie-casadi.git to /tmp/pip-install-jld36pa2/liecasadi_02974e872e9a41da95da2ba742a2bb6a
Running command git clone --filter=blob:none --quiet https://github.com/ami-iit/lie-casadi.git /tmp/pip-install-jld36pa2/liecasadi_02974e872e9a41da95da2ba742a2bb6a
Resolved https://github.com/ami-iit/lie-casadi.git to commit 4f538f354781243e600ce771c9236a43df83745d
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting numpy>=1.20
Using cached numpy-1.22.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.8 MB)
Collecting casadi
Using cached casadi-3.5.5-cp38-none-manylinux1_x86_64.whl (34.2 MB)
Building wheels for collected packages: liecasadi
Building wheel for liecasadi (pyproject.toml) ... done
Created wheel for liecasadi: filename=liecasadi-0.1.dev39-py3-none-any.whl size=7882 sha256=078ab323d4479d39e5aa0a577a6150df54d9224d416b94c89d26adc5db0616be
Stored in directory: /tmp/pip-ephem-wheel-cache-v0j9nv_a/wheels/7a/26/6a/62ad9ab4f348e178408f7d79d44555ed51514496949fcdb644
Successfully built liecasadi
Installing collected packages: casadi, numpy, liecasadi
Successfully installed casadi-3.5.5 liecasadi-0.1.dev39 numpy-1.22.1
You can see that casadi got installed via pip.
Then, I tried to run the example and the example fails with:
(castest) traversaro@IITICUBLAP257:~/liecasadi/examples$ python manifold_optimization.py
Traceback (most recent call last):
File "manifold_optimization.py", line 4, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
This is due to matplotlib missing, and it make sense that this is not part of the dependencies of the library. If I then install matplot lib, then the example fails with:
(castest) traversaro@IITICUBLAP257:~/liecasadi/examples$ python manifold_optimization.py
Traceback (most recent call last):
File "manifold_optimization.py", line 9, in <module>
from liecasadi import SO3, SO3Tangent
File "/home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages/liecasadi/__init__.py", line 3, in <module>
from .so3 import SO3, SO3Tangent
File "/home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages/liecasadi/so3.py", line 9, in <module>
from attr import field
ModuleNotFoundError: No module named 'attr'
This is a bit more tricky, as it requires to install the attrs
package (note the final s, as the attr
package will not work).
After installing also attr
, I get this error:
(castest) traversaro@IITICUBLAP257:~/liecasadi/examples$ python manifold_optimization.py
Traceback (most recent call last):
File "manifold_optimization.py", line 21, in <module>
opti.subject_to(quat[k + 1] == (vector_SO3 + rotation_SO3).as_quat())
File "/home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages/casadi/casadi.py", line 28146, in subject_to
ret = self._subject_to(*args)
File "/home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages/casadi/casadi.py", line 27470, in _subject_to
return _casadi.Opti__subject_to(self, *args)
RuntimeError: Error in Opti::subject_to [OptiNode] at .../casadi/core/optistack.cpp:96:
.../casadi/core/optistack_internal.cpp:905: Assertion "!g.is_constant()" failed:
You passed a constant to `subject_to`. You need a symbol to form a constraint.
Furthermore, even if I did not reached this point, I noticed that the example refers ma27
(https://github.com/ami-iit/liecasadi/blob/c79d29e87d6d654e78d258a10bac9b2bbae35773/examples/manifold_optimization.py#L47), but by following the instruction of the repo casadi
gets installed by pip
, and I do not think that that version of casadi has hsl support enabled.
Environments in which I run the tests:
(castest) traversaro@IITICUBLAP257:~/liecasadi/examples$ mamba list
# packages in environment at /home/traversaro/mambaforge/envs/castest:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 1_gnu conda-forge
attrs 21.4.0 pypi_0 pypi
ca-certificates 2021.10.8 ha878542_0 conda-forge
casadi 3.5.5 pypi_0 pypi
cycler 0.11.0 pypi_0 pypi
fonttools 4.29.1 pypi_0 pypi
kiwisolver 1.3.2 pypi_0 pypi
ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 11.2.0 h1d223b6_12 conda-forge
libgomp 11.2.0 h1d223b6_12 conda-forge
libnsl 2.0.0 h7f98852_0 conda-forge
libstdcxx-ng 11.2.0 he4da1e4_12 conda-forge
libzlib 1.2.11 h36c2ea0_1013 conda-forge
liecasadi 0.1.dev39 pypi_0 pypi
matplotlib 3.5.1 pypi_0 pypi
ncurses 6.3 h9c3ff4c_0 conda-forge
numpy 1.22.1 pypi_0 pypi
openssl 3.0.0 h7f98852_2 conda-forge
packaging 21.3 pypi_0 pypi
pillow 9.0.0 pypi_0 pypi
pip 22.0.2 pyhd8ed1ab_0 conda-forge
pyparsing 3.0.7 pypi_0 pypi
python 3.8.12 h0744224_3_cpython conda-forge
python-dateutil 2.8.2 pypi_0 pypi
python_abi 3.8 2_cp38 conda-forge
readline 8.1 h46c0cb4_0 conda-forge
setuptools 60.6.0 py38h578d9bd_0 conda-forge
six 1.16.0 pypi_0 pypi
sqlite 3.37.0 h9cd32fc_0 conda-forge
tk 8.6.11 h27826a3_1 conda-forge
wheel 0.37.1 pyhd8ed1ab_0 conda-forge
xz 5.2.5 h516909a_1 conda-forge
zlib 1.2.11 h36c2ea0_1013 conda-forge
(castest) traversaro@IITICUBLAP257:~/liecasadi/examples$ pip list --verbose
Package Version Location Installer
--------------- --------- -------------------------------------------------------------------- ---------
attrs 21.4.0 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
casadi 3.5.5 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
cycler 0.11.0 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
fonttools 4.29.1 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
kiwisolver 1.3.2 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
liecasadi 0.1.dev39 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
matplotlib 3.5.1 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
numpy 1.22.1 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
packaging 21.3 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
Pillow 9.0.0 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
pip 22.0.2 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages
pyparsing 3.0.7 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
python-dateutil 2.8.2 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
setuptools 60.6.0 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages
six 1.16.0 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages pip
wheel 0.37.1 /home/traversaro/mambaforge/envs/castest/lib/python3.8/site-packages