Pixi can install different versions of ROS2! Quickly! In a virtual environment! Please check out their fantastic work and documentation.
0. Install Pixi
curl -fsSL https://pixi.sh/install.sh | shgit clone https://github.com/2lian/Motion-Stack.git
cd Motion-StackPixi will install all dependencies including ROS into a virtual environment, this evironment is defined by our pixi.toml. The run build command then calls colcon build using the venv.
pixi install # (optional)
pixi run -e default buildUsing Pixi, you can follow this documentation as normal. Simply type ``pixi run …`` before the commands you want to run. Or easier, activate the pixi environment by running pixi shell.
You can launch the Moonbot Zero:
# Terminal 1
pixi run ros2 launch motion_stack moonbot_zero.launch.py# Terminal 2
pixi run ros2 launch motion_stack rviz_simu.launch.pyAnd have fun with the Operator TUI.
# Terminal 3
pixi run bash operator.bashWe are working on distributing binaries (x86, aarch64) through Conda packages thanks to Pixi and RoboStack. The motion stack binaries are hosted here and installation can be as simple as:
pixi init my_workspace -c https://prefix.dev/motion-stack -c https://prefix.dev/conda-forge -c https://prefix.dev/robostack-jazzy
pixi add ros-jazzy-motion-stack ros-jazzy-ms-operator ros-jazzy-motion-stack-tutoInstall ROS2:
- Kilted (Ubuntu 24.04) installation guide.
- Jazzy (Ubuntu 24.04) installation guide.
- Humble (Ubuntu 22.04) installation guide.
- Foxy (Ubuntu 20.04) : DEPRECATED after this commit in favor of Pixi and RoboStack.
The core of the Motion-Stack is pure python, ROS2 is the (only) communication interface (for now). If you are a developer wanting to use something else instead of ROS2 (pure async python for minimal overhead, Zenoh …), you could develop your own interface.
This documentation now assumes your workspace and working directory is ~/Motion-Stack. Alternatively you can copy the contents of ./src into another workspace.
git clone https://github.com/2lian/Motion-Stack.git
cd Motion-Stack# source ros here
cd ~/Motion-Stack
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -r# source ros here
cd ~/Motion-Stack
python3 -m venv --system-site-packages ./.venv
. ./.venv/bin/activate
python3 -m pip install --upgrade pip wheel# source ros here
# source venv here if used
cd ~/Motion-Stack/src/motion_stack/
python3 -m pip install .
python3 -m pip uninstall motion_stack # colcon will install itYou might need to use: python3 -m pip install . --force-reinstall --upgrade. It often works better.
# source ros here
# source venv here if used
cd ~/Motion-Stack
python3 -m colcon build --symlink-install
# You can now source the workspace
source ./install/setup.bashYou can launch the Moonbot Zero:
# Terminal 1
# source your workspace and venv here
ros2 launch motion_stack moonbot_zero.launch.py# Terminal 2
# source your workspace and venv here
ros2 launch motion_stack rviz_simu.launch.pyAnd have fun with the Operator TUI.
# Terminal 3
# source your workspace and venv here
bash operator.bash