|
roscon24-workshop repositoryrobotics robot-programming ros2 delib_ws_problem_interface delib_ws_python delib_ws_worlds pyrobosim_btcpp pyrobosim_flexbe_behaviors pyrobosim_flexbe_btcpp pyrobosim_flexbe_states pyrobosim_flexbe_utilities ros_bt_py_pyrobosim |
Repository Summary
| Description | Examples on Using ROS 2 Deliberation Technologies |
| Checkout URI | https://github.com/ros-wg-delib/roscon24-workshop.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-03-10 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics robot-programming ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| delib_ws_problem_interface | 1.0.0 |
| delib_ws_python | 1.0.0 |
| delib_ws_worlds | 1.0.0 |
| pyrobosim_btcpp | 0.0.0 |
| pyrobosim_flexbe_behaviors | 0.0.1 |
| pyrobosim_flexbe_btcpp | 0.0.1 |
| pyrobosim_flexbe_states | 0.0.1 |
| pyrobosim_flexbe_utilities | 0.0.1 |
| ros_bt_py_pyrobosim | 1.0.0 |
README
Hands-On with ROS 2 Deliberation Technologies
This repository contains materials for the ROSCon 2024 workshop on ROS 2 Deliberation Technologies. You can find the slides here.
However, it is perfectly usable as a guided tutorial to learn all of the presented technologies at your own pace.
Introduction to Robotic Deliberation
Deliberation in robotics refers to the collection of technologies necessary to create highly capable autonomous robots. The key idea is the use of models of the robot and its environment to enable high-level decision-making for solving complex problems, as well as equipping robots with robust skill representations to successfully execute these tasks in the real world.
To learn more about deliberation, refer to Ingrand and Ghallab (2017).

Overview diagram of robot deliberation, Ingrand and Ghallab (2017)
Technology Overview
In this hands-on workshop, you will get the opportunity to use a few ROS 2 enabled tools designed for robot deliberation.
This workshop uses PyRoboSim as a simple 2D simulator with a ROS 2 interface to test our deliberation technologies. PyRoboSim simulates mobile robots navigating across various locations, with the ability to detect and manipulate objects, and open and close locations. Additionally, it can simulate failures and battery usage in the above actions.
- The
problemsfolder contains information about the robotics problems you will solve in this workshop. - The
technologiesfolder contains more detailed information on the deliberation software tools you will use to solve these problems.

Setup
[!NOTE] Please make sure you have completed the setup steps before arriving at the workshop.
System Requirements
We highly recommend a host PC running Ubuntu 22.04 or 24.04.
If you are using macOS or Windows, you should install virtualization software such as VirtualBox or VMWare. Then, set up an Ubuntu 22.04 or 24.04 virtual machine.
You also need to have Docker and Docker Compose installed on your system. If you do not have these tools set up:
- Install Docker Engine using these instructions.
- IMPORTANT: Make sure you also go through the Linux post-installation steps.
- Install Docker Compose using these instructions.
Once you are able to run docker and docker compose commands without sudo, you can move on to the installation steps below.
docker run hello-world
docker compose --help
Installation
First, open a terminal window and clone this repository and its submodules.
git clone --recurse-submodules https://github.com/ros-wg-delib/roscon24-workshop.git
Change into the repository folder (cd roscon24-workshop) and start the Docker container.
docker compose run base
Note that this will initially download the Docker image and may take a few minutes for the download complete and the workspace to build.
After the container build finishes you will be in a bash shell.
Verify that you can launch a simulated world and the PyRoboSim UI appears on your screen.
ros2 run delib_ws_worlds run
After the initial build completes, you can open new terminals and attach to the currently running container from a different terminal using the command:
docker compose exec base bash
Note: This command must be executed from the
roscon24-workshoprepository folder.
Developing in the Container
By default, the whole ROS 2 workspace should have been built on setup. However, you will need to rebuild your code as you develop new code or make changes to existing code.
We have created handy aliases that effectively wrap around colcon build --symlink-install:
-
delib_build- Builds the entire workspace -
delib_build_packages <package1> <package2> ...- Builds specific packages -
delib_build_packages_up_to <package>- Builds all dependencies up to a specific package.
File truncated at 100 lines see the full file