Commit graph

63 commits

Author SHA1 Message Date
c48edd0d82 Fix gripper joint handling and update launch defaults to new rbs_arm
- Fixed a potential issue where `gripper_actuated_joint_names` might be None by adding a conditional check before appending joint positions.
- Updated `rbs_bringup.launch.py` to:
  - Change `with_gripper` default to `false`
  - Modify `ee_link_name` from `gripper_grasp_point` to `tool0`
  - Set `interactive` mode to `true`
2025-02-06 15:21:59 +03:00
6b376f40a6 move xacro_args loader to utils 2025-02-06 15:21:00 +03:00
Bill Finger
942bafab4d fix gym_gz packge name in package.xml
Python dependencies was commented due to the new version of python and
it will need to be updated and tested
2025-02-01 17:01:57 +03:00
0a868b5163 add env_manager folder 2025-02-01 16:45:53 +03:00
2d8c7217fe revert submodule into folder 2025-02-01 16:45:53 +03:00
7175f38b06 Add ROS2 Jazzy Skills, Repositories, and Nix Flake Setup
- Add Nix flake configuration (`flake.nix`, overlays, `package.nix`) for seamless package builds, dependency management, and development shell setup.
2025-02-01 16:45:53 +03:00
66542ba8b9 fix: update requirements 2024-12-11 22:06:42 +03:00
4d4cc3b1c0 fix: rbs_utils when config name is empty
- Update submodule
 - Add missing dependencies for rbs_gym
2024-12-11 19:55:29 +03:00
b109c97b5c (env_manager): update submodule reference 2024-12-10 22:36:47 +03:00
48d4444b27 fix: update submodule link to https 2024-12-09 19:50:40 +03:00
d3679c2757 update env_manager submodule 2024-12-09 18:36:48 +03:00
223807255b refactor: move env_manager to new repo 2024-12-09 18:19:38 +03:00
b382148b74 Update default scene configuration with new objects and adjustments
- Replaced object names and updated configurations:
  - Renamed `hole` to `star` and adjusted its position.
  - Renamed `peg` to `box`, added mass and size attributes, and refined position and randomization settings.
  - Added a new `cylinder` object with mass, radius, length, and position attributes.
  - Introduced a static `board` object with specified position and randomization settings.
- Improved structure and flexibility for object definitions in the default scene.
2024-12-09 12:51:20 +03:00
b1e20696fe Refactor robot arm and runtime initialization logic
- Updated error message in `rbs_arm.py` to use the complete joint names for improved clarity.
- Refactored `scene.py` to replace asynchronous parameter retrieval with synchronous methods for reliability and simplified implementation.
- Enhanced `runtime.launch.py`:
  - Added new launch arguments `use_rbs_utils` and `assembly_config_name`.
  - Included additional parameters in runtime node initialization.
  - Adjusted runtime node arguments for debugging and clarity.
- Updated `runtime.py`:
  - Introduced `MultiThreadedExecutor` for improved threading and node handling.
  - Refactored the `main` function for cleaner node lifecycle management.
2024-12-06 12:10:35 +03:00
e8e6c052b0 refactor(launch): update launch configuration for real_robot and cleanup
- Add controller manager node when `real_robot` flag is set
- Remove unused Open3D dependency
2024-12-01 17:33:22 +03:00
f14359c81c add support for real robot mode in runtime launch
- Added a new `real_robot` launch argument with default set to "false".
- Updated `launch_setup` to handle `real_robot` configuration, allowing selective use of `rbs_robot_setup`.
- Updated `requirements.txt` to replace a static library reference with a GitHub repository link for `rbs_assets_library`.
2024-12-01 00:54:06 +03:00
de0d5d4440 refactor launch configuration for robot and environment setup
- Simplified and consolidated launch arguments by removing unused configurations.
- Enhanced `test_env.launch.py` to support dynamic loading of xacro and SRDF arguments via YAML files.
- Added new launch parameters for control space, strategy, and interactive mode to improve flexibility.
- Updated robot description and MoveIt integration to use dynamic configurations.
- Improved clarity and modularity in scene and robot setup processes.
2024-11-30 19:30:13 +03:00
48e8668136 add dynamic terrain and TF broadcaster support
- Added `RandomGround` terrain model for random ground generation with texture randomization.
- Integrated `Tf2DynamicBroadcaster` for dynamic TF broadcasting.
- Enhanced the `Scene` class to support dynamic terrain and marker publishing.
- Updated imports to include new utilities and modules for dynamic broadcasting and terrain handling.
2024-11-30 19:26:09 +03:00
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
b71a2bdf55 add material properties to terrain and ground models
- Introduced `ambient`, `specular`, and `diffuse` attributes to `TerrainData` class.
- Updated `Ground` class to accept and use material properties for ambient, specular, and diffuse values.
- Modified the SDF generation to dynamically apply the provided material properties.
- Integrated material property support in the `Scene` class for terrain setup.
2024-11-22 02:13:01 +03:00
a8874fa0d7 Update Dockerfile and dependencies, add installation guide
- Switched base image in `Dockerfile` to `nvidia/cuda:12.6.2-cudnn-devel-ubuntu22.04`.
- Added non-interactive mode for Debian and streamlined package installation.
- Removed unused JSON library build steps.
- Enhanced ROS2 installation with keyring and repository setup.
- Simplified Python package and framework dependencies installation.
- Added commands for `git-lfs` installation and cloning `rbs_assets_library`.
- Introduced a new Russian installation guide (`doc/ru/installation.md`) with detailed steps for setting up the framework and dependencies.
- Fixed import paths in `octree.py` for consistency with project structure.
- Added `all-deps.repos` and `requirements.txt` for managing dependencies.
2024-11-20 21:07:19 +03:00
17401c29a7 add interactive argument to control robot with interactive marker 2024-11-19 00:05:50 +03:00
85eec1b7d7 added doc on how to use framework with your robot or how to add new robot 2024-11-18 13:36:56 +03:00
ea4ae0ed69 feat(rbs): refactor controller paths and launch configuration
- Rename default controllers file `rbs_arm0_controllers.yaml` to `controllers.yaml` across all launch files
- Enhance `runtime.launch.py` by adding imports (`URDF_parser`, `ControllerManager`, `yaml`) and new arguments (`scene_config_file`, `ee_link_name`, `base_link_name`)
  - Implement xacro argument loading via YAML
  - Configure `robot_builder` to save controllers to `controllers.yaml` based on URDF parsing
