Repo for ROS2 packages related to Robossembler
Find a file
Bill Finger fbddca1b8b refactor and extend runtime configuration handling
- **Scene configuration:**
  - Replaced `bishop` object with `hole` and added a new `peg` object.
  - Enhanced object properties with new attributes like `randomize`, `relative_to`, `static`, and `texture`.
  - Updated `robot` joint positions in the default scene configuration.

- **Launch file updates:**
  - Added handling for MoveIt SRDF file processing, including semantic descriptions.
  - Refactored unused parameters (`gripper_name`, `hardware`) and streamlined arguments.
  - Extended `robot_type` choices in the `generate_launch_description` method.

- **Runtime initialization:**
  - Introduced `object_factory` to handle dynamic object instantiation based on type (`box`, `cylinder`, `mesh`, or `model`).
  - Enhanced `scene_config_loader` to process and instantiate objects using the factory function.
2024-11-22 02:15:09 +03:00
doc Update Dockerfile and dependencies, add installation guide 2024-11-20 21:07:19 +03:00
env_manager refactor and extend runtime configuration handling 2024-11-22 02:15:09 +03:00
rbs_bringup add interactive argument to control robot with interactive marker 2024-11-19 00:05:50 +03:00
rbs_bt_executor refactor(rbs_skill_servers): update action configuration, dependencies, and skills 2024-11-06 23:57:47 +03:00
rbs_perception update dependencies in package 2024-10-29 10:07:44 +03:00
rbs_simulation fix: delete old env_manager launch in rbs_bringup and rbs_simulation 2024-10-10 13:20:02 +03:00
rbs_skill_interfaces refactor(rbs_skill_servers): update action configuration, dependencies, and skills 2024-11-06 23:57:47 +03:00
rbs_skill_servers feat(rbs): refactor controller paths and launch configuration 2024-11-12 22:23:12 +03:00
rbs_task_planner update dependencies in package 2024-10-29 10:07:44 +03:00
rbs_utils fix: install nlohmann-json via rosdep 2024-11-20 23:12:58 +03:00
rbss_movetopose update dependencies in package 2024-10-29 10:07:44 +03:00
rbss_objectdetection update dependencies in package 2024-10-29 10:07:44 +03:00
rbss_poseestimation update dependencies in package 2024-10-29 10:07:44 +03:00
repos fix: deps version resolving 2024-11-21 00:25:22 +03:00
robonomics Add minimal pick-and-place case with world embedded 2023-03-31 20:24:56 +00:00
.gitignore Added rbs_gym package for RL & multi-robot launch setup 2024-07-04 11:38:08 +00:00
.gitlab-ci.yml Multi-Robot Setup 2024-04-18 13:29:36 +00:00
Dockerfile Update Dockerfile and dependencies, add installation guide 2024-11-20 21:07:19 +03:00
LICENSE Added LICENSE for all packages 2022-08-12 06:21:32 +00:00
README.md Add packages description 2024-08-28 09:52:14 +00:00

Robossembler ROS2

Repo for ROS2 packages related to Robossembler

Packages List

  1. env_manager - virtual environment switching manager and related packages
    • env_interface - base class for creating a specific environment based on the ROS 2 LifeCycle Node
    • env_manager - main package of the virtual environment switching manager
    • env_manager_interfaces - ROS 2 interfaces for env_manager, describe messages about the state of the environment, services for configuring/loading/enabling/unloading the environment
    • gz_environment - a specific instance of env_interface for the Gazebo simulator
    • planning_scene_manager - sync env with planning scene for MoveIt 2
    • rbs_gym - training module with reinforcement: management of the learning process, formation of simulation environments, management of action spaces (actions) and perception (observation), task management, utilities
  2. rbs_bringup - package for launching different launch scenarios: simulation, real robot, different hardware configurations (multi-robot)
  3. rbs_bt_executor - module for launching behavior trees on Behavior Tree CPP v4
  4. rbs_interface - package for linking trees with skill servers
  5. rbs_perception - machine perception module, where different versions are implemented
  6. rbs_simulation - models for simulation
  7. rbs_skill_interfaces - commonly used (common) interfaces for interacting with Skill Servers and the Behavior Tree (specific interfaces are placed in Skill Server packages)
  8. rbs_skill_servers - Skill Server packages: Move, Object Detection, 6D Pose Estimation
  9. rbs_task_planner - PDDL-based task scheduler
  10. rbs_utils - working with a config containing capture positions for details
  11. rbss_objectdetection - Object Detection Skill Server using YOLOv8

Instructions

Requirements

  • OS: Ubuntu 22.04
  • ROS 2 Humble

Dependencies

These are the primary dependencies required to use this project.

  • MoveIt 2

    Install/build a version based on the selected ROS 2 release

  • Gazebo Fortress

Build

  1. Clone the repository
  2. Build packages colcon build

Prepare workspace & install dependencies (So far only tested with UR robot arm)

mkdir -p ~/robossembler_ws/src && cd ~/robossembler_ws/src
git clone https://gitlab.com/robosphere/robossembler-ros2
vcs import . < robossembler-ros2/repos/sim.rbs.repos
cd ..
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro humble
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --symlink-install

Additionally, if you want to use Cartesian controllers, such as stiffness or others, you need to execute the following:

# in directory robossembler_ws/src
vcs import . < robossembler-ros2/repos/cartesian_controllers.repos

This will also install ros2_control and gz_ros2_control as packages, so it is recommended to delete global packages if they have been installed.

Set Gazebo enviroment variables

Replace [WS_FOLDER] with your workspace folder

echo "export IGN_GAZEBO_RESOURCE_PATH=${IGN_GAZEBO_RESOURCE_PATH}:~/[WS_FOLDER]/install/rbs_simulation/share/rbs_simulation/" >> ~/.bashrc
# or if you have alredy built the workspace
echo "export IGN_GAZEBO_RESOURCE_PATH=${IGN_GAZEBO_RESOURCE_PATH}:~/$(ros2 pkg prefix rbs_simulation)/share/rbs_simulation/" >> ~/.bashrc

Examples

Activate current ROS2 enviroment:

. install/setup.bash

Launch MoveIt2, Gazebo, RViz:

ros2 launch rbs_bringup bringup.launch.py

Start BT node in another terminal

ros2 launch rbs_bt_executor rbs_executor.launch.py