Workspace chaining like in ROS and distribution using Debian packages #6411
Replies: 2 comments
|
I think Pixi fits the reproducible/offline robotics environment part well, but I would not model the internal layers as Debian packages inside the Pixi environment. The Pixi-native shape is closer to this:
For active development, I would keep the source workspace separate and let Pixi drive the ROS build. For ROS 2/colcon the documented pattern is a Pixi task like: [tasks]
build = "colcon build --symlink-install"
[activation]
scripts = ["install/setup.sh"]After the first build, Pixi runs the activation script on For air-gapped deployment, A few caveats:
So: yes, Pixi can fit this kind of industrial/offline workflow, but the clean migration is from "Debian packages layered under |
|
Hi Simon β yes, this is doable, and pixi actually fits your setup better than it might first appear. Your instinct is close, but there's one important reframing: pixi/conda packages aren't Debian packages, so the model isn't "store /opt/ros and /opt/optonic inside a versioned .deb." It's the parallel conda-world equivalent, which maps cleanly onto your three layers. How your layering translates Your current stack is: Ubuntu base β apt ROS β /opt/optonic platform (forked ROS deps) β workspace components. The pixi equivalent, via RoboStack (the community project that repackages ROS as conda packages on top of conda-forge), is structurally identical β a base distribution (conda-forge) with a ROS channel layered on top (robostack-), exactly mirroring Ubuntu + packages.ros.org. Note pixi/RoboStack are currently a Tier 3 (community-supported, not officially OSRF-supported) platform in the ROS ecosystem, which matters for a multi-year production commitment.
The air-gapped part β t 8000 his is the key question, and it's well supported For offline/USB-stick distribution, look at Two caveats worth knowing before you commit
On the ROS 1 β ROS 2 point: RoboStack does have Short version: your mental model works if you swap "versioned Debian package" for "versioned conda package in a private channel," and use Happy to go deeper on any layer if useful. |
Uh oh!
There was an error while loading. Please reload this page.
Hi there,
a colleague pointed me to pixi and I'm trying to understand if and how it could fit our requirements. We control industrial robots from Linux computers. Those are often air-gaped for various reasons. Currently we have a bunch of dependencies packaged as Debian packages (Qt, ROS 1, ...) atop of a generic Ubuntu 22.04. Next layer is workspace where we have all ROS dependencies that we forked in some way (we call it the platform). This is distributed via Debian packages as well. Then individual components of our system are build as Debian packages. This allows for a quite agile workflow where components can be adapted and extended individually and quickly even via email + usb stick by field engineers (or customers).
For local development we install the same packages and source the workspace. Then we can override whatever components a developer wants to work on.
From a ROS perspective we have
/opt/ros/one/...
/opt/optonic/... extending /opt/ros/
/home/xyz/workspace/... extending /opt/optonic/...
What I think I want is to have a pixi env that contains /opt/ros/..., /opt/optonic stored inside some Debian package with a version number. And individual components that depend on it and can be installed as further Debian packages.
Does that sound doable?
We currently use catkin-tools and ROS 1 but switching to colcon and ROS 2 should happen at some point as well
Thanks a lot and sorry for the vague question
Simon
All reactions