- Add `control.launch.py` in `rbs_bringup` for dynamic controller spawning based on strategies/configurations
- Add `rbs_bringup.launch.py` as a unified entry point for single robot setup, initializing core settings like gripper, robot type, and controllers
- Remove `launch_env.launch.py`
- Remove `multi_robot.launch.py`
- Enhance `rbs_robot.launch.py` with `ee_link_name` and `base_link_name` arguments for end-effector and base link customization
- Add `ee_link_name` and `base_link_name` to `skills.launch.py` for flexible robot setup in skills
- Update `mtp_jtc_cart.cpp` with `base_link` and `robot_ee_link` parameters for KDL chain retrieval
- Remove `single_robot.launch.py` for simplified single robot deployment
2024-11-12 22:23:12 +03:00
a7b7225dd1 refactor(rbs_skill_servers): update action configuration, dependencies, and skills
- Removed `assembly_config_service.py` node from launch configuration.
- Added default `goal.duration` setting to `MoveToPose` and `MoveToPoseArray`.
- Replaced `timeout_seconds` with `duration` in action definitions for `MoveitSendJointStates` and `MoveitSendPose`.
- Removed dependencies on TinyXML2 and Gazebo/SDFormat, adding `controller_manager_msgs` and `control_msgs` to CMake configuration.
- Added new action servers `cartesian_move_to_pose` and `move_to_joint_states`, registering them in CMakeLists file.
- Introduced `SkillBase`, a template class for managing action-based skills, providing essential ROS 2 action server support and functionalities for handling goals, cancels, accepted actions, and controller management.
- Implemented methods to load, configure, and switch required controllers with conflict detection for active controllers, along with parameter checking and asynchronous handling for required parameters.
- Enhanced error handling for missing controllers, parameters, and resource conflicts.
- Updated `skills.launch.py` to utilize `ComposableNodeContainer` for skill nodes, incorporating `MoveToJointStateActionServer` and `CartesianMoveToPose` as composable nodes.
- Changed the executable name in `cartesian_move_to_pose_action_server` node configuration.
- Added `cartesian_move_to_pose.cpp`, implementing the `CartesianMoveToPose` action server, including trajectory interpolation, pose adjustment, and controller management.
- Updated `package.xml` to include `rclcpp_components` dependency.
- Refactored `MoveToJointStateActionServer` to extend `SkillBase`, leveraging `FollowJointTrajectory` for joint trajectory execution, while removing redundant code and dependencies.
- Implemented trajectory generation based on initial and target joint positions with parameterized interpolation for smoother execution, enhancing joint state handling to dynamically align current and target joint values.
2024-11-06 23:57:47 +03:00
dba3b8682a refactor: (env_manager, rbs_runtime) and add YAML config loading
- Updated `camera.py` to use consistent float literals for default spawn positions.
- Removed unused import statements and organized imports in `robot.py` and `scene.py`.
- Removed debugging import from `scene.py` to clean up codebase.
- Added a new YAML configuration file (`default-scene-config.yaml`) for scene settings.
- Implemented a scene configuration loader function in `rbs_runtime/__init__.py` to read and parse YAML config files.
- Modified `runtime.py` to utilize the newly added scene config loader and removed in-code default scene setup.
- Updated `setup.py` to include `config` directory in package data.
- Changed `rbs_robot.launch.py` to use position control strategy by default.
- Refactored `skills.launch.py` with cleaner parameter definitions and reactivated commented-out nodes.
2024-10-14 14:23:49 +03:00
b42c2e633e feat: enhance scene management and object handling with new features and improvements
- Updated Sphere, Cylinder, Box classes to support random color generation by accepting an optional color parameter and implementing random color assignment if none is provided.
- Improved documentation formatting in the RbsArm class for better readability and consistency.
- Refactored scene management to integrate both Model and Mesh classes, allowing for more flexible object handling. This includes updating object instantiation and adding comments for future color randomization implementation.
- Added `trimesh` as a dependency in the setup configuration to ensure proper functionality for mesh handling.
- Cleaned up node initialization in the runtime launch setup for improved readability.
- Enhanced the default scene configuration by including new ModelData and MeshData objects, with random color generation configured for MeshData.
- Renamed `MeshObjectData` to `ModelData` for clarity and introduced a new `MeshData` class to specifically handle mesh properties.
- Added a `random_color` attribute to `ObjectRandomizerData` and updated `ObjectData` to include a `color` attribute for better object customization.
- Introduced new gripper data classes for better organization and added a `GripperEnum` to categorize different gripper types.
- Implemented a new Mesh class for handling 3D mesh objects in Gazebo simulation, including methods for calculating inertia and generating SDF strings, with error handling for missing mesh files.
2024-10-04 18:44:13 +03:00
31d2afe6e2 docs(env_manager): Update docstrings and refactor code
- Added detailed docstrings to the env_manager package for improved documentation and clarity.
- Refactored code in multiple files to enhance readability and maintainability.
2024-09-30 23:30:04 +03:00
860f7d6566 build: migrate env_manager, rbs_gym, rbs_runtime to ament_python
Migrate `env_manager`, `rbs_gym`, and `rbs_runtime` from ament_cmake to ament_python.
Removed unnecessary files including .json and .yaml config files
2024-09-30 18:34:57 +03:00
e4e3e4e3af add external robot_description parameter for rbs_robot.launch.py
feat(robot): add support for handling scalar joint positions

