- Added `GetPlacePose` skill client library and associated service node to handle place pose retrieval, including preplace and postplace poses.
- Created new behavior trees (`pick_and_place.xml`, `place_object.xml`) for handling pick-and-place operations with enhanced modularity.
- Updated `AssemblyConfig` to include `place_poses` alongside `grasp_poses`, improving flexibility in assembly workflows.
- Refactored YAML parsing and codebase to differentiate between `grasp_poses` and `place_poses` for better clarity and maintainability.
- Updated related XML behavior tree nodes, scripts, and skill structures to integrate `GetPlacePose` functionality.
- Adjusted gripper command maximum effort to `3.0` for improved control.
- Added a new message definition for `GetPlacePose` service in the `rbs_utils_interfaces` package.
- Updated CMakeLists.txt to include the new service and ensure proper build configuration.
- Improved `get_grasp_pose_callback` with regex for grasp pose matching and added fallback mechanisms for `pregrasp_pose` and `postgrasp_pose`.
- Introduced `_create_pose_msg` and `_create_pose_msg_from_name` helper functions for dynamic transform-to-pose conversion.
- Updated `GetGraspPose.srv` to include `pregrasp_pose` and `postgrasp_pose` in the service response structure.
- Enhanced TF listener integration in `assembly_config_service.py` for dynamic pose retrieval and parameter management.
- Added `rbs_utils_interfaces` dependency in `CMakeLists.txt` and introduced new `GetGraspPose` node for behavior tree integration.
- Replaced `MoveGripper` with `GripperCommand` to improve gripper state transitions.
- Refactored `MoveToPose` and `GetWorkspace` nodes for enhanced logging and parameter handling.
- Updated `workspace_movement.xml` and `grasp_object.xml` with improved actions and configurations.
- Added `branch = main` to the `env_manager` submodule in `.gitmodules`.
- Set the `success` flag in `m_current_result` on goal success in `mtp_jtc.cpp`.
- **CMakeLists.txt**:
- Commented out the unused `rbs_env_manager_starter` library.
- **Behavior Trees**:
- Added new `grasp_object.xml` behavior tree for grasping operations.
- Modified `test_tree.xml` to update `robot_name` in the `WorkspaceMovement` subtree.
- **Source Code Updates**:
- Removed `EnvManager.cpp`, deprecating its functionality.
- Formatting `GetWorkspace.cpp`
- Formatting `MoveGripper.cpp`
- Formatting `MoveToJointStates.cpp`
- Formatting `PoseEstimation.cpp` and `TreeRunner.cpp`
- **Assembly Config Service**:
- Added broadcasting for grasp pose transformations in `assembly_config_service.py`.
These updates enhance modularity, maintainability, and the overall functionality of the behavior tree executor.
- Updated `.gitlab-ci.yml` to use `all-deps.repos` and install additional Python dependencies via `requirements.txt`.
- Enhanced `Dockerfile` with better dependency management:
- Added `SHELL` declaration for consistent script execution.
- Installed `libgeos-dev` for geometry processing.
- Included `python3-rosdep` and `python3-colcon-common-extensions` for ROS2 tooling.
- Streamlined ROS2 and dependency installation steps.
- Refined `requirements.txt` to adjust package versions and include new dependencies such as `tensorflow` and `torch`.
- Updated repository URL for `rbs_assets_library` in `requirements.txt`.
These changes improve dependency resolution, enhance build reproducibility, and align with updated requirements.
- 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.
- **Added support for assembly configuration in `rbs_bringup` and `rbs_robot` launches**:
- Introduced new launch arguments: `use_rbs_utils` and `assembly_config_name`.
- Integrated `rbs_utils`'s `utils.launch.py` for handling assembly configurations.
- **Simplified `skills.launch.py`**:
- Removed redundant `assembly_config` node setup.
- **Enhanced `rbs_utils`**:
- Added installation of `launch` files in `CMakeLists.txt`.
- Created a new `utils.launch.py` for dynamically loading assembly configurations.
- Refactored `assembly_config_service.py` to utilize `get_asm_config` for streamlined configuration file resolution.
- Improved `rbs_bringup` setup to include additional parameters and nodes for assembly configuration.
These changes centralize assembly configuration handling and enhance modularity across launch setups.
- 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.
- Corrected language in installation steps for clarity.
- Added a note emphasizing the requirement to install `git lfs` for handling large files in `rbs_assets_library`.
- Improved formatting for better readability in the guide.
- 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`.
- Unified `base_link` and `ee_link` parameter usage across launch files and skill server components.
- Improved synchronization in `mtjs_jtc` and `mtp_jtc` with a timeout mechanism for joint position updates, adding error handling when data is unavailable.
- Extended `AssemblyConfigService` to broadcast TF transforms for relative parts during initialization.
- Enhanced YAML parsing for `AssemblyConfigService` to handle missing orientations with default values.
- Updated `mtp_jtc_cart` to align parameter names with other skill server components.
- Added single-threaded executor to `AssemblyConfigService` for better lifecycle management.
- 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.
- 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.
- **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.
- 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.
- 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.
- 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
- 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.