Getting Started
First, clone this repo including submodules.
git clone --recursive https://github.com/open-planning/roboplan-ros.git
cd roboplan-ros
—
Pre-built
RoboPlan ROS will soon be installable from pre-packaged binaries. For now, users should build from source using one of the methods below.
Compiling
We support a handful of methods for building the ROS 2 wrappers from source.
Pixi
For isolated development work we recommend the Pixi package management tool. ROS and all required dependencies are installable through conda and Robostack.
Different versions of ROS (humble, jazzy, and kilted) are supported with pixi environments. The build relies on the pixi-build-ros backend to manage ROS dependencies from the workspace.
First, install Pixi using these instructions.
Once set up, you can run the pixi tasks as follows.
# Install the frozen environment
pixi install -e jazzy --frozen
# Setup the environment
pixi run -e jazzy setup-colcon
# Build (optionally with symlink installs)
pixi run -e jazzy build
pixi run -e jazzy build-symlink
# Run tests, must manually run build prior to executing
pixi run -e jazzy test
# Show test results
pixi run -e jazzy test-result
Once the workspace is built, it can be used as a “normal” ROS 2 workspace. That is, the workspace can be sourced and used as expected.
# Activate the jazzy environment
pixi shell -e jazzy
# Build with the existing install dirs
colcon build
# Source it
source install/setup.bash
# Or test,
colcon test
# Or launch an example
ros2 launch roboplan_ros_franka franka_example_planning.launch.yaml
The examples from the upstream repository should also be available, as well:
python3 roboplan/roboplan_examples/python/example_scene.py
NOTE: All ROS distros will share build/install directories by default.
Be sure to rm -rf build/* install/* when switching between ROS versions or things will break.
NOTE: The pixi-build-ros backend requires that all package.xml files be referenced in the [dev] block of the pixi.toml file.
For now, this includes the packages in the roboplan submodule.
This could be resolved with pixi add roboplan-python, but for now we stick with the source build for development purposes.
—
Docker Development
A Docker Compose workflow is also provided.
To build and run,
# Build the image, defaults to jazzy but can be overridden by setting $ROS_DISTRO
docker compose build ros
# Start the container
docker compose up ros
# Attach to the running container
docker compose exec ros bash
This will drop the user into a pre-compiled colcon workspace with the source mounted in the image. Users can edit, rebuild, and launch applications from inside the container as needed.
—
ROS 2 baremetal (colcon)
Lastly, as a colcon package, the wrappers can be compiled in any valid ROS 2 workspace.
mkdir -p ~/roboplan_ws/src
cd ~/roboplan_ws/src
git clone --recursive https://github.com/open-planning/roboplan-ros.git
NOTE: To compile the bindings you should install nanobind from pip:
pip3 install nanobind
Source your favorite ROS distro and build the workspace.
source /opt/ros/jazzy/setup.bash
cd ~/roboplan_ws
rosdep install --from-paths src -y --ignore-src
colcon build
NOTE: Additional dependencies may be required outside of rosdistro.
We recommend referring to the upstream documentation, or to the included .docker/Dockerfile for information on a base system setup.
—