Closed alberthli closed 1 month ago
Maybe need a little bit more information here. Where is the ros-humble conda package coming from in this case? This may be more specifically a RoboStack issue: https://github.com/RoboStack as they are the only producer of conda binary packages in the ecosystem.
I have had success building all of ROS 2 from source via conda, so I'm wondering if it's something specific to the way that it is packaged.
Does the following help? As you say, I specify the robostack-staging
channel for all my ROS dependencies in pixi
.
The relevant parts of my pixi.toml
(see here: https://github.com/Caltech-AMBER/obelisk/blob/46f503cf2ba7068b2b576e5540eb3ab17cea7f10/pixi.toml) are:
# ########### #
# BOILERPLATE #
# ########### #
[project]
name = "obelisk"
authors = [
"Albert Li <alberthli@caltech.edu>",
"Zach Olkin <zolkin@caltech.edu>",
]
description = "The AMBER Lab's generic robot control interface."
channels = ["conda-forge"]
platforms = ["linux-64"]
[activation]
scripts = ["obelisk_ws/install/setup.sh"]
env = { RMW_IMPLEMENTATION="rmw_cyclonedds_cpp" }
# ############ #
# FEATURE SETS #
# ############ #
# minimal
[dependencies]
python = ">=3.10"
pip = ">=24.0"
setuptools = "<=70.4"
[pypi-dependencies]
matplotlib = ">=3.9.0"
numpy = ">=1.26"
obelisk_py = { path="./obelisk/python", editable=true }
# cuda
[feature.cuda121]
channels = ["nvidia", "nvidia/label/cuda-12.1.0"]
system-requirements = {cuda="12.1.0"}
[feature.cuda121.dependencies]
cuda = { version="*", channel="nvidia/label/cuda-12.1.0" }
# ros2
[feature.ros2base]
channels = ["robostack-staging"]
[feature.ros2base.dependencies]
ros-humble-ros-base = "*"
colcon-common-extensions = "*"
# obelisk
[feature.obelisk.pypi-dependencies]
mujoco = ">=3.1.0"
"ruamel.yaml" = ">=0.18.0"
urdf_parser_py = ">=0.0.4"
# dev
[feature.dev.pypi-dependencies]
pre-commit = ">=3.7.1"
ruff = ">=0.4.9"
pyright = ">=1.1.368"
# build
[feature.build.dependencies]
cmake = "3.16.*"
ninja = "1.12.1"
make = ">=4.3,<5"
glfw = "3.4"
# ################ #
# ENVIRONMENT SETS #
# ################ #
[environments]
default = { solve-group="default" }
# obelisk
obelisk = { features=["obelisk"] }
# ros2
ros2-install = { features=["ros2base"] }
# dev
dev-no-gpu = { features=["obelisk", "ros2base", "test", "dev", "build"] }
dev = { features=["cuda121", "obelisk", "ros2base", "test", "dev", "build"], solve-group="dev" }
The output of pixi list
in my environment is:
Package Version Build Size Kind Source
_libgcc_mutex 0.1 conda_forge 2.5 KiB conda _libgcc_mutex-0.1-conda_forge.tar.bz2
_openmp_mutex 4.5 2_gnu 23.1 KiB conda _openmp_mutex-4.5-2_gnu.tar.bz2
absl_py 2.1.0 pypi https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl
argcomplete 3.4.0 pyhd8ed1ab_0 39.4 KiB conda argcomplete-3.4.0-pyhd8ed1ab_0.conda
atk-1.0 2.38.0 h04ea711_2 347.6 KiB conda atk-1.0-2.38.0-h04ea711_2.conda
attr 2.5.1 h166bdaf_1 69.4 KiB conda attr-2.5.1-h166bdaf_1.tar.bz2
bullet 3.25 h781c19f_2 9.8 KiB conda bullet-3.25-h781c19f_2.conda
bullet-cpp 3.25 h320fe9a_2 41 MiB conda bullet-cpp-3.25-h320fe9a_2.conda
bzip2 1.0.8 h4bc722e_7 246.9 KiB conda bzip2-1.0.8-h4bc722e_7.conda
c-ares 1.32.2 h4bc722e_0 175.5 KiB conda c-ares-1.32.2-h4bc722e_0.conda
ca-certificates 2024.7.4 hbcca054_0 151.2 KiB conda ca-certificates-2024.7.4-hbcca054_0.conda
cairo 1.18.0 h3faef2a_0 959.3 KiB conda cairo-1.18.0-h3faef2a_0.conda
catkin_pkg 1.0.0 pyhd8ed1ab_0 52.2 KiB conda catkin_pkg-1.0.0-pyhd8ed1ab_0.conda
cffi 1.16.0 py311hb3a22ac_0 293.2 KiB conda cffi-1.16.0-py311hb3a22ac_0.conda
cfgv 3.4.0 pypi https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl
cmake 3.16.5 h28c56e5_0 11.9 MiB conda cmake-3.16.5-h28c56e5_0.tar.bz2
colcon-argcomplete 0.3.3 pyhd8ed1ab_0 13.3 KiB conda colcon-argcomplete-0.3.3-pyhd8ed1ab_0.tar.bz2
colcon-bash 0.5.0 pyhd8ed1ab_0 18.6 KiB conda colcon-bash-0.5.0-pyhd8ed1ab_0.conda
colcon-cd 0.1.1 pyhd8ed1ab_0 11.6 KiB conda colcon-cd-0.1.1-pyhd8ed1ab_0.tar.bz2
colcon-cmake 0.2.28 pyhd8ed1ab_0 24.8 KiB conda colcon-cmake-0.2.28-pyhd8ed1ab_0.conda
colcon-common-extensions 0.3.0 py311h38be061_1 11.5 KiB conda colcon-common-extensions-0.3.0-py311h38be061_1.tar.bz2
colcon-core 0.17.0 pyhd8ed1ab_0 83.3 KiB conda colcon-core-0.17.0-pyhd8ed1ab_0.conda
colcon-defaults 0.2.8 pyhd8ed1ab_0 14.3 KiB conda colcon-defaults-0.2.8-pyhd8ed1ab_0.conda
colcon-devtools 0.3.0 pyhd8ed1ab_0 14 KiB conda colcon-devtools-0.3.0-pyhd8ed1ab_0.conda
colcon-library-path 0.2.1 py_0 10.5 KiB conda colcon-library-path-0.2.1-py_0.tar.bz2
colcon-metadata 0.2.5 py_0 17.4 KiB conda colcon-metadata-0.2.5-py_0.tar.bz2
colcon-output 0.2.13 pyhd8ed1ab_0 15.8 KiB conda colcon-output-0.2.13-pyhd8ed1ab_0.conda
colcon-package-information 0.4.0 pyhd8ed1ab_0 17.6 KiB conda colcon-package-information-0.4.0-pyhd8ed1ab_0.conda
colcon-package-selection 0.2.10 py_0 15.7 KiB conda colcon-package-selection-0.2.10-py_0.tar.bz2
colcon-parallel-executor 0.2.4 py_0 12.2 KiB conda colcon-parallel-executor-0.2.4-py_0.tar.bz2
colcon-pkg-config 0.1.0 py_0 10.2 KiB conda colcon-pkg-config-0.1.0-py_0.tar.bz2
colcon-powershell 0.4.0 pyhd8ed1ab_0 16.3 KiB conda colcon-powershell-0.4.0-pyhd8ed1ab_0.conda
colcon-python-setup-py 0.2.7 py_0 13.6 KiB conda colcon-python-setup-py-0.2.7-py_0.tar.bz2
colcon-recursive-crawl 0.2.3 pyhd8ed1ab_0 12.9 KiB conda colcon-recursive-crawl-0.2.3-pyhd8ed1ab_0.conda
colcon-ros 0.5.0 pyhd8ed1ab_0 23.3 KiB conda colcon-ros-0.5.0-pyhd8ed1ab_0.conda
colcon-test-result 0.3.8 py_0 14.4 KiB conda colcon-test-result-0.3.8-py_0.tar.bz2
colcon-zsh 0.5.0 pyhd8ed1ab_0 18.4 KiB conda colcon-zsh-0.5.0-pyhd8ed1ab_0.conda
colorama 0.4.6 pyhd8ed1ab_0 24.6 KiB conda colorama-0.4.6-pyhd8ed1ab_0.tar.bz2
coloredlogs 15.0.1 pyhd8ed1ab_3 39.6 KiB conda coloredlogs-15.0.1-pyhd8ed1ab_3.tar.bz2
console_bridge 1.0.2 h924138e_1 18 KiB conda console_bridge-1.0.2-h924138e_1.tar.bz2
contourpy 1.2.1 pypi https://files.pythonhosted.org/packages/ee/c0/9bd123d676eb61750e116a2cd915b06483fc406143cfc36c7f263f0f5368/contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
coverage 7.6.0 py311h61187de_0 364.3 KiB conda coverage-7.6.0-py311h61187de_0.conda
cppcheck 2.14.2 py311hdd5f75e_0 2.4 MiB conda cppcheck-2.14.2-py311hdd5f75e_0.conda
cryptography 42.0.8 py311h4a61cc7_0 1.9 MiB conda cryptography-42.0.8-py311h4a61cc7_0.conda
cycler 0.12.1 pypi https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl
distlib 0.3.8 pyhd8ed1ab_0 268.5 KiB conda distlib-0.3.8-pyhd8ed1ab_0.conda
distro 1.9.0 pyhd8ed1ab_0 41.1 KiB conda distro-1.9.0-pyhd8ed1ab_0.conda
docutils 0.21.2 pyhd8ed1ab_0 393.8 KiB conda docutils-0.21.2-pyhd8ed1ab_0.conda
dynamixel_sdk 3.7.31 pypi https://files.pythonhosted.org/packages/03/e8/2c65d11d312fdb1a2308563d32f63f93c39123bcfb4909d947e0b294c794/dynamixel_sdk-3.7.31-py3-none-any.whl
eigen 3.4.0 h00ab1b0_0 1 MiB conda eigen-3.4.0-h00ab1b0_0.conda
empy 3.3.4 pyh9f0ad1d_1 39.3 KiB conda empy-3.3.4-pyh9f0ad1d_1.tar.bz2
etils 1.9.2 pypi https://files.pythonhosted.org/packages/a0/f4/305f3ea85aecd23422c606c179fb6d00bd7d255b10d55b4c797a3a680144/etils-1.9.2-py3-none-any.whl
exceptiongroup 1.2.2 pyhd8ed1ab_0 19.9 KiB conda exceptiongroup-1.2.2-pyhd8ed1ab_0.conda
execnet 2.1.1 pypi https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl
expat 2.6.2 h59595ed_0 134.4 KiB conda expat-2.6.2-h59595ed_0.conda
filelock 3.15.4 pypi https://files.pythonhosted.org/packages/ae/f0/48285f0262fe47103a4a45972ed2f9b93e4c80b8fd609fa98da78b2a5706/filelock-3.15.4-py3-none-any.whl
flake8 7.1.0 pyhd8ed1ab_0 108.4 KiB conda flake8-7.1.0-pyhd8ed1ab_0.conda
fmt 10.2.1 h00ab1b0_0 189.3 KiB conda fmt-10.2.1-h00ab1b0_0.conda
font-ttf-dejavu-sans-mono 2.37 hab24e00_0 388.1 KiB conda font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
font-ttf-inconsolata 3.000 h77eed37_0 94.3 KiB conda font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
font-ttf-source-code-pro 2.038 h77eed37_0 684.4 KiB conda font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
font-ttf-ubuntu 0.83 h77eed37_2 1.5 MiB conda font-ttf-ubuntu-0.83-h77eed37_2.conda
fontconfig 2.14.2 h14ed4e7_0 265.6 KiB conda fontconfig-2.14.2-h14ed4e7_0.conda
fonts-conda-ecosystem 1 0 3.6 KiB conda fonts-conda-ecosystem-1-0.tar.bz2
fonts-conda-forge 1 0 4 KiB conda fonts-conda-forge-1-0.tar.bz2
fonttools 4.53.1 pypi https://files.pythonhosted.org/packages/a4/22/0a0ad59d9367997fd74a00ad2e88d10559122e09f105e94d34c155aecc0a/fonttools-4.53.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
foonathan-memory 0.7.2 h27087fc_1 177.7 KiB conda foonathan-memory-0.7.2-h27087fc_1.tar.bz2
freetype 2.12.1 h267a509_2 620.1 KiB conda freetype-2.12.1-h267a509_2.conda
fribidi 1.0.10 h36c2ea0_0 111.7 KiB conda fribidi-1.0.10-h36c2ea0_0.tar.bz2
fsspec 2024.6.1 pypi https://files.pythonhosted.org/packages/5e/44/73bea497ac69bafde2ee4269292fa3b41f1198f4bb7bbaaabde30ad29d4a/fsspec-2024.6.1-py3-none-any.whl
gdk-pixbuf 2.42.12 hb9ae30d_0 515.8 KiB conda gdk-pixbuf-2.42.12-hb9ae30d_0.conda
giflib 5.2.2 hd590300_0 75.4 KiB conda giflib-5.2.2-hd590300_0.conda
glfw 3.4 hd590300_0 163.5 KiB conda glfw-3.4-hd590300_0.conda
glfw 2.7.0 pypi https://files.pythonhosted.org/packages/ec/e8/462afb18f3627d11d4dab74228b52094e1a121d57fe57957c821c50bbfba/glfw-2.7.0-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-manylinux2014_x86_64.whl
gmock 1.14.0 ha770c72_2 6.8 KiB conda gmock-1.14.0-ha770c72_2.conda
graphite2 1.3.13 h59595ed_1003 94.6 KiB conda graphite2-1.3.13-h59595ed_1003.conda
graphviz 9.0.0 h78e8752_1 2.2 MiB conda graphviz-9.0.0-h78e8752_1.conda
gtest 1.14.0 h434a139_2 394.1 KiB conda gtest-1.14.0-h434a139_2.conda
gtk2 2.24.33 h280cfa0_4 6.2 MiB conda gtk2-2.24.33-h280cfa0_4.conda
gts 0.7.6 h977cf35_4 310.9 KiB conda gts-0.7.6-h977cf35_4.conda
harfbuzz 8.5.0 hfac3d4d_0 1.5 MiB conda harfbuzz-8.5.0-hfac3d4d_0.conda
humanfriendly 10.0 pyhd8ed1ab_6 71.7 KiB conda humanfriendly-10.0-pyhd8ed1ab_6.conda
icu 73.2 h59595ed_0 11.5 MiB conda icu-73.2-h59595ed_0.conda
identify 2.6.0 pypi https://files.pythonhosted.org/packages/24/6c/a4f39abe7f19600b74528d0c717b52fff0b300bb0161081510d39c53cb00/identify-2.6.0-py2.py3-none-any.whl
importlib-metadata 8.0.0 pyha770c72_0 26.7 KiB conda importlib-metadata-8.0.0-pyha770c72_0.conda
importlib_resources 6.4.0 pyhd8ed1ab_0 32.3 KiB conda importlib_resources-6.4.0-pyhd8ed1ab_0.conda
iniconfig 2.0.0 pyhd8ed1ab_0 10.8 KiB conda iniconfig-2.0.0-pyhd8ed1ab_0.conda
keyutils 1.6.1 h166bdaf_0 115.1 KiB conda keyutils-1.6.1-h166bdaf_0.tar.bz2
kiwisolver 1.4.5 pypi https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
krb5 1.21.3 h659f571_0 1.3 MiB conda krb5-1.21.3-h659f571_0.conda
lark-parser 0.12.0 pyhd8ed1ab_0 77.5 KiB conda lark-parser-0.12.0-pyhd8ed1ab_0.tar.bz2
ld_impl_linux-64 2.40 hf3520f5_7 691 KiB conda ld_impl_linux-64-2.40-hf3520f5_7.conda
lerc 4.0.0 h27087fc_0 275.2 KiB conda lerc-4.0.0-h27087fc_0.tar.bz2
libacl 2.3.2 h0f662aa_0 108 KiB conda libacl-2.3.2-h0f662aa_0.conda
libblas 3.9.0 22_linux64_openblas 14.2 KiB conda libblas-3.9.0-22_linux64_openblas.conda
libcblas 3.9.0 22_linux64_openblas 14.1 KiB conda libcblas-3.9.0-22_linux64_openblas.conda
libcurl 8.8.0 hca28451_1 400.5 KiB conda libcurl-8.8.0-hca28451_1.conda
libdeflate 1.20 hd590300_0 69.8 KiB conda libdeflate-1.20-hd590300_0.conda
libedit 3.1.20191231 he28a2e2_2 121 KiB conda libedit-3.1.20191231-he28a2e2_2.tar.bz2
libev 4.33 hd590300_2 110.1 KiB conda libev-4.33-hd590300_2.conda
libexpat 2.6.2 h59595ed_0 72 KiB conda libexpat-2.6.2-h59595ed_0.conda
libffi 3.4.2 h7f98852_5 56.9 KiB conda libffi-3.4.2-h7f98852_5.tar.bz2
libgcc-ng 14.1.0 h77fa898_0 822.4 KiB conda libgcc-ng-14.1.0-h77fa898_0.conda
libgd 2.3.3 h119a65a_9 219.2 KiB conda libgd-2.3.3-h119a65a_9.conda
libgfortran-ng 14.1.0 h69a702a_0 48.7 KiB conda libgfortran-ng-14.1.0-h69a702a_0.conda
libgfortran5 14.1.0 hc5f4f2c_0 1.4 MiB conda libgfortran5-14.1.0-hc5f4f2c_0.conda
libglib 2.80.2 hf974151_0 3.7 MiB conda libglib-2.80.2-hf974151_0.conda
libgomp 14.1.0 h77fa898_0 446.2 KiB conda libgomp-14.1.0-h77fa898_0.conda
libiconv 1.17 hd590300_2 689.2 KiB conda libiconv-1.17-hd590300_2.conda
libjpeg-turbo 3.0.0 hd590300_1 604.1 KiB conda libjpeg-turbo-3.0.0-hd590300_1.conda
liblapack 3.9.0 22_linux64_openblas 14.1 KiB conda liblapack-3.9.0-22_linux64_openblas.conda
libnghttp2 1.58.0 h47da74e_1 617.1 KiB conda libnghttp2-1.58.0-h47da74e_1.conda
libnsl 2.0.1 hd590300_0 32.6 KiB conda libnsl-2.0.1-hd590300_0.conda
libopenblas 0.3.27 pthreads_hac2b453_1 5.3 MiB conda libopenblas-0.3.27-pthreads_hac2b453_1.conda
libpng 1.6.43 h2797004_0 281.5 KiB conda libpng-1.6.43-h2797004_0.conda
librsvg 2.58.1 hadf69e7_0 6 MiB conda librsvg-2.58.1-hadf69e7_0.conda
libsqlite 3.46.0 hde9e2c9_0 845.1 KiB conda libsqlite-3.46.0-hde9e2c9_0.conda
libssh2 1.11.0 h0841786_0 264.8 KiB conda libssh2-1.11.0-h0841786_0.conda
libstdcxx-ng 14.1.0 hc0a3c3a_0 3.7 MiB conda libstdcxx-ng-14.1.0-hc0a3c3a_0.conda
libtiff 4.6.0 h1dd3fc0_3 276.1 KiB conda libtiff-4.6.0-h1dd3fc0_3.conda
libuuid 2.38.1 h0b41bf4_0 32.8 KiB conda libuuid-2.38.1-h0b41bf4_0.conda
libuv 1.48.0 hd590300_0 878.9 KiB conda libuv-1.48.0-hd590300_0.conda
libwebp 1.4.0 h2c329e2_0 89.8 KiB conda libwebp-1.4.0-h2c329e2_0.conda
libwebp-base 1.4.0 hd590300_0 428.7 KiB conda libwebp-base-1.4.0-hd590300_0.conda
libxcb 1.15 h0b41bf4_0 375.2 KiB conda libxcb-1.15-h0b41bf4_0.conda
libxcrypt 4.4.36 hd590300_1 98 KiB conda libxcrypt-4.4.36-hd590300_1.conda
libxkbcommon 1.7.0 h662e7e4_0 579.6 KiB conda libxkbcommon-1.7.0-h662e7e4_0.conda
libxml2 2.12.7 hc051c1a_1 688.5 KiB conda libxml2-2.12.7-hc051c1a_1.conda
libxslt 1.1.39 h76b75d6_0 248.3 KiB conda libxslt-1.1.39-h76b75d6_0.conda
libzlib 1.2.13 h4ab18f5_6 60.1 KiB conda libzlib-1.2.13-h4ab18f5_6.conda
lxml 5.2.2 py311hc0a218f_0 1.3 MiB conda lxml-5.2.2-py311hc0a218f_0.conda
make 4.3 hd18ef5c_1 506.7 KiB conda make-4.3-hd18ef5c_1.tar.bz2
matplotlib 3.9.1 pypi https://files.pythonhosted.org/packages/b8/63/cef838d92c1918ae28afd12b8aeaa9c104a0686cf6447aa0546f7c6dd1f0/matplotlib-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mccabe 0.7.0 pyhd8ed1ab_0 10.7 KiB conda mccabe-0.7.0-pyhd8ed1ab_0.tar.bz2
mujoco 3.2.0 pypi https://files.pythonhosted.org/packages/e1/28/9becc31846e98bbfa0134dae844699e67199500c56743b36b5925b6c4d45/mujoco-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
ncurses 6.5 h59595ed_0 866.7 KiB conda ncurses-6.5-h59595ed_0.conda
netifaces 0.11.0 py311h459d7ec_2 19.2 KiB conda netifaces-0.11.0-py311h459d7ec_2.conda
ninja 1.12.1 h297d8ca_0 2.1 MiB conda ninja-1.12.1-h297d8ca_0.conda
nodeenv 1.9.1 pypi https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl
numpy 1.26.4 py311h64a7726_0 7.7 MiB conda numpy-1.26.4-py311h64a7726_0.conda
obelisk_py 0.0.1 pypi ./obelisk/python (editable)
openssl 3.3.1 h4bc722e_2 2.8 MiB conda openssl-3.3.1-h4bc722e_2.conda
orocos-kdl 1.5.1 h59595ed_5 375.5 KiB conda orocos-kdl-1.5.1-h59595ed_5.conda
packaging 24.1 pyhd8ed1ab_0 49.1 KiB conda packaging-24.1-pyhd8ed1ab_0.conda
pango 1.54.0 h84a9a3c_0 437.9 KiB conda pango-1.54.0-h84a9a3c_0.conda
pcre 8.45 h9c3ff4c_0 253.3 KiB conda pcre-8.45-h9c3ff4c_0.tar.bz2
pcre2 10.43 hcad00b1_0 928.6 KiB conda pcre2-10.43-hcad00b1_0.conda
pillow 10.4.0 pypi https://files.pythonhosted.org/packages/ba/e5/8c68ff608a4203085158cff5cc2a3c534ec384536d9438c405ed6370d080/pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl
pip 24.0 pyhd8ed1ab_0 1.3 MiB conda pip-24.0-pyhd8ed1ab_0.conda
pixman 0.43.2 h59595ed_0 377.8 KiB conda pixman-0.43.2-h59595ed_0.conda
platformdirs 4.2.2 pypi https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl
pluggy 1.5.0 pyhd8ed1ab_0 23.3 KiB conda pluggy-1.5.0-pyhd8ed1ab_0.conda
pre_commit 3.7.1 pypi https://files.pythonhosted.org/packages/b9/0f/d6d0b4e2f5b2933a557087fc0560371aa545a18232d4d3427eb3bb3af12e/pre_commit-3.7.1-py2.py3-none-any.whl
psutil 6.0.0 py311h331c9d8_0 497 KiB conda psutil-6.0.0-py311h331c9d8_0.conda
pthread-stubs 0.4 h36c2ea0_1001 5.5 KiB conda pthread-stubs-0.4-h36c2ea0_1001.tar.bz2
pybind11 2.13.1 py311h52f7536_0 190.7 KiB conda pybind11-2.13.1-py311h52f7536_0.conda
pybind11-global 2.13.1 py311h52f7536_0 175.5 KiB conda pybind11-global-2.13.1-py311h52f7536_0.conda
pybullet 3.25 py311h320fe9a_2 60 MiB conda pybullet-3.25-py311h320fe9a_2.conda
pycodestyle 2.12.0 pyhd8ed1ab_0 33.6 KiB conda pycodestyle-2.12.0-pyhd8ed1ab_0.conda
pycparser 2.22 pyhd8ed1ab_0 102.6 KiB conda pycparser-2.22-pyhd8ed1ab_0.conda
pydocstyle 6.3.0 pyhd8ed1ab_0 38.9 KiB conda pydocstyle-6.3.0-pyhd8ed1ab_0.conda
pyflakes 3.2.0 pyhd8ed1ab_0 57.3 KiB conda pyflakes-3.2.0-pyhd8ed1ab_0.conda
pygments 2.18.0 pyhd8ed1ab_0 858.7 KiB conda pygments-2.18.0-pyhd8ed1ab_0.conda
pyopengl 3.1.7 pypi https://files.pythonhosted.org/packages/99/48/00e31747821d3fc56faddd00a4725454d1e694a8b67d715cf20f531506a5/PyOpenGL-3.1.7-py3-none-any.whl
pyparsing 3.1.2 pyhd8ed1ab_0 87.4 KiB conda pyparsing-3.1.2-pyhd8ed1ab_0.conda
pyright 1.1.372 pypi https://files.pythonhosted.org/packages/f9/28/b5ef3ea1f25d19a3291d1631433f7abcdad572ab7865b4be23da42f2a71b/pyright-1.1.372-py3-none-any.whl
pyserial 3.5 pypi https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl
pytest 8.0.0 pyhd8ed1ab_0 245.8 KiB conda pytest-8.0.0-pyhd8ed1ab_0.conda
pytest-cov 5.0.0 pyhd8ed1ab_0 24.9 KiB conda pytest-cov-5.0.0-pyhd8ed1ab_0.conda
pytest-repeat 0.9.2 pyhd8ed1ab_0 9.9 KiB conda pytest-repeat-0.9.2-pyhd8ed1ab_0.conda
pytest-rerunfailures 14.0 pyhd8ed1ab_0 17.4 KiB conda pytest-rerunfailures-14.0-pyhd8ed1ab_0.conda
pytest_xdist 3.6.1 pypi https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl
python 3.11.9 hb806964_0_cpython 29.5 MiB conda python-3.11.9-hb806964_0_cpython.conda
python-dateutil 2.9.0 pyhd8ed1ab_0 217.5 KiB conda python-dateutil-2.9.0-pyhd8ed1ab_0.conda
python_abi 3.11 4_cp311 6.2 KiB conda python_abi-3.11-4_cp311.conda
pyyaml 6.0.1 py311h459d7ec_1 195.9 KiB conda pyyaml-6.0.1-py311h459d7ec_1.conda
readline 8.2 h8228510_1 274.9 KiB conda readline-8.2-h8228510_1.conda
rhash 1.4.3 hd590300_2 180.2 KiB conda rhash-1.4.3-hd590300_2.conda
ros-humble-action-msgs 1.2.1 py311hb335429_6 101.6 KiB conda ros-humble-action-msgs-1.2.1-py311hb335429_6.tar.bz2
ros-humble-actionlib-msgs 4.2.3 py311hb335429_6 87.2 KiB conda ros-humble-actionlib-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-ament-cmake 1.3.7 py311hb335429_6 14.9 KiB conda ros-humble-ament-cmake-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-auto 1.3.7 py311hb335429_6 14.8 KiB conda ros-humble-ament-cmake-auto-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-copyright 0.12.10 py311hb335429_6 11.7 KiB conda ros-humble-ament-cmake-copyright-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-core 1.3.7 py311hb335429_6 33.2 KiB conda ros-humble-ament-cmake-core-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-cppcheck 0.12.10 py311hb335429_6 12.7 KiB conda ros-humble-ament-cmake-cppcheck-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-cpplint 0.12.10 py311hb335429_6 12 KiB conda ros-humble-ament-cmake-cpplint-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-export-definitions 1.3.7 py311hb335429_6 11.5 KiB conda ros-humble-ament-cmake-export-definitions-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-export-dependencies 1.3.7 py311hb335429_6 12.3 KiB conda ros-humble-ament-cmake-export-dependencies-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-export-include-directories 1.3.7 py311hb335429_6 11.8 KiB conda ros-humble-ament-cmake-export-include-directories-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-export-interfaces 1.3.7 py311hb335429_6 12 KiB conda ros-humble-ament-cmake-export-interfaces-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-export-libraries 1.3.7 py311hb335429_6 13.4 KiB conda ros-humble-ament-cmake-export-libraries-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-export-link-flags 1.3.7 py311hb335429_6 11.4 KiB conda ros-humble-ament-cmake-export-link-flags-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-export-targets 1.3.7 py311hb335429_6 11.9 KiB conda ros-humble-ament-cmake-export-targets-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-flake8 0.12.10 py311hb335429_6 11.9 KiB conda ros-humble-ament-cmake-flake8-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-gen-version-h 1.3.7 py311hb335429_6 13.8 KiB conda ros-humble-ament-cmake-gen-version-h-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-gmock 1.3.7 py311hb335429_6 13.2 KiB conda ros-humble-ament-cmake-gmock-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-gtest 1.3.7 py311hb335429_6 17.4 KiB conda ros-humble-ament-cmake-gtest-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-include-directories 1.3.7 py311hb335429_6 11.4 KiB conda ros-humble-ament-cmake-include-directories-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-libraries 1.3.7 py311hb335429_6 11.8 KiB conda ros-humble-ament-cmake-libraries-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-lint-cmake 0.12.10 py311hb335429_6 15.1 KiB conda ros-humble-ament-cmake-lint-cmake-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-pep257 0.12.10 py311hb335429_6 11.6 KiB conda ros-humble-ament-cmake-pep257-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-pytest 1.3.7 py311hb335429_6 22.3 KiB conda ros-humble-ament-cmake-pytest-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-python 1.3.7 py311hb335429_6 13.7 KiB conda ros-humble-ament-cmake-python-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-ros 0.10.0 py311hb335429_6 14.4 KiB conda ros-humble-ament-cmake-ros-0.10.0-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-target-dependencies 1.3.7 py311hb335429_6 12.9 KiB conda ros-humble-ament-cmake-target-dependencies-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-test 1.3.7 py311hb335429_6 30.3 KiB conda ros-humble-ament-cmake-test-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-uncrustify 0.12.10 py311hb335429_6 12.1 KiB conda ros-humble-ament-cmake-uncrustify-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-version 1.3.7 py311hb335429_6 11.2 KiB conda ros-humble-ament-cmake-version-1.3.7-py311hb335429_6.tar.bz2
ros-humble-ament-cmake-xmllint 0.12.10 py311hb335429_6 11.7 KiB conda ros-humble-ament-cmake-xmllint-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-copyright 0.12.10 py311hb335429_6 65.4 KiB conda ros-humble-ament-copyright-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cppcheck 0.12.10 py311hb335429_6 23.9 KiB conda ros-humble-ament-cppcheck-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-cpplint 0.12.10 py311hb335429_6 195.8 KiB conda ros-humble-ament-cpplint-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-flake8 0.12.10 py311hb335429_6 25 KiB conda ros-humble-ament-flake8-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-index-cpp 1.4.0 py311hb335429_6 30.7 KiB conda ros-humble-ament-index-cpp-1.4.0-py311hb335429_6.tar.bz2
ros-humble-ament-index-python 1.4.0 py311hb335429_6 22.5 KiB conda ros-humble-ament-index-python-1.4.0-py311hb335429_6.tar.bz2
ros-humble-ament-lint 0.12.10 py311hb335429_6 9.1 KiB conda ros-humble-ament-lint-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-lint-auto 0.12.10 py311hb335429_6 14.9 KiB conda ros-humble-ament-lint-auto-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-lint-cmake 0.12.10 py311hb335429_6 38 KiB conda ros-humble-ament-lint-cmake-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-lint-common 0.12.10 py311hb335429_6 11.6 KiB conda ros-humble-ament-lint-common-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-package 0.14.0 py311hb335429_6 45.1 KiB conda ros-humble-ament-package-0.14.0-py311hb335429_6.tar.bz2
ros-humble-ament-pep257 0.12.10 py311hb335429_6 20.7 KiB conda ros-humble-ament-pep257-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-uncrustify 0.12.10 py311hb335429_6 44.9 KiB conda ros-humble-ament-uncrustify-0.12.10-py311hb335429_6.tar.bz2
ros-humble-ament-xmllint 0.12.10 py311hb335429_6 21.8 KiB conda ros-humble-ament-xmllint-0.12.10-py311hb335429_6.tar.bz2
ros-humble-builtin-interfaces 1.2.1 py311hb335429_6 60.4 KiB conda ros-humble-builtin-interfaces-1.2.1-py311hb335429_6.tar.bz2
ros-humble-class-loader 2.2.0 py311hb303436_6 56.9 KiB conda ros-humble-class-loader-2.2.0-py311hb303436_6.tar.bz2
ros-humble-common-interfaces 4.2.3 py311hb335429_6 11.3 KiB conda ros-humble-common-interfaces-4.2.3-py311hb335429_6.tar.bz2
ros-humble-composition-interfaces 1.2.1 py311hb335429_6 141.9 KiB conda ros-humble-composition-interfaces-1.2.1-py311hb335429_6.tar.bz2
ros-humble-console-bridge-vendor 1.4.1 py311hb303436_6 10.8 KiB conda ros-humble-console-bridge-vendor-1.4.1-py311hb303436_6.tar.bz2
ros-humble-cyclonedds 0.10.4 py311h8eb0f6d_6 1.1 MiB conda ros-humble-cyclonedds-0.10.4-py311h8eb0f6d_6.tar.bz2
ros-humble-diagnostic-msgs 4.2.3 py311hb335429_6 139.9 KiB conda ros-humble-diagnostic-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-domain-coordinator 0.10.0 py311hb335429_6 11.6 KiB conda ros-humble-domain-coordinator-0.10.0-py311hb335429_6.tar.bz2
ros-humble-eigen3-cmake-module 0.1.1 py311hb335429_6 11.1 KiB conda ros-humble-eigen3-cmake-module-0.1.1-py311hb335429_6.tar.bz2
ros-humble-fastcdr 1.0.24 py311hb335429_6 56.7 KiB conda ros-humble-fastcdr-1.0.24-py311hb335429_6.tar.bz2
ros-humble-fastrtps 2.6.7 py311h70423f0_6 3.5 MiB conda ros-humble-fastrtps-2.6.7-py311h70423f0_6.tar.bz2
ros-humble-fastrtps-cmake-module 2.2.2 py311hb335429_6 11.7 KiB conda ros-humble-fastrtps-cmake-module-2.2.2-py311hb335429_6.tar.bz2
ros-humble-foonathan-memory-vendor 1.2.0 py311hb335429_6 8.8 KiB conda ros-humble-foonathan-memory-vendor-1.2.0-py311hb335429_6.tar.bz2
ros-humble-geometry-msgs 4.2.3 py311hb335429_6 283.2 KiB conda ros-humble-geometry-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-geometry2 0.25.5 py311hb335429_6 12 KiB conda ros-humble-geometry2-0.25.5-py311hb335429_6.tar.bz2
ros-humble-gmock-vendor 1.10.9004 py311hb335429_6 97.4 KiB conda ros-humble-gmock-vendor-1.10.9004-py311hb335429_6.tar.bz2
ros-humble-gtest-vendor 1.10.9004 py311hb335429_6 175 KiB conda ros-humble-gtest-vendor-1.10.9004-py311hb335429_6.tar.bz2
ros-humble-iceoryx-binding-c 2.0.5 py311hb335429_6 85.6 KiB conda ros-humble-iceoryx-binding-c-2.0.5-py311hb335429_6.tar.bz2
ros-humble-iceoryx-hoofs 2.0.5 py311hb335429_6 251.8 KiB conda ros-humble-iceoryx-hoofs-2.0.5-py311hb335429_6.tar.bz2
ros-humble-iceoryx-posh 2.0.5 py311hb335429_6 575.7 KiB conda ros-humble-iceoryx-posh-2.0.5-py311hb335429_6.tar.bz2
ros-humble-kdl-parser 2.6.4 py311hb335429_6 29.3 KiB conda ros-humble-kdl-parser-2.6.4-py311hb335429_6.tar.bz2
ros-humble-keyboard-handler 0.0.5 py311hb335429_6 41.6 KiB conda ros-humble-keyboard-handler-0.0.5-py311hb335429_6.tar.bz2
ros-humble-launch 1.0.4 py311hb335429_6 275 KiB conda ros-humble-launch-1.0.4-py311hb335429_6.tar.bz2
ros-humble-launch-ros 0.19.7 py311hb335429_6 114 KiB conda ros-humble-launch-ros-0.19.7-py311hb335429_6.tar.bz2
ros-humble-launch-testing 1.0.4 py311hb335429_6 129.5 KiB conda ros-humble-launch-testing-1.0.4-py311hb335429_6.tar.bz2
ros-humble-launch-testing-ament-cmake 1.0.4 py311hb335429_6 19.3 KiB conda ros-humble-launch-testing-ament-cmake-1.0.4-py311hb335429_6.tar.bz2
ros-humble-launch-testing-ros 0.19.7 py311hb335429_6 37.3 KiB conda ros-humble-launch-testing-ros-0.19.7-py311hb335429_6.tar.bz2
ros-humble-launch-xml 1.0.4 py311hb335429_6 17.9 KiB conda ros-humble-launch-xml-1.0.4-py311hb335429_6.tar.bz2
ros-humble-launch-yaml 1.0.4 py311hb335429_6 18.7 KiB conda ros-humble-launch-yaml-1.0.4-py311hb335429_6.tar.bz2
ros-humble-libstatistics-collector 1.3.1 py311hb335429_6 32 KiB conda ros-humble-libstatistics-collector-1.3.1-py311hb335429_6.tar.bz2
ros-humble-libyaml-vendor 1.2.2 py311hb335429_6 13.6 KiB conda ros-humble-libyaml-vendor-1.2.2-py311hb335429_6.tar.bz2
ros-humble-lifecycle-msgs 1.2.1 py311hb335429_6 169.6 KiB conda ros-humble-lifecycle-msgs-1.2.1-py311hb335429_6.tar.bz2
ros-humble-message-filters 4.3.3 py311hb335429_6 54.9 KiB conda ros-humble-message-filters-4.3.3-py311hb335429_6.tar.bz2
ros-humble-nav-msgs 4.2.3 py311hb335429_6 189 KiB conda ros-humble-nav-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-orocos-kdl-vendor 0.2.5 py311hb335429_6 11.4 KiB conda ros-humble-orocos-kdl-vendor-0.2.5-py311hb335429_6.tar.bz2
ros-humble-osrf-pycommon 2.0.2 py311hb335429_6 71.2 KiB conda ros-humble-osrf-pycommon-2.0.2-py311hb335429_6.tar.bz2
ros-humble-pluginlib 5.1.0 py311hb335429_6 28 KiB conda ros-humble-pluginlib-5.1.0-py311hb335429_6.tar.bz2
ros-humble-pybind11-vendor 2.4.2 py311hb335429_6 10.4 KiB conda ros-humble-pybind11-vendor-2.4.2-py311hb335429_6.tar.bz2
ros-humble-python-cmake-module 0.10.0 py311hb335429_6 12.7 KiB conda ros-humble-python-cmake-module-0.10.0-py311hb335429_6.tar.bz2
ros-humble-rcl 5.3.7 py311hb335429_6 143.5 KiB conda ros-humble-rcl-5.3.7-py311hb335429_6.tar.bz2
ros-humble-rcl-action 5.3.7 py311hb335429_6 53.8 KiB conda ros-humble-rcl-action-5.3.7-py311hb335429_6.tar.bz2
ros-humble-rcl-interfaces 1.2.1 py311hb335429_6 333.8 KiB conda ros-humble-rcl-interfaces-1.2.1-py311hb335429_6.tar.bz2
ros-humble-rcl-lifecycle 5.3.7 py311hb335429_6 34 KiB conda ros-humble-rcl-lifecycle-5.3.7-py311hb335429_6.tar.bz2
ros-humble-rcl-logging-interface 2.3.1 py311hb335429_6 18.3 KiB conda ros-humble-rcl-logging-interface-2.3.1-py311hb335429_6.tar.bz2
ros-humble-rcl-logging-spdlog 2.3.1 py311h9883907_6 25.7 KiB conda ros-humble-rcl-logging-spdlog-2.3.1-py311h9883907_6.tar.bz2
ros-humble-rcl-yaml-param-parser 5.3.7 py311hb335429_6 33.9 KiB conda ros-humble-rcl-yaml-param-parser-5.3.7-py311hb335429_6.tar.bz2
ros-humble-rclcpp 16.0.8 py311hb335429_6 888.9 KiB conda ros-humble-rclcpp-16.0.8-py311hb335429_6.tar.bz2
ros-humble-rclcpp-action 16.0.8 py311hb335429_6 89.5 KiB conda ros-humble-rclcpp-action-16.0.8-py311hb335429_6.tar.bz2
ros-humble-rclcpp-components 16.0.8 py311hb335429_6 111 KiB conda ros-humble-rclcpp-components-16.0.8-py311hb335429_6.tar.bz2
ros-humble-rclcpp-lifecycle 16.0.8 py311hb335429_6 102.7 KiB conda ros-humble-rclcpp-lifecycle-16.0.8-py311hb335429_6.tar.bz2
ros-humble-rclpy 3.3.11 py311hb335429_6 601.2 KiB conda ros-humble-rclpy-3.3.11-py311hb335429_6.tar.bz2
ros-humble-rcpputils 2.4.1 py311hb335429_6 51.2 KiB conda ros-humble-rcpputils-2.4.1-py311hb335429_6.tar.bz2
ros-humble-rcutils 5.1.4 py311hb335429_6 94.6 KiB conda ros-humble-rcutils-5.1.4-py311hb335429_6.tar.bz2
ros-humble-rmw 6.1.1 py311hb335429_6 70.7 KiB conda ros-humble-rmw-6.1.1-py311hb335429_6.tar.bz2
ros-humble-rmw-connextdds 0.11.2 py311hb335429_6 11.1 KiB conda ros-humble-rmw-connextdds-0.11.2-py311hb335429_6.tar.bz2
ros-humble-rmw-connextdds-common 0.11.2 py311hb335429_6 31.3 KiB conda ros-humble-rmw-connextdds-common-0.11.2-py311hb335429_6.tar.bz2
ros-humble-rmw-cyclonedds-cpp 1.3.4 py311hb335429_6 232 KiB conda ros-humble-rmw-cyclonedds-cpp-1.3.4-py311hb335429_6.tar.bz2
ros-humble-rmw-dds-common 1.6.0 py311hb335429_6 135.5 KiB conda ros-humble-rmw-dds-common-1.6.0-py311hb335429_6.tar.bz2
ros-humble-rmw-fastrtps-cpp 6.2.6 py311hb335429_6 126.3 KiB conda ros-humble-rmw-fastrtps-cpp-6.2.6-py311hb335429_6.tar.bz2
ros-humble-rmw-fastrtps-dynamic-cpp 6.2.6 py311hb335429_6 163.3 KiB conda ros-humble-rmw-fastrtps-dynamic-cpp-6.2.6-py311hb335429_6.tar.bz2
ros-humble-rmw-fastrtps-shared-cpp 6.2.6 py311hb335429_6 198.2 KiB conda ros-humble-rmw-fastrtps-shared-cpp-6.2.6-py311hb335429_6.tar.bz2
ros-humble-rmw-implementation 2.8.2 py311hb335429_6 31.9 KiB conda ros-humble-rmw-implementation-2.8.2-py311hb335429_6.tar.bz2
ros-humble-rmw-implementation-cmake 6.1.1 py311hb335429_6 13.7 KiB conda ros-humble-rmw-implementation-cmake-6.1.1-py311hb335429_6.tar.bz2
ros-humble-robot-state-publisher 3.0.3 py311hb335429_6 250.6 KiB conda ros-humble-robot-state-publisher-3.0.3-py311hb335429_6.tar.bz2
ros-humble-ros-base 0.10.0 py311hb335429_6 12.7 KiB conda ros-humble-ros-base-0.10.0-py311hb335429_6.tar.bz2
ros-humble-ros-core 0.10.0 py311hb335429_6 12.2 KiB conda ros-humble-ros-core-0.10.0-py311hb335429_6.tar.bz2
ros-humble-ros-environment 3.2.2 py311hb335429_6 10.7 KiB conda ros-humble-ros-environment-3.2.2-py311hb335429_6.tar.bz2
ros-humble-ros-workspace 1.0.2 py311hb335429_6 26 KiB conda ros-humble-ros-workspace-1.0.2-py311hb335429_6.tar.bz2
ros-humble-ros2action 0.18.8 py311hb335429_6 27.5 KiB conda ros-humble-ros2action-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2bag 0.15.9 py311hb335429_6 39.2 KiB conda ros-humble-ros2bag-0.15.9-py311hb335429_6.tar.bz2
ros-humble-ros2cli 0.18.8 py311hb335429_6 71.3 KiB conda ros-humble-ros2cli-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2cli-common-extensions 0.1.1 py311hb335429_6 11.8 KiB conda ros-humble-ros2cli-common-extensions-0.1.1-py311hb335429_6.tar.bz2
ros-humble-ros2component 0.18.8 py311hb335429_6 37 KiB conda ros-humble-ros2component-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2doctor 0.18.8 py311hb335429_6 56.1 KiB conda ros-humble-ros2doctor-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2interface 0.18.8 py311hb335429_6 27.6 KiB conda ros-humble-ros2interface-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2launch 0.19.7 py311hb335429_6 28.5 KiB conda ros-humble-ros2launch-0.19.7-py311hb335429_6.tar.bz2
ros-humble-ros2lifecycle 0.18.8 py311hb335429_6 27.6 KiB conda ros-humble-ros2lifecycle-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2multicast 0.18.8 py311hb335429_6 18 KiB conda ros-humble-ros2multicast-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2node 0.18.8 py311hb335429_6 23.7 KiB conda ros-humble-ros2node-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2param 0.18.8 py311hb335429_6 41.2 KiB conda ros-humble-ros2param-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2pkg 0.18.8 py311hb335429_6 42.3 KiB conda ros-humble-ros2pkg-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2run 0.18.8 py311hb335429_6 17.7 KiB conda ros-humble-ros2run-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2service 0.18.8 py311hb335429_6 25.7 KiB conda ros-humble-ros2service-0.18.8-py311hb335429_6.tar.bz2
ros-humble-ros2topic 0.18.8 py311hb335429_6 65.4 KiB conda ros-humble-ros2topic-0.18.8-py311hb335429_6.tar.bz2
ros-humble-rosbag2 0.15.9 py311hb335429_6 11.7 KiB conda ros-humble-rosbag2-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-compression 0.15.9 py311hb335429_6 167.5 KiB conda ros-humble-rosbag2-compression-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-compression-zstd 0.15.9 py311hb335429_6 41.7 KiB conda ros-humble-rosbag2-compression-zstd-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-cpp 0.15.9 py311hb335429_6 269.8 KiB conda ros-humble-rosbag2-cpp-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-interfaces 0.15.9 py311hb335429_6 205 KiB conda ros-humble-rosbag2-interfaces-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-py 0.15.9 py311hb335429_6 526.4 KiB conda ros-humble-rosbag2-py-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-storage 0.15.9 py311hb335429_6 203.7 KiB conda ros-humble-rosbag2-storage-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-storage-default-plugins 0.15.9 py311hb335429_6 97.7 KiB conda ros-humble-rosbag2-storage-default-plugins-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosbag2-transport 0.15.9 py311hb335429_6 391.8 KiB conda ros-humble-rosbag2-transport-0.15.9-py311hb335429_6.tar.bz2
ros-humble-rosgraph-msgs 1.2.1 py311hb335429_6 51 KiB conda ros-humble-rosgraph-msgs-1.2.1-py311hb335429_6.tar.bz2
ros-humble-rosidl-adapter 3.1.5 py311hb335429_6 59.8 KiB conda ros-humble-rosidl-adapter-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-cli 3.1.5 py311hb335429_6 35.5 KiB conda ros-humble-rosidl-cli-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-cmake 3.1.5 py311hb335429_6 27.5 KiB conda ros-humble-rosidl-cmake-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-default-generators 1.2.0 py311hb335429_6 12.4 KiB conda ros-humble-rosidl-default-generators-1.2.0-py311hb335429_6.tar.bz2
ros-humble-rosidl-default-runtime 1.2.0 py311hb335429_6 11.5 KiB conda ros-humble-rosidl-default-runtime-1.2.0-py311hb335429_6.tar.bz2
ros-humble-rosidl-generator-c 3.1.5 py311hb335429_6 32.5 KiB conda ros-humble-rosidl-generator-c-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-generator-cpp 3.1.5 py311hb335429_6 35.8 KiB conda ros-humble-rosidl-generator-cpp-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-generator-py 0.14.4 py311hb335429_6 45.2 KiB conda ros-humble-rosidl-generator-py-0.14.4-py311hb335429_6.tar.bz2
ros-humble-rosidl-parser 3.1.5 py311hb335429_6 55.3 KiB conda ros-humble-rosidl-parser-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-runtime-c 3.1.5 py311hb335429_6 31.7 KiB conda ros-humble-rosidl-runtime-c-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-runtime-cpp 3.1.5 py311hb335429_6 20 KiB conda ros-humble-rosidl-runtime-cpp-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-runtime-py 0.9.3 py311hb335429_6 36 KiB conda ros-humble-rosidl-runtime-py-0.9.3-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-c 2.0.1 py311hb335429_6 32.1 KiB conda ros-humble-rosidl-typesupport-c-2.0.1-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-cpp 2.0.1 py311hb335429_6 31.1 KiB conda ros-humble-rosidl-typesupport-cpp-2.0.1-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-fastrtps-c 2.2.2 py311hb335429_6 31.3 KiB conda ros-humble-rosidl-typesupport-fastrtps-c-2.2.2-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-fastrtps-cpp 2.2.2 py311hb335429_6 33.3 KiB conda ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.2-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-interface 3.1.5 py311hb335429_6 13 KiB conda ros-humble-rosidl-typesupport-interface-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-introspection-c 3.1.5 py311hb335429_6 29.7 KiB conda ros-humble-rosidl-typesupport-introspection-c-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-introspection-cpp 3.1.5 py311hb335429_6 29.8 KiB conda ros-humble-rosidl-typesupport-introspection-cpp-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rpyutils 0.2.1 py311hb335429_6 17 KiB conda ros-humble-rpyutils-0.2.1-py311hb335429_6.tar.bz2
ros-humble-rti-connext-dds-cmake-module 0.11.2 py311hb335429_6 15.8 KiB conda ros-humble-rti-connext-dds-cmake-module-0.11.2-py311hb335429_6.tar.bz2
ros-humble-sensor-msgs 4.2.3 py311hb335429_6 469.1 KiB conda ros-humble-sensor-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-shape-msgs 4.2.3 py311hb335429_6 102.3 KiB conda ros-humble-shape-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-shared-queues-vendor 0.15.9 py311hb335429_6 51.4 KiB conda ros-humble-shared-queues-vendor-0.15.9-py311hb335429_6.tar.bz2
ros-humble-spdlog-vendor 1.3.1 py311h9883907_6 10.7 KiB conda ros-humble-spdlog-vendor-1.3.1-py311h9883907_6.tar.bz2
ros-humble-sqlite3-vendor 0.15.9 py311he5a647e_6 11.9 KiB conda ros-humble-sqlite3-vendor-0.15.9-py311he5a647e_6.tar.bz2
ros-humble-sros2 0.10.4 py311hb335429_6 63.7 KiB conda ros-humble-sros2-0.10.4-py311hb335429_6.tar.bz2
ros-humble-sros2-cmake 0.10.4 py311hb335429_6 12.8 KiB conda ros-humble-sros2-cmake-0.10.4-py311hb335429_6.tar.bz2
ros-humble-statistics-msgs 1.2.1 py311hb335429_6 86.9 KiB conda ros-humble-statistics-msgs-1.2.1-py311hb335429_6.tar.bz2
ros-humble-std-msgs 4.2.3 py311hb335429_6 300.8 KiB conda ros-humble-std-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-std-srvs 4.2.3 py311hb335429_6 93.6 KiB conda ros-humble-std-srvs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-stereo-msgs 4.2.3 py311hb335429_6 60.7 KiB conda ros-humble-stereo-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-tf2 0.25.5 py311hb303436_6 104 KiB conda ros-humble-tf2-0.25.5-py311hb303436_6.tar.bz2
ros-humble-tf2-bullet 0.25.5 py311hb335429_6 16 KiB conda ros-humble-tf2-bullet-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-eigen 0.25.5 py311hb335429_6 18.6 KiB conda ros-humble-tf2-eigen-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-eigen-kdl 0.25.5 py311hb335429_6 20.5 KiB conda ros-humble-tf2-eigen-kdl-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-geometry-msgs 0.25.5 py311hb335429_6 32.3 KiB conda ros-humble-tf2-geometry-msgs-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-kdl 0.25.5 py311hb335429_6 21.7 KiB conda ros-humble-tf2-kdl-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-msgs 0.25.5 py311hb335429_6 163.5 KiB conda ros-humble-tf2-msgs-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-py 0.25.5 py311hb335429_6 35.7 KiB conda ros-humble-tf2-py-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-ros 0.25.5 py311hb335429_6 488.6 KiB conda ros-humble-tf2-ros-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-ros-py 0.25.5 py311hb335429_6 38 KiB conda ros-humble-tf2-ros-py-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-sensor-msgs 0.25.5 py311hb335429_6 15.4 KiB conda ros-humble-tf2-sensor-msgs-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tf2-tools 0.25.5 py311hb335429_6 16.8 KiB conda ros-humble-tf2-tools-0.25.5-py311hb335429_6.tar.bz2
ros-humble-tinyxml-vendor 0.8.3 py311hb335429_6 11.7 KiB conda ros-humble-tinyxml-vendor-0.8.3-py311hb335429_6.tar.bz2
ros-humble-tinyxml2-vendor 0.7.6 py311hfc76a15_6 11.8 KiB conda ros-humble-tinyxml2-vendor-0.7.6-py311hfc76a15_6.tar.bz2
ros-humble-tracetools 4.1.1 py311hb335429_6 23.8 KiB conda ros-humble-tracetools-4.1.1-py311hb335429_6.tar.bz2
ros-humble-trajectory-msgs 4.2.3 py311hb335429_6 123.7 KiB conda ros-humble-trajectory-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-uncrustify-vendor 2.0.2 py311hb335429_6 10.5 KiB conda ros-humble-uncrustify-vendor-2.0.2-py311hb335429_6.tar.bz2
ros-humble-unique-identifier-msgs 2.2.1 py311hb335429_6 53.7 KiB conda ros-humble-unique-identifier-msgs-2.2.1-py311hb335429_6.tar.bz2
ros-humble-urdf 2.6.0 py311hb335429_6 124.7 KiB conda ros-humble-urdf-2.6.0-py311hb335429_6.tar.bz2
ros-humble-urdf-parser-plugin 2.6.0 py311hb335429_6 14.3 KiB conda ros-humble-urdf-parser-plugin-2.6.0-py311hb335429_6.tar.bz2
ros-humble-urdfdom 3.0.2 py311hb303436_6 141.1 KiB conda ros-humble-urdfdom-3.0.2-py311hb303436_6.tar.bz2
ros-humble-urdfdom-headers 1.0.6 py311hb335429_6 19.9 KiB conda ros-humble-urdfdom-headers-1.0.6-py311hb335429_6.tar.bz2
ros-humble-visualization-msgs 4.2.3 py311hb335429_6 295.8 KiB conda ros-humble-visualization-msgs-4.2.3-py311hb335429_6.tar.bz2
ros-humble-yaml-cpp-vendor 8.0.2 py311hb335429_6 10.6 KiB conda ros-humble-yaml-cpp-vendor-8.0.2-py311hb335429_6.tar.bz2
ros-humble-zstd-vendor 0.15.9 py311hefdfea7_6 11.2 KiB conda ros-humble-zstd-vendor-0.15.9-py311hefdfea7_6.tar.bz2
ros2-distro-mutex 0.5.0 humble 3.6 KiB conda ros2-distro-mutex-0.5.0-humble.tar.bz2
rosdistro 0.9.0 py311h38be061_1 115.1 KiB conda rosdistro-0.9.0-py311h38be061_1.conda
rospkg 1.5.1 pyhd8ed1ab_0 30.6 KiB conda rospkg-1.5.1-pyhd8ed1ab_0.conda
ruamel_yaml 0.18.6 pypi https://files.pythonhosted.org/packages/73/67/8ece580cc363331d9a53055130f86b096bf16e38156e33b1d3014fffda6b/ruamel.yaml-0.18.6-py3-none-any.whl
ruamel_yaml_clib 0.2.8 pypi https://files.pythonhosted.org/packages/a4/f7/22d6b620ed895a05d40802d8281eff924dc6190f682d933d4efff60db3b5/ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
ruff 0.5.2 pypi https://files.pythonhosted.org/packages/ec/60/e2a9ae058b34128caa5f863f268e1c9bd083793264f4bf7e8e469be651f9/ruff-0.5.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
setuptools 70.3.0 pyhd8ed1ab_0 484.8 KiB conda setuptools-70.3.0-pyhd8ed1ab_0.conda
six 1.16.0 pyh6c4a22f_0 13.9 KiB conda six-1.16.0-pyh6c4a22f_0.tar.bz2
snowballstemmer 2.2.0 pyhd8ed1ab_0 57.4 KiB conda snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2
spdlog 1.12.0 hd2e6256_2 183.5 KiB conda spdlog-1.12.0-hd2e6256_2.conda
sqlite 3.46.0 h6d4b2fc_0 840.2 KiB conda sqlite-3.46.0-h6d4b2fc_0.conda
tinyxml 2.6.2 h4bd325d_2 55.2 KiB conda tinyxml-2.6.2-h4bd325d_2.tar.bz2
tinyxml2 10.0.0 h59595ed_0 117.8 KiB conda tinyxml2-10.0.0-h59595ed_0.conda
tk 8.6.13 noxft_h4845f30_101 3.2 MiB conda tk-8.6.13-noxft_h4845f30_101.conda
toml 0.10.2 pyhd8ed1ab_0 18 KiB conda toml-0.10.2-pyhd8ed1ab_0.tar.bz2
tomli 2.0.1 pyhd8ed1ab_0 15.6 KiB conda tomli-2.0.1-pyhd8ed1ab_0.tar.bz2
typeguard 4.3.0 pypi https://files.pythonhosted.org/packages/eb/de/be0ba39ee73760bf33329b7c6f95bc67e96593c69c881671e312538e24bb/typeguard-4.3.0-py3-none-any.whl
typing_extensions 4.12.2 pypi https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl
tzdata 2024a h0c530f3_0 117 KiB conda tzdata-2024a-h0c530f3_0.conda
uncrustify 0.74.0 h27087fc_0 729.4 KiB conda uncrustify-0.74.0-h27087fc_0.tar.bz2
urdf_parser_py 0.0.4 pypi https://files.pythonhosted.org/packages/a3/8b/9dd44781a4e87746a426c56c3368c3da64fd90a130f582340cbf74397f8e/urdf_parser_py-0.0.4.tar.gz
virtualenv 20.26.3 pypi https://files.pythonhosted.org/packages/07/4d/410156100224c5e2f0011d435e477b57aed9576fc7fe137abcf14ec16e11/virtualenv-20.26.3-py3-none-any.whl
wayland 1.23.0 h5291e77_0 315.3 KiB conda wayland-1.23.0-h5291e77_0.conda
wheel 0.43.0 pyhd8ed1ab_1 56.6 KiB conda wheel-0.43.0-pyhd8ed1ab_1.conda
xkeyboard-config 2.42 h4ab18f5_0 379.9 KiB conda xkeyboard-config-2.42-h4ab18f5_0.conda
xorg-kbproto 1.0.7 h7f98852_1002 26.7 KiB conda xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2
xorg-libice 1.1.1 hd590300_0 57.1 KiB conda xorg-libice-1.1.1-hd590300_0.conda
xorg-libsm 1.2.4 h7391055_0 26.8 KiB conda xorg-libsm-1.2.4-h7391055_0.conda
xorg-libx11 1.8.9 h8ee46fc_0 808.7 KiB conda xorg-libx11-1.8.9-h8ee46fc_0.conda
xorg-libxau 1.0.11 hd590300_0 14.1 KiB conda xorg-libxau-1.0.11-hd590300_0.conda
xorg-libxdmcp 1.1.3 h7f98852_0 18.7 KiB conda xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2
xorg-libxext 1.3.4 h0b41bf4_2 49 KiB conda xorg-libxext-1.3.4-h0b41bf4_2.conda
xorg-libxinerama 1.1.5 h27087fc_0 13 KiB conda xorg-libxinerama-1.1.5-h27087fc_0.tar.bz2
xorg-libxrender 0.9.11 hd590300_0 36.9 KiB conda xorg-libxrender-0.9.11-hd590300_0.conda
xorg-renderproto 0.11.1 h7f98852_1002 9.4 KiB conda xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2
xorg-xextproto 7.3.0 h0b41bf4_1003 29.6 KiB conda xorg-xextproto-7.3.0-h0b41bf4_1003.conda
xorg-xproto 7.0.31 h7f98852_1007 73.2 KiB conda xorg-xproto-7.0.31-h7f98852_1007.tar.bz2
xz 5.2.6 h166bdaf_0 408.6 KiB conda xz-5.2.6-h166bdaf_0.tar.bz2
yaml 0.2.5 h7f98852_2 87.1 KiB conda yaml-0.2.5-h7f98852_2.tar.bz2
yaml-cpp 0.8.0 h59595ed_0 200.1 KiB conda yaml-cpp-0.8.0-h59595ed_0.conda
zipp 3.19.2 pyhd8ed1ab_0 20.4 KiB conda zipp-3.19.2-pyhd8ed1ab_0.conda
zlib 1.2.13 h4ab18f5_6 90.7 KiB conda zlib-1.2.13-h4ab18f5_6.conda
zstd 1.5.6 ha6fb4c9_0 541.8 KiB conda zstd-1.5.6-ha6fb4c9_0.conda
Pinging @wolfv and @traversaro in hopes of some expertise :smiley:
Thanks for the detailed report. I guess there is some package that is generating non-relocatable files, and conda/pixi binary relocation is not working as expected, either due to a problem in boa/conda-build when the package is generated, or on conda/pixi side when the package is installed.
I will try to replicate locally to provide more insight.
I will try to replicate locally to provide more insight.
I tried to replicate the error (without the docker layer to avoid the exposed surface) as in the following:
git clone https://github.com/Caltech-AMBER/obelisk
cd obelisk
git checkout 46f503cf2ba7068b2b576e5540eb3ab17cea7f10
export OBELISK_ROOT=`pwd`
pixi shell -e dev
pixi run messages-build
pixi run source-obelisk
source fun.sh
where fun.sh contains:
# convenience aliases for lifecycle commands
function obk-lifecycle {
if [[ -z "$1" || -z "$2" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-lifecycle <node> <state>\033[0m"
return 1
fi
ros2 lifecycle set "$1" "$2"
}
function obk-configure {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-configure <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" configure
}
function obk-activate {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-activate <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" activate
}
function obk-deactivate {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-deactivate <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" deactivate
}
function obk-cleanup {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-cleanup <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" cleanup
}
function obk-shutdown {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-shutdown <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" shutdown
}
function obk-start {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-start <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" configure
}
function obk-stop {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-stop <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" deactivate
obk-lifecycle "$1" cleanup
}
function obk-kill {
if [[ -z "$1" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-kill <config_name>\033[0m"
return 1
fi
obk-lifecycle "$1" shutdown
}
# convenience function for ros2 launch command
function obk-launch {
local config_file_path=""
local device_name=""
local auto_start="True"
local bag="True"
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
config_file_path=*)
config_file_path="${key#*=}"
shift
;;
device_name=*)
device_name="${key#*=}"
shift
;;
auto_start=*)
auto_start="${key#*=}"
shift
;;
bag=*)
bag="${key#*=}"
shift
;;
*)
echo "Unknown option $key"
return 1
;;
esac
done
# Check if any of the required arguments are empty
if [[ -z "$config_file_path" || -z "$device_name" ]]; then
echo -e "\033[1;34mError: Missing required arguments.\033[0m"
echo -e "\033[1;34mUsage: obk-launch config_file_path=<path> device_name=<name> auto_start=<True|False>\033[0m"
return 1
fi
ros2 launch obelisk_ros obelisk_bringup.launch.py config_file_path:=${config_file_path} device_name:=${device_name} auto_start:=${auto_start} bag:=${bag}
}
and the command obk-launch config_file_path=dummy_cpp.yaml device_name=onboard
works with any error:
(obelisk:dev) traversaro@IITBMP014LW012:~/src/obelisk$ obk-launch config_file_path=dummy_cpp.yaml device_name=onboard
[INFO] [launch]: All log files can be found below /home/traversaro/.ros/log/2024-07-19-13-47-58-351991-IITBMP014LW012-128365
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [1721389678.445505787] [obelisk_bringup]: Bringing up the Obelisk nodes on device onboard...
[INFO] [1721389678.446267661] [obelisk_bringup]: Logging directory set to /home/traversaro/src/obelisk/obk_logs/dummy_20240719_134758
[INFO] [ros2-1]: process started with pid [128377]
[INFO] [global_state-2]: process started with pid [128379]
[INFO] [example_position_setpoint_controller-3]: process started with pid [128381]
[INFO] [jointencoders_passthrough_estimator-4]: process started with pid [128383]
[INFO] [obelisk_mujoco_robot-5]: process started with pid [128385]
[example_position_setpoint_controller-3] [INFO] [1721389678.506150084] [obelisk_control_0]: position_setpoint_controller created.
[obelisk_mujoco_robot-5] [INFO] [1721389678.510027860] [obelisk_robot_0]: mujoco_sim created.
[jointencoders_passthrough_estimator-4] [INFO] [1721389678.510874102] [obelisk_estimation_0]: passthrough_estimator created.
[ros2-1] stdin is not a terminal device. Keyboard handling disabled.[INFO] [1721389678.611208462] [rosbag2_recorder]: Press SPACE for pausing/resuming
[ros2-1] [INFO] [1721389678.617097626] [rosbag2_storage]: Opened database '/home/traversaro/src/obelisk/obk_logs/dummy_20240719_134758/obk_stack_bag/obk_stack_bag_0.db3' for READ_WRITE.
[ros2-1] [INFO] [1721389678.618158961] [rosbag2_recorder]: Listening for topics...
[ros2-1] [INFO] [1721389678.618227534] [rosbag2_recorder]: Event publisher thread: Starting
[ros2-1] [INFO] [1721389678.619552301] [rosbag2_recorder]: Subscribed to topic '/rosout'
[ros2-1] [INFO] [1721389678.620203279] [rosbag2_recorder]: Subscribed to topic '/parameter_events'
[ros2-1] [INFO] [1721389678.620683118] [rosbag2_recorder]: Subscribed to topic '/obelisk_robot_0/transition_event'
[ros2-1] [INFO] [1721389678.621018608] [rosbag2_recorder]: Subscribed to topic '/obelisk_control_0/transition_event'
[ros2-1] [INFO] [1721389678.621335630] [rosbag2_recorder]: Subscribed to topic '/obelisk_estimation_0/transition_event'
[ros2-1] [INFO] [1721389678.621673117] [rosbag2_recorder]: Subscribed to topic '/events/write_split'
[ros2-1] [INFO] [1721389678.622038396] [rosbag2_recorder]: Recording...
[ros2-1] [INFO] [1721389678.622673361] [rosbag2_recorder]: Subscribed to topic '/dummy/transition_event'
[obelisk_mujoco_robot-5] [WARN] [1721389678.745433183] [obelisk_robot_0]: Registered publisher was not provided a config string! Skipping creation.
[obelisk_mujoco_robot-5] [WARN] [1721389678.745964320] [obelisk_robot_0]: Registered timer was not provided a config string! Skipping creation.
[obelisk_mujoco_robot-5] [INFO] [1721389678.746006540] [obelisk_robot_0]: obelisk_robot_0 configured.
[obelisk_mujoco_robot-5] [INFO] [1721389678.746089603] [obelisk_robot_0]: Simulation thread started.
[jointencoders_passthrough_estimator-4] [INFO] [1721389678.747547581] [obelisk_estimation_0]: obelisk_estimation_0 configured.
[obelisk_mujoco_robot-5] [INFO] [1721389678.748395048] [obelisk_robot_0]: Setting up Mujoco visualization.
[example_position_setpoint_controller-3] [INFO] [1721389678.751133250] [obelisk_control_0]: obelisk_control_0 configured.
[jointencoders_passthrough_estimator-4] [INFO] [1721389678.755367964] [obelisk_estimation_0]: obelisk_estimation_0 activated.
[example_position_setpoint_controller-3] [INFO] [1721389678.755524794] [obelisk_control_0]: obelisk_control_0 activated.
[ros2-1] [INFO] [1721389678.824586478] [rosbag2_recorder]: Subscribed to topic '/obelisk/dummy/ctrl'
[ros2-1] [INFO] [1721389678.825261112] [rosbag2_recorder]: Subscribed to topic '/obelisk/dummy/est'
[obelisk_mujoco_robot-5] WARNING: dzn is not a conformant Vulkan implementation, testing use only.
[obelisk_mujoco_robot-5] WARNING: dzn is not a conformant Vulkan implementation, testing use only.
[obelisk_mujoco_robot-5] WARNING: Some incorrect rendering might occur because the selected Vulkan device (Microsoft Direct3D12 (NVIDIA GeForce RTX 4050 Laptop GPU)) doesn't support base Zink requirements: feats.features.logicOp have_EXT_custom_border_color have_EXT_line_rasterization
[obelisk_mujoco_robot-5] libEGL warning: egl: failed to create dri2 screen
[obelisk_mujoco_robot-5] [INFO] [1721389682.573071904] [obelisk_robot_0]: Starting Mujoco simulation loop.
[obelisk_mujoco_robot-5] [INFO] [1721389682.575883012] [obelisk_robot_0]: Timer callback created
[obelisk_mujoco_robot-5] [INFO] [1721389682.576449340] [obelisk_robot_0]: obelisk_robot_0 activated.
[ros2-1] [INFO] [1721389682.645800196] [rosbag2_recorder]: Subscribed to topic '/obelisk/dummy/sensor'
without any runtime error, pixi info
:
(obelisk:dev) traversaro@IITBMP014LW012:~/src/obelisk$ pixi info
WARN pixi::project::manifest::validation: The feature 'cuda118' is defined but not used in any environment
Pixi version: 0.23.0
Platform: linux-64
Virtual packages: __unix=0=0
: __linux=5.15.153.1=0
: __glibc=2.35=0
: __cuda=12.3=0
: __archspec=1=skylake
Cache dir: /home/traversaro/.cache/rattler/cache
Auth storage: /home/traversaro/.rattler/credentials.json
Project
------------
Name: obelisk
Manifest file: /home/traversaro/src/obelisk/pixi.toml
Config locations:
Last updated: 19-07-2024 12:16:04
Environments
------------
Environment: default
Features: default
Solve group: default
Channels: conda-forge
Dependency count: 3
Dependencies: python, pip, setuptools
PyPI Dependencies: matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: messages-build, source-obelisk, cmake, all-tests, cpp-test-node, cpp-test-viz, cpp-build, ros-build, cpp-build-debug, cpp-test-node-debug, cpp-ctest
Environment: obelisk
Features: obelisk, default
Channels: conda-forge
Dependency count: 3
Dependencies: python, pip, setuptools
PyPI Dependencies: mujoco, ruamel.yaml, urdf_parser_py, matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: source-obelisk, cpp-ctest, messages-build, cpp-test-viz, all-tests, ros-build, cmake, cpp-build-debug, cpp-test-node-debug, cpp-test-node, cpp-build
Environment: test
Features: cuda121, obelisk, ros2base, test, default
Solve group: dev
Channels: nvidia, nvidia/label/cuda-12.1.0, conda-forge, robostack-staging
Dependency count: 7
Dependencies: cuda, ros-humble-ros-base, colcon-common-extensions, pytest, python, pip, setuptools
PyPI Dependencies: mujoco, ruamel.yaml, urdf_parser_py, pytest-xdist, typeguard, dynamixel-sdk, matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: cpp-test-node-debug, cmake, messages-build, cpp-test-viz, cpp-ctest, cpp-test-node, source-obelisk, all-tests, ros-build, cpp-build-debug, cpp-build
Environment: ros2-install
Features: ros2base, default
Channels: robostack-staging, conda-forge
Dependency count: 5
Dependencies: ros-humble-ros-base, colcon-common-extensions, python, pip, setuptools
PyPI Dependencies: matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: ros-build, cpp-test-node-debug, cpp-build-debug, cpp-build, source-obelisk, all-tests, messages-build, cpp-test-viz, cpp-ctest, cpp-test-node, cmake
Environment: dev-no-gpu
Features: obelisk, ros2base, test, dev, build, default
Channels: conda-forge, robostack-staging
Dependency count: 10
Dependencies: ros-humble-ros-base, colcon-common-extensions, pytest, cmake, ninja, make, glfw, python, pip, setuptools
PyPI Dependencies: mujoco, ruamel.yaml, urdf_parser_py, pytest-xdist, typeguard, dynamixel-sdk, pre-commit, ruff, pyright, matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: all-tests, source-obelisk, cpp-test-node, cpp-build-debug, cpp-test-node-debug, messages-build, cpp-build, cpp-test-viz, ros-build, cmake, cpp-ctest
Environment: dev
Features: cuda121, obelisk, ros2base, test, dev, build, default
Solve group: dev
Channels: nvidia, nvidia/label/cuda-12.1.0, conda-forge, robostack-staging
Dependency count: 11
Dependencies: cuda, ros-humble-ros-base, colcon-common-extensions, pytest, cmake, ninja, make, glfw, python, pip, setuptools
PyPI Dependencies: mujoco, ruamel.yaml, urdf_parser_py, pytest-xdist, typeguard, dynamixel-sdk, pre-commit, ruff, pyright, matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: cpp-test-viz, all-tests, cpp-build-debug, cpp-test-node, source-obelisk, cpp-test-node-debug, cpp-ctest, cmake, ros-build, messages-build, cpp-build
Environment: docs
Features: docs, default
Channels: conda-forge
Dependency count: 3
Dependencies: python, pip, setuptools
PyPI Dependencies: myst-parser, sphinx, sphinx-rtd-theme, sphinx-tabs, matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: cpp-test-node-debug, ros-build, messages-build, cmake, cpp-test-node, cpp-build, all-tests, cpp-ctest, cpp-test-viz, source-obelisk, cpp-build-debug
Environment: build
Features: cuda121, build, default
Channels: nvidia, nvidia/label/cuda-12.1.0, conda-forge
Dependency count: 8
Dependencies: cuda, cmake, ninja, make, glfw, python, pip, setuptools
PyPI Dependencies: matplotlib, numpy, obelisk_py
Target platforms: linux-64
Tasks: all-tests, cpp-ctest, cpp-build, cpp-test-viz, cpp-test-node, cpp-test-node-debug, source-obelisk, cpp-build-debug, messages-build, ros-build, cmake
Probably there is something in the docker image that is causing the error to appear, could you try to make a more minimal reproducible example?
Hi @traversaro - apologies about the messiness of our setup scripts, and thank you for still investigating the issue. We don't believe the issue is with docker
. When running the following commands on my local filesystem (the same as you), I still get the originally-reported type support error. Commands:
git clone https://github.com/Caltech-AMBER/obelisk
cd obelisk
git checkout 46f503cf2ba7068b2b576e5540eb3ab17cea7f10
export OBELISK_ROOT=`pwd`
pixi shell -e dev
pixi run messages-build
pixi run source-obelisk
ros2 launch obelisk_ros obelisk_bringup.launch.py config_file_path:=dummy_cpp.yaml device_name:=onboard auto_start:=true bag:=false
We've set up a minimum example in the following repo that might be helpful (commit hash 067d9fa5e8b92b13f52d25abc33bf80358850f54
): https://github.com/Caltech-AMBER/ros_mwes/tree/rosidl-errors.
Tl;dr: Running our example produces the error
error while loading shared libraries: librosidl_typesupport_cpp.so: cannot open shared object file: No such file or directory
This is not exactly the same as the originally-reported error, but might still provide insight. The README on the rosidl-errors
branch contains a report of everything we've found so far, but for convenience, I will summarize here.
In this minimum working example, we define 3 packages:
test_a_msgs
, which contains a simple definition of a trivial message TestA
that only has a std_msgs/Header
field.test_b_msgs
, which contains a message TestB
with a TestA
field in it, so this package should depend on test_a_msgs
. This simulates the setup in our project, which has one custom message depend on another.test_pkg
, which spins a trivial node with a timer that publishes a message of TestB
type.We reproduce in Docker. You can either choose to repro by mounting the repo root or by adding the pixi.toml
and test workspace to the image at build time. The main advantage to mounting is that caches persist, so you don't have to, e.g., recreate the pixi environment from scratch each time you use the container. The advantage to adding the files is that there is no info shared between the container and your local filesystem.
# mounts the repo root at the /repro directory
docker compose -f docker-compose-simple.yml run --build test
# no mounting - just adds the necessary files
docker compose -f docker-compose-simple-nomount.yml run --build test
Either way, within the container, run
# activate pixi shell
pixi shell
# within pixi shell, run these commands
cd test_ws
rm -rf build install
colcon build --symlink-install --packages-select test_a_msgs test_b_msgs --parallel-workers $(nproc)
source install/setup.bash
colcon build --symlink-install --parallel-workers $(nproc)
source install/setup.bash
ros2 run test_pkg test_node
This will raise the error
/repro/test_ws/install/test_pkg/lib/test_pkg/test_node: error while loading shared libraries: librosidl_typesupport_cpp.so: cannot open shared object file: No such file or directory
Upon running pixi list
, we see that rosidl_typesupport_cpp
is installed (rosidl-related deps shown here):
ros-humble-rosidl-adapter 3.1.5 py311hb335429_6 59.8 KiB conda ros-humble-rosidl-adapter-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-cli 3.1.5 py311hb335429_6 35.5 KiB conda ros-humble-rosidl-cli-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-cmake 3.1.5 py311hb335429_6 27.5 KiB conda ros-humble-rosidl-cmake-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-default-generators 1.2.0 py311hb335429_6 12.4 KiB conda ros-humble-rosidl-default-generators-1.2.0-py311hb335429_6.tar.bz2
ros-humble-rosidl-default-runtime 1.2.0 py311hb335429_6 11.5 KiB conda ros-humble-rosidl-default-runtime-1.2.0-py311hb335429_6.tar.bz2
ros-humble-rosidl-generator-c 3.1.5 py311hb335429_6 32.5 KiB conda ros-humble-rosidl-generator-c-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-generator-cpp 3.1.5 py311hb335429_6 35.8 KiB conda ros-humble-rosidl-generator-cpp-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-generator-py 0.14.4 py311hb335429_6 45.2 KiB conda ros-humble-rosidl-generator-py-0.14.4-py311hb335429_6.tar.bz2
ros-humble-rosidl-parser 3.1.5 py311hb335429_6 55.3 KiB conda ros-humble-rosidl-parser-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-runtime-c 3.1.5 py311hb335429_6 31.7 KiB conda ros-humble-rosidl-runtime-c-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-runtime-cpp 3.1.5 py311hb335429_6 20 KiB conda ros-humble-rosidl-runtime-cpp-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-runtime-py 0.9.3 py311hb335429_6 36 KiB conda ros-humble-rosidl-runtime-py-0.9.3-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-c 2.0.1 py311hb335429_6 32.1 KiB conda ros-humble-rosidl-typesupport-c-2.0.1-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-cpp 2.0.1 py311hb335429_6 31.1 KiB conda ros-humble-rosidl-typesupport-cpp-2.0.1-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-fastrtps-c 2.2.2 py311hb335429_6 31.3 KiB conda ros-humble-rosidl-typesupport-fastrtps-c-2.2.2-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-fastrtps-cpp 2.2.2 py311hb335429_6 33.3 KiB conda ros-humble-rosidl-typesupport-fastrtps-cpp-2.2.2-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-interface 3.1.5 py311hb335429_6 13 KiB conda ros-humble-rosidl-typesupport-interface-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-introspection-c 3.1.5 py311hb335429_6 29.7 KiB conda ros-humble-rosidl-typesupport-introspection-c-3.1.5-py311hb335429_6.tar.bz2
ros-humble-rosidl-typesupport-introspection-cpp 3.1.5 py311hb335429_6 29.8 KiB conda ros-humble-rosidl-typesupport-introspection-cpp-3.1.5-py311hb335429_6.tar.bz2
Further, by running grep -Rnw librosidl_typesupport_cpp.so
after all this, we recover the following output:
(test) root@89a237835046:/repro/test_ws# grep -Rnw librosidl_typesupport_cpp.so
grep: install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_cpp.so: binary file matches
grep: install/test_b_msgs/lib/libtest_b_msgs__rosidl_typesupport_cpp.so: binary file matches
build/test_pkg/CMakeFiles/test_node.dir/link.txt:1:/usr/bin/c++ CMakeFiles/test_node.dir/src/test_node.cpp.o -o test_node -Wl,-rpath,/repro/.pixi/envs/default/lib:/repro/test_ws/install/test_b_msgs/lib:/repro/test_ws/install/test_a_msgs/lib /repro/.pixi/envs/default/lib/librclcpp.so -lpthread /repro/.pixi/envs/default/lib/liblibstatistics_collector.so /repro/.pixi/envs/default/lib/librcl.so /repro/.pixi/envs/default/lib/librmw_implementation.so /repro/.pixi/envs/default/lib/libament_index_cpp.so /repro/.pixi/envs/default/lib/librcl_logging_spdlog.so /repro/.pixi/envs/default/lib/librcl_logging_interface.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_typesupport_fastrtps_c.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_typesupport_introspection_c.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_typesupport_fastrtps_cpp.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_typesupport_introspection_cpp.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_generator_py.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_typesupport_c.so /repro/.pixi/envs/default/lib/librcl_interfaces__rosidl_generator_c.so /repro/.pixi/envs/default/lib/librcl_yaml_param_parser.so -lyaml /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_typesupport_fastrtps_c.so /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_typesupport_fastrtps_cpp.so /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_typesupport_introspection_c.so /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_typesupport_introspection_cpp.so /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_generator_py.so /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_typesupport_c.so /repro/.pixi/envs/default/lib/librosgraph_msgs__rosidl_generator_c.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_typesupport_fastrtps_c.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_typesupport_fastrtps_cpp.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_typesupport_introspection_c.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_typesupport_introspection_cpp.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_generator_py.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_typesupport_c.so /repro/.pixi/envs/default/lib/libstatistics_msgs__rosidl_generator_c.so /repro/.pixi/envs/default/lib/libtracetools.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_typesupport_fastrtps_c.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_fastrtps_c.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_fastrtps_c.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_fastrtps_c.so /repro/.pixi/envs/default/lib/librosidl_typesupport_fastrtps_c.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_typesupport_introspection_c.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_introspection_c.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_introspection_c.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_introspection_c.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_typesupport_fastrtps_cpp.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_fastrtps_cpp.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_fastrtps_cpp.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_fastrtps_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_fastrtps_cpp.so /repro/.pixi/envs/default/lib/libfastcdr.so.1.0.24 /repro/.pixi/envs/default/lib/librmw.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_typesupport_introspection_cpp.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_introspection_cpp.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_introspection_cpp.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_introspection_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_introspection_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_introspection_c.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_typesupport_cpp.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_cpp.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_generator_py.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_generator_py.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_typesupport_c.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_c.so /repro/test_ws/install/test_b_msgs/lib/libtest_b_msgs__rosidl_generator_c.so /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_generator_c.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_generator_py.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_generator_py.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_c.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_c.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_generator_c.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_generator_c.so /repro/.pixi/envs/default/lib/librosidl_typesupport_c.so /repro/.pixi/envs/default/lib/librcpputils.so /repro/.pixi/envs/default/lib/librosidl_runtime_c.so /repro/.pixi/envs/default/lib/librcutils.so -ldl -lrt -Wl,-rpath-link,/repro/.pixi/envs/default/lib
build/test_pkg/CMakeFiles/test_node.dir/build.make:141:test_node: /repro/.pixi/envs/default/lib/librosidl_typesupport_cpp.so
build/test_a_msgs/CMakeFiles/test_a_msgs__rosidl_typesupport_cpp.dir/link.txt:1:/usr/bin/c++ -fPIC -shared -Wl,-soname,libtest_a_msgs__rosidl_typesupport_cpp.so -o libtest_a_msgs__rosidl_typesupport_cpp.so CMakeFiles/test_a_msgs__rosidl_typesupport_cpp.dir/rosidl_typesupport_cpp/test_a_msgs/msg/test_a__type_support.cpp.o -Wl,-rpath,/repro/.pixi/envs/default/lib: /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_c.so /repro/.pixi/envs/default/lib/librosidl_runtime_c.so /repro/.pixi/envs/default/lib/librcutils.so -ldl -lrt -Wl,-rpath-link,/repro/.pixi/envs/default/lib
build/test_a_msgs/CMakeFiles/test_a_msgs__rosidl_typesupport_cpp.dir/build.make:126:libtest_a_msgs__rosidl_typesupport_cpp.so: /repro/.pixi/envs/default/lib/librosidl_typesupport_cpp.so
grep: build/test_a_msgs/libtest_a_msgs__rosidl_typesupport_cpp.so: binary file matches
build/test_b_msgs/CMakeFiles/test_b_msgs__rosidl_typesupport_cpp.dir/link.txt:1:/usr/bin/c++ -fPIC -shared -Wl,-soname,libtest_b_msgs__rosidl_typesupport_cpp.so -o libtest_b_msgs__rosidl_typesupport_cpp.so CMakeFiles/test_b_msgs__rosidl_typesupport_cpp.dir/rosidl_typesupport_cpp/test_b_msgs/msg/test_b__type_support.cpp.o -Wl,-rpath,/repro/test_ws/install/test_a_msgs/lib:/repro/.pixi/envs/default/lib: /repro/test_ws/install/test_a_msgs/lib/libtest_a_msgs__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/libstd_msgs__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/libbuiltin_interfaces__rosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_cpp.so /repro/.pixi/envs/default/lib/librosidl_typesupport_c.so /repro/.pixi/envs/default/lib/librosidl_runtime_c.so /repro/.pixi/envs/default/lib/librcutils.so -ldl -lrt -Wl,-rpath-link,/repro/.pixi/envs/default/lib
build/test_b_msgs/CMakeFiles/test_b_msgs__rosidl_typesupport_cpp.dir/build.make:128:libtest_b_msgs__rosidl_typesupport_cpp.so: /repro/.pixi/envs/default/lib/librosidl_typesupport_cpp.so
grep: build/test_b_msgs/libtest_b_msgs__rosidl_typesupport_cpp.so: binary file matches
In particular, we see that it tries to use the .so
file located at
/repro/.pixi/envs/default/lib/librosidl_typesupport_cpp.so
By tab completing, we find that this directory contains the following files:
(test) root@4926310b49cb:/repro/test_ws# ls /repro/.pixi/envs/default/lib/librosidl_
librosidl_runtime_c.so librosidl_typesupport_cpp.so librosidl_typesupport_fastrtps_cpp.so librosidl_typesupport_introspection_cpp.so
librosidl_typesupport_c.so librosidl_typesupport_fastrtps_c.so librosidl_typesupport_introspection_c.so
So, the .so
file exists, CMake is being told where, but we still get an error.
We now run the same example but without using pixi. When we do this, there is no error!
We install all of the required dependencies via pre-built ROS binaries in the docker container. In particular, we only install the following 4 packages:
ros-humble-ros-base
ros-dev-tools
ros-humble-rosidl-generator-cpp
ros-humble-rosidl-default-generators
Similarly, we provide both a mounted and non-mounted option for repro.
# mounted option
docker compose -f docker-compose-simple-nopixi.yml run --build test
# no mounting
docker compose -f docker-compose-simple-nopixi-nomount.yml run --build test
Within the container, run
cd test_ws
rm -rf build install
colcon build --symlink-install --packages-select test_a_msgs test_b_msgs --parallel-workers $(nproc)
source install/setup.bash
colcon build --symlink-install --parallel-workers $(nproc)
source install/setup.bash
ros2 run test_pkg test_node
This will produce periodic output like this:
[INFO] [1721411615.185264056] [test_node]: Publishing message
[INFO] [1721411616.185296777] [test_node]: Publishing message
[INFO] [1721411617.185177851] [test_node]: Publishing message
So, it seems to me either the issue is with pixi
or with the robostack
binaries, but it's not clear which.
We also confirm that pulling our original repo into a Docker container and running pixi
inside of it raises the original error.
To run the container:
docker compose -f docker-compose-obelisk.yml run --build test
Within the container, run the following. The docker compose file doesn't use the nvidia runtime to minimize shared info between the local system and the container - it should still reproduce the error.
# activate pixi shell
pixi shell -e dev-no-gpu
# within pixi shell, run these commands
pixi run messages-build
source /obelisk/obelisk_ws/install/setup.bash
pixi run source-obelisk
source /obelisk/obelisk_ws/install/setup.bash
ros2 launch obelisk_ros obelisk_bringup.launch.py config_file_path:=dummy_cpp.yaml device_name:=onboard auto_start:=true bag:=false
The nodes cannot completely launch without error, since the setup also cannot initialize GLFW right now, but it will still raise the following error:
[jointencoders_passthrough_estimator-3] [rcutils|error_handling.c:65] an error string (message, file name, or formatted message) will be truncated
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
[jointencoders_passthrough_estimator-3] This error state is being overwritten:
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] 'Type support not from this implementation. Got:
[jointencoders_passthrough_estimator-3] Handle's typesupport identifier (rosidl_typesupport_cpp) is not supported by this library, at /opt/conda/build_artifacts/ros-humble-rosidl-typesupport-cpp-0_1707312462476/work/ros-humble-rosidl-typesupport-cpp/src/work/src/type_support_dispatch.hpp:111
[jointencoders_passthrough_estimator-3] Could not load library libobelisk_sensor_msgs__rosidl_typesupport_introspection_cpp.so: dlopen error: libstd_msgs__rosidl_typesupport_introspection_cpp.so: cannot open shared object file: No such file or directory, at /opt/conda/build_artifacts/ros-humble-rcutils-0_1707311166947/work/ros-humble-rcutils/src/work/src/shared_library.c:99, at /opt/conda/build_artifacts/ros-humble-rosidl-typesupport-cpp-0_1707312462476/work/ros-humble-rosidl-typesupport-cpp/s, at /opt/conda/build_artifacts/ros-humble-rmw-cyclonedds-cpp-0_1707313040772/work/ros-humble-rmw-cyclonedds-cpp/src/work/src/rmw_node.cpp:1958'
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] with this new error message:
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] 'type_support is null, at /opt/conda/build_artifacts/ros-humble-rmw-cyclonedds-cpp-0_1707313040772/work/ros-humble-rmw-cyclonedds-cpp/src/work/src/rmw_node.cpp:2779'
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] rcutils_reset_error() should be called after error handling to avoid this.
[jointencoders_passthrough_estimator-3] <<<
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
[jointencoders_passthrough_estimator-3] This error state is being overwritten:
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] 'type_support is null, at /opt/conda/build_artifacts/ros-humble-rmw-cyclonedds-cpp-0_1707313040772/work/ros-humble-rmw-cyclonedds-cpp/src/work/src/rmw_node.cpp:2779, at /opt/conda/build_artifacts/ros-humble-rcl-0_1707314261614/work/ros-humble-rcl/src/work/src/rcl/subscription.c:109'
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] with this new error message:
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] 'invalid allocator, at /opt/conda/build_artifacts/ros-humble-rcl-0_1707314261614/work/ros-humble-rcl/src/work/src/rcl/subscription.c:219'
[jointencoders_passthrough_estimator-3]
[jointencoders_passthrough_estimator-3] rcutils_reset_error() should be called after error handling to avoid this.
[jointencoders_passthrough_estimator-3] <<<
[jointencoders_passthrough_estimator-3] invalid allocator, at /opt/conda/build_artifacts/ros-humble-rcl-0_1707314261614/work/ros-humble-rcl/src/work/src/rcl/subscription.c:219
Update: based on the minimal example with pixi
, I appended the pixi environment's lib
directory to LD_LIBRARY_PATH
, which eliminates the error in both my original code and the minimal example!
After activating the environment, I simply do
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXI_PROJECT_ROOT/.pixi/envs/$PIXI_ENVIRONMENT_NAME/lib
LD_LIBRARY_PATH
Is this behavior expected? Should we manually append to the LD_LIBRARY_PATH
every time this or similar errors come up?
I'm finding it difficult to automatically append to LD_LIBRARY_PATH
, since we can't adjust the LD_LIBRARY_PATH
environment variable upon activation of the environment, as PIXI_PROJECT_ROOT
and PIXI_ENVIRONMENT_NAME
are not set until post-activation. Further, defining some pixi
task like
update-ld-lib-path = { cmd="export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXI_PROJECT_ROOT/.pixi/envs/$PIXI_ENVIRONMENT_NAME/lib" }
doesn't seem to work for me. Changes to LD_LIBRARY_PATH
don't seem to persist after running the task.
My current workaround is to define some bash script
#!/bin/bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXI_PROJECT_ROOT/.pixi/envs/$PIXI_ENVIRONMENT_NAME/lib
and add it to my pixi.toml
activation scripts:
[activation]
scripts = [<other activation scripts here>, "scripts/update_ld_library_path.sh"]
Thanks a lot for the detailed follow up! It is a bit late currently in Europe, I will check it tomorrow.
No worries - your attention is much appreciated!
Thanks a lot for the mwe example, now everything is much more clear. I think the problem is that you are mixing apt's compilers with conda-forge's tools (like cmake) and libraries. By doing that, your executables are not really aware that should look for package manager installed libraries in $CONDA_PREFIX\lib
instead of /usr/lib
or /usr/local/lib
, and hence the problem (that is the reason adding $CONDA_PREFIX\lib
to LD_LIBRARY_PATH
is a workaround for this). More in general, mixing system compilers with conda libraries is not really supported or heavily tested, so I would strongly suggest you to use the conda-forge's compilers as well, for example by installing the compilers
meta package. Indeed, by adding the compilers with pixi add compilers
and building from scratch the ws the ros2 run test_pkg test_node
works fine for me.
I wonder if we should clarify this in some documentation. On the robostack side the need to install compilers
is specified in https://robostack.github.io/GettingStarted.html#installation-tools-for-local-development, but perhaps your starting point to work on pixi+ROS was something else?
Thanks, this resolved our issues completely and makes the workaround obsolete.
Yes, I would say that this should be 100% clarified on the pixi side. Actually, I started using pixi when I was looking for a cleaner way to comanage pypi dependencies with conda deps (for example, cuda). The fact that it was also compatible with robostack was something I noticed afterwards. Therefore, I wasn't familiar with all the robostack documentation that you linked above. Stating it somewhere up front on the pixi docs would have been very helpful.
Our ROS2 tutorial describes it when you build a C
node. I hoped that that would be enough. Together with this issue, I hope google might help us next time!
Thanks @traversaro for the help as always!
Checks
[X] I have checked that this issue has not already been reported.
[X] I have confirmed this bug exists on the latest version of pixi, using
pixi --version
.Reproducible example
Tl;dr: Our issue arises when trying to boot up a ROS stack in a pixi shell. When using pixi, rosidl type support packages are not found. However, when we manually install ROS pre-compiled binaries in a Docker container without using pixi, the packages are found and our stack boots up correctly.
We have not found an easily-reproducible minimal example. The issue can be reproduced in the following debugging branch of our project repo with the commit hash
46f503cf2ba7068b2b576e5540eb3ab17cea7f10
: https://github.com/Caltech-AMBER/obelisk/tree/debug-docker-rosidl.Assuming you already have required system deps and Docker, run our setup script with the following flags in the root of the cloned repo on the
debug-docker-rosidl
branch:The only thing this does is set an environment variable called
OBELISK_ROOT
to the directory where this repository has been cloned and creates a.env
file containing other environment variables useful for dockerizing our dev setup. We run Docker for isolation and run pixi inside of it. To build and enter the container, runThen, to enter the
dev
environment, runWe build some custom messages through some pixi task, then the rest of the ROS2 packages.
Then, we boot up our stack using an alias installed in the Docker container:
This will spawn a simulation, but we see a runtime error in the terminal:
Issue description
Here, we summarize a few things we tested. Each test is independent from each other.
Test 1: Using only Docker without pixi
If instead, the Debug section of the Dockerfile is uncommented and pixi is not installed:
We can successfully boot up the stack with no errors by doing the following.
Then, in the docker container, running the following commands after deleting the
build
andinstall
directories underobelisk_ws
:This should produce the simulation of the dummy robot swinging back and forth with no error messages in the terminal.
Test 2: Not Using Cyclone DDS
We have tried not using Cyclone for our RMW by commenting out the following line in the
pixi.toml
:We confirm that the rmw implementation is the default by running
and
which shows that it is
rmw_fastrtps_cpp
. When running the same commands as described in the section on reproducing the issue, we get a slightly different error:Test 3: Various Changes to CMakeLists.txt Files
We have determined that the error is introduced by a custom ROS message we define, called
MujocoImage.msg
under theobelisk_sensor_msgs
package located in theobelisk_ws
directory. When we comment it out from theCMakeLists.txt
and rebuild/rerun, the stack runs correctly without error:We have tried numerous other changes noted in related issues online, such as specifying the
LIBRARY_NAME
(see: https://github.com/ros2/rosidl/issues/441):This failed.
We have tried downgrading to python 3.10.12 in the
pixi.toml
as per this issue: https://github.com/ros2/examples/issues/303 without success.We have tried to install Cyclone locally (in the docker container) while also running pixi, just in case this issue would have been relevant: https://github.com/ros2/rmw_fastrtps/issues/541 without success.
Other Observations
We noticed that it's looking for
rosidl_typesupport
in/opt/conda/...
, which we don't have in the container:It also tries to look there for a
.so
file:However, we can find this file successfully in the directory
$OBELISK_ROOT/obelisk_ws/install/obelisk_sensor_msgs/lib
This suggests that we may be able to configure something slightly different such that these files are found.
Expected behavior
Our ROS stack should boot up without issue.