git clone --recurse-submodules https://github.com/ros-wg-delib/roscon24-workshop.git
git pull
git submodule update --init
docker compose pull
docker compose build
docker compose run base
docker compose exec base bash
docker compose down --remove-orphans
NOTE: This is needed because every time you run docker compose run base
, a new container is created and may become "orphaned".
You can alternatively use docker compose up base
to avoid this, but it uses up one terminal.
ros2 run delib_ws_worlds run --ros-args -p problem_number:=1
Change the problem_number
argument above to launch different worlds.
To edit existing worlds, refer to the problems/delib_ws_worlds/worlds
folder in this repository.
ros2 topic echo /robot/robot_state
ros2 service call /request_world_state pyrobosim_msgs/srv/RequestWorldState {}
Navigation example:
ros2 action send_goal /execute_action pyrobosim_msgs/action/ExecuteTaskAction "{action: {robot: 'robot', type: 'navigate', target_location: 'desk'}}"
Pick/place example:
ros2 action send_goal /execute_action pyrobosim_msgs/action/ExecuteTaskAction "{action: {robot: 'robot', type: 'pick', object: 'waste0'}}"
ros2 action send_goal /execute_action pyrobosim_msgs/action/ExecuteTaskAction "{action: {robot: 'robot', type: 'place', object: 'waste0'}}"
Sometimes, PyRoboSim's display may not update while a robot is actually moving. We are actively investigating this issue, but to manually "unstick" the GUI you can toggle the "Show collision polygons" checkbox to force the state to refresh.