Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
COPY --chown=${USERNAME}:${USERNAME} src/ src/

# Setup colcon default mixins and add default settings
RUN touch /home/${USERNAME}/.netrc
RUN colcon mixin add default \
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
colcon mixin update || true
Expand Down
2 changes: 0 additions & 2 deletions config/colcon-defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ build:
- build-testing-on
- ccache
- compile-commands
packages-ignore:
- btcpp_ros2_samples
test:
event-handlers:
- console_direct+
5,603 changes: 2,745 additions & 2,858 deletions pixi.lock

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion pixi.toml
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ ros-jazzy-xacro = "*"
# Dependencies that not available on conda-forge and must be fetched from PyPi.
# Try not to use this section unless absolutely necessary.
[pypi-dependencies]
filelock = ">=3.29.1, <4"
mujoco = "==3.12.0"
obj2mjcf = ">=0.0.25, <0.0.26"
pupil-apriltags = ">=1.0.4.post11, <2"
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
<launch>
<!-- Launch arguments -->
<arg name="robot" default="clr" description="Robot configuration for the RoboPlan planning server." />
<arg name="use_sim_time" default="false" description="Whether or not to use the simulated clock." />

<!-- The RoboPlan planning server. Note that the node is not renamed here since the process
spawns several helper nodes; a launch-level name would collide them all. -->
<node pkg="clr_behavior_demos" exec="roboplan_planning_server.py" output="screen">
<param name="robot" value="$(var robot)" />
<param name="use_sim_time" value="$(var use_sim_time)" />
</node>

<!-- The main behavior tree executor -->
<node pkg="imetro_behavior" exec="run_behavior.py" name="behavior_node" output="screen">
<param name="behavior_config" value="$(find-pkg-share clr_behavior_demos)/config/clr_roboplan_behavior_config.yaml" />
<param name="use_sim_time" value="$(var use_sim_time)" />
</node>

</launch>
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,7 @@ def _build_group_context(self, group_name):
ctx.visualizer,
self._traj_marker_pub,
ctx.q_indices,
clock=self.get_clock(),
)
self._group_contexts[group_name] = ctx
self.get_logger().info(f"Created planning context for group '{group_name}'.")
Expand Down Expand Up @@ -865,11 +866,21 @@ def _plan_cartesian(self, group_name, target_poses, max_linear_speed=0.0, max_an
f"Planned Cartesian trajectory through {len(target_poses)} pose(s) " f"({len(traj.positions)} points)"
)

def _stop_previews(self):
"""
Stops every group's trajectory playback. Each planning context owns its
own player, so a preview started for one group would otherwise keep
publishing on the shared marker topic underneath the next group's preview.
"""
for ctx in self._group_contexts.values():
ctx.player.stop()

def _preview(self):
if self._planned_traj is None:
return False, "No trajectory to preview. Plan first."

self.get_logger().info("Previewing trajectory...")
self._stop_previews()
self._planned_ctx.player.play(
self._planned_traj,
self._traj_dt,
Expand Down Expand Up @@ -936,6 +947,7 @@ def _reset(self):
self._target_marker_pose = None
self._planned_traj = None
self._planned_ctx = None
self._stop_previews()
self._traj_marker_pub.publish(self._default_ctx.visualizer.clear_markers())
delete_marker = Marker()
delete_marker.header.frame_id = "world"
Expand Down
2 changes: 0 additions & 2 deletions src/clr_demos/clr_behavior_demos/trees/pick_and_place_ctb.xml
Original file line number Diff line number Diff line change
Expand Up @@ -199,13 +199,11 @@
camera_info_topic="/wrist_mounted_camera/color/camera_info"
rgb_image_topic="/wrist_mounted_camera/color/image_raw"
depth_image_topic="/wrist_mounted_camera/aligned_depth_to_color/image_raw"
point_cloud_topic="/wrist_mounted_camera/depth/color/points"
time_slop="0.1"
sync_timeout="3.0"
camera_info="{camera_info}"
rgb_image="{rgb_image}"
depth_image="{depth_image}"
point_cloud="{point_cloud}"
/>
<!-- </Parallel> -->
<DetectColorBlobs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,11 @@
camera_info_topic="/wrist_mounted_camera/color/camera_info"
rgb_image_topic="/wrist_mounted_camera/color/image_raw"
depth_image_topic="/wrist_mounted_camera/aligned_depth_to_color/image_raw"
point_cloud_topic="/wrist_mounted_camera/depth/color/points"
time_slop="0.1"
sync_timeout="3.0"
camera_info="{camera_info}"
rgb_image="{rgb_image}"
depth_image="{depth_image}"
point_cloud="{point_cloud}"
/>
<DetectColorBlobs
name="detect_color_blobs"
Expand Down
2 changes: 1 addition & 1 deletion src/clr_demos/clr_roboplan_demos/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
endif()

find_package(ament_cmake REQUIRED)
find_package(roboplan REQUIRED)
find_package(roboplan_core REQUIRED)
find_package(roboplan_simple_ik REQUIRED)
find_package(roboplan_oink REQUIRED)
find_package(roboplan_rrt REQUIRED)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
QoSDurabilityPolicy,
)

