-
Notifications
You must be signed in to change notification settings - Fork 131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rosidl
type support packages not found
#819
Comments
To clarify, I also tried to use the instructions you provided for run the installation with docker, but executing:
tries to install some tools ( It also tried to clutter my |
Closing this issue in favor of activity on the other thread. |
My bad, that was an answer for the other thread, not sure how it ended up here. |
Bug report
Required Info:
This issue is cross-posted from here: prefix-dev/pixi#1635. However, since
pixi
is such a specific tool, I was hoping to get any additional possible insight here as well. If it's better for organization, I'm happy to close this issue and consolidate the discussion to the other thread.The full text of the original issue is pasted here for reference.
Original Issue
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: #441):This failed.
We have tried downgrading to python 3.10.12 in the
pixi.toml
as per this issue: ros2/examples#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: ros2/rmw_fastrtps#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.
The text was updated successfully, but these errors were encountered: