runtime/README.md

87 lines
3.6 KiB
Markdown
Raw Normal View History

2021-10-13 05:58:24 +00:00
# Robossembler ROS2
Repo for ROS2 packages related to Robossembler
2024-08-28 09:52:14 +00:00
## 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
2023-02-03 07:04:12 +00:00
* 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
2023-02-03 07:04:12 +00:00
* Gazebo Fortress
### Build
1. Clone the repository
2023-02-03 07:04:12 +00:00
2. Build packages `colcon build`
2023-02-03 07:04:12 +00:00
Prepare workspace & install dependencies (So far only tested with UR robot arm)
```bash
mkdir -p ~/robossembler_ws/src && cd ~/robossembler_ws/src
git clone https://gitlab.com/robosphere/robossembler-ros2
2024-02-16 20:09:05 +03:00
vcs import . < robossembler-ros2/repos/sim.rbs.repos
cd ..
2023-02-03 07:04:12 +00:00
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro humble
2023-12-30 23:41:50 +03:00
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --symlink-install
```
2024-02-16 20:09:05 +03:00
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
```bash
2024-02-16 20:09:05 +03:00
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
2023-07-27 12:06:02 +03:00
Activate current ROS2 enviroment:
```
2023-02-03 07:04:12 +00:00
. install/setup.bash
2022-01-20 00:18:03 +03:00
```
2023-07-27 12:06:02 +03:00
Launch MoveIt2, Gazebo, RViz:
```bash
2023-07-27 12:06:02 +03:00
ros2 launch rbs_bringup bringup.launch.py
```
2023-02-03 07:04:12 +00:00
2023-12-30 23:41:50 +03:00
Start BT node in another terminal
2023-02-03 07:04:12 +00:00
```
2023-12-30 23:41:50 +03:00
ros2 launch rbs_bt_executor rbs_executor.launch.py
2023-07-28 13:06:11 +03:00
```
### Links
* [bt_v3_cpp](https://www.behaviortree.dev)
2023-12-30 23:41:50 +03:00
* [moveit2](https://moveit.picknik.ai/humble/index.html)