from roboplan.core import Scene
from roboplan.core import Scene, loadJointLimitsConfig, loadUrdfSceneDescriptionFromXml


BEST_EFFORT_QOS = QoSProfile(
Expand Down Expand Up @@ -148,9 +148,8 @@ def create_scene(urdf_xml=None):

scene = Scene(
name="clr_scene",
urdf=urdf_xml,
srdf=srdf_xml,
package_paths=package_paths,
yaml_config_path=yaml_config_path,
description=loadUrdfSceneDescriptionFromXml(urdf_xml, package_paths),
)
scene.importJointLimitsFromConfig(loadJointLimitsConfig(yaml_config_path))
scene.importSrdf(srdf_xml)
return scene, urdf_xml, package_paths
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ def ik_solve_fn(target_pose, seed):
self._traj_visualizer,
self._traj_marker_pub,
self._q_indices,
self.get_clock(),
)

# Publish the planned end-effector path as a light green line upon planning.
Expand Down
9 changes: 5 additions & 4 deletions src/clr_demos/clr_roboplan_demos/scripts/viser_ik_rrt.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
PathShortcutter,
PathShortcuttingOptions,
Scene,
loadJointLimitsConfig,
loadUrdfSceneDescriptionFromXml,
)
from roboplan.rrt import RRTOptions, RRT, visualizeTree
from roboplan.simple_ik import SimpleIkOptions, SimpleIk
Expand Down Expand Up @@ -109,11 +111,10 @@ def main(
]
scene = Scene(
"test_scene",
urdf=urdf_xml,
srdf=srdf_xml,
package_paths=package_paths,
yaml_config_path=yaml_config_path,
description=loadUrdfSceneDescriptionFromXml(urdf_xml, package_paths),
)
scene.importJointLimitsFromConfig(loadJointLimitsConfig(yaml_config_path))
scene.importSrdf(srdf_xml)