- Updated `RobotData` and `RbsArm` to allow joint positions to be passed
as either a list or a scalar value.
- Refactored logic to dynamically handle scalar values and repeat them
across all joints.
- Added new `initial_arm_joint_positions` and
`initial_gripper_joint_positions` properties in `RbsArm`.
- Improved joint position initialization in the `Scene` class to
retrieve robot description asynchronously if not provided.
- Enhanced the launch script to configure environment variables based on
available CPU cores.
- Minor code cleanups and bug fixes, including terrain naming and
corrected joint defaultsd.

git commit --amend
2024-09-30 13:41:36 +03:00
bc8745abe5 refactor env_manager and rbs_gym to work with rbs_runtime 2024-09-25 14:59:08 +03:00
1a562b05ca rbs_gym multi camera and multi object setup 2024-09-13 22:22:47 +03:00
b58307dea1 Added rbs_gym package for RL & multi-robot launch setup 2024-07-04 11:38:08 +00:00
fa03887099 fix rbs_utils 2024-05-13 12:21:17 +03:00
57d13516d9 parse rbs asm config from yaml to ros2 msg 2024-04-22 15:42:47 +03:00
ae48c5ee6a asssembly config simple publisher 2024-04-22 15:17:40 +03:00
e8ea09e020 update main 2024-04-22 15:06:46 +03:00
d5e7768d90 Multi-Robot Setup 2024-04-18 13:29:36 +00:00
a211c198ca rename default assembly config name in code 2024-02-16 15:21:59 +03:00
192887ab8b add workspace base functional
Workspace functional includes basic read from workspace and trajectory calculation for inspection
2023-12-30 23:39:43 +03:00
e5e8110697 load default enviroment 2023-12-30 14:31:01 +03:00
d7d3950052 env_manager: clear variables on cleanup, remove mutex 2023-12-19 11:11:42 +03:00
6d81f59204 env_manager: removed default runtime environment 2023-12-19 11:10:35 +03:00
86fd3d1055 env_manager: fix target pose loader 2023-12-19 08:17:38 +03:00
7637f835b1 add starter env service in env_manager_interfaces 2023-12-19 08:16:13 +03:00
4fafc9e7c4 remove header file dependencies in cpp file 2023-12-19 08:15:38 +03:00
894c9c9b69 add cb for starter and fix unload func 2023-12-19 08:12:49 +03:00
df335c0cd0 add env starter for BT 2023-12-19 08:11:17 +03:00
34c8961723 rbs_utils in env_manager and clear code 2023-12-14 12:00:35 +03:00
d32f44682d add new env_manager to project 2023-12-11 22:08:43 +03:00