group_name = "clr"
tip_link = "grasp_frame"
Expand Down
2 changes: 1 addition & 1 deletion src/external/roboplan
Submodule roboplan updated 259 files
2 changes: 1 addition & 1 deletion src/external/roboplan-ros
Submodule roboplan-ros updated 42 files
+11 −6 .docker/Dockerfile
+11 −92 .github/workflows/build_and_test.yml
+1 −8 .github/workflows/format.yml
+58 −0 .github/workflows/pixi_build_and_test.yml
+36 −0 .github/workflows/pixi_conda_build_and_test.yml
+57 −0 .github/workflows/ros_build_and_test.yml
+1 −1 ROBOPLAN_VERSION
+1 −1 docs/source/conf.py
+2 −2 docs/source/getting_started.rst
+61,466 −66,166 pixi.lock
+41 −44 pixi.toml
+11 −0 roboplan_ros_cpp/CHANGELOG.rst
+2 −2 roboplan_ros_cpp/CMakeLists.txt
+31 −3 roboplan_ros_cpp/bindings/CMakeLists.txt
+11 −3 roboplan_ros_cpp/bindings/test/test_type_conversions.py
+2 −2 roboplan_ros_cpp/package.xml
+4 −2 roboplan_ros_cpp/test/test_type_conversions.cpp
+6 −0 roboplan_ros_examples/roboplan_ros_examples/CHANGELOG.rst
+2 −2 roboplan_ros_examples/roboplan_ros_examples/package.xml
+11 −0 roboplan_ros_examples/roboplan_ros_franka/CHANGELOG.rst
+0 −1 roboplan_ros_examples/roboplan_ros_franka/CMakeLists.txt
+8 −3 roboplan_ros_examples/roboplan_ros_franka/package.xml
+9 −5 roboplan_ros_examples/roboplan_ros_franka/scripts/optimal_ik_streaming_node.py
+6 −4 roboplan_ros_examples/roboplan_ros_franka/scripts/plan_and_execute_node.py
+8 −0 roboplan_ros_py/CHANGELOG.rst
+3 −2 roboplan_ros_py/package.xml
+50 −7 roboplan_ros_py/roboplan_ros_py/trajectory_publisher.py
+1 −1 roboplan_ros_py/setup.py
+4 −2 roboplan_ros_py/test/test_kinematics.py
+139 −0 roboplan_ros_py/test/test_trajectory_publisher.py
+11 −0 roboplan_ros_visualization/CHANGELOG.rst
+2 −4 roboplan_ros_visualization/CMakeLists.txt
+16 −3 roboplan_ros_visualization/bindings/CMakeLists.txt
+11 −3 roboplan_ros_visualization/bindings/test/roboplan_ik_marker_test.py
+27 −8 roboplan_ros_visualization/bindings/test/roboplan_visualizer_test.py
+0 −1 roboplan_ros_visualization/include/roboplan_ros_visualization/roboplan_ik_marker.hpp
+1 −1 roboplan_ros_visualization/include/roboplan_ros_visualization/roboplan_visualizer.hpp
+4 −3 roboplan_ros_visualization/package.xml
+19 −7 roboplan_ros_visualization/src/roboplan_visualizer.cpp
+2 −0 roboplan_ros_visualization/test/CMakeLists.txt
+3 −1 roboplan_ros_visualization/test/roboplan_ik_marker_test.cpp
+66 −22 roboplan_ros_visualization/test/roboplan_visualizer_test.cpp
2 changes: 1 addition & 1 deletion src/external/ros2_robotiq_gripper
Submodule ros2_robotiq_gripper updated 37 files
+5 −5 .github/workflows/ci-coverage-build.yml
+2 −2 .github/workflows/ci-format.yml
+0 −26 .github/workflows/humble-binary-build-main.yml
+0 −26 .github/workflows/humble-binary-build-testing.yml
+0 −25 .github/workflows/humble-semi-binary-build-main.yml
+0 −25 .github/workflows/humble-semi-binary-build-testing.yml
+0 −19 .github/workflows/humble-source-build.yml
+0 −26 .github/workflows/iron-binary-build-main.yml
+0 −26 .github/workflows/iron-binary-build-testing.yml
+0 −25 .github/workflows/iron-semi-binary-build-main.yml
+0 −25 .github/workflows/iron-semi-binary-build-testing.yml
+0 −19 .github/workflows/iron-source-build.yml
+2 −2 .github/workflows/reusable-ros-tooling-source-build.yml
+3 −2 robotiq_controllers/CMakeLists.txt
+11 −4 robotiq_controllers/src/robotiq_activation_controller.cpp
+16 −4 robotiq_description/config/robotiq_controllers.yaml
+1 −1 robotiq_description/package.xml
+11 −26 robotiq_description/urdf/2f_140.ros2_control.xacro
+11 −26 robotiq_description/urdf/2f_85.ros2_control.xacro
+2 −2 robotiq_description/urdf/robotiq_2f_140_macro.urdf.xacro
+2 −2 robotiq_description/urdf/robotiq_2f_85_macro.urdf.xacro
+6 −2 robotiq_driver/CMakeLists.txt
+3 −2 robotiq_driver/include/robotiq_driver/hardware_interface.hpp
+0 −1 robotiq_driver/package.xml
+1 −0 robotiq_driver/src/default_driver_factory.cpp
+24 −21 robotiq_driver/src/hardware_interface.cpp
+4 −4 robotiq_driver/tests/CMakeLists.txt
+2 −0 robotiq_driver/tests/test_data_utils.cpp
+29 −33 robotiq_driver/tests/test_robotiq_gripper_hardware_interface.cpp
+2 −2 robotiq_hande_description/urdf/hande_fingers.xacro
+6 −7 robotiq_hande_description/urdf/robotiq_hande.ros2_control.xacro
+8 −6 robotiq_hande_description/urdf/robotiq_hande.xacro
+1 −1 robotiq_hardware_tests/CMakeLists.txt
+0 −5 ros2_robotiq_gripper-not-released.humble.repos
+0 −5 ros2_robotiq_gripper-not-released.iron.repos
+0 −5 ros2_robotiq_gripper.humble.repos
+0 −5 ros2_robotiq_gripper.iron.repos
Loading