From 8139dab23bbf222e37a4b3faa58e2e8a06ebe53d Mon Sep 17 00:00:00 2001 From: Griswald Brooks Date: Tue, 8 Sep 2026 16:07:36 -0400 Subject: [PATCH 01/10] chore: drop the vendored phoebe_ws external dependency lunar_sim no longer inherits from phoebe_sim, and nothing else in the workspace uses phoebe_sim, phoebe_bridgeback_description, or ewellix_description. Co-Authored-By: Claude Sonnet 5 --- README.md | 1 - bin/validate_workspace_dependencies.py | 4 - colcon-defaults.yaml | 1 - src/external_dependencies/phoebe_ws/COPYING | 84 - src/external_dependencies/phoebe_ws/LICENSE | 28 - .../phoebe_ws/LICENSES/Apache-2.0.txt | 202 -- .../LICENSES/Clearpath-BSD-3-Clause.txt | 28 - .../LICENSES/Ewellix-BSD-3-Clause.txt | 28 - .../LICENSES/PickNik-Robotiq-BSD-3-Clause.txt | 29 - .../LICENSES/Robotiq-BSD-2-Clause.txt | 23 - .../Universal-Robots-BSD-3-Clause.txt | 26 - src/external_dependencies/phoebe_ws/NOTICE | 9 - .../phoebe_ws/UPSTREAM.yaml | 38 - .../src/ewellix_description/CMakeLists.txt | 10 - .../phoebe_ws/src/ewellix_description/LICENSE | 28 - .../meshes/tlt500/long/base.stl | 3 - .../meshes/tlt500/long/lower.stl | 3 - .../meshes/tlt500/long/upper.stl | 3 - .../meshes/tlt500/plate.stl | 3 - .../src/ewellix_description/package.xml | 20 - .../CMakeLists.txt | 14 - .../meshes/arm_mount.STL | 3 - .../meshes/arm_mount_collision.STL | 3 - .../meshes/autec_antenna.STL | 3 - .../meshes/autec_receiver.STL | 3 - .../meshes/lift_rails.STL | 3 - .../meshes/monitor.STL | 3 - .../meshes/monitor_hinge_base.STL | 3 - .../meshes/monitor_hinge_top.STL | 3 - .../meshes/scu.STL | 3 - .../meshes/shelf.STL | 3 - .../meshes/ur_control_box.STL | 3 - .../meshes/wifi_antenna.STL | 3 - .../phoebe_bridgeback_description/package.xml | 28 - .../xacro/clearpath_r100.macro.xacro | 807 -------- .../xacro/ewellix_tlt500.macro.xacro | 174 -- .../xacro/robotiq_2f85.macro.xacro | 323 --- .../xacro/ur5e.macro.xacro | 621 ------ .../phoebe_ws/src/phoebe_sim/CMakeLists.txt | 23 - .../src/phoebe_sim/config/config.yaml | 118 -- .../config/control/dual_arm.ros2_control.yaml | 907 -------- .../config/moveit/hard_joint_limits.yaml | 212 -- .../phoebe_sim/config/moveit/joint_jog.yaml | 4 - .../config/moveit/joint_limits.yaml | 208 -- .../config/moveit/ompl_planning.yaml | 41 - .../phoebe_sim/config/moveit/phoebe_sim.srdf | 1314 ------------ .../config/moveit/pose_ik_distance.yaml | 29 - .../config/moveit/pose_ik_speed.yaml | 24 - .../phoebe_sim/config/moveit/pose_jog.yaml | 4 - .../src/phoebe_sim/config/moveit/servo.yaml | 65 - .../description/assets/Apollo_11_sliver.png | 0 .../assets/Apollo_11_sliver_map.png | 0 .../description/assets/HAM_Assem.stl | 3 - .../description/assets/april_tag.obj | 3 - .../assets/arm_mount_collision.STL | 3 - .../phoebe_sim/description/assets/base.stl | 3 - .../phoebe_sim/description/assets/base_0.obj | 3 - .../phoebe_sim/description/assets/base_1.obj | 3 - .../description/assets/base_platform.stl | 3 - .../description/assets/black_white.png | 3 - .../description/assets/blender_cube.obj | 3 - .../phoebe_sim/description/assets/body.stl | 3 - .../phoebe_sim/description/assets/bottle.mtl | 12 - .../phoebe_sim/description/assets/bottle.obj | 3 - .../phoebe_sim/description/assets/bottle.png | 3 - .../phoebe_sim/description/assets/bottle.stl | 3 - .../description/assets/camera_adapter.stl | 3 - .../phoebe_sim/description/assets/cube.stl | 3 - .../assets/ewellix_lift_base_500mm.stl | 3 - .../assets/ewellix_lift_top_500mm.stl | 3 - .../description/assets/forearm_0.obj | 3 - .../description/assets/forearm_1.obj | 3 - .../description/assets/forearm_2.obj | 3 - .../description/assets/forearm_3.obj | 3 - .../description/assets/lifts/base.mtl | 2 - .../description/assets/lifts/base.obj | 3 - .../description/assets/lifts/base.stl | 3 - .../description/assets/lifts/base2.stl | 3 - .../description/assets/lifts/lift.xml | 105 - .../description/assets/lifts/lower.mtl | 2 - .../description/assets/lifts/lower.obj | 3 - .../description/assets/lifts/lower.stl | 3 - .../description/assets/lifts/plate.mtl | 2 - .../description/assets/lifts/plate.obj | 3 - .../description/assets/lifts/plate.stl | 3 - .../description/assets/lifts/upper.mtl | 2 - .../description/assets/lifts/upper.obj | 3 - .../description/assets/lifts/upper.stl | 3 - .../description/assets/omni_wheel_1.stl | 3 - .../description/assets/omni_wheel_2.stl | 3 - .../phoebe_sim/description/assets/rack.stl | 3 - .../description/assets/ridgeback/LICENSE.txt | 21 - .../description/assets/ridgeback/body.stl | 3 - .../description/assets/ridgeback/top.stl | 3 - .../description/assets/robotiq_2f85/base.stl | 3 - .../assets/robotiq_2f85/finger_link.stl | 3 - .../assets/robotiq_2f85/finger_tip_link.stl | 3 - .../robotiq_2f85/inner_knuckle_link.stl | 3 - .../assets/robotiq_2f85/knuckle_link.stl | 3 - .../description/assets/robotiq_2f85/pad.stl | 3 - .../assets/robotiq_2f85/silicone_pad.stl | 3 - .../description/assets/shoulder_0.obj | 3 - .../description/assets/shoulder_1.obj | 3 - .../description/assets/shoulder_2.obj | 3 - .../phoebe_sim/description/assets/space.png | 3 - .../src/phoebe_sim/description/assets/top.stl | 3 - .../collision/cabinet_door_1.stl | 3 - .../collision/cabinet_door_2.stl | 3 - .../collision/cabinet_door_3.stl | 3 - .../collision/cabinet_door_4.stl | 3 - .../trainer_hatch/collision/crank_handle.stl | 3 - .../trainer_hatch/collision/crank_wheel.stl | 3 - .../trainer_hatch/collision/cubby_1.stl | 3 - .../trainer_hatch/collision/cubby_2.stl | 3 - .../collision/cylinder_mockup_full_length.stl | 3 - .../trainer_hatch/collision/drawer_1_face.stl | 3 - .../trainer_hatch/collision/drawer_2_face.stl | 3 - .../collision/floating_hinge_handle.stl | 3 - .../collision/front_left_face.stl | 3 - .../collision/front_right_face.stl | 3 - .../trainer_hatch/collision/grab_handle.stl | 3 - .../collision/hatch_4060_collision.stl | 3 - .../collision/hatch_4060_frame.stl | 3 - .../collision/ivr_hatch_frame.stl | 3 - .../collision/paddle_latch_handle.stl | 3 - .../collision/paddle_latch_housing.stl | 3 - .../collision/push_latch_button.stl | 3 - .../collision/push_latch_handle.stl | 3 - .../collision/push_latch_housing.stl | 3 - .../collision/recessed_latch_handle.stl | 3 - .../collision/recessed_latch_housing.stl | 3 - .../collision/round_latch_handle.stl | 3 - .../collision/round_latch_housing.stl | 3 - .../collision/side_bottom_face.stl | 3 - .../collision/side_face_lower.stl | 3 - .../collision/side_face_plate.stl | 3 - .../trainer_hatch/collision/side_top_face.stl | 3 - .../trainer_hatch/visual/cabinet_door_1.stl | 3 - .../trainer_hatch/visual/cabinet_door_2.stl | 3 - .../trainer_hatch/visual/cabinet_door_3.stl | 3 - .../trainer_hatch/visual/cabinet_door_4.stl | 3 - .../trainer_hatch/visual/crank_handle.stl | 3 - .../trainer_hatch/visual/crank_wheel.stl | 3 - .../assets/trainer_hatch/visual/cubby_1.stl | 3 - .../assets/trainer_hatch/visual/cubby_2.stl | 3 - .../trainer_hatch/visual/drawer_1_face.stl | 3 - .../trainer_hatch/visual/drawer_2_face.stl | 3 - .../visual/floating_hinge_handle.stl | 3 - .../trainer_hatch/visual/front_left_face.stl | 3 - .../trainer_hatch/visual/front_right_face.stl | 3 - .../trainer_hatch/visual/grab_handle.stl | 3 - .../trainer_hatch/visual/hatch_4060_face.stl | 3 - .../trainer_hatch/visual/hatch_4060_frame.stl | 3 - .../trainer_hatch/visual/ivr_hatch_frame.stl | 3 - .../visual/ivr_hatch_frame_no_left.stl | 3 - .../visual/ivr_tasktrainer_frame.stl | 3 - .../visual/paddle_latch_handle.stl | 3 - .../visual/paddle_latch_housing.stl | 3 - .../visual/push_latch_button.stl | 3 - .../visual/push_latch_handle.stl | 3 - .../visual/push_latch_housing.stl | 3 - .../visual/recessed_latch_handle.stl | 3 - .../visual/recessed_latch_housing.stl | 3 - .../visual/round_latch_handle.stl | 3 - .../visual/round_latch_housing.stl | 3 - .../trainer_hatch/visual/side_bottom_face.stl | 3 - .../trainer_hatch/visual/side_face_lower.stl | 3 - .../trainer_hatch/visual/side_face_plate.stl | 3 - .../trainer_hatch/visual/side_top_face.stl | 3 - .../description/assets/upperarm_0.obj | 3 - .../description/assets/upperarm_1.obj | 3 - .../description/assets/upperarm_2.obj | 3 - .../description/assets/upperarm_3.obj | 3 - .../assets/ur_to_robotiq_adapter.stl | 3 - .../description/assets/wrist1_0.obj | 3 - .../description/assets/wrist1_1.obj | 3 - .../description/assets/wrist1_2.obj | 3 - .../description/assets/wrist2_0.obj | 3 - .../description/assets/wrist2_1.obj | 3 - .../description/assets/wrist2_2.obj | 3 - .../phoebe_sim/description/assets/wrist3.obj | 3 - .../src/phoebe_sim/description/bottle.xml | 44 - .../phoebe_sim/description/dual_arm_robot.xml | 1830 ----------------- .../phoebe_sim/description/dual_arm_scene.xml | 89 - .../description/front_left_wheel_link.xml | 357 ---- .../description/front_right_wheel_link.xml | 357 ---- .../src/phoebe_sim/description/hatch.xml | 243 --- .../description/phoebe_sim.urdf.xacro | 143 -- .../src/phoebe_sim/description/rack.xml | 20 - .../description/rear_left_wheel_link.xml | 357 ---- .../description/rear_right_wheel_link.xml | 357 ---- .../description/ridgeback.urdf.xacro | 327 --- .../src/phoebe_sim/description/trainer.xml | 473 ----- .../phoebe_sim/description/trainer_hatch.xml | 699 ------- .../phoebe_sim/launch/agent_bridge.launch.xml | 6 - .../src/phoebe_sim/meshes/arm_mount.STL | 3 - .../phoebe_sim/meshes/arm_mount_collision.STL | 3 - .../src/phoebe_sim/meshes/autec_antenna.STL | 3 - .../src/phoebe_sim/meshes/autec_receiver.STL | 3 - .../src/phoebe_sim/meshes/lift_rails.STL | 3 - .../src/phoebe_sim/meshes/monitor.STL | 3 - .../phoebe_sim/meshes/monitor_hinge_base.STL | 3 - .../phoebe_sim/meshes/monitor_hinge_top.STL | 3 - .../phoebe_ws/src/phoebe_sim/meshes/scu.STL | 3 - .../phoebe_ws/src/phoebe_sim/meshes/shelf.STL | 3 - .../src/phoebe_sim/meshes/ur_control_box.STL | 3 - .../src/phoebe_sim/meshes/wifi_antenna.STL | 3 - .../admittance_parameters_left_push.yaml | 53 - .../admittance_parameters_no_admittance.yaml | 53 - .../phoebe_sim/objectives/close_gripper.xml | 31 - .../objectives/close_left_gripper.xml | 25 - .../objectives/close_right_gripper.xml | 25 - .../objectives/jtac_parameters.yaml | 53 - .../objectives/log_message_example.xml | 19 - .../multi-tip_path_move_push_bottle.xml | 91 - .../multi-tip_path_move_up_bottle.xml | 91 - .../multi-tip_path_move_with_pose.xml | 75 - .../multi-tip_path_re-orient_and_move_up.xml | 24 - .../multi-tip_path_re-orient_bottle.xml | 85 - ...ti-tip_path_re-orient_move_up_and_push.xml | 157 -- .../phoebe_sim/objectives/open_gripper.xml | 31 - .../objectives/open_left_gripper.xml | 25 - .../objectives/open_right_gripper.xml | 25 - .../record_admittance_trajectory.xml | 60 - ...e_from_no_negative_text_prompt_subtree.xml | 59 - ...e-tip_path_admittance_move_push_bottle.xml | 133 -- .../objectives/take_left_snapshot.xml | 28 - .../objectives/take_right_snapshot.xml | 28 - .../src/phoebe_sim/objectives/wrist_snap.xml | 33 - .../phoebe_ws/src/phoebe_sim/package.xml | 50 - .../src/phoebe_sim/waypoints/waypoints.yaml | 308 --- 231 files changed, 12935 deletions(-) delete mode 100644 src/external_dependencies/phoebe_ws/COPYING delete mode 100644 src/external_dependencies/phoebe_ws/LICENSE delete mode 100644 src/external_dependencies/phoebe_ws/LICENSES/Apache-2.0.txt delete mode 100644 src/external_dependencies/phoebe_ws/LICENSES/Clearpath-BSD-3-Clause.txt delete mode 100644 src/external_dependencies/phoebe_ws/LICENSES/Ewellix-BSD-3-Clause.txt delete mode 100644 src/external_dependencies/phoebe_ws/LICENSES/PickNik-Robotiq-BSD-3-Clause.txt delete mode 100644 src/external_dependencies/phoebe_ws/LICENSES/Robotiq-BSD-2-Clause.txt delete mode 100644 src/external_dependencies/phoebe_ws/LICENSES/Universal-Robots-BSD-3-Clause.txt delete mode 100644 src/external_dependencies/phoebe_ws/NOTICE delete mode 100644 src/external_dependencies/phoebe_ws/UPSTREAM.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/ewellix_description/CMakeLists.txt delete mode 100644 src/external_dependencies/phoebe_ws/src/ewellix_description/LICENSE delete mode 100644 src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/base.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/lower.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/upper.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/plate.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/ewellix_description/package.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/CMakeLists.txt delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount_collision.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_antenna.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_receiver.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/lift_rails.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_base.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_top.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/scu.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/shelf.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/ur_control_box.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/wifi_antenna.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/package.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/clearpath_r100.macro.xacro delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ewellix_tlt500.macro.xacro delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/robotiq_2f85.macro.xacro delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ur5e.macro.xacro delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/CMakeLists.txt delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/config.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/control/dual_arm.ros2_control.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/hard_joint_limits.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_jog.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_limits.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/ompl_planning.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/phoebe_sim.srdf delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_distance.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_speed.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_jog.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/servo.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/Apollo_11_sliver.png delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/Apollo_11_sliver_map.png delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/HAM_Assem.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/april_tag.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/arm_mount_collision.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_0.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_1.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_platform.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/black_white.png delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/blender_cube.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/body.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.mtl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.png delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/camera_adapter.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/cube.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_base_500mm.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_top_500mm.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_0.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_1.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_2.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_3.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.mtl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base2.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lift.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.mtl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.mtl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.mtl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_1.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_2.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/rack.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/LICENSE.txt delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/body.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/top.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/base.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_link.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_tip_link.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/inner_knuckle_link.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/knuckle_link.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/pad.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/silicone_pad.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_0.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_1.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_2.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/space.png delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/top.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_1.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_2.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_3.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_4.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_wheel.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_1.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_2.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cylinder_mockup_full_length.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_1_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_2_face.stl delete mode 100755 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/floating_hinge_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_left_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_right_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/grab_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_collision.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_frame.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/ivr_hatch_frame.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_button.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_bottom_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_lower.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_plate.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_top_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_1.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_2.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_3.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_4.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_wheel.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_1.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_2.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_1_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_2_face.stl delete mode 100755 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/floating_hinge_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_left_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_right_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/grab_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_frame.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame_no_left.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_tasktrainer_frame.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_button.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_handle.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_housing.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_bottom_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_lower.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_plate.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_top_face.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_0.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_1.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_2.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_3.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ur_to_robotiq_adapter.stl delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_0.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_1.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_2.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_0.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_1.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_2.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist3.obj delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/bottle.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_robot.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_scene.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_left_wheel_link.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_right_wheel_link.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/hatch.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/phoebe_sim.urdf.xacro delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rack.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_left_wheel_link.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_right_wheel_link.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/ridgeback.urdf.xacro delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer_hatch.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/launch/agent_bridge.launch.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount_collision.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_antenna.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_receiver.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/lift_rails.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_base.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_top.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/scu.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/shelf.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/ur_control_box.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/wifi_antenna.STL delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_left_push.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_no_admittance.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_gripper.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_left_gripper.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_right_gripper.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/jtac_parameters.yaml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/log_message_example.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_push_bottle.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_up_bottle.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_with_pose.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_and_move_up.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_bottle.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_move_up_and_push.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_gripper.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_left_gripper.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_right_gripper.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/record_admittance_trajectory.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/segment_image_from_no_negative_text_prompt_subtree.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/single-tip_path_admittance_move_push_bottle.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_left_snapshot.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_right_snapshot.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/wrist_snap.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/package.xml delete mode 100644 src/external_dependencies/phoebe_ws/src/phoebe_sim/waypoints/waypoints.yaml diff --git a/README.md b/README.md index 5ca5d0602..f43fe9ea7 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,6 @@ git submodule update --init src/moveit_pro_sam2 src/moveit_pro_sam3 - `kitchen_sim` - `lab_sim` - `lunar_sim` -- `phoebe_sim` - `vla_sim` - `moveit_pro_franka_configs/franka_base_config` - `moveit_pro_kinova_configs/kinova_gen3_base_config` diff --git a/bin/validate_workspace_dependencies.py b/bin/validate_workspace_dependencies.py index 2df326117..6fdf903b6 100644 --- a/bin/validate_workspace_dependencies.py +++ b/bin/validate_workspace_dependencies.py @@ -63,10 +63,6 @@ ) CLEARPATH_CONTROLLER_CONFIGS = { Path("src/hangar_sim/config/control/picknik_ur.ros2_control.yaml"), - Path( - "src/external_dependencies/phoebe_ws/src/phoebe_sim/config/control/" - "dual_arm.ros2_control.yaml" - ), } UPSTREAM_FETCH_TIMEOUT_SECONDS = 300 UPSTREAM_GIT_OPERATION_TIMEOUT_SECONDS = 300 diff --git a/colcon-defaults.yaml b/colcon-defaults.yaml index 3196407a8..43d575ca4 100644 --- a/colcon-defaults.yaml +++ b/colcon-defaults.yaml @@ -3,7 +3,6 @@ build: # Enable this for bidirectional syncing from the UI symlink-install: true allow-overriding: - - ewellix_description - franka_description - kortex_description - robotiq_description diff --git a/src/external_dependencies/phoebe_ws/COPYING b/src/external_dependencies/phoebe_ws/COPYING deleted file mode 100644 index 7f7646fd6..000000000 --- a/src/external_dependencies/phoebe_ws/COPYING +++ /dev/null @@ -1,84 +0,0 @@ -Licensing and third-party materials -======================================= - -phoebe_ws is a multi-license repository. - -PickNik-authored material -------------------------- - -Unless a file or directory is identified below or carries its own license -notice, material authored by PickNik Inc. is licensed under the BSD 3-Clause -License in LICENSE. - -Third-party material in this repository ---------------------------------------- - -The following material remains under its upstream license and is not relicensed -by the repository-level BSD 3-Clause License: - -* `src/phoebe_sim/description/assets/trainer_hatch/**`, except - `collision/cylinder_mockup_full_length.stl` - - These assets are derived from the NASA JSC Surface Robotics Mockups - Description project and are licensed under Apache-2.0. See - `LICENSES/Apache-2.0.txt` and NOTICE. - -* `src/phoebe_sim/description/assets/base_*.obj` -* `src/phoebe_sim/description/assets/forearm_*.obj` -* `src/phoebe_sim/description/assets/shoulder_*.obj` -* `src/phoebe_sim/description/assets/upperarm_*.obj` -* `src/phoebe_sim/description/assets/wrist*.obj` - - These Universal Robots model assets are derived from the MuJoCo Menagerie - UR5e model and are licensed under BSD-3-Clause. See - `LICENSES/Universal-Robots-BSD-3-Clause.txt`. - -* `src/phoebe_bridgeback_description/xacro/ur5e.macro.xacro` -* `src/phoebe_bridgeback_description/xacro/clearpath_r100.macro.xacro` - - These robot-description macros are derived from Clearpath Robotics robot - description packages and are licensed under BSD-3-Clause. See - `LICENSES/Clearpath-BSD-3-Clause.txt`. - -* `src/phoebe_sim/description/assets/robotiq_2f85/**` - - These Robotiq model assets are derived from the MuJoCo Menagerie Robotiq - 2F-85 model and are licensed under BSD-2-Clause. See - `LICENSES/Robotiq-BSD-2-Clause.txt`. - -* `src/phoebe_bridgeback_description/xacro/robotiq_2f85.macro.xacro` - - This macro is derived from PickNik Robotics' `ros2_robotiq_gripper` package - and is licensed under BSD-3-Clause. See - `LICENSES/PickNik-Robotiq-BSD-3-Clause.txt`. - -* `src/ewellix_description/**` -* `src/phoebe_bridgeback_description/xacro/ewellix_tlt500.macro.xacro` -* `src/phoebe_sim/description/assets/ewellix_lift_base_500mm.stl` -* `src/phoebe_sim/description/assets/ewellix_lift_top_500mm.stl` - - These Ewellix materials are licensed under BSD-3-Clause by Clearpath - Robotics. See `src/ewellix_description/LICENSE` and - `LICENSES/Ewellix-BSD-3-Clause.txt`. - -* `src/phoebe_sim/description/assets/ridgeback/**` -* `src/phoebe_sim/description/assets/body.stl` -* `src/phoebe_sim/description/assets/top.stl` -* `src/phoebe_sim/description/assets/omni_wheel_*.stl` - - These Ridgeback assets are licensed under BSD-3-Clause by Clearpath - Robotics Inc. See the adjacent `LICENSE.txt` in the Ridgeback directory. - -Git submodules --------------- - -Directories recorded as Git submodules in `.gitmodules` are separate works. -Each submodule is governed by the license in its own repository; the -repository-level LICENSE does not relicense submodule contents. - -Trademark notice ----------------- - -Names and trademarks of NASA, Universal Robots, Robotiq, Clearpath Robotics, -Ewellix, and other third parties remain the property of their respective -owners. No trademark rights are granted by this repository. diff --git a/src/external_dependencies/phoebe_ws/LICENSE b/src/external_dependencies/phoebe_ws/LICENSE deleted file mode 100644 index 2f9b41e3b..000000000 --- a/src/external_dependencies/phoebe_ws/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2024-2026, PickNik Inc. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/LICENSES/Apache-2.0.txt b/src/external_dependencies/phoebe_ws/LICENSES/Apache-2.0.txt deleted file mode 100644 index d64569567..000000000 --- a/src/external_dependencies/phoebe_ws/LICENSES/Apache-2.0.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/src/external_dependencies/phoebe_ws/LICENSES/Clearpath-BSD-3-Clause.txt b/src/external_dependencies/phoebe_ws/LICENSES/Clearpath-BSD-3-Clause.txt deleted file mode 100644 index 6080cef2f..000000000 --- a/src/external_dependencies/phoebe_ws/LICENSES/Clearpath-BSD-3-Clause.txt +++ /dev/null @@ -1,28 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2023, clearpathrobotics - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/LICENSES/Ewellix-BSD-3-Clause.txt b/src/external_dependencies/phoebe_ws/LICENSES/Ewellix-BSD-3-Clause.txt deleted file mode 100644 index 62bd137d6..000000000 --- a/src/external_dependencies/phoebe_ws/LICENSES/Ewellix-BSD-3-Clause.txt +++ /dev/null @@ -1,28 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2024, clearpathrobotics - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/LICENSES/PickNik-Robotiq-BSD-3-Clause.txt b/src/external_dependencies/phoebe_ws/LICENSES/PickNik-Robotiq-BSD-3-Clause.txt deleted file mode 100644 index 4cff3dc4a..000000000 --- a/src/external_dependencies/phoebe_ws/LICENSES/PickNik-Robotiq-BSD-3-Clause.txt +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2022, PickNik Robotics -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/LICENSES/Robotiq-BSD-2-Clause.txt b/src/external_dependencies/phoebe_ws/LICENSES/Robotiq-BSD-2-Clause.txt deleted file mode 100644 index 78c0f7357..000000000 --- a/src/external_dependencies/phoebe_ws/LICENSES/Robotiq-BSD-2-Clause.txt +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2013, ROS-Industrial -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/LICENSES/Universal-Robots-BSD-3-Clause.txt b/src/external_dependencies/phoebe_ws/LICENSES/Universal-Robots-BSD-3-Clause.txt deleted file mode 100644 index f24e07cb6..000000000 --- a/src/external_dependencies/phoebe_ws/LICENSES/Universal-Robots-BSD-3-Clause.txt +++ /dev/null @@ -1,26 +0,0 @@ -Copyright 2018 ROS Industrial Consortium - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors -may be used to endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/NOTICE b/src/external_dependencies/phoebe_ws/NOTICE deleted file mode 100644 index cb9f5ca5f..000000000 --- a/src/external_dependencies/phoebe_ws/NOTICE +++ /dev/null @@ -1,9 +0,0 @@ -phoebe_ws third-party notices - -NASA JSC Surface Robotics Mockups Description -Copyright 2025 United States Government, as represented by the Administrator -of the National Aeronautics and Space Administration. All rights reserved. - -Portions of the trainer-hatch simulation assets are derived from NASA's -`NASA-JSC-Robotics/surface_robotics_mockups_description` project and are -licensed under the Apache License, Version 2.0. diff --git a/src/external_dependencies/phoebe_ws/UPSTREAM.yaml b/src/external_dependencies/phoebe_ws/UPSTREAM.yaml deleted file mode 100644 index b35b3a35b..000000000 --- a/src/external_dependencies/phoebe_ws/UPSTREAM.yaml +++ /dev/null @@ -1,38 +0,0 @@ -upstream: - repository: https://github.com/PickNikRobotics/phoebe_ws.git - commit: 22a1c004895e1ca35bbcc287ddeccdc41d486056 - branch: for-example-ws-no-dups -vendored_paths: - - COPYING - - LICENSE - - LICENSES - - NOTICE - - src/ewellix_description - - src/phoebe_bridgeback_description - - src/phoebe_sim -pruned_paths: - - development workspace files - - unused l2g.onnx model - - RViz launch and configuration files - - Ewellix variants, configuration, macros, and documentation unused by phoebe_sim -modified_paths: - - src/ewellix_description/CMakeLists.txt - - src/phoebe_bridgeback_description/package.xml - - src/phoebe_sim/objectives/close_gripper.xml - - src/phoebe_sim/objectives/close_left_gripper.xml - - src/phoebe_sim/objectives/close_right_gripper.xml - - src/phoebe_sim/objectives/open_gripper.xml - - src/phoebe_sim/objectives/open_left_gripper.xml - - src/phoebe_sim/objectives/open_right_gripper.xml - - src/phoebe_sim/objectives/wrist_snap.xml - - src/phoebe_sim/CMakeLists.txt - - src/phoebe_sim/package.xml - - src/phoebe_sim/config/control/dual_arm.ros2_control.yaml -apache_paths: - - src/phoebe_sim/description/assets/trainer_hatch -apache_excluded_paths: - - src/phoebe_sim/description/assets/trainer_hatch/collision/cylinder_mockup_full_length.stl -notes: - - lunar_sim inherits the phoebe_sim robot configuration and MuJoCo assets. - - phoebe_sim uses only the Ewellix TLT500 long lift meshes. - - Binary files matching workspace Git LFS patterns are stored as LFS objects; checked-out bytes match upstream. diff --git a/src/external_dependencies/phoebe_ws/src/ewellix_description/CMakeLists.txt b/src/external_dependencies/phoebe_ws/src/ewellix_description/CMakeLists.txt deleted file mode 100644 index 762035c72..000000000 --- a/src/external_dependencies/phoebe_ws/src/ewellix_description/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(ewellix_description) - -find_package(ament_cmake REQUIRED) - -install(DIRECTORY meshes - DESTINATION share/${PROJECT_NAME} -) - -ament_package() diff --git a/src/external_dependencies/phoebe_ws/src/ewellix_description/LICENSE b/src/external_dependencies/phoebe_ws/src/ewellix_description/LICENSE deleted file mode 100644 index 62bd137d6..000000000 --- a/src/external_dependencies/phoebe_ws/src/ewellix_description/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2024, clearpathrobotics - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/base.stl b/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/base.stl deleted file mode 100644 index 30c33fd8d..000000000 --- a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/base.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:032d12123df60e5313d53961b49244ab7d53ea37cac3e3510a57dd0923742475 -size 164684 diff --git a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/lower.stl b/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/lower.stl deleted file mode 100644 index 7af5ac6ba..000000000 --- a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/lower.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:063507f941e83b981d02aca9794c5795df94a16a7650d04fc0620a0c63610532 -size 128884 diff --git a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/upper.stl b/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/upper.stl deleted file mode 100644 index 8ffa9aca9..000000000 --- a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/long/upper.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b0af87e6b081f96a2840e4b49eb0746402dafb5a0fd9a16629c65f2d955ebcd6 -size 44184 diff --git a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/plate.stl b/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/plate.stl deleted file mode 100644 index 2c7ed29b5..000000000 --- a/src/external_dependencies/phoebe_ws/src/ewellix_description/meshes/tlt500/plate.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b236a009249bc2e0ceccecab2113b75cf4af1d0a881e4b9e45ca33062a1b563 -size 114084 diff --git a/src/external_dependencies/phoebe_ws/src/ewellix_description/package.xml b/src/external_dependencies/phoebe_ws/src/ewellix_description/package.xml deleted file mode 100644 index 0f952014d..000000000 --- a/src/external_dependencies/phoebe_ws/src/ewellix_description/package.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - ewellix_description - 0.1.0 - - Clearpath's description package for Ewellix TLT lifting columns - - - Luis Camero - Luis Camero - - BSD-3-Clause - - ament_cmake - - - ament_cmake - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/CMakeLists.txt b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/CMakeLists.txt deleted file mode 100644 index 649b8b498..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 3.22) -project(phoebe_description) - -find_package(ament_cmake REQUIRED) - -install( - DIRECTORY - meshes - xacro - DESTINATION - share/${PROJECT_NAME} - ) - -ament_package() diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount.STL deleted file mode 100644 index ebb2100f7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0212cf9caee89bcd708a0c52340f73f2754601fa8ebb23b58b0a466b49d48094 -size 2064584 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount_collision.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount_collision.STL deleted file mode 100644 index 7b7661ff4..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/arm_mount_collision.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d81bd8c5bdc516d1e09b5d1bc9bf43495b8edd8203330aa9f0b0df47b3750ed6 -size 12884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_antenna.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_antenna.STL deleted file mode 100644 index 0b88733e3..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_antenna.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:390cd595b79cf3b29156d82ff5dfdc0b4cee9ac0adbb796e2b6a38d89520e681 -size 40084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_receiver.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_receiver.STL deleted file mode 100644 index 97f717716..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/autec_receiver.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5cde325070ed75fd7c547f2e0c6dd209ef848d359f68f85232fdf7efe70c8037 -size 17784 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/lift_rails.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/lift_rails.STL deleted file mode 100644 index 510bc9732..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/lift_rails.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9ea9f94f4c75399906ee5b7eb9e11d58e5746674b0c1cd61808dcf8de5927c90 -size 186084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor.STL deleted file mode 100644 index ed3a95183..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:61ddec191ec5e7a899e72c39d3ff22517225faf1688ab59445783c1f724b6c51 -size 80984 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_base.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_base.STL deleted file mode 100644 index 42f8c0d50..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_base.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a3a71d3db7bac3b0f949f0e62362f34dcae7a119962cf3e78f7baf2dd2de5d55 -size 297084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_top.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_top.STL deleted file mode 100644 index 1965c692f..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/monitor_hinge_top.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:24532a33617ccb16013f845460bfe18ce38ca5a4ce1a5c8133f0d69276a78dc6 -size 338284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/scu.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/scu.STL deleted file mode 100644 index 9373e7f8b..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/scu.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d4d3fb6cbf46f0af59b02777805c3bf9cdd462655d906e7bd3105cd90b8d294 -size 128884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/shelf.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/shelf.STL deleted file mode 100644 index 4c442c032..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/shelf.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39de6efc0bbdb2347680e3bfbe31d3c95df7e46aa4ca192f933448b6713ba724 -size 382884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/ur_control_box.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/ur_control_box.STL deleted file mode 100644 index 2a111dee7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/ur_control_box.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fade68b05a34646aca535843ec2f9a04d0a2a8cb013a3f4f78a81a53c72f5ee5 -size 14292334 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/wifi_antenna.STL b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/wifi_antenna.STL deleted file mode 100644 index 39cfbc4f8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/meshes/wifi_antenna.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:109e68aae1a21da90fbc1fc09822e144d1a6224852f0a3a8bd4b2d42e4dc0996 -size 23084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/package.xml b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/package.xml deleted file mode 100644 index ac28cabb8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/package.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - phoebe_description - 8.3.0 - - - Shared description files for the dual arm mobile simulation and hardware - configs. - - - David Yackzan - - BSD-3-Clause - - ament_cmake - - clearpath_platform_description - clearpath_sensors_description - ewellix_description - picknik_accessories - realsense2_description - robotiq_description - ur_description - - - ament_cmake - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/clearpath_r100.macro.xacro b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/clearpath_r100.macro.xacro deleted file mode 100644 index 444b086de..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/clearpath_r100.macro.xacro +++ /dev/null @@ -1,807 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - clearpath_hardware_interfaces/PumaHardware - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ewellix_tlt500.macro.xacro b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ewellix_tlt500.macro.xacro deleted file mode 100644 index 408312d0a..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ewellix_tlt500.macro.xacro +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mock_components/GenericSystem - 0.0 - true - - - ewellix_driver/EwellixHardwareInterface - ${lift_comm_port} - 38400 - 1000 - 1600 - 2000 - 0.005 - - - - - - 0.25 - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/robotiq_2f85.macro.xacro b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/robotiq_2f85.macro.xacro deleted file mode 100644 index 980f28fca..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/robotiq_2f85.macro.xacro +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - robotiq_driver/RobotiqGripperHardwareInterface - 0.7929 - ${gripper_comm_port} - 1.0 - 0.5 - - - - - - - 0.7929 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100000.0 - 100000.0 - - - - - 1e+5 - 1 - 0 - 0.2 - 0.002 - 0 - - - - - - - - - - - - - - - - - - - - - - - - 100000.0 - 100000.0 - - - - - 1e+5 - 1 - 0 - 0.2 - 0.002 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ur5e.macro.xacro b/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ur5e.macro.xacro deleted file mode 100644 index 6eebb9d11..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_bridgeback_description/xacro/ur5e.macro.xacro +++ /dev/null @@ -1,621 +0,0 @@ - - - - - - - ur_robot_driver/URPositionHardwareInterface - ${robot_ip} - /opt/ros/humble/share/ur_robot_driver/resources/ros_control.urscript - /opt/ros/humble/share/ur_robot_driver/resources/rtde_output_recipe.txt - /opt/ros/humble/share/ur_robot_driver/resources/rtde_input_recipe.txt - True - ${reverse_port} - ${script_sender_port} - 0.0.0.0 - ${script_command_port} - ${trajectory_port} - ${prefix} - True - 2000 - 0.03 - True - ${kinematics_hash} - 24 - 0 - 115200 - 1 - 1.5 - 3.5 - ${tool_device_name} - ${tool_tcp_port} - 2 - - - - - - - 0.0 - - - - - - - - - - -1.57 - - - - - - - - - - 0.0 - - - - - - - - - - -1.57 - - - - - - - - - - 0.0 - - - - - - - - - - 0.0 - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/CMakeLists.txt b/src/external_dependencies/phoebe_ws/src/phoebe_sim/CMakeLists.txt deleted file mode 100644 index 306fc358f..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -cmake_minimum_required(VERSION 3.22) -project(phoebe_sim) - -find_package(ament_cmake REQUIRED) - -install( - DIRECTORY - config - description - launch - meshes - objectives - waypoints - DESTINATION - share/${PROJECT_NAME} -) - -if(BUILD_TESTING) - find_package(ament_lint_auto REQUIRED) - ament_lint_auto_find_test_dependencies() -endif() - -ament_package() diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/config.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/config.yaml deleted file mode 100644 index a3a450533..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/config.yaml +++ /dev/null @@ -1,118 +0,0 @@ -hardware: - # If the MoveIt Pro Agent should launch the ros2 controller node. - # [Optional, default=True] - launch_control_node: True - - # If the MoveIt Pro Agent should launch the robot state publisher. - # This should be false if you are launching the robot state publisher as part of drivers. - # [Optional, default=True] - launch_robot_state_publisher: True - - robot_description: - urdf: - package: "phoebe_sim" - path: "description/phoebe_sim.urdf.xacro" - srdf: - package: "phoebe_sim" - path: "config/moveit/phoebe_sim.srdf" - urdf_params: - - mujoco_model: "description/dual_arm_scene.xml" - -moveit_params: - joint_group_name: "manipulator" - joint_limits: - package: "phoebe_sim" - path: "config/moveit/joint_limits.yaml" - kinematics: - package: "phoebe_sim" - path: "config/moveit/pose_ik_distance.yaml" - pose_jog: - package: "phoebe_sim" - path: "config/moveit/pose_jog.yaml" - joint_jog: - package: "phoebe_sim" - path: "config/moveit/joint_jog.yaml" - - publish: - planning_scene: True - geometry_updates: True - state_updates: True - transforms_updates: True - - trajectory_execution: - manage_controllers: True - allowed_execution_duration_scaling: 2.0 - allowed_goal_duration_margin: 5.0 - allowed_start_tolerance: 0.01 - -# Configuration for launching ros2_control processes. -# [Required, if using ros2_control] -ros2_control: - config: - package: "phoebe_sim" - path: "config/control/dual_arm.ros2_control.yaml" - controllers_active_at_startup: - - "joint_state_broadcaster" - - "left_robotiq_gripper_controller" - - "right_robotiq_gripper_controller" - - "left_force_torque_sensor_broadcaster" - - "right_force_torque_sensor_broadcaster" - - "joint_trajectory_admittance_controller" - - "platform_velocity_controller" - # Load but do not start these controllers so they can be activated later if needed. - controllers_inactive_at_startup: - - "left_manipulator_joint_trajectory_controller" - - "right_manipulator_joint_trajectory_controller" - - "lift_joint_trajectory_controller" - - "base_velocity_force_controller" - - "left_velocity_force_controller" - - "right_velocity_force_controller" - - "base_left_velocity_force_controller" - - "base_right_velocity_force_controller" - - "arms_only_joint_trajectory_admittance_controller" - - "left_manipulator_joint_trajectory_admittance_controller" - - "right_manipulator_joint_trajectory_admittance_controller" - - "joint_velocity_controller" - - "left_joint_velocity_controller" - - "right_joint_velocity_controller" - -objectives: - # List of plugins for loading custom behaviors. - # [Required] - behavior_loader_plugins: - # This plugin will load the core MoveIt Pro Behaviors. - # Add additional plugin loaders as needed. - core: - - "moveit_pro::behaviors::CoreBehaviorsLoader" - - "moveit_pro::behaviors::MTCCoreBehaviorsLoader" - - "moveit_pro::behaviors::NavBehaviorsLoader" - - "moveit_pro::behaviors::VisionBehaviorsLoader" - - "moveit_pro::behaviors::ConverterBehaviorsLoader" - - "moveit_pro::behaviors::MPCBehaviorsLoader" - - "moveit_pro::behaviors::MujocoBehaviorsLoader" - # Specify source folder for objectives - # [Required] - objective_library_paths: - core_objectives: - package_name: "moveit_pro_objectives" - relative_path: "objectives/core" - motion_objectives: - package_name: "moveit_pro_objectives" - relative_path: "objectives/motion" - perception_objectives: - package_name: "moveit_pro_objectives" - relative_path: "objectives/perception" - mujoco_objectives: - package_name: "moveit_pro_objectives" - relative_path: "objectives/mujoco" - visualization_objectives: - package_name: "moveit_pro_objectives" - relative_path: "objectives/visualization" - sim_objectives: - package_name: "phoebe_sim" - relative_path: "objectives" - # Specify the location of the saved waypoints file. - # [Required] - waypoints_file: - package_name: "phoebe_sim" - relative_path: "waypoints/waypoints.yaml" diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/control/dual_arm.ros2_control.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/control/dual_arm.ros2_control.yaml deleted file mode 100644 index 14cfc799c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/control/dual_arm.ros2_control.yaml +++ /dev/null @@ -1,907 +0,0 @@ -controller_manager: - ros__parameters: - update_rate: 600 # Hz - joint_state_broadcaster: - type: joint_state_broadcaster/JointStateBroadcaster - platform_velocity_controller: - type: clearpath_mecanum_drive_controller/MecanumDriveController - joint_trajectory_controller: - type: joint_trajectory_controller/JointTrajectoryController - joint_trajectory_admittance_controller: - type: joint_trajectory_admittance_controller/JointTrajectoryAdmittanceController - left_manipulator_joint_trajectory_controller: - type: joint_trajectory_controller/JointTrajectoryController - right_manipulator_joint_trajectory_controller: - type: joint_trajectory_controller/JointTrajectoryController - arms_only_joint_trajectory_admittance_controller: - type: joint_trajectory_admittance_controller/JointTrajectoryAdmittanceController - left_manipulator_joint_trajectory_admittance_controller: - type: joint_trajectory_admittance_controller/JointTrajectoryAdmittanceController - right_manipulator_joint_trajectory_admittance_controller: - type: joint_trajectory_admittance_controller/JointTrajectoryAdmittanceController - joint_velocity_controller: - type: joint_velocity_controller/JointVelocityController - left_joint_velocity_controller: - type: joint_velocity_controller/JointVelocityController - right_joint_velocity_controller: - type: joint_velocity_controller/JointVelocityController - lift_joint_trajectory_controller: - type: joint_trajectory_controller/JointTrajectoryController - base_velocity_force_controller: - type: velocity_force_controller/VelocityForceController - base_left_velocity_force_controller: - type: velocity_force_controller/VelocityForceController - base_right_velocity_force_controller: - type: velocity_force_controller/VelocityForceController - left_velocity_force_controller: - type: velocity_force_controller/VelocityForceController - right_velocity_force_controller: - type: velocity_force_controller/VelocityForceController - # left_lift_velocity_force_controller: - # type: velocity_force_controller/VelocityForceController - # right_lift_velocity_force_controller: - # type: velocity_force_controller/VelocityForceController - left_force_torque_sensor_broadcaster: - type: force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster - right_force_torque_sensor_broadcaster: - type: force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster - left_robotiq_gripper_controller: - type: position_controllers/GripperActionController - right_robotiq_gripper_controller: - type: position_controllers/GripperActionController - - -joint_state_broadcaster: - ros__parameters: - use_local_topics: false - joints: - - front_left_wheel_joint - - front_right_wheel_joint - - rear_left_wheel_joint - - rear_right_wheel_joint - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - lift_left_upper_joint - - lift_right_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - left_robotiq_85_left_knuckle_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - - right_robotiq_85_left_knuckle_joint - interfaces: - - position - - velocity - -platform_velocity_controller: - ros__parameters: - use_sim_time: False - interface_name: velocity - - command_joint_names: ["front_left_wheel_joint", "rear_left_wheel_joint", "rear_right_wheel_joint", "front_right_wheel_joint"] - - front_left_wheel_command_joint_name: "front_left_wheel_joint" - front_right_wheel_command_joint_name: "front_right_wheel_joint" - rear_right_wheel_command_joint_name: "rear_right_wheel_joint" - rear_left_wheel_command_joint_name: "rear_left_wheel_joint" - - kinematics.base_frame_offset: { x: 0.0, y: 0.0, theta: 0.0 } - kinematics.wheels_radius: 0.05 - kinematics.sum_of_robot_center_projection_on_X_Y_axis: 0.4704 - wheel_separation_multiplier: 1.0 - wheel_radius_multiplier: 1.0 - - publish_rate: 50.0 - reference_timeout: 0.1 - use_stamped_vel: False - - pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 0.03] - twist_covariance_diagonal: [0.001, 0.001, 0.001, 1000000.0, 1000000.0, 0.03] - - command_timeout: 0.5 - - base_frame_id: "ridgeback_base_link" - odom_frame_id: "odom" - enable_odom_tf: true - - # Velocity and acceleration limits - # Whenever a min_* is unspecified, default to -max_* - linear.x.has_velocity_limits: true - linear.x.has_acceleration_limits: true - linear.x.max_velocity: 1.3 - linear.x.min_velocity: -1.3 - linear.x.max_acceleration: 1.0 - linear.x.min_acceleration: -1.0 - - linear.y.has_velocity_limits: true - linear.y.has_acceleration_limits: true - linear.y.max_velocity: 1.3 - linear.y.min_velocity: -1.3 - linear.y.max_acceleration: 1.0 - linear.y.min_acceleration: -1.0 - - angular.z.has_velocity_limits: true - angular.z.has_acceleration_limits: true - angular.z.max_velocity: 4.0 - angular.z.min_velocity: -4.0 - angular.z.max_acceleration: 2.0 - angular.z.min_acceleration: -2.0 - -joint_trajectory_controller: - ros__parameters: - joints: - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - lift_left_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - lift_right_upper_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - command_interfaces: - - position - state_interfaces: - - position - - velocity - command_joints: - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - lift_left_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - lift_right_upper_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - state_publish_rate: 100.0 - action_monitor_rate: 20.0 - # Need partial joint trajectories for IMarker planning group selection support - allow_partial_joints_goal: true - -joint_trajectory_admittance_controller: - ros__parameters: - planning_group_name: manipulator - # Specifies the frame/link name of the end-effector frame. Must exist in the robot description. - ee_frame: right_grasp_link - sensor_frame: right_tool0 - # No ft_sensor_name — controller runs without admittance (pure trajectory following). - # Joint accelerations to use for immediate stops (e.g. when cancelling a running trajectory). - stop_accelerations: [30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0] - # Default maximum joint-space deviation accepted along the trajectory, if not specified in the goal message. - default_path_tolerance: 0.5 - # Default maximum joint-space deviation accepted at the trajectory end-point, if not specified in the goal message. - default_goal_tolerance: 0.5 - -arms_only_joint_trajectory_admittance_controller: - ros__parameters: - planning_group_name: arms_only - ee_frame: right_grasp_link - sensor_frame: right_tool0 - # No ft_sensor_name — controller runs without admittance (pure trajectory following). - stop_accelerations: [30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0] - default_path_tolerance: 0.5 - default_goal_tolerance: 0.5 - -left_manipulator_joint_trajectory_controller: - ros__parameters: - joints: - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - command_interfaces: - - position - state_interfaces: - - position - - velocity - command_joints: - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - state_publish_rate: 100.0 - action_monitor_rate: 20.0 - # Need partial joint trajectories for IMarker planning group selection support - allow_partial_joints_goal: true - -left_manipulator_joint_trajectory_admittance_controller: - ros__parameters: - planning_group_name: left_manipulator - # Specifies the frame/link name of the force torque sensor. Must exist in the robot description. - sensor_frame: left_tool0 - # Specifies the frame/link name of the end-effector frame. Must exist in the robot description. - ee_frame: left_grasp_link - # The name of the force/torque ros2_control hardware interface which will be used in the admittance calculation. - # If empty, the controller will run without admittance. - ft_sensor_name: left_tcp_fts_sensor - # Joint accelerations to use for immediate stops (e.g. when cancelling a running trajectory). - # Chosen to match MoveIt configs. - stop_accelerations: [30.0, 30.0, 30.0, 30.0, 30.0, 30.0] - # The ratio of the cutoff frequency to the sampling frequency. Valid values range - # from 0 to 1, where 1 is the sampling frequency. By default, this is set to 1.0, which means no filtering is - # applied. - ft_cutoff_frequency_ratio: 1.0 - # The deadband threshold for the force / torque measurements in Newtons and Newtons-meter. By default, these are set - # to 0.0. Increase these values if the force readings from your force torque sensor are noisy and cause linear / - # rotational motion along the FTS axes when the admittance controller is activated. - ft_force_deadband: 0.0 - ft_torque_deadband: 0.0 - # The rate in Hz at which the controller will publish the state. By default, this is set to 50 Hz. - state_publish_rate: 50 - # The damping coefficient for the Jacobian damped least-squares inverse. By default, this value is set to 0.01. - # Increase this value if your robot moves too quickly while admittance control is active when it nears singularities. - jacobian_damping: 0.01 - # The gravity vector in the base frame. By default, this is set to [0.0, 0.0, -9.8]. This value is used to calculate - # the gravity compensation torque. If your robot is not in the same orientation as the base frame, you should - # provide the gravity vector in the base frame. - gravity_vector: [0.0, 0.0, -9.8] - # Default maximum joint-space deviation accepted along the trajectory, if not specified in the goal message. - default_path_tolerance: 0.05 - # Default maximum joint-space deviation accepted at the trajectory end-point, if not specified in the goal message. - default_goal_tolerance: 0.05 - # Default maximum absolute force torque readings allowed from the force torque sensor along each Cartesian space - # axis, if not specified in the goal message. If exceeded, execution will abort. - default_absolute_force_torque_threshold: [45.0, 45.0, 45.0, 10.0, 10.0, 10.0] - -right_manipulator_joint_trajectory_controller: - ros__parameters: - joints: - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - - command_interfaces: - - position - state_interfaces: - - position - - velocity - command_joints: - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - - state_publish_rate: 100.0 - action_monitor_rate: 20.0 - # Need partial joint trajectories for IMarker planning group selection support - allow_partial_joints_goal: true - -right_manipulator_joint_trajectory_admittance_controller: - ros__parameters: - planning_group_name: right_manipulator - # Specifies the frame/link name of the force torque sensor. Must exist in the robot description. - sensor_frame: right_tool0 - # Specifies the frame/link name of the end-effector frame. Must exist in the robot description. - ee_frame: right_grasp_link - # The name of the force/torque ros2_control hardware interface which will be used in the admittance calculation. - # If empty, the controller will run without admittance. - ft_sensor_name: right_tcp_fts_sensor - # Joint accelerations to use for immediate stops (e.g. when cancelling a running trajectory). - # Chosen to match MoveIt configs. - stop_accelerations: [30.0, 30.0, 30.0, 30.0, 30.0, 30.0] - # The ratio of the cutoff frequency to the sampling frequency. Valid values range - # from 0 to 1, where 1 is the sampling frequency. By default, this is set to 1.0, which means no filtering is - # applied. - ft_cutoff_frequency_ratio: 1.0 - # The deadband threshold for the force / torque measurements in Newtons and Newtons-meter. By default, these are set - # to 0.0. Increase these values if the force readings from your force torque sensor are noisy and cause linear / - # rotational motion along the FTS axes when the admittance controller is activated. - ft_force_deadband: 0.0 - ft_torque_deadband: 0.0 - # The rate in Hz at which the controller will publish the state. By default, this is set to 50 Hz. - state_publish_rate: 50 - # The damping coefficient for the Jacobian damped least-squares inverse. By default, this value is set to 0.01. - # Increase this value if your robot moves too quickly while admittance control is active when it nears singularities. - jacobian_damping: 0.01 - # The gravity vector in the base frame. By default, this is set to [0.0, 0.0, -9.8]. This value is used to calculate - # the gravity compensation torque. If your robot is not in the same orientation as the base frame, you should - # provide the gravity vector in the base frame. - gravity_vector: [0.0, 0.0, -9.8] - # Default maximum joint-space deviation accepted along the trajectory, if not specified in the goal message. - default_path_tolerance: 0.05 - # Default maximum joint-space deviation accepted at the trajectory end-point, if not specified in the goal message. - default_goal_tolerance: 0.05 - # Default maximum absolute force torque readings allowed from the force torque sensor along each Cartesian space - # axis, if not specified in the goal message. If exceeded, execution will abort. - default_absolute_force_torque_threshold: [45.0, 45.0, 45.0, 10.0, 10.0, 10.0] - - -lift_joint_trajectory_controller: - ros__parameters: - joints: - - lift_left_upper_joint - - lift_right_upper_joint - command_interfaces: - - position - state_interfaces: - - position - - velocity - command_joints: - - lift_left_upper_joint - - lift_right_upper_joint - state_publish_rate: 100.0 - action_monitor_rate: 20.0 - allow_partial_joints_goal: false - -base_velocity_force_controller: - ros__parameters: - planning_group_name: mobile_base - # The joints that the controller will command. - # The 'platform' joints are renamed to match the joint names exposed by the 'platform_velocity_controller', which - # enables layered control of those joints. - command_joints: - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - # Command just position since the mobile base interface only supports position. - command_interfaces: ["position"] - # The tip link of the kinematic chain, i.e. the frame that will be controlled. - ee_frame: base_link - # The frame where the force / torque sensor reading is given. - # (Needs to exist in the kinematic chain). - sensor_frame: base_link - # Maximum joint-space velocities. - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - # Maximum joint-space accelerations. - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - # Maximum Cartesian-space velocities. - max_cartesian_velocity: - - 0.25 - - 0.25 - - 0.25 - - 1.0 - - 1.0 - - 1.0 - # Maximum Cartesian-space accelerations. - max_cartesian_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 4.0 - - 4.0 - - 4.0 - # Rate in Hz at which the controller will publish the state. - state_publish_rate: 10 - # Damping coefficient for the Jacobian damped least-squares inverse. - jacobian_damping: 0.002 - # Timeout in seconds after which the controller will stop motion if no new commands are received. - command_timeout: 0.2 - # Padding (in radians) to add to joint position limits as a safety margin. - joint_limit_position_tolerance: 0.02 - -base_left_velocity_force_controller: - ros__parameters: - planning_group_name: left_mobile_manipulator - # The joints that the controller will command. - # The 'platform' joints are renamed to match the joint names exposed by the 'platform_velocity_controller', which - # enables layered control of those joints. - command_joints: - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - lift_left_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - # Command just position since the mobile base and lift interfaces only support position. - command_interfaces: ["position"] - # The tip link of the kinematic chain, i.e. the frame that will be controlled. - ee_frame: left_grasp_link - # The frame where the force / torque sensor reading is given. - # (Needs to exist in the kinematic chain). - sensor_frame: left_tool0 - # The force/torque ros2_control hardware interface name. - ft_sensor_name: left_tcp_fts_sensor - # Maximum joint-space velocities. - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - # Maximum joint-space accelerations. - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - # Maximum Cartesian-space velocities. - max_cartesian_velocity: - - 0.25 - - 0.25 - - 0.25 - - 1.0 - - 1.0 - - 1.0 - # Maximum Cartesian-space accelerations. - max_cartesian_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 4.0 - - 4.0 - - 4.0 - # Rate in Hz at which the controller will publish the state. - state_publish_rate: 10 - # Damping coefficient for the Jacobian damped least-squares inverse. - jacobian_damping: 0.002 - # Timeout in seconds after which the controller will stop motion if no new commands are received. - command_timeout: 0.2 - # Padding (in radians) to add to joint position limits as a safety margin. - joint_limit_position_tolerance: 0.02 - -base_right_velocity_force_controller: - ros__parameters: - planning_group_name: right_mobile_manipulator - # The joints that the controller will command. - # The 'platform' joints are renamed to match the joint names exposed by the 'platform_velocity_controller', which - # enables layered control of those joints. - command_joints: - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - lift_right_upper_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - # Command just position since the mobile base and lift interfaces only support position. - command_interfaces: ["position"] - # The tip link of the kinematic chain, i.e. the frame that will be controlled. - ee_frame: right_grasp_link - # The frame where the force / torque sensor reading is given. - # (Needs to exist in the kinematic chain). - sensor_frame: right_tool0 - # The force/torque ros2_control hardware interface name. - ft_sensor_name: right_tcp_fts_sensor - # Maximum joint-space velocities. - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - # Maximum joint-space accelerations. - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - # Maximum Cartesian-space velocities. - max_cartesian_velocity: - - 0.25 - - 0.25 - - 0.25 - - 1.0 - - 1.0 - - 1.0 - # Maximum Cartesian-space accelerations. - max_cartesian_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 4.0 - - 4.0 - - 4.0 - # Rate in Hz at which the controller will publish the state. - state_publish_rate: 10 - # Damping coefficient for the Jacobian damped least-squares inverse. - jacobian_damping: 0.002 - # Timeout in seconds after which the controller will stop motion if no new commands are received. - command_timeout: 0.2 - # Padding (in radians) to add to joint position limits as a safety margin. - joint_limit_position_tolerance: 0.02 - -left_velocity_force_controller: - ros__parameters: - planning_group_name: left_manipulator - # The joints that the controller will command (arm-only, without base joints). - command_joints: - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - # Command just position since the lift interface only supports position. - command_interfaces: ["position"] - # The tip link of the kinematic chain, i.e. the frame that will be controlled. - ee_frame: left_grasp_link - # The frame where the force / torque sensor reading is given. - # (Needs to exist in the kinematic chain). - sensor_frame: left_tool0 - # Maximum joint-space velocities. - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - # Maximum joint-space accelerations. - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - # Maximum Cartesian-space velocities. - max_cartesian_velocity: - - 0.25 - - 0.25 - - 0.25 - - 1.0 - - 1.0 - - 1.0 - # Maximum Cartesian-space accelerations. - max_cartesian_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 4.0 - - 4.0 - - 4.0 - # Rate in Hz at which the controller will publish the state. - state_publish_rate: 10 - # Damping coefficient for the Jacobian damped least-squares inverse. - jacobian_damping: 0.002 - # Timeout in seconds after which the controller will stop motion if no new commands are received. - command_timeout: 0.2 - # Padding (in radians) to add to joint position limits as a safety margin. - joint_limit_position_tolerance: 0.02 - -right_velocity_force_controller: - ros__parameters: - planning_group_name: right_manipulator - # The joints that the controller will command (arm-only, without base joints). - command_joints: - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - # Command just position since the lift interface only supports position. - command_interfaces: ["position"] - # The tip link of the kinematic chain, i.e. the frame that will be controlled. - ee_frame: right_grasp_link - # The frame where the force / torque sensor reading is given. - # (Needs to exist in the kinematic chain). - sensor_frame: right_tool0 - # Maximum joint-space velocities. - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - # Maximum joint-space accelerations. - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - # Maximum Cartesian-space velocities. - max_cartesian_velocity: - - 0.25 - - 0.25 - - 0.25 - - 1.0 - - 1.0 - - 1.0 - # Maximum Cartesian-space accelerations. - max_cartesian_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 4.0 - - 4.0 - - 4.0 - # Rate in Hz at which the controller will publish the state. - state_publish_rate: 10 - # Damping coefficient for the Jacobian damped least-squares inverse. - jacobian_damping: 0.002 - # Timeout in seconds after which the controller will stop motion if no new commands are received. - command_timeout: 0.2 - # Padding (in radians) to add to joint position limits as a safety margin. - joint_limit_position_tolerance: 0.02 - -joint_velocity_controller: - ros__parameters: - planning_group_name: manipulator - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - command_interfaces: ["position"] - joint_limit_position_tolerance: 0.02 - command_timeout: 0.2 - state_publish_rate: 20 - -left_joint_velocity_controller: - ros__parameters: - planning_group_name: left_manipulator - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - command_interfaces: ["position"] - joint_limit_position_tolerance: 0.02 - command_timeout: 0.2 - state_publish_rate: 20 - -right_joint_velocity_controller: - ros__parameters: - planning_group_name: right_manipulator - max_joint_velocity: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - - 1.0 - max_joint_acceleration: - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - - 2.0 - command_interfaces: ["position"] - joint_limit_position_tolerance: 0.02 - command_timeout: 0.2 - state_publish_rate: 20 - -# left_lift_velocity_force_controller: -# ros__parameters: -# # Joints that the controller will use (arm-only, without base joints). -# # The joints must be in the same order as they appear in the kinematic chain. -# joints: -# - lift_left_upper_joint -# # The joints that the controller will command (arm-only, without base joints). -# command_joints: -# - lift_left_upper_joint -# # Command just position since the lift interface only supports position. -# command_interfaces: ["position"] -# # Base frame of the kinematic chain, for computation of arm kinematics. -# # Using base_link since we're not controlling the mobile base. -# base_frame: lift_left_base_link -# # The tip link of the kinematic chain, i.e. the frame that will be controlled. -# ee_frame: lift_left_lower_link -# # The frame where the force / torque sensor reading is given. -# # (Needs to exist in the kinematic chain). -# sensor_frame: lift_left_lower_link -# # Maximum joint-space velocities. -# max_joint_velocity: -# - 1.0 -# # Maximum joint-space accelerations. -# max_joint_acceleration: -# - 2.0 -# # Maximum Cartesian-space velocities. -# max_cartesian_velocity: -# - 0.25 -# - 0.25 -# - 0.25 -# - 1.0 -# - 1.0 -# - 1.0 -# # Maximum Cartesian-space accelerations. -# max_cartesian_acceleration: -# - 2.0 -# - 2.0 -# - 2.0 -# - 4.0 -# - 4.0 -# - 4.0 -# # Rate in Hz at which the controller will publish the state. -# state_publish_rate: 10 -# # Damping coefficient for the Jacobian damped least-squares inverse. -# jacobian_damping: 0.002 -# # Timeout in seconds after which the controller will stop motion if no new commands are received. -# command_timeout: 0.2 -# # Padding (in radians) to add to joint position limits as a safety margin. -# joint_limit_position_tolerance: 0.02 -# planning_group_name: left_lift - -# right_lift_velocity_force_controller: -# ros__parameters: -# # Joints that the controller will use (arm-only, without base joints). -# # The joints must be in the same order as they appear in the kinematic chain. -# joints: -# - lift_right_upper_joint -# # The joints that the controller will command (arm-only, without base joints). -# command_joints: -# - lift_right_upper_joint -# # Command just position since the lift interface only supports position. -# command_interfaces: ["position"] -# # Base frame of the kinematic chain, for computation of arm kinematics. -# # Using base_link since we're not controlling the mobile base. -# base_frame: lift_right_base_link -# # The tip link of the kinematic chain, i.e. the frame that will be controlled. -# ee_frame: lift_right_lower_link -# # The frame where the force / torque sensor reading is given. -# # (Needs to exist in the kinematic chain). -# sensor_frame: lift_right_lower_link -# # Maximum joint-space velocities. -# max_joint_velocity: -# - 1.0 -# # Maximum joint-space accelerations. -# max_joint_acceleration: -# - 2.0 -# # Maximum Cartesian-space velocities. -# max_cartesian_velocity: -# - 0.25 -# - 0.25 -# - 0.25 -# - 1.0 -# - 1.0 -# - 1.0 -# # Maximum Cartesian-space accelerations. -# max_cartesian_acceleration: -# - 2.0 -# - 2.0 -# - 2.0 -# - 4.0 -# - 4.0 -# - 4.0 -# # Rate in Hz at which the controller will publish the state. -# state_publish_rate: 10 -# # Damping coefficient for the Jacobian damped least-squares inverse. -# jacobian_damping: 0.002 -# # Timeout in seconds after which the controller will stop motion if no new commands are received. -# command_timeout: 0.2 -# # Padding (in radians) to add to joint position limits as a safety margin. -# joint_limit_position_tolerance: 0.02 -# planning_group_name: right_lift - -left_force_torque_sensor_broadcaster: - ros__parameters: - sensor_name: left_tcp_fts_sensor - state_interface_names: - - force.x - - force.y - - force.z - - torque.x - - torque.y - - torque.z - frame_id: left_tool0 - -right_force_torque_sensor_broadcaster: - ros__parameters: - sensor_name: right_tcp_fts_sensor - state_interface_names: - - force.x - - force.y - - force.z - - torque.x - - torque.y - - torque.z - frame_id: right_tool0 - -left_robotiq_gripper_controller: - ros__parameters: - default: true - joint: left_robotiq_85_left_knuckle_joint - allow_stalling: true - -right_robotiq_gripper_controller: - ros__parameters: - default: true - joint: right_robotiq_85_left_knuckle_joint - allow_stalling: true diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/hard_joint_limits.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/hard_joint_limits.yaml deleted file mode 100644 index 9ada774bb..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/hard_joint_limits.yaml +++ /dev/null @@ -1,212 +0,0 @@ -# Joints limits -# -# Sources: -# -# - Universal Robots e-Series, User Manual, UR5e, Version 5.8 -# https://s3-eu-west-1.amazonaws.com/ur-support-site/69091/99404_UR5e_User_Manual_en_Global.pdf -# - Support > Articles > UR articles > Max. joint torques -# https://www.universal-robots.com/articles/ur-articles/max-joint-torques -# retrieved: 2020-06-16, last modified: 2020-06-09 -# -# NOTE: Acceleration limits are not publicly available so we have picked a reasonable upper limit -joint_limits: - linear_x_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: 0.1 - max_effort: 150.0 - max_position: 5.0 - max_velocity: 0.2 - min_position: -5.0 - linear_y_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: 0.1 - max_effort: 150.0 - max_position: 5.0 - max_velocity: 0.2 - min_position: -5.0 - rotational_yaw_joint: - has_acceleration_limits: true - has_effort_limits: false - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 150.0 - max_velocity: 0.2 - - lift_left_upper_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: 10.0 - max_effort: 150.0 - max_position: 0.25 - max_velocity: 0.025 - min_position: 0.0 - left_shoulder_pan_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 150.0 - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - left_shoulder_lift_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 150.0 - max_position: !degrees 90.0 - max_velocity: !degrees 30.0 - min_position: !degrees -270.0 - left_elbow_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 150.0 - # we artificially limit this joint to half its actual joint position limit - # to avoid (MoveIt/OMPL) planning problems, as due to the physical - # construction of the robot, it's impossible to rotate the 'elbow_joint' - # over more than approx +- 1 pi (the shoulder lift joint gets in the way). - # - # This leads to planning problems as the search space will be divided into - # two sections, with no connections from one to the other. - # - # Refer to https://github.com/ros-industrial/universal_robot/issues/265 for - # more information. - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - left_wrist_1_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - left_wrist_2_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 180.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - left_wrist_3_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 180.0 - max_effort: 28.0 - max_position: !degrees 360.0 - max_velocity: !degrees 60.0 - min_position: !degrees -360.0 - left_robotiq_85_left_knuckle_joint: - has_velocity_limits: true - max_velocity: 0.5 - has_acceleration_limits: true - max_acceleration: 1.0 - - lift_right_upper_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: 10.0 - max_effort: 150.0 - max_position: 0.25 - max_velocity: 0.025 - min_position: 0.0 - right_shoulder_pan_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 150.0 - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - right_shoulder_lift_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 150.0 - max_position: !degrees 90.0 - max_velocity: !degrees 30.0 - min_position: !degrees -270.0 - right_elbow_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 150.0 - # we artificially limit this joint to half its actual joint position limit - # to avoid (MoveIt/OMPL) planning problems, as due to the physical - # construction of the robot, it's impossible to rotate the 'elbow_joint' - # over more than approx +- 1 pi (the shoulder lift joint gets in the way). - # - # This leads to planning problems as the search space will be divided into - # two sections, with no connections from one to the other. - # - # Refer to https://github.com/ros-industrial/universal_robot/issues/265 for - # more information. - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - right_wrist_1_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 90.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - right_wrist_2_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 180.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - right_wrist_3_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 180.0 - max_effort: 28.0 - max_position: !degrees 360.0 - max_velocity: !degrees 60.0 - min_position: !degrees -360.0 - right_robotiq_85_left_knuckle_joint: - has_velocity_limits: true - max_velocity: 0.5 - has_acceleration_limits: true - max_acceleration: 1.0 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_jog.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_jog.yaml deleted file mode 100644 index 6d80c7e9c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_jog.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# Planning groups to use in JointJog, and their corresponding JVC controllers. -# The number of elements in `planning_groups` and `controllers` must match. -planning_groups: ['manipulator'] -controllers: ['joint_velocity_controller'] diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_limits.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_limits.yaml deleted file mode 100644 index db95efb95..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/joint_limits.yaml +++ /dev/null @@ -1,208 +0,0 @@ -# Joints limits -# -# Sources: -# -# - Universal Robots e-Series, User Manual, UR5e, Version 5.8 -# https://s3-eu-west-1.amazonaws.com/ur-support-site/69091/99404_UR5e_User_Manual_en_Global.pdf -# - Support > Articles > UR articles > Max. joint torques -# https://www.universal-robots.com/articles/ur-articles/max-joint-torques -# retrieved: 2020-06-16, last modified: 2020-06-09 -# -# NOTE: Acceleration limits are not publicly available so we have picked a reasonable upper limit -joint_limits: - linear_x_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: false - has_velocity_limits: true - max_acceleration: 0.02 - max_effort: 150.0 - max_velocity: 0.2 - linear_y_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: false - has_velocity_limits: true - max_acceleration: 0.02 - max_effort: 150.0 - max_velocity: 0.2 - rotational_yaw_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: false - has_velocity_limits: true - max_acceleration: !degrees 20.0 - max_effort: 150.0 - max_velocity: 0.2 - - lift_left_upper_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: 1.0 - max_effort: 150.0 - max_position: 0.40 - max_velocity: 0.025 - min_position: -0.10 - left_shoulder_pan_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 150.0 - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - left_shoulder_lift_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 150.0 - max_position: !degrees 90.0 - max_velocity: !degrees 30.0 - min_position: !degrees -270.0 - left_elbow_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 150.0 - # we artificially limit this joint to half its actual joint position limit - # to avoid (MoveIt/OMPL) planning problems, as due to the physical - # construction of the robot, it's impossible to rotate the 'elbow_joint' - # over more than approx +- 1 pi (the shoulder lift joint gets in the way). - # - # This leads to planning problems as the search space will be divided into - # two sections, with no connections from one to the other. - # - # Refer to https://github.com/ros-industrial/universal_robot/issues/265 for - # more information. - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - left_wrist_1_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - left_wrist_2_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - left_wrist_3_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 28.0 - max_position: !degrees 360.0 - max_velocity: !degrees 60.0 - min_position: !degrees -360.0 - left_robotiq_85_left_knuckle_joint: - has_velocity_limits: true - max_velocity: 0.5 - has_acceleration_limits: true - max_acceleration: 1.0 - - lift_right_upper_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: 1.0 - max_effort: 150.0 - max_position: 0.40 - max_velocity: 0.025 - min_position: -0.10 - right_shoulder_pan_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 150.0 - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - right_shoulder_lift_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 150.0 - max_position: !degrees 90.0 - max_velocity: !degrees 30.0 - min_position: !degrees -270.0 - right_elbow_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 150.0 - # we artificially limit this joint to half its actual joint position limit - # to avoid (MoveIt/OMPL) planning problems, as due to the physical - # construction of the robot, it's impossible to rotate the 'elbow_joint' - # over more than approx +- 1 pi (the shoulder lift joint gets in the way). - # - # This leads to planning problems as the search space will be divided into - # two sections, with no connections from one to the other. - # - # Refer to https://github.com/ros-industrial/universal_robot/issues/265 for - # more information. - max_position: !degrees 180.0 - max_velocity: !degrees 30.0 - min_position: !degrees -180.0 - right_wrist_1_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - right_wrist_2_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 28.0 - max_position: !degrees 180.0 - max_velocity: !degrees 60.0 - min_position: !degrees -180.0 - right_wrist_3_joint: - has_acceleration_limits: true - has_effort_limits: true - has_position_limits: true - has_velocity_limits: true - max_acceleration: !degrees 30.0 - max_effort: 28.0 - max_position: !degrees 360.0 - max_velocity: !degrees 60.0 - min_position: !degrees -360.0 - right_robotiq_85_left_knuckle_joint: - has_velocity_limits: true - max_velocity: 0.5 - has_acceleration_limits: true - max_acceleration: 1.0 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/ompl_planning.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/ompl_planning.yaml deleted file mode 100644 index 83d3717cc..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/ompl_planning.yaml +++ /dev/null @@ -1,41 +0,0 @@ -planning_plugins: - - ompl_interface/OMPLPlanner -# The order of the elements in the adapter corresponds to the order they are processed by the motion planning pipeline. -request_adapters: - - default_planning_request_adapters/ResolveConstraintFrames - - default_planning_request_adapters/ValidateWorkspaceBounds - - default_planning_request_adapters/CheckStartStateBounds - - default_planning_request_adapters/CheckStartStateCollision -response_adapters: - - default_planning_response_adapters/AddTimeOptimalParameterization - - default_planning_response_adapters/ValidateSolution - -planner_configs: - APSConfigDefault: - type: geometric::AnytimePathShortening - shortcut: 1 # Attempt to shortcut all new solution paths - hybridize: 1 # Compute hybrid solution trajectories - max_hybrid_paths: 32 # Number of hybrid paths generated per iteration - num_planners: 16 # The number of default planners to use for planning - planners: "RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect,RRTConnect" # A comma-separated list of planner types (e.g., "PRM,EST,RRTConnect"Optionally, planner parameters can be passed to change the default:"PRM[max_nearest_neighbors=5],EST[goal_bias=.5],RRT[range=10. goal_bias=.1]" - RRTConnectkConfigDefault: - type: geometric::RRTConnect - range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() -left_manipulator: - default_planner_config: RRTConnectkConfigDefault - planner_configs: - - APSConfigDefault - - RRTConnectkConfigDefault - enforce_constrained_state_space: true - ##Note: commenting the following line lets moveit chose RRTConnect as default planner rather than LBKPIECE - projection_evaluator: joints(left_shoulder_pan_joint,left_shoulder_lift_joint) - longest_valid_segment_fraction: 0.01 -right_manipulator: - default_planner_config: RRTConnectkConfigDefault - planner_configs: - - APSConfigDefault - - RRTConnectkConfigDefault - enforce_constrained_state_space: true - ##Note: commenting the following line lets moveit chose RRTConnect as default planner rather than LBKPIECE - projection_evaluator: joints(right_shoulder_pan_joint,right_shoulder_lift_joint) - longest_valid_segment_fraction: 0.01 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/phoebe_sim.srdf b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/phoebe_sim.srdf deleted file mode 100644 index 4d296e114..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/phoebe_sim.srdf +++ /dev/null @@ -1,1314 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_distance.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_distance.yaml deleted file mode 100644 index ec62f2c92..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_distance.yaml +++ /dev/null @@ -1,29 +0,0 @@ -left_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "optimize_distance" - optimization_timeout: 0.005 - -right_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "optimize_distance" - optimization_timeout: 0.005 - -left_mobile_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "optimize_distance" - optimization_timeout: 0.005 - -right_mobile_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "optimize_distance" - optimization_timeout: 0.005 - -mobile_base: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "optimize_distance" - optimization_timeout: 0.005 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_speed.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_speed.yaml deleted file mode 100644 index 7e9a12075..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_ik_speed.yaml +++ /dev/null @@ -1,24 +0,0 @@ -left_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "first_found" - -right_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "first_found" - -left_mobile_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "first_found" - -right_mobile_manipulator: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "first_found" - -mobile_base: - kinematics_solver: pose_ik_plugin/PoseIKPlugin - target_tolerance: 0.001 - solve_mode: "first_found" diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_jog.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_jog.yaml deleted file mode 100644 index f71101a7c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/pose_jog.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# Planning groups to use in PoseJog, and their corresponding VFC controllers. -# The number of elements in `planning_groups` and `controllers` must match. -planning_groups: ['left_manipulator', 'right_manipulator', 'mobile_base'] -controllers: ['left_velocity_force_controller', 'right_velocity_force_controller', 'base_velocity_force_controller'] diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/servo.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/servo.yaml deleted file mode 100644 index 9b42a0ca9..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/config/moveit/servo.yaml +++ /dev/null @@ -1,65 +0,0 @@ -############################################### -# Modify all parameters related to servoing here -############################################### - -# Enable dynamic parameter updates -enable_parameter_update: true - -## Properties of incoming commands -command_in_type: "speed_units" # "unitless"> in the range [-1:1], as if from joystick. "speed_units"> cmds are in m/s and rad/s -scale: - # Scale parameters are only used if command_in_type=="unitless" - linear: 2.0 # Max linear velocity. Meters per publish_period. Unit is [m/s]. Only used for Cartesian commands. - rotational: 3.0 # Max angular velocity. Rads per publish_period. Unit is [rad/s]. Only used for Cartesian commands. - # Max joint angular/linear velocity. Rads or Meters per publish period. Only used for joint commands on joint_command_in_topic. - joint: 2.0 - -# Default to driving the arm at 50% maximum speed. -override_velocity_scaling_factor: 0.5 - -## Properties of outgoing commands -publish_period: 0.01 # 1/Nominal publish rate [seconds] -max_expected_latency: 0.5 # delay between sending a command and the robot executing it [seconds] - -# What type of topic does your robot driver expect? -# Currently supported are std_msgs/Float64MultiArray or trajectory_msgs/JointTrajectory -command_out_type: trajectory_msgs/JointTrajectory - -# What to publish? Can save some bandwidth as most robots only require positions or velocities -publish_joint_positions: true -publish_joint_velocities: true -publish_joint_accelerations: false - -## Plugins for smoothing outgoing commands -use_smoothing: true -smoothing_filter_plugin_name: "online_signal_smoothing::AccelerationLimitedPlugin" -acceleration_filter_update_period: 0.01 # [seconds] Must match the publish_period parameter - -## MoveIt properties -# Pose jog and iMarker also use this planning group so they can't work with this config because we can't do dual-tip IK -move_group_name: manipulator # Often 'manipulator' or 'arm' -acceleration_filter_planning_group_name: manipulator # Often 'manipulator' or 'arm' -is_primary_planning_scene_monitor: false # The MoveGroup node maintains the planning scene, so Servo needs to get its world info from there. -monitored_planning_scene_topic: /monitored_planning_scene - -## Stopping behaviour -incoming_command_timeout: 0.1 # Stop servoing if X seconds elapse without a new command - -## Configure handling of singularities and joint limits -lower_singularity_threshold: 30.0 # Start decelerating when the condition number hits this (close to singularity) -hard_stop_singularity_threshold: 50.0 # Stop when the condition number hits this -joint_limit_margins: [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] # added as a buffer to joint limits [radians]. If moving quickly, make this larger. - -## Topic names -cartesian_command_in_topic: ~/delta_twist_cmds # Topic for incoming Cartesian twist commands -joint_command_in_topic: ~/delta_joint_cmds # Topic for incoming joint angle commands -joint_topic: /joint_states -status_topic: ~/status # Publish status to this topic -command_out_topic: /servo_controller/joint_trajectory # Publish outgoing commands here - -## Collision checking for the entire robot body -check_collisions: true # Check collisions? -check_octomap_collisions: false # Check collisions with octomap? -collision_check_rate: 10.0 # [Hz] Collision-checking can easily bog down a CPU if done too often. -self_collision_proximity_threshold: 0.006 # Start decelerating when a self-collision is this far [m] -scene_collision_proximity_threshold: 0.02 # Start decelerating when a scene collision is this far [m] diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/Apollo_11_sliver.png b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/Apollo_11_sliver.png deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/Apollo_11_sliver_map.png b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/Apollo_11_sliver_map.png deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/HAM_Assem.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/HAM_Assem.stl deleted file mode 100644 index 51d20449c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/HAM_Assem.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2862a6cf0c66b8864a5c0ab616f415ab6b7f9abbb9480080249230b9ec26ab12 -size 3636784 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/april_tag.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/april_tag.obj deleted file mode 100644 index 5661eac24..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/april_tag.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7f6b8d2ed600d71264e0043cd9d7d1b96fee4a00a0106f79b0c78f14b52908e -size 24803 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/arm_mount_collision.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/arm_mount_collision.STL deleted file mode 100644 index 7b7661ff4..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/arm_mount_collision.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d81bd8c5bdc516d1e09b5d1bc9bf43495b8edd8203330aa9f0b0df47b3750ed6 -size 12884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base.stl deleted file mode 100644 index 1f8396e43..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:21e9822160608997298bb597c0c11ba5bbce19a44da28267623c7bf4993a8bbb -size 21084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_0.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_0.obj deleted file mode 100644 index 9f5edd6b0..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_0.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a3b21f1524baef6af8a52d7af90b6e94b79f7e3c2b04a0f6581f74d22291b0b -size 556543 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_1.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_1.obj deleted file mode 100644 index 3f7197b26..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_1.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf7d54691a2c1eeda280955ebd6bd83c2dbecfc46fb53c10198f05d107511b50 -size 638415 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_platform.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_platform.stl deleted file mode 100644 index ca0275fa1..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/base_platform.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:746e067dd1b6142610ed644cc9fa32b3ccf5b5978cba6aa3b413eeef64a09e99 -size 49884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/black_white.png b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/black_white.png deleted file mode 100644 index f8c6ba689..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/black_white.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3dc58dcc1d08458e151071e808dfd4c85362dcc081b7f5d7b704f62f3fce4be -size 580 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/blender_cube.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/blender_cube.obj deleted file mode 100644 index c22e88f92..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/blender_cube.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:48c3f6b79c30510615d8863e0b0cdc4a6c0266c779f4ab3e5e833fa52e95cb59 -size 955 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/body.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/body.stl deleted file mode 100644 index 8ad188c83..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/body.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b71b65f379dc16571438c72df664c1f28492f9dd3976aaf8c942b28cc6da4cce -size 29484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.mtl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.mtl deleted file mode 100644 index e92f047ef..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.mtl +++ /dev/null @@ -1,12 +0,0 @@ -# Blender 4.2.0 MTL File: 'scene.blend' -# www.blender.org - -newmtl bottle_Baked.001 -Ns 360.000000 -Ka 1.000000 1.000000 1.000000 -Ks 0.500000 0.500000 0.500000 -Ke 0.000000 0.000000 0.000000 -Ni 1.500000 -d 1.000000 -illum 2 -map_Kd bottle.png diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.obj deleted file mode 100644 index dd2b51abd..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fcf3504102652b2c74f641c413252aca8f839af60ec273772821f172c86185ac -size 329385 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.png b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.png deleted file mode 100644 index 6f8e3d0a3..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e50bd081b959cbcb5b5853922a47fcc1db01b734fce65d5523cd0ce0399e929 -size 2834775 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.stl deleted file mode 100644 index 86d983ed8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/bottle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9d02ab15735a51f00dae7a4d34d74178ad9974fb4d7eaf37352d8feb9a5ed42c -size 264084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/camera_adapter.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/camera_adapter.stl deleted file mode 100644 index 96912110c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/camera_adapter.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9569607b57ac42b9df0f1859cfce821418265141a5cb1266bed3a356a2f5a05e -size 9384 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/cube.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/cube.stl deleted file mode 100644 index 981431f55..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/cube.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a48e2b276532d1682d905901c3d0cab90a72413656921b1d82661203f56a1a9 -size 684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_base_500mm.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_base_500mm.stl deleted file mode 100644 index 3a07cb8d0..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_base_500mm.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c939c22e8b5e51a560ef48e42103f474818f931a01c720e833503f1fc73ae56 -size 458284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_top_500mm.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_top_500mm.stl deleted file mode 100644 index 90fa87c8e..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ewellix_lift_top_500mm.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9716b21508759c585fa8dc200c42ca81cb1729b468559b18109cb2b64c10da1c -size 803684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_0.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_0.obj deleted file mode 100644 index 5e628e7a1..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_0.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:64c049a55149c2ab355594d52302b53d3e34da3677ceaa1917c427cde7743146 -size 1691648 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_1.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_1.obj deleted file mode 100644 index b004e9e71..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_1.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a96fe203015cf532b193f414cd01268c7c36795e51a837dd33afd122334f81f2 -size 76202 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_2.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_2.obj deleted file mode 100644 index b525ef611..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_2.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:05b436505fc595aeab26675590c2b56b88a65b2d52d6352096fed9f07cb4c4ca -size 932534 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_3.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_3.obj deleted file mode 100644 index 3c0271346..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/forearm_3.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa31af19cfad7a765b62e8a2d5931cb014b88de84195a7850b4e5ee902112e9a -size 1095775 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.mtl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.mtl deleted file mode 100644 index 7ec67924c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.mtl +++ /dev/null @@ -1,2 +0,0 @@ -# Blender 4.4.3 MTL File: 'None' -# www.blender.org diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.obj deleted file mode 100644 index fd263e6ee..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8deb6fa6892b2eec1537384abc5d8a1de702896896b4a8d6482ddf87da1bdb1d -size 142232 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.stl deleted file mode 100644 index f8e85e46d..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b7255345096a8e09f682ce4f2db660183b9e7dab80c605466b632b2735fa97cb -size 684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base2.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base2.stl deleted file mode 100644 index 8356ff9b3..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/base2.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:31f2f4046de5166a37903770f34b53aae40f868bf36aa5c046ee480da29527ca -size 684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lift.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lift.xml deleted file mode 100644 index 6fcd69d42..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lift.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.mtl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.mtl deleted file mode 100644 index 7ec67924c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.mtl +++ /dev/null @@ -1,2 +0,0 @@ -# Blender 4.4.3 MTL File: 'None' -# www.blender.org diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.obj deleted file mode 100644 index cac104434..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a1fb86a2574978a4efa0fec2e2ae9269ea0cd44d4c9aac3fb4bbc57ba171f3a -size 110126 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.stl deleted file mode 100644 index 1f40236bf..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/lower.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43825f8bfb7e5e9762179280bef42e42c28fe01e365b77d6112070d81eafe70a -size 684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.mtl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.mtl deleted file mode 100644 index 7ec67924c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.mtl +++ /dev/null @@ -1,2 +0,0 @@ -# Blender 4.4.3 MTL File: 'None' -# www.blender.org diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.obj deleted file mode 100644 index b08977735..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:496b97b464dc3136aabb35fcf05476a7e9aef896e7137affa8b4bbc28dfa6fa9 -size 92732 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.stl deleted file mode 100644 index 1bd38f693..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/plate.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8463f2921142f748d745e3a7d1654b3f584cdd94c61f8f0d54890191f7ffaccf -size 684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.mtl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.mtl deleted file mode 100644 index 7ec67924c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.mtl +++ /dev/null @@ -1,2 +0,0 @@ -# Blender 4.4.3 MTL File: 'None' -# www.blender.org diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.obj deleted file mode 100644 index 4debc06e8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aff1227908cc99a1f27f0c3f725d86a007a480a8c03f5e6db6295e26ccbcf950 -size 38036 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.stl deleted file mode 100644 index 499df551e..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/lifts/upper.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e56c98eac935185a205e0147275f5785c2dbfe2fa564a630d60ca4ac691a7e78 -size 684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_1.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_1.stl deleted file mode 100644 index b1082fc88..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_1.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e94c44f124d6201ed850401d528ee6169ec0f153ec5f359cf4eb28dba6cf0b08 -size 663684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_2.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_2.stl deleted file mode 100644 index 4f5ff7afd..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/omni_wheel_2.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d52b8996fb12c9f44c901082548d8be82c60914b9def1354234f28efc52ae32 -size 624484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/rack.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/rack.stl deleted file mode 100644 index ea84dd135..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/rack.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bbca39b424046a93d37e1aabdddbf9fec3504360947c16decf1470ae0410b8b4 -size 72284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/LICENSE.txt b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/LICENSE.txt deleted file mode 100644 index 3fd3245a3..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2021 Clearpath Robotics Inc. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/body.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/body.stl deleted file mode 100644 index 8ad188c83..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/body.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b71b65f379dc16571438c72df664c1f28492f9dd3976aaf8c942b28cc6da4cce -size 29484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/top.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/top.stl deleted file mode 100644 index 03da4c085..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ridgeback/top.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:961e137910535358df656469950062e72e4d2f7a0ac27dc4be179048fed5f1e4 -size 15684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/base.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/base.stl deleted file mode 100644 index 22a9c2b3b..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/base.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1c7b9f2bd92d705fc4e897c94e905973a3c05f406845e942229433deb7041453 -size 1712484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_link.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_link.stl deleted file mode 100644 index cbfd80ed7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_link.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5ee95e62f8415bf5b6e503c831a958f5fc1990bf9b2865329ec38a28932727c -size 89084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_tip_link.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_tip_link.stl deleted file mode 100644 index 9614b95e1..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/finger_tip_link.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:633793332c081641ce200df27a40643cc293b29956e3cb5cb29cb811c33ef1c7 -size 110484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/inner_knuckle_link.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/inner_knuckle_link.stl deleted file mode 100644 index 01ec1e2a5..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/inner_knuckle_link.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4fb74a8a0d76c0e471cf19fd48bc676fd5b19123798e7a39eb6aa56869354283 -size 84884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/knuckle_link.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/knuckle_link.stl deleted file mode 100644 index 0b3f90a5c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/knuckle_link.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bbd6e868b1778bead60d2516c7ede581d7ad4e431744b1828757d6ea5129c112 -size 67084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/pad.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/pad.stl deleted file mode 100644 index 231413751..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/pad.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4af1fa8d9bb285abecbf5dfc88e74cb30f059a7a074c2030dc35e9ee4316019d -size 15084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/silicone_pad.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/silicone_pad.stl deleted file mode 100644 index 6915244ae..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/robotiq_2f85/silicone_pad.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ca20c0fa61e6d3ce7b04bed25360e048e31dfd88ace04187aa6d9e8f4ca3fd0f -size 15084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_0.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_0.obj deleted file mode 100644 index 18c8068cb..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_0.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:477387a7e7312782a6040484a3c2c2fcee33f40109f419076e31b6f6e1692c68 -size 2947794 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_1.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_1.obj deleted file mode 100644 index 2c4181fe8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_1.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8537bba02804640ddf6e260f79fe66e895b3229ed3d44298a95e8e027eb5d435 -size 569646 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_2.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_2.obj deleted file mode 100644 index 64ef2bfb3..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/shoulder_2.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:291714518416bb8f0bafbf123867db011ecbf5146a05245ca5893ee8c57d4e21 -size 2440344 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/space.png b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/space.png deleted file mode 100644 index 90a9ae138..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/space.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac2c66c232c5fc74927b010efa9bc5529e4d049470f32981bf587e082499bf51 -size 1253929 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/top.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/top.stl deleted file mode 100644 index 03da4c085..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/top.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:961e137910535358df656469950062e72e4d2f7a0ac27dc4be179048fed5f1e4 -size 15684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_1.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_1.stl deleted file mode 100644 index 6fb1242de..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_1.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfb94230fe83971452601eb621c265362588a3f019fec35b0aa21e8d4a6b7097 -size 11884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_2.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_2.stl deleted file mode 100644 index 016b572ad..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_2.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3bade9f55357b5efe7f45d86a03bea8c30b27484bf4d824f7da98d514fe6caf -size 4084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_3.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_3.stl deleted file mode 100644 index b4767583a..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_3.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb6c4364dac1c2b3bc95d75cbc5c70b3962d023653600505a6cc9da66e786e93 -size 3084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_4.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_4.stl deleted file mode 100644 index ab1f5f6ee..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cabinet_door_4.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f654b3b00019a0041eb3bf642f810393a647d8b313d8f091005c617b0b4fb94e -size 7284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_handle.stl deleted file mode 100644 index 101f4d6e7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f498cffcd3d9f7b8dafbcafdfa772dee65e123b5f717502d17f3f4dcb5b2faa4 -size 11584 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_wheel.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_wheel.stl deleted file mode 100644 index d91f7e915..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/crank_wheel.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a6ad6190a428eca955543598c22a5e3bc0c133ea61f9ec0777c32c539d089b3d -size 53884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_1.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_1.stl deleted file mode 100644 index c54d53a73..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_1.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a46eb464c971eef8e6fe223398943fdc88063bc436a3892d813ccbf1a227718d -size 81784 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_2.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_2.stl deleted file mode 100644 index d48d78bc9..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cubby_2.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a08f566c5c82a7df34501cd742c52d6640f5b47283a4765860cd0daa3a1cd378 -size 86884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cylinder_mockup_full_length.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cylinder_mockup_full_length.stl deleted file mode 100644 index cc40ee354..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/cylinder_mockup_full_length.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a1409b166e4e586bfb83d3dc3079a48689c08d5fb896ac05f09d242813d6c72f -size 203084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_1_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_1_face.stl deleted file mode 100644 index 0e8ac156e..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_1_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:edfb218f7b77d7df50d8a12699a1f9aaa852742202b796f45550bb9cf4986a92 -size 2684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_2_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_2_face.stl deleted file mode 100644 index 0109390bc..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/drawer_2_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d28ceddea17f43a6b2446a65e60f9e29f28443af562b8a72e152d290230998ec -size 17284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/floating_hinge_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/floating_hinge_handle.stl deleted file mode 100755 index 20c4244e2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/floating_hinge_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51e14a8c9bd1f8ebf227618b7574d05039eb3688c1fa056b4e3a7cafdb337cac -size 3172284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_left_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_left_face.stl deleted file mode 100644 index ade8e0602..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_left_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0939775ddb62b6cd825a880784c4f1527f79555d6de1167ad7c133df93563d21 -size 3684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_right_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_right_face.stl deleted file mode 100644 index 00eb822f0..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/front_right_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:915df10835c5afffe25b9bf8cd0246d6a6d55607eb6939a49f2b7791041cb325 -size 3684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/grab_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/grab_handle.stl deleted file mode 100644 index 3532622c1..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/grab_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:faaa2756e4cc28e84a86bbf371bd0a9df3aac9e1e3d9c05b61cafa7448768d9e -size 49784 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_collision.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_collision.stl deleted file mode 100644 index 58a17a3ba..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_collision.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9e9ac34e73edf246d1cc6c17f91b8404bef5f3923a09c29dfa23342c02682cac -size 6884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_frame.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_frame.stl deleted file mode 100644 index fb5490168..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/hatch_4060_frame.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b350f4ebc5dae31769688e4e086fab41f66ee4327e8674631718bb6af7835751 -size 297884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/ivr_hatch_frame.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/ivr_hatch_frame.stl deleted file mode 100644 index e1ff699e7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/ivr_hatch_frame.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e01872483c6b92a80b1cba4df430d5bee4e544e63c3b5f363311c69f007371d6 -size 2034084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_handle.stl deleted file mode 100644 index 89c8ffde2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02d4e95823d4914f3a6a61a09da4500fffa0d46e712a86c1001db8cbc15728af -size 20484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_housing.stl deleted file mode 100644 index ff9bd3532..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/paddle_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb21b98c34612515b0895da99c72561e19dd0e2d318b918a7100002618dd21cf -size 218184 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_button.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_button.stl deleted file mode 100644 index 779f86b85..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_button.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19aded3b3f5c8d6d507eb89128d41a06b17dea4f87147272e37fafe5f93e1f00 -size 33984 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_handle.stl deleted file mode 100644 index 2c96bb1c8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a1d7fb54bdbc38e185fda1e0069b6b00edbb4ec81ae458ab69eaeef72e99a28 -size 49484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_housing.stl deleted file mode 100644 index ac0b5f8b2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/push_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d1bb73d941202e6d8be77dac6d1dd75282ecf1241723a2ae4e873cc4d46d3da -size 64384 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_handle.stl deleted file mode 100644 index d00ddd2e8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5a2ebd32f031155f49a0be0a972b69aeb1b8b6ee2cf80e6d1d95052b54df0d5 -size 30884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_housing.stl deleted file mode 100644 index 841b3990d..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/recessed_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81351490f64bac93c178ad21c3cac3d138cf6930cd6caf27600978c8cdb1e685 -size 127284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_handle.stl deleted file mode 100644 index 52a3e3908..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7222caa015cb1b1e5f80bdd26a6473096711413e270dcf1df385203949721043 -size 22084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_housing.stl deleted file mode 100644 index f61692b18..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/round_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39ed14d6075f045429f877f35123cf2347748af694c81246d6333fd46b572cdc -size 70984 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_bottom_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_bottom_face.stl deleted file mode 100644 index d1bc368af..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_bottom_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0ea0445c8bf764ba69a4856749141432a4264e215a4964ea73066cdf05a88fa -size 20684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_lower.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_lower.stl deleted file mode 100644 index d1bc368af..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_lower.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0ea0445c8bf764ba69a4856749141432a4264e215a4964ea73066cdf05a88fa -size 20684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_plate.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_plate.stl deleted file mode 100644 index 2feb731e9..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_face_plate.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1edaa84b49f5e357dd69c6ea8087496bb645bb6f64f4a611032b5e2927750500 -size 50184 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_top_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_top_face.stl deleted file mode 100644 index f106817c4..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/collision/side_top_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5538b0b2b571d9dfaac4e189c00679f932632cd28c30dbcda0f9d0ed2e8632cb -size 50184 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_1.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_1.stl deleted file mode 100644 index 6fb1242de..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_1.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfb94230fe83971452601eb621c265362588a3f019fec35b0aa21e8d4a6b7097 -size 11884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_2.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_2.stl deleted file mode 100644 index 016b572ad..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_2.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3bade9f55357b5efe7f45d86a03bea8c30b27484bf4d824f7da98d514fe6caf -size 4084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_3.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_3.stl deleted file mode 100644 index b4767583a..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_3.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb6c4364dac1c2b3bc95d75cbc5c70b3962d023653600505a6cc9da66e786e93 -size 3084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_4.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_4.stl deleted file mode 100644 index ab1f5f6ee..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cabinet_door_4.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f654b3b00019a0041eb3bf642f810393a647d8b313d8f091005c617b0b4fb94e -size 7284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_handle.stl deleted file mode 100644 index 101f4d6e7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f498cffcd3d9f7b8dafbcafdfa772dee65e123b5f717502d17f3f4dcb5b2faa4 -size 11584 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_wheel.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_wheel.stl deleted file mode 100644 index d91f7e915..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/crank_wheel.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a6ad6190a428eca955543598c22a5e3bc0c133ea61f9ec0777c32c539d089b3d -size 53884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_1.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_1.stl deleted file mode 100644 index c54d53a73..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_1.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a46eb464c971eef8e6fe223398943fdc88063bc436a3892d813ccbf1a227718d -size 81784 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_2.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_2.stl deleted file mode 100644 index d48d78bc9..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/cubby_2.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a08f566c5c82a7df34501cd742c52d6640f5b47283a4765860cd0daa3a1cd378 -size 86884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_1_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_1_face.stl deleted file mode 100644 index 0e8ac156e..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_1_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:edfb218f7b77d7df50d8a12699a1f9aaa852742202b796f45550bb9cf4986a92 -size 2684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_2_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_2_face.stl deleted file mode 100644 index 0109390bc..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/drawer_2_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d28ceddea17f43a6b2446a65e60f9e29f28443af562b8a72e152d290230998ec -size 17284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/floating_hinge_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/floating_hinge_handle.stl deleted file mode 100755 index 20c4244e2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/floating_hinge_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51e14a8c9bd1f8ebf227618b7574d05039eb3688c1fa056b4e3a7cafdb337cac -size 3172284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_left_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_left_face.stl deleted file mode 100644 index ade8e0602..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_left_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0939775ddb62b6cd825a880784c4f1527f79555d6de1167ad7c133df93563d21 -size 3684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_right_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_right_face.stl deleted file mode 100644 index 00eb822f0..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/front_right_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:915df10835c5afffe25b9bf8cd0246d6a6d55607eb6939a49f2b7791041cb325 -size 3684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/grab_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/grab_handle.stl deleted file mode 100644 index f590222bf..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/grab_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ebc0263f089153895faef067f40f5038659c286b8b3495c12da4c78efb944b92 -size 3960784 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_face.stl deleted file mode 100644 index fb559c33b..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1120496608246fcdb283010328f6f1667bb023794d548485945b191b7d0e651d -size 1606084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_frame.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_frame.stl deleted file mode 100644 index fb5490168..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/hatch_4060_frame.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b350f4ebc5dae31769688e4e086fab41f66ee4327e8674631718bb6af7835751 -size 297884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame.stl deleted file mode 100644 index e1ff699e7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e01872483c6b92a80b1cba4df430d5bee4e544e63c3b5f363311c69f007371d6 -size 2034084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame_no_left.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame_no_left.stl deleted file mode 100644 index bab050a47..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_hatch_frame_no_left.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e745e59b3f114cd961bb9c40692ad40bf34fe2374475a0a0a3956650541af039 -size 1931484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_tasktrainer_frame.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_tasktrainer_frame.stl deleted file mode 100644 index c11447e90..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/ivr_tasktrainer_frame.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b0a883a15fe3a941424083cc991f50b036234cbaf3dbd4342922315a1ee07910 -size 2595084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_handle.stl deleted file mode 100644 index 89c8ffde2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02d4e95823d4914f3a6a61a09da4500fffa0d46e712a86c1001db8cbc15728af -size 20484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_housing.stl deleted file mode 100644 index ff9bd3532..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/paddle_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb21b98c34612515b0895da99c72561e19dd0e2d318b918a7100002618dd21cf -size 218184 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_button.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_button.stl deleted file mode 100644 index 779f86b85..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_button.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19aded3b3f5c8d6d507eb89128d41a06b17dea4f87147272e37fafe5f93e1f00 -size 33984 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_handle.stl deleted file mode 100644 index 2c96bb1c8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a1d7fb54bdbc38e185fda1e0069b6b00edbb4ec81ae458ab69eaeef72e99a28 -size 49484 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_housing.stl deleted file mode 100644 index ac0b5f8b2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/push_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d1bb73d941202e6d8be77dac6d1dd75282ecf1241723a2ae4e873cc4d46d3da -size 64384 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_handle.stl deleted file mode 100644 index d00ddd2e8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5a2ebd32f031155f49a0be0a972b69aeb1b8b6ee2cf80e6d1d95052b54df0d5 -size 30884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_housing.stl deleted file mode 100644 index 841b3990d..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/recessed_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81351490f64bac93c178ad21c3cac3d138cf6930cd6caf27600978c8cdb1e685 -size 127284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_handle.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_handle.stl deleted file mode 100644 index 52a3e3908..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_handle.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7222caa015cb1b1e5f80bdd26a6473096711413e270dcf1df385203949721043 -size 22084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_housing.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_housing.stl deleted file mode 100644 index f61692b18..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/round_latch_housing.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39ed14d6075f045429f877f35123cf2347748af694c81246d6333fd46b572cdc -size 70984 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_bottom_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_bottom_face.stl deleted file mode 100644 index d1bc368af..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_bottom_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0ea0445c8bf764ba69a4856749141432a4264e215a4964ea73066cdf05a88fa -size 20684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_lower.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_lower.stl deleted file mode 100644 index d1bc368af..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_lower.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0ea0445c8bf764ba69a4856749141432a4264e215a4964ea73066cdf05a88fa -size 20684 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_plate.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_plate.stl deleted file mode 100644 index 2feb731e9..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_face_plate.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1edaa84b49f5e357dd69c6ea8087496bb645bb6f64f4a611032b5e2927750500 -size 50184 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_top_face.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_top_face.stl deleted file mode 100644 index f106817c4..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/trainer_hatch/visual/side_top_face.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5538b0b2b571d9dfaac4e189c00679f932632cd28c30dbcda0f9d0ed2e8632cb -size 50184 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_0.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_0.obj deleted file mode 100644 index 396cb8c43..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_0.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14143d4f1175a7dbacc8e2f2f98f1cac5a2b2e238cd46cd03654d31f2610eb53 -size 156252 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_1.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_1.obj deleted file mode 100644 index ec76e1bb4..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_1.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:272899e927f4a32b7c25e34560ec70654c0346cc8ed1c616c0555f3f53b32d14 -size 1090164 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_2.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_2.obj deleted file mode 100644 index 9485a7b93..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_2.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86c05350d60eb0e7e28a81b544267478b7db997baba41cef19088ebbeffecfa1 -size 3677923 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_3.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_3.obj deleted file mode 100644 index 2885fa467..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/upperarm_3.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b257dab441e6fab64ea03b4b87029d8a96554ad1a513cce944d56acba0ad948a -size 5346165 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ur_to_robotiq_adapter.stl b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ur_to_robotiq_adapter.stl deleted file mode 100644 index a98b1c565..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/ur_to_robotiq_adapter.stl +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e5b4eaba7f75c4071c9c0213281af4798098c971891808d87e948383cd2b9aa9 -size 48884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_0.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_0.obj deleted file mode 100644 index 3be8051c1..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_0.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ef0c59b5c5d56a9902435c9a058b27d2a38c85fe2bae02d00a9284dd1f4d519 -size 278871 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_1.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_1.obj deleted file mode 100644 index 887afea27..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_1.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee6d5c562e6becef94109b0543329080d285d1aef521a01ed98e18a5bf1e8684 -size 2470967 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_2.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_2.obj deleted file mode 100644 index 01d6645bd..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist1_2.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:88c66dc64f15391287147d50add37729a3f41dadd80b1f859cf2cb6d45daf32a -size 1657638 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_0.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_0.obj deleted file mode 100644 index 2e107b943..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_0.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ac2e2e39d8f7005bc3b3ab26cd61634be2e14930074615da5318b9ee7c569a8 -size 846741 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_1.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_1.obj deleted file mode 100644 index cb5192824..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_1.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a721d06dc61d3b3a8ec58c035c9e3358ed30d6991a72e077d8abf3c3c203b633 -size 2156900 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_2.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_2.obj deleted file mode 100644 index e4ac142d7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist2_2.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6df4335c8bd5e881fda2c224f770115ffe9ddd0cd321ebe3c0a4a310796f0987 -size 2141392 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist3.obj b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist3.obj deleted file mode 100644 index a7cc3ab52..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/assets/wrist3.obj +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e51748f9c93bd66604360a5cf7e2e8a6e754550be64076333ff4fc19ec90c61 -size 211390 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/bottle.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/bottle.xml deleted file mode 100644 index b53e448d6..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/bottle.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_robot.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_robot.xml deleted file mode 100644 index 58b2de65b..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_robot.xml +++ /dev/null @@ -1,1830 +0,0 @@ - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_scene.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_scene.xml deleted file mode 100644 index 8f1b69f50..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/dual_arm_scene.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_left_wheel_link.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_left_wheel_link.xml deleted file mode 100644 index 708e7ec16..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_left_wheel_link.xml +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_right_wheel_link.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_right_wheel_link.xml deleted file mode 100644 index 4f96164d9..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/front_right_wheel_link.xml +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/hatch.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/hatch.xml deleted file mode 100644 index 00eb2a70e..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/hatch.xml +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/phoebe_sim.urdf.xacro b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/phoebe_sim.urdf.xacro deleted file mode 100644 index d863d10b0..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/phoebe_sim.urdf.xacro +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - clearpath_controller_interface/ClearpathControllerInterface - /platform_velocity_controller/odom - /platform_velocity_controller/cmd_vel_unstamped - 0.2 - 0.2 - 50 - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - picknik_mujoco_ros/MujocoSystem - $(arg mujoco_model) - $(arg mujoco_model_package) - false - 60 - 60 - 10 - linear_x_joint linear_y_joint rotational_yaw_joint - true - ridgeback_base_link - true - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rack.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rack.xml deleted file mode 100644 index bf545bd54..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rack.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_left_wheel_link.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_left_wheel_link.xml deleted file mode 100644 index fc6ea5329..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_left_wheel_link.xml +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_right_wheel_link.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_right_wheel_link.xml deleted file mode 100644 index 958159013..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/rear_right_wheel_link.xml +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/ridgeback.urdf.xacro b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/ridgeback.urdf.xacro deleted file mode 100644 index d1d153496..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/ridgeback.urdf.xacro +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - transmission_interface/SimpleTransmission - - hardware_interface/VelocityJointInterface - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer.xml deleted file mode 100644 index b820d4568..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer.xml +++ /dev/null @@ -1,473 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer_hatch.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer_hatch.xml deleted file mode 100644 index fe4290971..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/description/trainer_hatch.xml +++ /dev/null @@ -1,699 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/launch/agent_bridge.launch.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/launch/agent_bridge.launch.xml deleted file mode 100644 index b2aa75434..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/launch/agent_bridge.launch.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount.STL deleted file mode 100644 index ebb2100f7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0212cf9caee89bcd708a0c52340f73f2754601fa8ebb23b58b0a466b49d48094 -size 2064584 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount_collision.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount_collision.STL deleted file mode 100644 index 7b7661ff4..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/arm_mount_collision.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d81bd8c5bdc516d1e09b5d1bc9bf43495b8edd8203330aa9f0b0df47b3750ed6 -size 12884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_antenna.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_antenna.STL deleted file mode 100644 index 0b88733e3..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_antenna.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:390cd595b79cf3b29156d82ff5dfdc0b4cee9ac0adbb796e2b6a38d89520e681 -size 40084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_receiver.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_receiver.STL deleted file mode 100644 index 97f717716..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/autec_receiver.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5cde325070ed75fd7c547f2e0c6dd209ef848d359f68f85232fdf7efe70c8037 -size 17784 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/lift_rails.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/lift_rails.STL deleted file mode 100644 index 510bc9732..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/lift_rails.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9ea9f94f4c75399906ee5b7eb9e11d58e5746674b0c1cd61808dcf8de5927c90 -size 186084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor.STL deleted file mode 100644 index ed3a95183..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:61ddec191ec5e7a899e72c39d3ff22517225faf1688ab59445783c1f724b6c51 -size 80984 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_base.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_base.STL deleted file mode 100644 index 42f8c0d50..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_base.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a3a71d3db7bac3b0f949f0e62362f34dcae7a119962cf3e78f7baf2dd2de5d55 -size 297084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_top.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_top.STL deleted file mode 100644 index 1965c692f..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/monitor_hinge_top.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:24532a33617ccb16013f845460bfe18ce38ca5a4ce1a5c8133f0d69276a78dc6 -size 338284 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/scu.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/scu.STL deleted file mode 100644 index 9373e7f8b..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/scu.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d4d3fb6cbf46f0af59b02777805c3bf9cdd462655d906e7bd3105cd90b8d294 -size 128884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/shelf.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/shelf.STL deleted file mode 100644 index 4c442c032..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/shelf.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39de6efc0bbdb2347680e3bfbe31d3c95df7e46aa4ca192f933448b6713ba724 -size 382884 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/ur_control_box.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/ur_control_box.STL deleted file mode 100644 index 2a111dee7..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/ur_control_box.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fade68b05a34646aca535843ec2f9a04d0a2a8cb013a3f4f78a81a53c72f5ee5 -size 14292334 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/wifi_antenna.STL b/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/wifi_antenna.STL deleted file mode 100644 index 39cfbc4f8..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/meshes/wifi_antenna.STL +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:109e68aae1a21da90fbc1fc09822e144d1a6224852f0a3a8bd4b2d42e4dc0996 -size 23084 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_left_push.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_left_push.yaml deleted file mode 100644 index 1f660ab84..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_left_push.yaml +++ /dev/null @@ -1,53 +0,0 @@ -SetAdmittanceParameters: - base_frame: "base_link" - controller_name: "" - end_effector_frame: "left_grasp_link" - control_frame: "left_grasp_link" - admittance: - selected_axes: - x: False - y: True - z: False - rx: False - ry: False - rz: False - mass_position: # kg - x: 4.0 - y: 4.0 - z: 4.0 - min: 0.001 - max: 100.0 - mass_rotation: # kg*m^2 - x: 4.0 - y: 4.0 - z: 4.0 - min: 0.001 - max: 100.0 - stiffness_position: # N/m - x: 80.0 - y: 80.0 - z: 80.0 - min: 0.0 - max: 1000.0 - stiffness_rotation: # N*m/rad - x: 80.0 - y: 80.0 - z: 80.0 - min: 0.0 - max: 1000.0 - damping_ratio_position: # unitless - x: 40.0 - y: 40.0 - z: 40.0 - min: 0.0 - max: 100.0 - damping_ratio_rotation: # unitless - x: 40.0 - y: 40.0 - z: 40.0 - min: 0.0 - max: 100.0 - joint_damping: # 1/s - value: 1.0 - min: 0.0 - max: 100.0 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_no_admittance.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_no_admittance.yaml deleted file mode 100644 index 1c79d1348..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/admittance_parameters_no_admittance.yaml +++ /dev/null @@ -1,53 +0,0 @@ -SetAdmittanceParameters: - base_frame: "base_link" - controller_name: "" - end_effector_frame: "grasp_link" - control_frame: "grasp_link" - admittance: - selected_axes: - x: False - y: False - z: False - rx: False - ry: False - rz: False - mass_position: # kg - x: 4.0 - y: 4.0 - z: 4.0 - min: 0.001 - max: 100.0 - mass_rotation: # kg*m^2 - x: 4.0 - y: 4.0 - z: 4.0 - min: 0.001 - max: 100.0 - stiffness_position: # N/m - x: 80.0 - y: 80.0 - z: 80.0 - min: 0.0 - max: 1000.0 - stiffness_rotation: # N*m/rad - x: 80.0 - y: 80.0 - z: 80.0 - min: 0.0 - max: 1000.0 - damping_ratio_position: # unitless - x: 40.0 - y: 40.0 - z: 40.0 - min: 0.0 - max: 100.0 - damping_ratio_rotation: # unitless - x: 40.0 - y: 40.0 - z: 40.0 - min: 0.0 - max: 100.0 - joint_damping: # 1/s - value: 1.0 - min: 0.0 - max: 100.0 diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_gripper.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_gripper.xml deleted file mode 100644 index 73c46086c..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_gripper.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_left_gripper.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_left_gripper.xml deleted file mode 100644 index 69809e24e..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_left_gripper.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_right_gripper.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_right_gripper.xml deleted file mode 100644 index e1aafae9e..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/close_right_gripper.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/jtac_parameters.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/jtac_parameters.yaml deleted file mode 100644 index 4ad0d89f3..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/jtac_parameters.yaml +++ /dev/null @@ -1,53 +0,0 @@ -SetAdmittanceParameters: - admittance: - damping_ratio_position: - max: 100 - min: 0 - x: 40 - y: 40 - z: 40 - damping_ratio_rotation: - max: 100 - min: 0 - x: 40 - y: 40 - z: 40 - joint_damping: - max: 100 - min: 0 - value: 1 - mass_position: - max: 100 - min: 0.001 - x: 4 - y: 4 - z: 4 - mass_rotation: - max: 100 - min: 0.001 - x: 4 - y: 4 - z: 4 - selected_axes: - rx: false - ry: false - rz: false - x: true - y: true - z: true - stiffness_position: - max: 1000 - min: 0 - x: 80 - y: 80 - z: 80 - stiffness_rotation: - max: 1000 - min: 0 - x: 80 - y: 80 - z: 80 - base_frame: base_link - control_frame: left_grasp_link - controller_name: '' - end_effector_frame: left_ft_frame diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/log_message_example.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/log_message_example.xml deleted file mode 100644 index 1a2388282..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/log_message_example.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_push_bottle.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_push_bottle.xml deleted file mode 100644 index 10ebf3f93..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_push_bottle.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_up_bottle.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_up_bottle.xml deleted file mode 100644 index 530ae1e69..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_up_bottle.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_with_pose.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_with_pose.xml deleted file mode 100644 index 35ec9a5e2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_move_with_pose.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - moves both arms with the given transform(trajectory relative to left - arm) - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_and_move_up.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_and_move_up.xml deleted file mode 100644 index a6cef7be6..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_and_move_up.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_bottle.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_bottle.xml deleted file mode 100644 index 33f4039c2..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_bottle.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_move_up_and_push.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_move_up_and_push.xml deleted file mode 100644 index 38aec3b52..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/multi-tip_path_re-orient_move_up_and_push.xml +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_gripper.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_gripper.xml deleted file mode 100644 index 655449964..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_gripper.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_left_gripper.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_left_gripper.xml deleted file mode 100644 index 4c39b9e74..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_left_gripper.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_right_gripper.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_right_gripper.xml deleted file mode 100644 index 0c38c2fba..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/open_right_gripper.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/record_admittance_trajectory.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/record_admittance_trajectory.xml deleted file mode 100644 index 2e9379aff..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/record_admittance_trajectory.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/segment_image_from_no_negative_text_prompt_subtree.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/segment_image_from_no_negative_text_prompt_subtree.xml deleted file mode 100644 index 42977522a..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/segment_image_from_no_negative_text_prompt_subtree.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/single-tip_path_admittance_move_push_bottle.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/single-tip_path_admittance_move_push_bottle.xml deleted file mode 100644 index f8a725f23..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/single-tip_path_admittance_move_push_bottle.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_left_snapshot.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_left_snapshot.xml deleted file mode 100644 index a2456b203..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_left_snapshot.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_right_snapshot.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_right_snapshot.xml deleted file mode 100644 index a166eafaf..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/take_right_snapshot.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/wrist_snap.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/wrist_snap.xml deleted file mode 100644 index 7effb2a65..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/objectives/wrist_snap.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/package.xml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/package.xml deleted file mode 100644 index 3892a8a14..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/package.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - phoebe_sim - 8.3.0 - - - MoveIt Pro simulation configuration package for the dual UR5e + Ridgeback - system. - - - Paul Gesel - David Yackzan - - BSD-3-Clause - BSD-2-Clause - Apache-2.0 - - ament_cmake - - moveit_studio_agent - launch - robot_state_publisher - xacro - - clearpath_mecanum_drive_controller - force_torque_sensor_broadcaster - gripper_controllers - joint_state_broadcaster - joint_trajectory_admittance_controller - joint_trajectory_controller - joint_velocity_controller - velocity_force_controller - - clearpath_controller_interface - clearpath_manipulators_description - clearpath_platform_description - clearpath_sensors_description - ewellix_description - picknik_accessories - phoebe_description - ridgeback_description - robotiq_controllers - robotiq_description - ur_description - - - ament_cmake - - diff --git a/src/external_dependencies/phoebe_ws/src/phoebe_sim/waypoints/waypoints.yaml b/src/external_dependencies/phoebe_ws/src/phoebe_sim/waypoints/waypoints.yaml deleted file mode 100644 index 949680e65..000000000 --- a/src/external_dependencies/phoebe_ws/src/phoebe_sim/waypoints/waypoints.yaml +++ /dev/null @@ -1,308 +0,0 @@ -- description: '' - favorite: false - joint_group_names: - - arms_lift_only - - arms_only - - left_arm_only - - left_gripper - - left_lift - - left_manipulator - - left_mobile_manipulator - - manipulator - - mobile_base - - right_arm_only - - right_gripper - - right_lift - - right_manipulator - - right_mobile_manipulator - - z_mobile_base_ee_group - joint_state: - effort: [] - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - name: - - lift_left_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - lift_right_upper_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - - left_robotiq_85_left_knuckle_joint - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - right_robotiq_85_left_knuckle_joint - position: - - 0.0001864114231515832 - - -1.7535846702629654 - - -2.3595657516189674 - - -1.5617889537921854 - - -1.2496865245203999 - - 0.909978510436498 - - 2.305364568346204 - - 8.015977362862589e-06 - - 1.6451148765757633 - - -0.3248152471327874 - - 1.091910435863936 - - -1.7215442293214207 - - -1.0029090711046846 - - -2.4711258652942605 - - 0.034282584011235365 - - -0.045671320739885446 - - 0.0146909546435057 - - -0.0030845951352903994 - - 0.09190446228339062 - velocity: [] - multi_dof_joint_state: - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - joint_names: [] - transforms: [] - twist: [] - wrench: [] - name: ApproachBottle -- description: '' - favorite: false - joint_group_names: - - arms_lift_only - - arms_only - - left_arm_only - - left_gripper - - left_lift - - left_manipulator - - left_mobile_manipulator - - manipulator - - mobile_base - - right_arm_only - - right_gripper - - right_lift - - right_manipulator - - right_mobile_manipulator - - z_mobile_base_ee_group - joint_state: - effort: [] - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - name: - - lift_left_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - lift_right_upper_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - - left_robotiq_85_left_knuckle_joint - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - right_robotiq_85_left_knuckle_joint - position: - - 0.00018641140324554586 - - -1.7535803499221847 - - -2.3595615778304784 - - -1.56178458059938 - - -1.2496855579621042 - - 0.90997915873928 - - 2.305367197940256 - - 8.015591913328488e-06 - - 1.645111814446742 - - -0.324814282480218 - - 1.0919090553880397 - - -1.7215409615424582 - - -1.0029074801947668 - - -2.4711216194461967 - - 0.02172407522551698 - - -0.5997909784565573 - - 0.010916498750701449 - - 0.012557093690858077 - - 0.04958756789668505 - velocity: [] - multi_dof_joint_state: - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - joint_names: [] - transforms: [] - twist: [] - wrench: [] - name: AwayTable -- description: '' - favorite: false - joint_group_names: - - arms_lift_only - - arms_only - - left_arm_only - - left_gripper - - left_lift - - left_manipulator - - left_mobile_manipulator - - manipulator - - mobile_base - - right_arm_only - - right_gripper - - right_lift - - right_manipulator - - right_mobile_manipulator - - z_mobile_base_ee_group - joint_state: - effort: [] - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - name: - - lift_left_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - lift_right_upper_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - - left_robotiq_85_left_knuckle_joint - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - right_robotiq_85_left_knuckle_joint - position: - - 0.00018641142315162216 - - -1.9252098739481365 - - -2.5622457781622163 - - -1.7137543575683294 - - -0.7627312373331905 - - 0.8440502682435744 - - 2.098998325134921 - - 8.015977363386106e-06 - - 1.7767589321959139 - - -0.18003856100562554 - - 1.2515264144720308 - - -2.1024107166680657 - - -0.9306080496441429 - - -2.3370269293875636 - - 0.0322942722855739 - - -0.046500044843760115 - - 0.007917043842926708 - - 0.009944576003233339 - - 0.09069765892793866 - velocity: [] - multi_dof_joint_state: - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - joint_names: [] - transforms: [] - twist: [] - wrench: [] - name: PreGraspStart -- description: '' - favorite: false - joint_group_names: - - arms_lift_only - - arms_only - - left_arm_only - - left_gripper - - left_lift - - left_manipulator - - left_mobile_manipulator - - manipulator - - mobile_base - - right_arm_only - - right_gripper - - right_lift - - right_manipulator - - right_mobile_manipulator - - z_mobile_base_ee_group - joint_state: - effort: [] - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - name: - - lift_left_upper_joint - - left_shoulder_pan_joint - - left_shoulder_lift_joint - - left_elbow_joint - - left_wrist_1_joint - - left_wrist_2_joint - - left_wrist_3_joint - - lift_right_upper_joint - - right_shoulder_pan_joint - - right_shoulder_lift_joint - - right_elbow_joint - - right_wrist_1_joint - - right_wrist_2_joint - - right_wrist_3_joint - - left_robotiq_85_left_knuckle_joint - - linear_x_joint - - linear_y_joint - - rotational_yaw_joint - - right_robotiq_85_left_knuckle_joint - position: - - 0.00018743031149620973 - - -1.9951592323651175 - - -2.712153286543419 - - -1.6574332026731105 - - -0.6080367592713792 - - 0.8235863058665377 - - 2.00849699638186 - - 7.92257122933836e-06 - - 1.8426073909087461 - - -0.08327655129003571 - - 1.2440649154481842 - - -2.235802079796575 - - -0.8980026247373055 - - -2.2647942346792296 - - 0.09756491211538225 - - -0.04698295563798911 - - 0.004768798600323825 - - 0.015906600521509395 - - 0.16175339357474988 - velocity: [] - multi_dof_joint_state: - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - joint_names: [] - transforms: [] - twist: [] - wrench: [] - name: SurroundPreGrasp From 334de3ab45c771602f00672f98d4d5b8a54ed961 Mon Sep 17 00:00:00 2001 From: Griswald Brooks Date: Wed, 9 Sep 2026 12:06:45 -0400 Subject: [PATCH 02/10] feat(lunar_sim): Husky A300 lunar simulation - cratered heightfield, non-repeating Apollo regolith, mast scene camera Rebuilds lunar_sim as a Clearpath Husky A300 configuration (replacing the previous Phoebe-derived config) running under MuJoCo physics instead of mock hardware, on a procedurally cratered regolith heightfield with scattered rocks. - A300 mock/blank-world config: robot description, SRDF, controllers, and the Dead Reckon Square objective (open-loop /cmd_vel drive in a closed square) with a small lunar_sim_behaviors package for its PublishTwistStamped behavior. - MuJoCo migration: per-wheel MJCF bodies, velocity actuators, and picknik_mujoco_ros/MujocoSystem hardware plugin, with skid-steer parameters calibrated against MuJoCo ground truth. - Terrain: procedural cratered heightfield plus scattered rocks (generate_terrain.py), textured with a single non-repeating color map built from nine real NASA Apollo 15/17 Hasselblad frames (generate_ground_colormap.py) instead of one repeating tile, with full provenance and calibration recorded in src/lunar_sim/README.md. - Scene camera: a mast-mounted, fixed-mode overview camera streaming /scene_camera/color and /depth, framed on the Dead Reckon Square start area; the prior render-only chase camera used for offline comparison renders is now chase_camera. - Config/bring-up fixes: MujocoSystem's required tf_publish_rate and render_publish_rate hardware params, wheel actuator names matching their ros2_control joint names, the camera optical-frame site MujocoSystem requires once render_publish_rate is non-zero, and a current nav2-mppi-controller apt pin. - Vendoring restructure: clearpath_platform_description nested under external_dependencies/clearpath_common/ to satisfy the workspace dependency validator's upstream byte-comparison. Co-Authored-By: Claude Sonnet 5 --- .pre-commit-config.yaml | 2 +- AGENTS.md | 215 ++ CLAUDE.md | 64 +- .../clearpath_common/LICENSE | 28 + .../clearpath_common/UPSTREAM.yaml | 27 + .../CHANGELOG.rst | 577 +++++ .../CMakeLists.txt | 10 + .../meshes/a300/attachments/bumper.dae | 3 + .../a300/attachments/bumper_collision.stl | 3 + .../attachments/observer_access_panels.stl | 3 + .../meshes/a300/attachments/observer_arch.stl | 3 + .../observer_bluetooth_antenna.stl | 3 + .../attachments/observer_cellular_antenna.stl | 3 + .../a300/attachments/observer_enclosure.stl | 3 + .../attachments/observer_wifi_antennas.stl | 3 + .../meshes/a300/chassis.dae | 3 + .../meshes/a300/chassis_collision.stl | 3 + .../meshes/a300/drivetrain/motor.stl | 3 + .../a300/drivetrain/suspension_beam.stl | 3 + .../a300/drivetrain/suspension_spacer.stl | 3 + .../a300/drivetrain/wheels/outdoor_left.stl | 3 + .../a300/drivetrain/wheels/outdoor_right.stl | 3 + .../meshes/a300/livery.dae | 3 + .../meshes/a300/status_lights.dae | 3 + .../package.xml | 31 + .../urdf/a300/a300.urdf.xacro | 188 ++ .../a300/attachments/amp_enclosure.urdf.xacro | 82 + .../attachments/amp_sensor_arch.urdf.xacro | 139 ++ .../urdf/a300/attachments/bumper.urdf.xacro | 30 + .../a300/drivetrain/caster_flange.urdf.xacro | 34 + .../urdf/a300/drivetrain/motor.urdf.xacro | 38 + .../drivetrain/suspension_beam.urdf.xacro | 67 + .../urdf/a300/drivetrain/wheels.urdf.xacro | 127 ++ .../a300/drivetrain/wheels/caster.urdf.xacro | 109 + .../a300/drivetrain/wheels/indoor.urdf.xacro | 51 + .../a300/drivetrain/wheels/mecanum.urdf.xacro | 68 + .../a300/drivetrain/wheels/outdoor.urdf.xacro | 51 + .../urdf/common.urdf.xacro | 126 ++ .../generic/drivetrain/drivetrain.urdf.xacro | 30 + src/hangar_sim/description/hangar_scene.xml | 2 +- src/lunar_sim/CMakeLists.txt | 24 +- src/lunar_sim/LICENSE | 27 + src/lunar_sim/README.md | 166 ++ src/lunar_sim/config/config.yaml | 118 +- .../control/husky_a300.ros2_control.yaml | 87 + src/lunar_sim/config/frontend_settings.yaml | 4 + src/lunar_sim/config/moveit/husky_a300.srdf | 46 + src/lunar_sim/config/moveit/joint_jog.yaml | 8 + src/lunar_sim/config/moveit/kinematics.yaml | 2 + src/lunar_sim/config/moveit/pose_jog.yaml | 7 + src/lunar_sim/description/assets/bumper.obj | 3 + src/lunar_sim/description/assets/chassis.obj | 3 + .../description/assets/chassis_collision.stl | 3 + .../assets/ground_colormap_provenance.txt | 13 + .../ground_colormap_sources/AS15-86-11671.png | 3 + .../ground_colormap_sources/AS15-87-11766.png | 3 + .../ground_colormap_sources/AS15-87-11777.png | 3 + .../AS17-146-22370.png | 3 + .../as17-137-20963.png | 3 + .../as17-137-20981.png | 3 + .../as17-137-20984.png | 3 + .../as17-138-21179.png | 3 + .../as17-142-21706.png | 3 + src/lunar_sim/description/assets/livery.obj | 3 + .../description/assets/lunar_hfield.png | 3 + .../assets/lunar_regolith_untiled.png | 3 + .../assets/observer_access_panels.stl | 3 + .../description/assets/observer_arch.stl | 3 + .../description/assets/observer_enclosure.stl | 3 + .../description/assets/outdoor_left.stl | 3 + .../description/assets/outdoor_right.stl | 3 + .../description/assets/rocks/rock_0.stl | 3 + .../description/assets/rocks/rock_1.stl | 3 + .../description/assets/rocks/rock_2.stl | 3 + .../description/assets/rocks/rock_3.stl | 3 + .../description/assets/rocks/rock_4.stl | 3 + .../description/assets/rocks/rock_5.stl | 3 + .../description/assets/status_lights.obj | 3 + .../description/front_left_wheel_link.xml | 33 + .../description/front_right_wheel_link.xml | 32 + .../description/generate_ground_colormap.py | 496 ++++ src/lunar_sim/description/generate_terrain.py | 381 ++++ src/lunar_sim/description/husky_a300.xml | 208 ++ .../description/husky_a300_mujoco.xacro | 95 + src/lunar_sim/description/husky_scene.xml | 192 ++ .../description/rear_left_wheel_link.xml | 28 + .../description/rear_right_wheel_link.xml | 32 + .../description/rocks_assets_generated.xml | 50 + .../description/rocks_geoms_generated.xml | 2002 +++++++++++++++++ .../description/validate_and_render.py | 214 ++ .../description/verify_ground_colormap.py | 117 + src/lunar_sim/mjcf/scene.xml | 110 - .../objectives/dead_reckon_square.xml | 83 + src/lunar_sim/objectives/reset_simulation.xml | 24 + src/lunar_sim/package.xml | 27 +- .../test/test_husky_mujoco_geometry.py | 246 ++ src/lunar_sim/waypoints/waypoints.yaml | 1 + src/lunar_sim_behaviors/CMakeLists.txt | 49 + .../publish_twist_stamped.hpp | 33 + ...lunar_sim_behaviors_plugin_description.xml | 7 + src/lunar_sim_behaviors/package.xml | 33 + .../src/publish_twist_stamped.cpp | 39 + .../src/register_behaviors.cpp | 23 + src/lunar_sim_behaviors/test/CMakeLists.txt | 4 + .../test/test_behavior_plugins.cpp | 36 + 105 files changed, 7121 insertions(+), 204 deletions(-) create mode 100644 AGENTS.md create mode 100644 src/external_dependencies/clearpath_common/LICENSE create mode 100644 src/external_dependencies/clearpath_common/UPSTREAM.yaml create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/CHANGELOG.rst create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/CMakeLists.txt create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper.dae create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper_collision.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_arch.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_bluetooth_antenna.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_cellular_antenna.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_wifi_antennas.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis.dae create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis_collision.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/motor.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_beam.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_spacer.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_left.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_right.stl create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/livery.dae create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/status_lights.dae create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/package.xml create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/a300.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_enclosure.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_sensor_arch.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/bumper.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/caster_flange.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/motor.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/suspension_beam.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/caster.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/indoor.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/mecanum.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/outdoor.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/common.urdf.xacro create mode 100644 src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/generic/drivetrain/drivetrain.urdf.xacro create mode 100644 src/lunar_sim/LICENSE create mode 100644 src/lunar_sim/README.md create mode 100644 src/lunar_sim/config/control/husky_a300.ros2_control.yaml create mode 100644 src/lunar_sim/config/frontend_settings.yaml create mode 100644 src/lunar_sim/config/moveit/husky_a300.srdf create mode 100644 src/lunar_sim/config/moveit/joint_jog.yaml create mode 100644 src/lunar_sim/config/moveit/kinematics.yaml create mode 100644 src/lunar_sim/config/moveit/pose_jog.yaml create mode 100644 src/lunar_sim/description/assets/bumper.obj create mode 100644 src/lunar_sim/description/assets/chassis.obj create mode 100644 src/lunar_sim/description/assets/chassis_collision.stl create mode 100644 src/lunar_sim/description/assets/ground_colormap_provenance.txt create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/AS15-86-11671.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11766.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11777.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/AS17-146-22370.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20963.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20981.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20984.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/as17-138-21179.png create mode 100644 src/lunar_sim/description/assets/ground_colormap_sources/as17-142-21706.png create mode 100644 src/lunar_sim/description/assets/livery.obj create mode 100644 src/lunar_sim/description/assets/lunar_hfield.png create mode 100644 src/lunar_sim/description/assets/lunar_regolith_untiled.png create mode 100644 src/lunar_sim/description/assets/observer_access_panels.stl create mode 100644 src/lunar_sim/description/assets/observer_arch.stl create mode 100644 src/lunar_sim/description/assets/observer_enclosure.stl create mode 100644 src/lunar_sim/description/assets/outdoor_left.stl create mode 100644 src/lunar_sim/description/assets/outdoor_right.stl create mode 100644 src/lunar_sim/description/assets/rocks/rock_0.stl create mode 100644 src/lunar_sim/description/assets/rocks/rock_1.stl create mode 100644 src/lunar_sim/description/assets/rocks/rock_2.stl create mode 100644 src/lunar_sim/description/assets/rocks/rock_3.stl create mode 100644 src/lunar_sim/description/assets/rocks/rock_4.stl create mode 100644 src/lunar_sim/description/assets/rocks/rock_5.stl create mode 100644 src/lunar_sim/description/assets/status_lights.obj create mode 100644 src/lunar_sim/description/front_left_wheel_link.xml create mode 100644 src/lunar_sim/description/front_right_wheel_link.xml create mode 100644 src/lunar_sim/description/generate_ground_colormap.py create mode 100644 src/lunar_sim/description/generate_terrain.py create mode 100644 src/lunar_sim/description/husky_a300.xml create mode 100644 src/lunar_sim/description/husky_a300_mujoco.xacro create mode 100644 src/lunar_sim/description/husky_scene.xml create mode 100644 src/lunar_sim/description/rear_left_wheel_link.xml create mode 100644 src/lunar_sim/description/rear_right_wheel_link.xml create mode 100644 src/lunar_sim/description/rocks_assets_generated.xml create mode 100644 src/lunar_sim/description/rocks_geoms_generated.xml create mode 100644 src/lunar_sim/description/validate_and_render.py create mode 100644 src/lunar_sim/description/verify_ground_colormap.py delete mode 100644 src/lunar_sim/mjcf/scene.xml create mode 100644 src/lunar_sim/objectives/dead_reckon_square.xml create mode 100644 src/lunar_sim/objectives/reset_simulation.xml create mode 100644 src/lunar_sim/test/test_husky_mujoco_geometry.py create mode 100644 src/lunar_sim/waypoints/waypoints.yaml create mode 100644 src/lunar_sim_behaviors/CMakeLists.txt create mode 100644 src/lunar_sim_behaviors/include/lunar_sim_behaviors/publish_twist_stamped.hpp create mode 100644 src/lunar_sim_behaviors/lunar_sim_behaviors_plugin_description.xml create mode 100644 src/lunar_sim_behaviors/package.xml create mode 100644 src/lunar_sim_behaviors/src/publish_twist_stamped.cpp create mode 100644 src/lunar_sim_behaviors/src/register_behaviors.cpp create mode 100644 src/lunar_sim_behaviors/test/CMakeLists.txt create mode 100644 src/lunar_sim_behaviors/test/test_behavior_plugins.cpp diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bc264c0e5..ac0423af6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -40,7 +40,7 @@ repos: rev: v2.4.1 hooks: - id: codespell - args: ["--write-changes", "-L", "atleast,inout,ether"] # Provide a comma-separated list of misspelled words that codespell should ignore (for example: '-L', 'word1,word2,word3'). + args: ["--write-changes", "-L", "atleast,inout,ether,retuned"] # Provide a comma-separated list of misspelled words that codespell should ignore (for example: '-L', 'word1,word2,word3'). exclude: \.(svg|pyc|stl|dae|lock)$ - repo: https://github.com/pre-commit/mirrors-clang-format diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..56697d9b5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,215 @@ +# AI Code Assistant Instructions for MoveIt Pro Example Workspace + +## MuJoCo Scene Files + +### Keyframe qpos must match model DOF count + +When editing `scene.xml` files (adding/removing bodies with joints), the `` section's `qpos` attribute must have exactly the number of values matching the model's total degrees of freedom. A mismatch causes `ros2_control_node` to crash with: + +``` +Error: keyframe 0: invalid qpos size, expected length +``` + +Each joint type contributes to qpos: +- **freejoint**: 7 values (x, y, z, qw, qx, qy, qz) +- **hinge/slide**: 1 value each +- **ball**: 4 values (quaternion) + +After adding or removing bodies with joints, either widen the keyframe's `qpos` to match or +**remove the keyframe** and let MuJoCo use body `pos=` attributes for initial positions. A +keyframe that has to stay (one a `ResetMujocoKeyframe` Objective or a `mujoco_keyframe` +hardware param targets) is worth guarding with a parse-the-MJCF length check - see +`test_keyframe_qpos_matches_model_dof_count` in +`src/lunar_sim/test/test_husky_mujoco_geometry.py`. + +### `` inside a `` discards the included file's own wrapping element + +When an included file's root element is itself a `` (e.g. one file per wheel, mirroring `hangar_sim/description/*_wheel_link.xml`), MuJoCo's compiler splices in only that root element's **children** — the wrapping ``'s own `name`/`pos` are silently discarded, not nested. Two wheel bodies written this way collapse into one, and their `` tags collide: `Schema violation: unique element 'inertial' found N times`. + +The real body (with its real `name`/`pos`) must be declared inline at the include site; the included file's own root element is just a throwaway wrapper to satisfy "one root element" for valid standalone XML: + +```xml + + + + +``` + +```xml + + + + + + +``` + +Verified against MuJoCo 3.6.0 (`picknikciuser/moveit-pro:main-jazzy-amd64-cuda13.2-cudnn9`'s bundled Python bindings) with a minimal `mj_name2id`/body-count check; see `src/lunar_sim/description/husky_a300.xml` for a real usage. + +### Velocity actuators: `armature/kv` time-constant must stay below the timestep + +A `` actuator on a joint with `armature="..."` behaves like a first-order servo with time-constant `τ = armature / kv`. If `τ` is larger than the scene `timestep`, the servo cannot inject enough velocity correction per step to overcome external load, and the joint effectively **stops responding to commands** — it stays pinned near zero even at full command. The per-step velocity correction scales as `kv · timestep / armature`, so halving the timestep halves the authority. + +This bit `hangar_sim`'s mecanum base: the wheels had `armature="1.0"`, `kv="50"` → `τ = 0.02 s`. It worked only because the timestep was `0.025 s` (above τ). Standardizing the timestep to `0.003 s` dropped it well below τ, the wheel servos lost authority, the wheels pinned at ~0 rad/s, and the base would not drive (the whole-body `ExecuteTrajectory` then hung forever waiting for the base to reach goal). Fix was `kv: 50 → 500` (τ → 0.002 s, below the new timestep), verified in standalone MuJoCo to be stable across `timestep` 0.025→0.002. Lowering `armature` instead also raises authority but went unstable at small timesteps — prefer raising `kv`. (hangar's scene ultimately runs `timestep="0.008"`, coarser than the 0.003 s the other configs use: at 0.003 the CI runner overran ~47% of sim steps and starved controller mode-switching. `kv=500` keeps the wheels valid there too — τ=0.002 s < 0.008 s.) + +The two coupled numbers live in different files: the actuator `kv` is in the `` blocks of `hangar_sim/description/ur5e_ridgeback.xml` (~line 1709), and the joint `armature` is in the per-wheel includes (`hangar_sim/description/{front,rear}_{left,right}_wheel_link.xml`, the wheel ``). + +Rule of thumb when changing a sim `timestep`: for every velocity actuator, check `armature/kv < timestep`. The symptom of violation is a joint that ignores commands (pinned), not one that oscillates. + +### Vendored A300 visual meshes: converting DAE to OBJ for MuJoCo + +MuJoCo has no COLLADA (`.dae`) loader, but `clearpath_platform_description`'s A300 visual +meshes (`chassis.dae`, `livery.dae`, `status_lights.dae`, `attachments/bumper.dae`) are only +shipped as DAE - unlike the wheel/collision meshes, which are already STL. The vendored files +are kept byte-identical to upstream (never edit them); convert to OBJ and commit the result into +the consuming package's own `description/assets/` instead (cross-package MuJoCo mesh paths +don't survive a colcon install split, so the vendored STL meshes get copied in the same way). + +`trimesh` is already present in the `picknikciuser/moveit-pro` runtime image, but its DAE loader +needs `pycollada`, which is not. Installing it into a `--rm` container only touches that +container's throwaway layer, not the image itself: + +``` +docker run --rm --mount type=bind,src=$PWD,dst=/work --entrypoint bash picknikciuser/moveit-pro: -c \ + "pip install --break-system-packages --no-cache-dir pycollada && python3 -c ' +import trimesh +mesh = trimesh.load(\"/work/chassis.dae\", force=\"scene\").dump(concatenate=True) +mesh.export(\"/work/chassis.obj\", include_texture=False) +'" +``` + +`include_texture=False` skips emitting a companion `.mtl` - apply color via a plain MuJoCo +`` on the geom instead of trying to carry over per-face COLLADA materials. The +converted mesh keeps the DAE's own local-frame vertices, so it drops onto its parent body with +whatever `pos`/`quat` the URDF's visual `` implies - work that out from the xacro rather +than eyeballing it against a render; see `src/lunar_sim/description/husky_a300.xml`'s bumper +comment for a worked example (a mount-frame offset and a visual-origin counter-offset that cancel +to a plain identity transform). + +### `mode="targetbody"` only rotates a camera, it doesn't move it + +A `` continuously re-aims to face the target body, but its +`pos` is still a fixed point in its parent body's frame - world-fixed only when the camera is a +direct child of `` (as in this repo's scene cameras); one nested under a moving body +would still be dragged along by that body, just no longer re-oriented independently. Either way, +for a scene camera meant to frame a mobile base throughout an +objective (not just at its starting pose), remember the viewing angle toward the rest of the +scene - the ground plane, in particular - changes as the base drives away from that fixed point, +which can reveal rendering artifacts (e.g. directional-light shadow-map aliasing past the shadow +frustum's edge, see `src/lunar_sim/description/husky_scene.xml`) that were not visible from the +starting pose. Verify renders at more than one point along the objective, not just at rest. + +### `texrepeat` with `texuniform="true"` is repeats-per-metre, not repeats-over-the-whole-geom + +With `texuniform="true"` on a ``, `texrepeat="R R"` means the texture repeats R times +per metre of world space, not R times across the whole geom - the opposite of the more intuitive +"total tiles across this surface" reading. A 20x20 m ground plane with `texrepeat="8 8"` therefore +tiles every `1/8 = 0.125 m`, not every `20/8 = 2.5 m`; the smaller tile shows as an obvious +repeating grid at any zoom that puts more than a couple tiles in frame. To get a target tile size +of `S` metres, use `texrepeat="${1/S} ${1/S}"` (e.g. `0.3 0.3` for a ~3.3 m tile), independent of +the geom's own size. + +### `` doesn't load JPEG + +MuJoCo 3.6's built-in texture loader for `` accepts PNG, KTX, or its +own custom binary format - a `.jpg`/`.jpeg` file fails the model load with `Non-PNG texture, +assuming custom binary file format, unexpected file size`, not a clearer "unsupported format" +error. +Photoreal ground/wall textures are often distributed as JPEG (e.g. ambientCG, Poly Haven, or a NASA +mission-photo scan); convert to PNG before wiring into a scene - see +`src/lunar_sim/description/assets/lunar_regolith_untiled.png` and the texture's +provenance note in `src/lunar_sim/README.md`. + +Separately: this repo's root `.gitattributes` LFS-tracks every `*.jpg`/`*.png`/`*.jpeg` with no +per-file exceptions (confirmed against every existing image asset in the repo, down to 19 KB +thumbnails) - a new texture/image asset should go through the normal `git add` + LFS flow like any +other, not a one-off `.gitattributes` carve-out. `*.stl`/`*.STL` are LFS-tracked the same way. + +### `` also resolves ``, unlike `` + +A `` attribute applies to both `` **and** `` file paths, +but not to `` (textures use the separate, here-unset `texturedir`, which defaults to the +model file's own directory). So with `meshdir="assets"`, a mesh reference like +`file="chassis.obj"` is correct un-prefixed, and an hfield PNG must be written the same +un-prefixed way (`file="lunar_hfield.png"`, not `file="assets/lunar_hfield.png"`) even though a +`` in the very same file needs the full `file="assets/regolith.png"` path. Getting this +wrong fails the model load with `Error opening file 'assets/assets/lunar_hfield.png'` (meshdir +prepended twice), not a clearer "not found" error. See +`src/lunar_sim/description/husky_scene.xml`'s `` element. + +### An `` PNG is loaded bottom-up: image row 0 lands at maximum y + +MuJoCo flips a heightfield PNG's rows on load, so the image's *first* row becomes the *last* +`hfield_data` row - i.e. image row 0 is world `+size_y`, not `-size_y` (image column 0 is world +`-size_x`, unflipped). Verified against MuJoCo 3.6 by loading a ramp PNG and reading +`model.hfield_data`, plus downward `mj_ray` probes on a quadrant-coded hfield. A generator that +writes rows in increasing-y order silently produces terrain mirrored about y=0, which nothing +catches: the model loads, the render looks plausible, but anything else placed from the same +in-memory height array (rocks dropped onto the surface, a spawn pose) sits at the wrong ground +height. Emit the rows reversed - see `generate_terrain.py`'s `height_to_png`. + +### `` has no per-instance mesh `scale` - put it on the `` asset instead + +MuJoCo's schema rejects `scale` on `` (`Schema violation: unrecognized +attribute: 'scale'`); only the `` asset itself takes `scale="x y z"`. To scatter many +instances of the same base mesh at different sizes (e.g. a small procedural rock library) without +duplicating geometry per instance, quantize the desired sizes into a handful of buckets and emit +one `` asset per (variant, bucket) combo, each referencing the same STL file with a +different `scale`, then point each ``'s `mesh=` at the right bucketed asset name. See +`generate_terrain.py`'s `ROCK_SIZE_BUCKETS` / `rocks_assets_generated.xml`. + +### Every fixed-mode MJCF camera needs a `_optical_frame` site once `render_publish_rate > 0` + +`picknik_mujoco_ros/MujocoSystem` (`cameras.cpp`'s `extract_cameras()`) enumerates **every** +fixed-mode camera in the compiled MJCF model - not just ones referenced from the URDF - and +throws `The MJCF model does not define a site for the camera frame: _optical_frame` at +hardware init if any of them lacks a matching ``. A camera with `mode="targetbody"` (or +any non-fixed mode) is exempt. This bites a debug-only scene camera added for offline rendering +(e.g. `validate_and_render.py`) the moment `render_publish_rate` is turned on for the first time +- it will not surface from reading the xacro/URDF, only from actually running the stack. Fix: add +a `` at the camera's pose, with +the quat rotated 180 deg about the camera's own local X axis (MuJoCo camera convention -> ROS +optical-frame convention: flip Y and Z, keep X) - see `scene_camera_optical_frame` in +`src/lunar_sim/description/husky_scene.xml` or `src/factory_sim/description/scene.xml` for the +established pattern. + +### MuJoCo documentation + +Refer to [docs.picknik.ai](https://docs.picknik.ai) for MuJoCo configuration guides: + +- [Physics Simulator Setup](https://docs.picknik.ai/how_to/configuration_tutorials/migrate_to_mujoco_config/) — creating scene.xml from URDF, camera/sensor setup, mesh conversion, MuJoCo Interactive Viewer +- [config.yaml Reference](https://docs.picknik.ai/how_to/configuration_tutorials/config_yaml_reference/) — `hardware` section for `picknik_mujoco_ros/MujocoSystem` plugin configuration +- [Simulator Keyframes Setup](https://docs.picknik.ai/how_to/configuration_tutorials/create_robot_sim_config/configure_keyframes/) — defining keyframes in scene.xml, `ResetMujocoKeyframe` Behavior +- [Optimize Model Meshes](https://docs.picknik.ai/how_to/configuration_tutorials/optimizing_robot_model_meshes/) — MuJoCo enforces 1-200,000 faces per STL +- [Simulation Troubleshooting](https://docs.picknik.ai/troubleshooting/Simulation%20Troubleshooting/) — physics parameters, grip stability, mass/inertia errors, rendering issues + +## Objective XML Files + +### MetadataFields required for CI + +Every objective XML file must include a `MetadataFields` block inside the `TreeNodesModel` section. The `validate_objectives` CI check will fail without it. + +```xml + + + + + + + + +``` + +- `runnable` — set to `"true"` for top-level objectives the user can run, `"false"` for subtrees only called by other objectives +- `subcategory` — groups the objective in the UI (e.g., `"AprilTag"`, `"Grasping"`, `"MuJoCo Simulation"`) + +### A gripper config needs `close_gripper.xml` / `open_gripper.xml`, or teleop gripper silently fails + +Teleoperation drives the gripper by looking up Objectives named exactly `"Close Gripper"` / `"Open Gripper"` (the `Request Teleoperation` SubTree in moveit_pro core). If a config package doesn't provide those overrides in its `objectives/` directory, the lookup falls back to moveit_pro's core placeholder, which logs `[ERROR] LogMessage Error: This robot configuration does not have a \`Close Gripper\` Objective configured to override this default.` on every BT tick for as long as the control is held, and the gripper never moves — even if some other Objective in the same config already drives the gripper directly via `MoveGripperAction` (that path bypasses the named-Objective lookup entirely). Any new config with a gripper needs both files; see `moveit_pro_kinova_configs/kinova_gen3_base_config/objectives/{close,open}_gripper.xml` for the reference pattern. + +## Maintaining this file + +Keep this file for knowledge useful to almost every future agent session in this project. +Do not repeat what the codebase already shows; point to the authoritative file or command instead. +Prefer rewriting or pruning existing entries over appending new ones. +When updating this file, preserve this bar for all agents and keep entries concise. diff --git a/CLAUDE.md b/CLAUDE.md index dc3de155c..a9d4d2694 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,62 +1,2 @@ -# AI Code Assistant Instructions for MoveIt Pro Example Workspace - -## MuJoCo Scene Files - -### Keyframe qpos must match model DOF count - -When editing `scene.xml` files (adding/removing bodies with joints), the `` section's `qpos` attribute must have exactly the number of values matching the model's total degrees of freedom. A mismatch causes `ros2_control_node` to crash with: - -``` -Error: keyframe 0: invalid qpos size, expected length -``` - -Each joint type contributes to qpos: -- **freejoint**: 7 values (x, y, z, qw, qx, qy, qz) -- **hinge/slide**: 1 value each -- **ball**: 4 values (quaternion) - -After adding or removing bodies with joints, **remove the keyframe** and let MuJoCo use body `pos=` attributes for initial positions. - -### Velocity actuators: `armature/kv` time-constant must stay below the timestep - -A `` actuator on a joint with `armature="..."` behaves like a first-order servo with time-constant `τ = armature / kv`. If `τ` is larger than the scene `timestep`, the servo cannot inject enough velocity correction per step to overcome external load, and the joint effectively **stops responding to commands** — it stays pinned near zero even at full command. The per-step velocity correction scales as `kv · timestep / armature`, so halving the timestep halves the authority. - -This bit `hangar_sim`'s mecanum base: the wheels had `armature="1.0"`, `kv="50"` → `τ = 0.02 s`. It worked only because the timestep was `0.025 s` (above τ). Standardizing the timestep to `0.003 s` dropped it well below τ, the wheel servos lost authority, the wheels pinned at ~0 rad/s, and the base would not drive (the whole-body `ExecuteTrajectory` then hung forever waiting for the base to reach goal). Fix was `kv: 50 → 500` (τ → 0.002 s, below the new timestep), verified in standalone MuJoCo to be stable across `timestep` 0.025→0.002. Lowering `armature` instead also raises authority but went unstable at small timesteps — prefer raising `kv`. (hangar's scene ultimately runs `timestep="0.008"`, coarser than the 0.003 s the other configs use: at 0.003 the CI runner overran ~47% of sim steps and starved controller mode-switching. `kv=500` keeps the wheels valid there too — τ=0.002 s < 0.008 s.) - -The two coupled numbers live in different files: the actuator `kv` is in the `` blocks of `hangar_sim/description/ur5e_ridgeback.xml` (~line 1709), and the joint `armature` is in the per-wheel includes (`hangar_sim/description/{front,rear}_{left,right}_wheel_link.xml`, the wheel ``). - -Rule of thumb when changing a sim `timestep`: for every velocity actuator, check `armature/kv < timestep`. The symptom of violation is a joint that ignores commands (pinned), not one that oscillates. - -### MuJoCo documentation - -Refer to [docs.picknik.ai](https://docs.picknik.ai) for MuJoCo configuration guides: - -- [Physics Simulator Setup](https://docs.picknik.ai/how_to/configuration_tutorials/migrate_to_mujoco_config/) — creating scene.xml from URDF, camera/sensor setup, mesh conversion, MuJoCo Interactive Viewer -- [config.yaml Reference](https://docs.picknik.ai/how_to/configuration_tutorials/config_yaml_reference/) — `hardware` section for `picknik_mujoco_ros/MujocoSystem` plugin configuration -- [Simulator Keyframes Setup](https://docs.picknik.ai/how_to/configuration_tutorials/create_robot_sim_config/configure_keyframes/) — defining keyframes in scene.xml, `ResetMujocoKeyframe` Behavior -- [Optimize Model Meshes](https://docs.picknik.ai/how_to/configuration_tutorials/optimizing_robot_model_meshes/) — MuJoCo enforces 1-200,000 faces per STL -- [Simulation Troubleshooting](https://docs.picknik.ai/troubleshooting/Simulation%20Troubleshooting/) — physics parameters, grip stability, mass/inertia errors, rendering issues - -## Objective XML Files - -### MetadataFields required for CI - -Every objective XML file must include a `MetadataFields` block inside the `TreeNodesModel` section. The `validate_objectives` CI check will fail without it. - -```xml - - - - - - - - -``` - -- `runnable` — set to `"true"` for top-level objectives the user can run, `"false"` for subtrees only called by other objectives -- `subcategory` — groups the objective in the UI (e.g., `"AprilTag"`, `"Grasping"`, `"MuJoCo Simulation"`) - -### A gripper config needs `close_gripper.xml` / `open_gripper.xml`, or teleop gripper silently fails - -Teleoperation drives the gripper by looking up Objectives named exactly `"Close Gripper"` / `"Open Gripper"` (the `Request Teleoperation` SubTree in moveit_pro core). If a config package doesn't provide those overrides in its `objectives/` directory, the lookup falls back to moveit_pro's core placeholder, which logs `[ERROR] LogMessage Error: This robot configuration does not have a \`Close Gripper\` Objective configured to override this default.` on every BT tick for as long as the control is held, and the gripper never moves — even if some other Objective in the same config already drives the gripper directly via `MoveGripperAction` (that path bypasses the named-Objective lookup entirely). Any new config with a gripper needs both files; see `moveit_pro_kinova_configs/kinova_gen3_base_config/objectives/{close,open}_gripper.xml` for the reference pattern. + +@AGENTS.md diff --git a/src/external_dependencies/clearpath_common/LICENSE b/src/external_dependencies/clearpath_common/LICENSE new file mode 100644 index 000000000..6080cef2f --- /dev/null +++ b/src/external_dependencies/clearpath_common/LICENSE @@ -0,0 +1,28 @@ +BSD 3-Clause License + +Copyright (c) 2023, clearpathrobotics + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/external_dependencies/clearpath_common/UPSTREAM.yaml b/src/external_dependencies/clearpath_common/UPSTREAM.yaml new file mode 100644 index 000000000..b59e2dc50 --- /dev/null +++ b/src/external_dependencies/clearpath_common/UPSTREAM.yaml @@ -0,0 +1,27 @@ +upstream: + repository: https://github.com/clearpathrobotics/clearpath_common.git + commit: 811baf06a32747be0653ea18db2c8868860d193f + branch: jazzy +vendored_paths: + - LICENSE + - clearpath_platform_description/CMakeLists.txt + - clearpath_platform_description/CHANGELOG.rst + - clearpath_platform_description/package.xml + - clearpath_platform_description/urdf + - clearpath_platform_description/meshes +pruned_paths: + - other clearpath_common packages (clearpath_control, clearpath_desktop, clearpath_generic_base, clearpath_platform_msgs, clearpath_sensors, etc.) unused by this workspace + - test and CI configuration files + - clearpath_platform_description/launch (unreferenced anywhere in this workspace) + - clearpath_platform_description/urdf and meshes for every platform other than a300 (a200, j100, r100, w200, dd100, dd150, do100, do150) + - clearpath_platform_description/urdf/links (macro helpers only used by non-a300 platforms) + - clearpath_platform_description/urdf/generic/gazebo.urdf.xacro, empty.urdf.xacro, and drivetrain/control/* (unused drivetrain-control variants for this hardware plugin) + - clearpath_platform_description/urdf/a300 unused attachments (spotlight, top_plate, wireless_charger) and their meshes + - clearpath_platform_description/meshes/a300 unused drivetrain meshes (caster bracket/flange, unused wheel-type meshes) +modified_paths: + - clearpath_platform_description/CMakeLists.txt +notes: + - Byte-identical vendor of the clearpath_platform_description package from clearpath_common except for CMakeLists.txt (see modified_paths); not otherwise modified in this workspace. + - CMakeLists.txt: install(DIRECTORY launch meshes urdf ...) narrowed to install(DIRECTORY meshes urdf ...) since the launch/ directory was pruned (unreferenced anywhere in this workspace); a BSD-licensed file, so no PickNik change notice is required in the file itself. + - Binary files matching workspace Git LFS patterns are stored as LFS objects; checked-out bytes match upstream. + - Pruned to the A300 subset needed by lunar_sim/description/husky_a300_mujoco.xacro at upstream commit 811baf06a32747be0653ea18db2c8868860d193f (unchanged from the prior vendor), computed by running xacro over that entry point against a source-built overlay (not the base image's stale install) and tracing every file it opened plus every mesh referenced in the expanded output; see pruned_paths for what was removed. diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/CHANGELOG.rst b/src/external_dependencies/clearpath_common/clearpath_platform_description/CHANGELOG.rst new file mode 100644 index 000000000..65b857ad8 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/CHANGELOG.rst @@ -0,0 +1,577 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package clearpath_platform_description +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +2.9.15 (2026-08-18) +------------------- + +2.9.14 (2026-08-12) +------------------- +* Update hams.urdf.xacro (`#373 `_) + Fixed the HAMS mount plate rotation by setting parent to hams_base_link instead of default_mount +* Added Github PR templates, precommit and contributing notes. Also, updated CI, updated issue templates and README. (`#372 `_) +* Contributors: Tony Baltovski, thickey-cpr + +2.9.13 (2026-08-07) +------------------- + +2.9.12 (2026-07-24) +------------------- +* Added support for A300 witn indoor tires. (`#362 `_) +* Contributors: Tony Baltovski + +2.9.11 (2026-07-14) +------------------- + +2.9.10 (2026-07-02) +------------------- + +2.9.9 (2026-06-02) +------------------ + +2.9.8 (2026-05-28) +------------------ + +2.9.7 (2026-05-21) +------------------ +* Change a200 and w200 control parameter default from 'diff_fwd' to 'diff_4wd' (`#338 `_) +* Change j100 control parameter from 'diff_fwd' to 'diff_4wd' (`#336 `_) +* Contributors: Steve Macenski, Tony Baltovski + +2.9.6 (2026-04-14) +------------------ + +2.9.5 (2026-03-25) +------------------ +* Re-added vertical off-set for A200 wheels. (`#318 `_) +* Contributors: Tony Baltovski + +2.9.4 (2026-03-13) +------------------ + +2.9.3 (2026-02-26) +------------------ +* Added use_platform_controllers for R100. (`#313 `_) +* Contributors: Tony Baltovski + +2.9.2 (2026-02-26) +------------------ + +2.9.1 (2026-02-11) +------------------ + +2.9.0 (2026-02-11) +------------------ +* Fix: Update cmake version to 3.20 and fixed CI (`#295 `_) + * Update cmake version to 3.20 + * Switch to ubuntu:noble container + * Use updated repos update action + * Install python and pip + * Add apt update + * Update repos update action version +* Contributors: luis-camero + +2.8.5 (2026-01-30) +------------------ + +2.8.4 (2025-12-22) +------------------ + +2.8.3 (2025-12-16) +------------------ +* Add missing Gazebo IMU topic tags for omnidirectional platforms (`#286 `_) + * Add missing Gazebo IMU topic tags for omnidirectional platforms + Fixes missing tag in IMU sensor definitions for R100, DO100, + and DO150 platforms. Without this tag, Gazebo publishes IMU data on + default topic names instead of the namespace-aware topics expected by + ros_gz_bridge, causing IMU data to not reach ROS 2 in simulation. + This issue only affected omnidirectional platforms (mecanum wheel + configurations). Differential drive platforms (J100, W200, DD100, DD150) + were already fixed in v0.2.10. + Tested on R100 platform with Gazebo Harmonic and ROS 2 Jazzy. + IMU data now successfully bridges to /r100_0000/sensors/imu_0/data_raw + and is consumed by ekf_localization_node for sensor fusion. + * Fixed indent. + --------- + Co-authored-by: Michael Wescott +* Replaced ignition references with gz (`#283 `_) +* Fix: Generic (`#280 `_) + * Check for generic before creating drivetrain parameters + * Add teleop_joy default parameter file for generic robot + * Generic teleop values + * Generic control file without a controller + * Generic empty robot + * Update path to cvontrol in empty generic URDF +* Contributors: Roni Kreinin, Tony Baltovski, luis-camero + +2.8.2 (2025-11-06) +------------------ + +2.8.1 (2025-10-28) +------------------ +* Add guard to include zed only once +* Contributors: Luis Camero + +2.8.0 (2025-10-23) +------------------ + +2.7.4 (2025-09-18) +------------------ + +2.7.3 (2025-09-16) +------------------ + +2.7.2 (2025-09-08) +------------------ +* Fix: Use Platform Controllers (`#257 `_) + Add ros2_control only when use_platform_controllers is true +* Contributors: luis-camero + +2.7.1 (2025-09-08) +------------------ +* Fix: Ridgeback rear lights and cover colors (`#254 `_) +* Contributors: SyZbidi + +2.7.0 (2025-08-25) +------------------ +* Drivetrains (`#237 `_) + * Moved meshes to wheels folder + Mecanum drivetrain for do100 + * Generic drivetrain URDFs + * Pass hardware plugin string rather than block + * Added drivetrain control parameters + * Removed 2WD for Dingo-O + * DO150 + * Dingo-D + * R100 + * A300 urdf + * Fixed xacro generate print + * Generic teleop configs per controller + Platform specific teleop only defines velocity limits + * A200 drivetrain changes + * W200 drivetrain urdf + * Updated A300 meshes + Mecanum and caster support + * Separated caster wheel into swivel and wheel links + * Fixed joystick axis mapping + * Updated wheel_separation_multiplier for fwd and rwd on A300 + * URDF structure changes for J100 + Updated A200 and W200 to be 4WD + * Linting +* Add the mounting link for the charger's 2D lidar (`#241 `_) +* Contributors: Chris Iverach-Brereton, Roni Kreinin + +2.6.4 (2025-07-29) +------------------ + +2.6.3 (2025-07-18) +------------------ +* Fix: Disable Platform Controllers in Manipulator Controllers (`#239 `_) + Add flag to disable platform controllers for manipulation controller manager +* Contributors: luis-camero + +2.6.2 (2025-07-14) +------------------ + +2.6.1 (2025-07-07) +------------------ + +2.6.0 (2025-07-04) +------------------ +* Add the third antenna (bluetooth) to the top of the AMP frame (`#231 `_) +* Add A300 AMP attachments (`#200 `_) + * Add meshes, URDFs for the A300 AMP and AMP Observer attachments + * Add spotlight attachment with light plugin for simulation + * Add Seyond description with lower-than-reality resolution & correct FoV for simulation. Fix math for calculating the number of samples + * Add GPS plugins for the Fixposition description +* Contributors: Chris Iverach-Brereton + +2.5.1 (2025-06-17) +------------------ + +2.5.0 (2025-05-29) +------------------ +* Fix: PACS Limits (`#215 `_) +* Contributors: luis-camero + +2.3.2 (2025-04-30) +------------------ + +2.3.1 (2025-04-16) +------------------ +* [clearpath_platform_description] Updated Ridgeback R100 raiser height to 0.07m from 0.055m. (`#201 `_) +* Contributors: Tony Baltovski + +2.3.0 (2025-04-11) +------------------ + +2.2.2 (2025-04-09) +------------------ + +2.2.1 (2025-04-07) +------------------ + +2.2.0 (2025-03-11) +------------------ + +2.1.0 (2025-01-31) +------------------ + +2.0.3 (2025-01-21) +------------------ + +2.0.2 (2025-01-20) +------------------ + +2.0.1 (2025-01-17) +------------------ + +2.0.0 (2025-01-16) +------------------ +* Add the A200 Observer backpack attachment (`#122 `_) + * Add the A200 Observer backpack attachment +* [clearpath_platform_description] Fixed Ridgeback R100 rear light colour. (`#127 `_) +* Add PTZ sim support (`#125 `_) + * Now that axis_camera is released via OSRF, depend on the official package, remove duplicate meshes + * Rename Gazebo plugins for Jazzy compatibility + * Modify Axis camera URDFs to using the axis_camera meshes. This lets us control the gazebo topics. Fix the GZ topic names. Camera data is now visible in the simulation + * Add joint controllers for the pan & tilt actuators. This provides velocity control over the simulated camera +* Add a placeholer URDF for the AMP mount, update meshes (`#123 `_) + * Add a placeholer URDF for the AMP mount; STL & final dimensions to come at a later date + * Default to treaded wheels, flip all the wheel models so the treads visually go in the correct direction + * Update the top plate, chassis, livery, smooth wheel, and status light meshes. Closes CPE87-2102 + * Catch unsupported platforms/accessories in vcan generation tests +* A300 (`#118 `_) + * Add A300 meshes + * Move A300 meshes + * Add A300 URDF + * Added A300 control configuration files + * Remove unstamped parameter, deprecated + * Use clearpath_hardware_interface LynxHardware + --------- + Co-authored-by: Luis Camero +* Add collision tags for MoveIt to avoid these objects (`#108 `_) +* Remove all references to clearpath_platform +* Add collision tags for MoveIt to avoid these objects (`#108 `_) +* Update simulation support for Jazzy (`#117 `_) + * Rename gazebo plugins to use new gz nomenclature instead of ign/ignition. Use stamped velocity messages. + * Restructure the twist_mux yaml file to be more legible, remove the parameters that are overwritten by the launch file anyway + * Put use_stamped back just for the sake of being explicit. Add use_stamped directly to the launch file + * Fix the tests to catch unsupported platforms & accessories +* Rename ign\_ -> gz\_ for gazebo dependencies, comment-out missing jazzy dependencies (for now) +* Contributors: Chris Iverach-Brereton, Luis Camero, Roni Kreinin, Tony Baltovski, luis-camero + +1.0.0 (2024-11-25) +------------------ +* [clearpath_platform_description] Fixed gazebo_controllers param file. (`#107 `_) +* Remove all references to clearpath_platform +* Add collision tags for MoveIt to avoid these objects (`#108 `_) +* [clearpath_platform_description] Fixed gazebo_controllers param file. (`#107 `_) +* Contributors: Luis Camero, Tony Baltovski, luis-camero + +0.3.4 (2024-10-08) +------------------ + +0.3.3 (2024-10-04) +------------------ + +0.3.2 (2024-09-29) +------------------ +* Fix outstanding merge conflict +* Contributors: Luis Camero + +0.3.1 (2024-09-23) +------------------ + +0.3.0 (2024-09-19) +------------------ +* Changes. +* Add PACS mounting locations to Dingo top plate +* Standard mesh names and height parameter for tower shoulder +* R100 attachment rework +* Add dingo top plate URDF +* 0.3.0 Release Candidate with Main Changes (`#81 `_) + * Added tests + * Added action to build from release and source + * Generator linting erros + * Customization linting errors + * Linting + * Fix: Remove IP address from discovery server launch so it listens on all NICs + * Changes. + * 0.2.8 + * Add sysctl config file that changes ipfrag settings to support receiving large messages + * Added Zed URDF + * Added Zed to description generator + * Modified common parameter generation to always flatten + * Changes. + * 0.2.9 + * Missing important remapping to mirror hardware topics + * Added topic to gazebo plugins + * Updated topic names to match gazebo message types + * Topics of simulated onboard sensors + * Realsense adds optical links when in simulator + * Changes. + * 0.2.10 + * Modifies platform param to add GQ7 IMU data to ekf_localization and adds GQ7 URDF + * Fixes styling issues + * Set spawner as super client + * Changes. + * 0.2.11 + * Removed duplicate class + * Use ROS1 covariance values + * Updated renamed macanum drive controller + * Enable gazebo friction plugin on DingoO + --------- + Co-authored-by: Hilary Luo + Co-authored-by: Tony Baltovski + Co-authored-by: Steve Macenski + Co-authored-by: robbiefish +* Set PumaHardware in R100 +* URDF Mecanum Updates +* Switched to puma_hardware +* DingoD 1.5 Puma Hardware +* 0.2.8 +* Changes. +* 0.2.7 +* Changes. +* All Warthog attachments default to 0 +* Aligned attachment links +* Added argument to prevent platform hardware from loading +* Define inertial box xacro in the arm plate urdf to be used by other platforms +* Added argument to toggle manipulator controllers +* 0.2.6 +* Changes. +* 0.2.5 +* Changes. +* switch finding meshes to use the package:// command +* 0.2.4 +* Changes. +* 0.2.3 +* Changes. +* 0.2.2 +* Changes.xx +* 0.2.1 +* Changes. +* PACS top plate was not centred with generated frames +* Added Ridgeback attachments +* Added do150 as copy of do100 +* R100 mecanum +* Only load mecanum wheels in simulation +* Removed wheel slip plugin +* Dingo O mecanum wheels +* Fixed rocker and small covariance +* Initial Ridgeback +* Initial add do100 +* Contributors: Hilary Luo, Luis Camero, Tony Baltovski, luis-camero + +* Add PACS mounting locations to Dingo top plate +* Standard mesh names and height parameter for tower shoulder +* R100 attachment rework +* Add dingo top plate URDF +* Added tests +* Added action to build from release and source +* Generator linting erros +* Customization linting errors +* Linting +* Fix: Remove IP address from discovery server launch so it listens on all NICs +* Add sysctl config file that changes ipfrag settings to support receiving large messages +* Added Zed URDF +* Added Zed to description generator +* Modified common parameter generation to always flatten +* Missing important remapping to mirror hardware topics +* Added topic to gazebo plugins +* Updated topic names to match gazebo message types +* Topics of simulated onboard sensors +* Realsense adds optical links when in simulator +* Modifies platform param to add GQ7 IMU data to ekf_localization and adds GQ7 URDF +* Fixes styling issues +* Set spawner as super client +* Removed duplicate class +* Use ROS1 covariance values +* Updated renamed macanum drive controller +* Enable gazebo friction plugin on DingoO +* Contributors: Hilary Luo, Luis Camero, Tony Baltovski, luis-camero + +0.2.11 (2024-08-08) +------------------- + +0.2.10 (2024-07-25) +------------------- +* Topics of simulated onboard sensors +* Missing important remapping to mirror hardware topics +* Contributors: Luis Camero, Steve Macenski + +0.2.9 (2024-05-28) +------------------ + +0.2.8 (2024-05-14) +------------------ + +0.2.7 (2024-04-08) +------------------ +* All Warthog attachments default to 0 +* Aligned attachment links +* Contributors: Luis Camero + +0.2.6 (2024-01-18) +------------------ + +0.2.5 (2024-01-15) +------------------ +* switch finding meshes to use the package:// command +* Contributors: Hilary Luo + +0.2.4 (2024-01-11) +------------------ + +0.2.3 (2024-01-08) +------------------ + +0.2.2 (2024-01-04) +------------------ + +0.2.1 (2023-12-21) +------------------ +* PACS top plate was not centred with generated frames +* Contributors: Hilary Luo + +0.2.0 (2023-12-08) +------------------ +* Added W200 Hardware interface. +* Use path substitution +* Removed testing visual for track virtual wheel +* Added wheel parameters to all robot +* Color and wheel are now parameters +* Updated collision model +* Added w200 tracks +* First pass +* Removed serial from URDF +* Accurate mounts shift +* Added DD150 +* Re-add caster +* Added default mount +* Removed friction on rear_caster +* Added dd100 +* Removed transmission and cleaned up URDF +* Removed erroneaous change +* Removed print +* Updated gazebo simulation +* Changed default parent to default_mount +* Set color appropriately +* Arm Mount at base +* Mounts re-numbering +* Formatted W200 attachment URDF +* Changed top_chassis_link to default_mount +* Changed mid_mount to default_mount +* Renamed sensor_arch namespace +* Changed sensor arch parent +* Added mid_mount +* Origin to bumper +* Added to materials +* Attachment URDF match changes +* Add gazebo controller to URDF without macro +* Moved gazebo controller to common +* Fixes to control parameters and naming +* Base diff drive hardware and hardware interface class + J100 and W200 inherit from diff drive + Moved each platform into its own folder +* Fixed package names and added w200 urdf macro +* Initial Warthog addition +* Contributors: Hilary Luo, Luis Camero, Roni Kreinin, Tony Baltovski + +0.1.3 (2023-11-03) +------------------ +* [clearpath_platform_description] Removed un-used ros2_control params. +* Contributors: Tony Baltovski + +0.1.2 (2023-10-02) +------------------ + +0.1.1 (2023-08-25) +------------------ +* Update gps and imu names to fix generated topic +* Added Ignition frame names to simulate the real robot +* Contributors: Hilary Luo + +0.1.0 (2023-08-17) +------------------ +* Added fenders for J100 +* Contributors: Roni Kreinin + +0.0.9 (2023-07-31) +------------------ + +0.0.8 (2023-07-24) +------------------ +* Updated J100 imu and navsat links +* Contributors: Roni Kreinin + +0.0.7 (2023-07-19) +------------------ +* Renamed URDF and meshes directories +* Contributors: Luis Camero + +0.0.6 (2023-07-13) +------------------ + +0.0.5 (2023-07-12) +------------------ +* [clearpath_platform_description] Fixed unused dependency in CMakeLists.txt. +* Contributors: Tony Baltovski + +0.0.4 (2023-07-07) +------------------ + +0.0.3 (2023-07-05) +------------------ +* Updated husky track value +* Wheel slip plugin + Significantly improved jackal odom in sim +* Contributors: Roni Kreinin + +0.0.2 (2023-07-04) +------------------ + +0.0.1 (2023-06-21) +------------------ +* Updated launch writer make writing different object types easier + Localization parameter fixes + Updated gazebo wheel friction +* Added namespacing support +* Increased J100 navsat update rate to 10hz +* Jackal sim support +* Added GPS + Added realsense gazebo parameters +* Added gazebo IMU plugin +* use_sim_time support + Added lidar gazebo plugins +* Sim fixes +* Fixed dependencies +* Moved description generator to clearpath_generators + Added accessory urdf's + Use launch arg for choosing controller +* [clearpath_platform_description] Made the serial_port an arg for the a200 and reduced polling timeout. +* Moved IMU filter to platform launch + Moved localization into a separate launch file + Updated decoration urdfs + Added structure urdf +* Remapped topics to match API +* Bishop sensors/mounts +* Added velodyne +* [clearpath_platform_description] Fixed hardware plugin for A200. +* control launch fixes + Added ark enclosure for j100 top_plate +* J100 support +* Standard urdf and yaml file name and path + Fixed spacing in urdfs +* Description classes +* PACS mounts + Common PACS Riser + Hokuyo and novatel description fixes +* Initial commit with platform, decoration and mounts generating +* [clearpath_platform_description] Fixed mesh paths. +* [clearpath_sensors_description] Moved Novatel and Hokuyo into sensors from J100. +* [clearpath_platform_description] Renamed all dashes to underscores. +* [clearpath_platform_description] Fixed incorrect path. +* Move clearpath_description to clearpath_platform_description and switched robot names to robot model number. +* Contributors: Roni Kreinin, Tony Baltovski diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/CMakeLists.txt b/src/external_dependencies/clearpath_common/clearpath_platform_description/CMakeLists.txt new file mode 100644 index 000000000..cdde832b7 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.20) +project(clearpath_platform_description) + +find_package(ament_cmake REQUIRED) + +install(DIRECTORY meshes urdf + DESTINATION share/${PROJECT_NAME} +) + +ament_package() diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper.dae b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper.dae new file mode 100644 index 000000000..4618dc917 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f74541357f2bedadc12ea6879298de54c4002588c6424cef0d35746671eab21d +size 559165 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper_collision.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper_collision.stl new file mode 100644 index 000000000..acdc7126d --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/bumper_collision.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf74818742cc1842bb79a186c70358294facafc87ea3b4c2c93b39077ce4f431 +size 5384 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl new file mode 100644 index 000000000..bb1729b0d --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_access_panels.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e81ec2363d497e33997852b4b8190eb81b7f5af118fd2aa6962d8b5afc886825 +size 2884 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_arch.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_arch.stl new file mode 100644 index 000000000..2a847970c --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_arch.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26cfc49f349c499b8bbdb6b4794209fc3ae1aa6cfeb38c551c9831c31fb93607 +size 5884 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_bluetooth_antenna.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_bluetooth_antenna.stl new file mode 100644 index 000000000..42c5fccad --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_bluetooth_antenna.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13ee697b94a8325d53721aa88d49975fbbf3ce422f18134421c5c0133eb77c55 +size 7284 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_cellular_antenna.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_cellular_antenna.stl new file mode 100644 index 000000000..d1d65178d --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_cellular_antenna.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cb3edd0fff5707097058d4a00c01e645426f11af4f5f2fbedd3085cf3898d75 +size 7884 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl new file mode 100644 index 000000000..4de39e47c --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_enclosure.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf24122c92bb95906a163857663b787b0d5afc147f430ca652acbbcb57054c21 +size 7084 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_wifi_antennas.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_wifi_antennas.stl new file mode 100644 index 000000000..24f459965 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/attachments/observer_wifi_antennas.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13f1adb037b94e704772d4b706d8961464518d2b8e9bb0c172d6f41221d0d88b +size 14484 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis.dae b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis.dae new file mode 100644 index 000000000..309c82e1e --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d031d91359749cc9b62d76d7d8a96cdb3d87f733a7e79173570b879c68ccf3f9 +size 3120269 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis_collision.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis_collision.stl new file mode 100644 index 000000000..5efb23108 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/chassis_collision.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:914da37ef8a0611ffd3e2a1a3892bb5b9dc47e00442de104b0d760401cfb14c5 +size 9884 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/motor.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/motor.stl new file mode 100644 index 000000000..0cce2f165 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/motor.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a447d5095cb323fca92e8ad68632ffff36cf5677a81c610d41aab2893e4c83e +size 2330284 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_beam.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_beam.stl new file mode 100644 index 000000000..d68283e2d --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_beam.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a6697213e1e8ac9de765d528027a41718536729f471ab6f4d38e92ebf6c9aea +size 150284 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_spacer.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_spacer.stl new file mode 100644 index 000000000..b014864c7 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/suspension_spacer.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf1ad7153579a53c5e98905ac0011e1b92819bbcaa3efce1968e2bdce04092ca +size 37484 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_left.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_left.stl new file mode 100644 index 000000000..55c827a9a --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_left.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23d474fc7826e41737b065d5f5d4674c88b910e764634e62b079835e3882bbae +size 4781384 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_right.stl b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_right.stl new file mode 100644 index 000000000..8482f9cd1 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/drivetrain/wheels/outdoor_right.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf7b48da8da6338b1c178f31e194f469d05159e2012aef4a063491b258cc7e08 +size 4781384 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/livery.dae b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/livery.dae new file mode 100644 index 000000000..7f2e6be7a --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/livery.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:542c92dc19d027f1e29050d1fdf29451d065416d8cb069b5066b16b3aa6f8bce +size 609709 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/status_lights.dae b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/status_lights.dae new file mode 100644 index 000000000..7dba18552 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/meshes/a300/status_lights.dae @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:999ec044492ad9ed2edf5b4855eb64a4220b9cf2fbd812a32ab1d118fdb22adf +size 87672 diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/package.xml b/src/external_dependencies/clearpath_common/clearpath_platform_description/package.xml new file mode 100644 index 000000000..c173a7ab3 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/package.xml @@ -0,0 +1,31 @@ + + + + clearpath_platform_description + 2.9.15 + Clearpath Platform URDF descriptions + + Ryan Gariepy + Prasenjit Mukherjee + Mike Purvis + Paul Bovbel + Luis Camero + Roni Kreinin + Tony Baltovski + + Luis Camero + Roni Kreinin + Tony Baltovski + + BSD + + ament_cmake + + robot_state_publisher + urdf + xacro + + + ament_cmake + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/a300.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/a300.urdf.xacro new file mode 100644 index 000000000..ff1823986 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/a300.urdf.xacro @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_enclosure.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_enclosure.urdf.xacro new file mode 100644 index 000000000..47105c33e --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_enclosure.urdf.xacro @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + Gazebo/Black + + + + + + + + + + + + + + + + + + + + + + + Gazebo/DarkYellow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_sensor_arch.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_sensor_arch.urdf.xacro new file mode 100644 index 000000000..b1b646dae --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/amp_sensor_arch.urdf.xacro @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + Gazebo/DarkYellow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/bumper.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/bumper.urdf.xacro new file mode 100644 index 000000000..71c3fb86f --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/attachments/bumper.urdf.xacro @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/caster_flange.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/caster_flange.urdf.xacro new file mode 100644 index 000000000..2700dde7f --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/caster_flange.urdf.xacro @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/motor.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/motor.urdf.xacro new file mode 100644 index 000000000..56d048bcd --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/motor.urdf.xacro @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/suspension_beam.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/suspension_beam.urdf.xacro new file mode 100644 index 000000000..11ec391c4 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/suspension_beam.urdf.xacro @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels.urdf.xacro new file mode 100644 index 000000000..3e93131f5 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels.urdf.xacro @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/caster.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/caster.urdf.xacro new file mode 100644 index 000000000..aa4f0a0c4 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/caster.urdf.xacro @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.5 + + + + + + + + + + + + + + + + + + + + + + + + + false + 1000000.0 + 100.0 + 0.05 + 0.05 + 1 0 0 + 0.00 + 1 + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/indoor.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/indoor.urdf.xacro new file mode 100644 index 000000000..d7d22d059 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/indoor.urdf.xacro @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0 + 1.0 + 113 + ${a300_indoor_wheel_radius} + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/mecanum.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/mecanum.urdf.xacro new file mode 100644 index 000000000..b508f18bb --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/mecanum.urdf.xacro @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.0 + 1.0 + 113 + ${a300_mecanum_wheel_radius} + + + + + + + + + + 1.0 + 0.0 + 1 ${fdir_side} 0 + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/outdoor.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/outdoor.urdf.xacro new file mode 100644 index 000000000..02217442b --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/a300/drivetrain/wheels/outdoor.urdf.xacro @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.75 + 0.75 + 113 + ${a300_outdoor_wheel_radius} + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/common.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/common.urdf.xacro new file mode 100644 index 000000000..9dc28ea12 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/common.urdf.xacro @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/generic/drivetrain/drivetrain.urdf.xacro b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/generic/drivetrain/drivetrain.urdf.xacro new file mode 100644 index 000000000..3d15a0540 --- /dev/null +++ b/src/external_dependencies/clearpath_common/clearpath_platform_description/urdf/generic/drivetrain/drivetrain.urdf.xacro @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/hangar_sim/description/hangar_scene.xml b/src/hangar_sim/description/hangar_scene.xml index e8950f00f..290545b36 100644 --- a/src/hangar_sim/description/hangar_scene.xml +++ b/src/hangar_sim/description/hangar_scene.xml @@ -11,7 +11,7 @@ which starves controller mode-switching and fails most motion objectives. 0.008 keeps the runner at-or-under realtime while staying finer than the original 0.025. Wheel velocity actuators still hold: - armature/kv = 1.0/500 = 0.002 s < 0.008 s (see CLAUDE.md). --> + armature/kv = 1.0/500 = 0.002 s < 0.008 s (see AGENTS.md). --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lunar_sim/config/moveit/joint_jog.yaml b/src/lunar_sim/config/moveit/joint_jog.yaml new file mode 100644 index 000000000..f9145b019 --- /dev/null +++ b/src/lunar_sim/config/moveit/joint_jog.yaml @@ -0,0 +1,8 @@ +# diff_drive_controller is a kinematics controller, not a per-joint velocity controller, so the +# "base" group's wheel joints are not joint-joggable - the base is only ever driven by the +# `Dead Reckon Square` objective's open-loop /cmd_vel commands. +# An empty planning_groups/controllers pair crashes MoveIt Pro's launch (evaluates to an untyped +# empty parameter tuple), so this points at "base" inertly instead - Joint Jog is never invoked +# for this robot. +planning_groups: ["base"] +controllers: ["platform_velocity_controller"] diff --git a/src/lunar_sim/config/moveit/kinematics.yaml b/src/lunar_sim/config/moveit/kinematics.yaml new file mode 100644 index 000000000..f5d1cde17 --- /dev/null +++ b/src/lunar_sim/config/moveit/kinematics.yaml @@ -0,0 +1,2 @@ +# The "base" group has no IK-capable chain (wheel joints only), so no solver is configured. +{} diff --git a/src/lunar_sim/config/moveit/pose_jog.yaml b/src/lunar_sim/config/moveit/pose_jog.yaml new file mode 100644 index 000000000..2f8ee5aa6 --- /dev/null +++ b/src/lunar_sim/config/moveit/pose_jog.yaml @@ -0,0 +1,7 @@ +# The base has no arm and no IK-capable group, so Cartesian pose jogging does not apply here - +# the base is only ever driven by the `Dead Reckon Square` objective's open-loop /cmd_vel +# commands. An empty planning_groups/controllers pair crashes MoveIt Pro's launch (evaluates to +# an untyped empty parameter tuple), so this points at "base" inertly instead - Pose Jog is never +# invoked for this robot. +planning_groups: ["base"] +controllers: ["platform_velocity_controller"] diff --git a/src/lunar_sim/description/assets/bumper.obj b/src/lunar_sim/description/assets/bumper.obj new file mode 100644 index 000000000..c6c462e0c --- /dev/null +++ b/src/lunar_sim/description/assets/bumper.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d86dfe4ca853ffabbc4e6940084b45a02d5465094cbba1933ace0bac24a63113 +size 203465 diff --git a/src/lunar_sim/description/assets/chassis.obj b/src/lunar_sim/description/assets/chassis.obj new file mode 100644 index 000000000..639df4aa9 --- /dev/null +++ b/src/lunar_sim/description/assets/chassis.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cd20d7234c8f145e02a033f297a22fca016c07a5cd9921daa0bcd5765f1b956 +size 1130544 diff --git a/src/lunar_sim/description/assets/chassis_collision.stl b/src/lunar_sim/description/assets/chassis_collision.stl new file mode 100644 index 000000000..5efb23108 --- /dev/null +++ b/src/lunar_sim/description/assets/chassis_collision.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:914da37ef8a0611ffd3e2a1a3892bb5b9dc47e00442de104b0d760401cfb14c5 +size 9884 diff --git a/src/lunar_sim/description/assets/ground_colormap_provenance.txt b/src/lunar_sim/description/assets/ground_colormap_provenance.txt new file mode 100644 index 000000000..384a73d4f --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_provenance.txt @@ -0,0 +1,13 @@ +canvas 8241x8241px, plane 20.00m x 20.00m, 412.1 px/m (2.43 mm/px) +64x64 cells, 9 distinct source frames, 8 dihedral transforms each, PHYS_TILE_M=1.2, seed=869, contrast-equalized to AS15-86-11671, jittered 0.25-0.4 tile-widths off grid (v2) +AS15-86-11671: native crop ~0.74m, placed at 1.2m (upscale 1.63x) +AS15-87-11766: native crop ~0.56m, placed at 1.2m (upscale 2.16x) +AS15-87-11777: native crop ~0.58m, placed at 1.2m (upscale 2.08x) +AS17-146-22370: native crop ~0.53m, placed at 1.2m (upscale 2.25x) +as17-137-20963: native crop ~0.55m, placed at 1.2m (upscale 2.16x) +as17-137-20981: native crop ~0.78m, placed at 1.2m (upscale 1.54x) +as17-137-20984: native crop ~0.60m, placed at 1.2m (upscale 2.01x) +as17-138-21179: native crop ~0.58m, placed at 1.2m (upscale 2.09x) +as17-142-21706: native crop ~0.50m, placed at 1.2m (upscale 2.40x) +craterlets: 216, rocks: 504 +Source frames: NASA Apollo 15/17 Hasselblad surface photos, public domain NASA/JSC, archive.org (collection johnsonspacecentermediaarchive) - cropped to a square clear of the gnomon and any hardware (bootprints/rover tracks left in); committed under assets/ground_colormap_sources/. Excluded as near-duplicate content (same sample/station documented by a second magazine/camera as an already-selected frame): AS15-87-11769, as17-138-21049, as17-142-21699. Rejected as boulder/rock-dominated or for people/hardware in frame: AS15-86-11659, as17-134-20403, as17-137-20901, as17-137-20913, as17-140-21411, as17-146-22336, AS15-87-11778, as17-137-20972, as17-138-21030, as16-117-18825, as16-117-18826, as17-145-22157, AS12-48-7107/7128. diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/AS15-86-11671.png b/src/lunar_sim/description/assets/ground_colormap_sources/AS15-86-11671.png new file mode 100644 index 000000000..a20ea391e --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/AS15-86-11671.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7705afd72a2eddc8b3b91dcb1d2d11b932eee22548e67d6db80e155a33eb013d +size 3866447 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11766.png b/src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11766.png new file mode 100644 index 000000000..8857dd08b --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11766.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce121dcc9c6dfba35dc23027ee9cd901eb29089d3967cfece933ed2b3c94da45 +size 1922470 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11777.png b/src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11777.png new file mode 100644 index 000000000..af323e0a2 --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/AS15-87-11777.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78292239db45d8ecf07e1ef5cde348fddd9c2d0eddb9f15bafb86091daa00cc9 +size 2100382 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/AS17-146-22370.png b/src/lunar_sim/description/assets/ground_colormap_sources/AS17-146-22370.png new file mode 100644 index 000000000..692925ed1 --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/AS17-146-22370.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebf4e2f9d7ee6482cf432def37bd0b0455d2fe16058c939c1222da1d20752dc3 +size 1658043 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20963.png b/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20963.png new file mode 100644 index 000000000..9cfa31504 --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20963.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d22c3593b6a996124fe3b0b9f32397ee8720bd1bf70469a3affd3f69df78d650 +size 2642054 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20981.png b/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20981.png new file mode 100644 index 000000000..9c96aec48 --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20981.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a936cf05a72baf87764bdda19f5d2f06936450cf4638973912633e5988ecdcb +size 4682221 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20984.png b/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20984.png new file mode 100644 index 000000000..aba8b3a59 --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/as17-137-20984.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a35a5bbd9093e6d64d320fb35cbc1e0219959dbdfd8145f8210eab8fe0de4db9 +size 2821339 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/as17-138-21179.png b/src/lunar_sim/description/assets/ground_colormap_sources/as17-138-21179.png new file mode 100644 index 000000000..499fc71a7 --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/as17-138-21179.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e062e4cfca0c5f975eddc470314ce8ecbe9d3d976e8f00d239aced6eed25bb5 +size 1758562 diff --git a/src/lunar_sim/description/assets/ground_colormap_sources/as17-142-21706.png b/src/lunar_sim/description/assets/ground_colormap_sources/as17-142-21706.png new file mode 100644 index 000000000..0639ed46d --- /dev/null +++ b/src/lunar_sim/description/assets/ground_colormap_sources/as17-142-21706.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f35067f4e6dd6cdb514f4b7279c5ed0da01884249091d7030f6d49c522947467 +size 1167446 diff --git a/src/lunar_sim/description/assets/livery.obj b/src/lunar_sim/description/assets/livery.obj new file mode 100644 index 000000000..7034dc283 --- /dev/null +++ b/src/lunar_sim/description/assets/livery.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d10b8fcba9271001d6b6b4fc8493d4fbea627aa4e6e84f243a02ebfa21b00c5f +size 178831 diff --git a/src/lunar_sim/description/assets/lunar_hfield.png b/src/lunar_sim/description/assets/lunar_hfield.png new file mode 100644 index 000000000..99c598a1e --- /dev/null +++ b/src/lunar_sim/description/assets/lunar_hfield.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:870308e453f8b8f03783fd2d785b2bc8fb19417021f8fa1eae5671b43d599629 +size 252367 diff --git a/src/lunar_sim/description/assets/lunar_regolith_untiled.png b/src/lunar_sim/description/assets/lunar_regolith_untiled.png new file mode 100644 index 000000000..b7def1347 --- /dev/null +++ b/src/lunar_sim/description/assets/lunar_regolith_untiled.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:425a736da02fe6770cb6452b1bf2cd4f047d2255b50e15a0a4016a03370d938c +size 81151575 diff --git a/src/lunar_sim/description/assets/observer_access_panels.stl b/src/lunar_sim/description/assets/observer_access_panels.stl new file mode 100644 index 000000000..bb1729b0d --- /dev/null +++ b/src/lunar_sim/description/assets/observer_access_panels.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e81ec2363d497e33997852b4b8190eb81b7f5af118fd2aa6962d8b5afc886825 +size 2884 diff --git a/src/lunar_sim/description/assets/observer_arch.stl b/src/lunar_sim/description/assets/observer_arch.stl new file mode 100644 index 000000000..2a847970c --- /dev/null +++ b/src/lunar_sim/description/assets/observer_arch.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26cfc49f349c499b8bbdb6b4794209fc3ae1aa6cfeb38c551c9831c31fb93607 +size 5884 diff --git a/src/lunar_sim/description/assets/observer_enclosure.stl b/src/lunar_sim/description/assets/observer_enclosure.stl new file mode 100644 index 000000000..4de39e47c --- /dev/null +++ b/src/lunar_sim/description/assets/observer_enclosure.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf24122c92bb95906a163857663b787b0d5afc147f430ca652acbbcb57054c21 +size 7084 diff --git a/src/lunar_sim/description/assets/outdoor_left.stl b/src/lunar_sim/description/assets/outdoor_left.stl new file mode 100644 index 000000000..55c827a9a --- /dev/null +++ b/src/lunar_sim/description/assets/outdoor_left.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23d474fc7826e41737b065d5f5d4674c88b910e764634e62b079835e3882bbae +size 4781384 diff --git a/src/lunar_sim/description/assets/outdoor_right.stl b/src/lunar_sim/description/assets/outdoor_right.stl new file mode 100644 index 000000000..8482f9cd1 --- /dev/null +++ b/src/lunar_sim/description/assets/outdoor_right.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf7b48da8da6338b1c178f31e194f469d05159e2012aef4a063491b258cc7e08 +size 4781384 diff --git a/src/lunar_sim/description/assets/rocks/rock_0.stl b/src/lunar_sim/description/assets/rocks/rock_0.stl new file mode 100644 index 000000000..d101fd2ae --- /dev/null +++ b/src/lunar_sim/description/assets/rocks/rock_0.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f683f1113fc858f46cee064358ce4f4f9ef8f459582ac189055dcaabfd2667b +size 16084 diff --git a/src/lunar_sim/description/assets/rocks/rock_1.stl b/src/lunar_sim/description/assets/rocks/rock_1.stl new file mode 100644 index 000000000..5b94ef8a5 --- /dev/null +++ b/src/lunar_sim/description/assets/rocks/rock_1.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8ef2ffb2f8d4a53494449b00a9606aae1987e552439391f75c1cb604345f04f +size 16084 diff --git a/src/lunar_sim/description/assets/rocks/rock_2.stl b/src/lunar_sim/description/assets/rocks/rock_2.stl new file mode 100644 index 000000000..1f9202bba --- /dev/null +++ b/src/lunar_sim/description/assets/rocks/rock_2.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:043a5c12b16df90ee06b033fb854af3b81ae53915ee8fe0a104038825c3dc42c +size 16084 diff --git a/src/lunar_sim/description/assets/rocks/rock_3.stl b/src/lunar_sim/description/assets/rocks/rock_3.stl new file mode 100644 index 000000000..58fb53d29 --- /dev/null +++ b/src/lunar_sim/description/assets/rocks/rock_3.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:706627870846a0c5fb0010b2a6a70b2d1bcb359801daa3049efdf915a4ca181a +size 16084 diff --git a/src/lunar_sim/description/assets/rocks/rock_4.stl b/src/lunar_sim/description/assets/rocks/rock_4.stl new file mode 100644 index 000000000..269c2edb2 --- /dev/null +++ b/src/lunar_sim/description/assets/rocks/rock_4.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c12a754fa56dc426f5c308d05be6fd744a60a201ebdf7c82e9b74ebd96d87706 +size 16084 diff --git a/src/lunar_sim/description/assets/rocks/rock_5.stl b/src/lunar_sim/description/assets/rocks/rock_5.stl new file mode 100644 index 000000000..989d6d226 --- /dev/null +++ b/src/lunar_sim/description/assets/rocks/rock_5.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89a506260d81d109cf2f2e7b05069603b0960cee9f9e373a0bdf7c030b28ce57 +size 16084 diff --git a/src/lunar_sim/description/assets/status_lights.obj b/src/lunar_sim/description/assets/status_lights.obj new file mode 100644 index 000000000..f796e7eef --- /dev/null +++ b/src/lunar_sim/description/assets/status_lights.obj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b282b70566d61805d6f9911dc4c29458bfbefd6e0809dee8984af8e16465de9 +size 30320 diff --git a/src/lunar_sim/description/front_left_wheel_link.xml b/src/lunar_sim/description/front_left_wheel_link.xml new file mode 100644 index 000000000..0c441e50f --- /dev/null +++ b/src/lunar_sim/description/front_left_wheel_link.xml @@ -0,0 +1,33 @@ + + + + + + + diff --git a/src/lunar_sim/description/front_right_wheel_link.xml b/src/lunar_sim/description/front_right_wheel_link.xml new file mode 100644 index 000000000..1eeafed07 --- /dev/null +++ b/src/lunar_sim/description/front_right_wheel_link.xml @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/src/lunar_sim/description/generate_ground_colormap.py b/src/lunar_sim/description/generate_ground_colormap.py new file mode 100644 index 000000000..a1457a6e2 --- /dev/null +++ b/src/lunar_sim/description/generate_ground_colormap.py @@ -0,0 +1,496 @@ +#!/usr/bin/env python3 +"""Offline, seedable generator for lunar_sim's ground colour map (diffuse texture). + +Not run at simulation time. Run manually and commit its output: + - assets/lunar_regolith_untiled.png the colour map husky_scene.xml's loads + +Nine real Apollo Hasselblad frames (cropped, cleaned, committed under +assets/ground_colormap_sources/ - see provenance.txt written alongside the output) are randomly +placed, rotated (0/90/180/270deg) and mirrored across a grid covering the whole ground plane, each +placement jittered off the grid and its edges feathered into its neighbours, so no periodic tile +pitch exists anywhere on the plane (verified by verify_ground_colormap.py's autocorrelation/ +template-match check) - unlike the single-photo texrepeat="0.3 0.3" tiling it replaces, which shows +an obvious repeating grid. + +v2: each placed frame's contrast is additionally equalized to one global reference (see +equalize_contrast()) before placement - v1 matched every frame's mean but not its contrast, and the +nine source frames vary a lot in dynamic range (std 0.026-0.193 after mean-matching alone), so v1's +placements formed a visible light/dark patchwork at the frame pitch even though no single frame +repeated. Placements are also jittered off the nominal grid (see JITTER_FRAC_*) so there's no +regular spacing for the eye to lock onto, on top of the random rotation/mirroring. + +Usage: python3 generate_ground_colormap.py [--plane-m 20] [--px-per-m 410] [--seed 869] + +After regenerating, update husky_scene.xml's if the output filename changed. +With texuniform="true", texrepeat is repeats per *metre* of world space, so drawing this map +exactly once over the plane needs texrepeat = 1/--plane-m on both axes ("0.05 0.05" at the +default 20 m) - recompute it there if --plane-m changes. +""" +import argparse +from pathlib import Path + +import numpy as np +from PIL import Image, ImageFilter +from scipy.ndimage import uniform_filter1d + +HERE = Path(__file__).resolve().parent +ASSETS = HERE / "assets" +SOURCES = ASSETS / "ground_colormap_sources" + +# Each source frame is resampled to represent this many metres of ground, independent of the +# final plane size/resolution - keeps per-frame upscale factor (see TILES below) constant as +# --plane-m/--px-per-m change. +PHYS_TILE_M = 1.2 +SOURCE_TILE_PX = ( + 2048 # working resolution per source frame before placement/downsampling +) +SEAM_FRAC = ( + 320 / 2048 +) # feather zone as a fraction of tile size, matches prior single-plane build +FULL_FRAME_M = 1.75 # native ground coverage of a full (uncropped) Hasselblad frame at ~0.4m altitude + +CRATER_MIN_SEP_M = 0.4 +ROCK_MIN_SEP_M = 0.15 + +# v2: contrast equalization - one of the nine frames is the "global regolith reference" every +# other frame's contrast (std, around the shared 0.49 mean) is matched to, so no placement reads +# brighter/flatter or punchier than its neighbours regardless of the source photo's own exposure. +REFERENCE_TILE_NAME = "AS15-86-11671" + +# v2: break the placement pitch - each cell's nominal grid position is jittered by a random offset +# of this many tile-widths (magnitude only; sign is random), independently in x and y. The nominal +# grid step is shrunk (see GRID_DENSITY) so tiles still overlap enough after the worst-case jitter +# that no gap in canvas coverage is possible. +JITTER_FRAC_MIN = 0.25 +JITTER_FRAC_MAX = 0.40 +# Nominal step as a fraction of tile_px - small enough that the ~(1/GRID_DENSITY)^2 nominal overlap +# multiplicity survives jitter this large without opening a coverage gap (checked empirically +# across seeds; 0.4 leaves real gaps, 0.3 is the first safe value, 0.25 keeps a comfortable +# margin). build_mosaic()'s min_coverage check below catches a regression if this ever needs +# retuning (bigger JITTER_FRAC_MAX, smaller tile_px, etc). +GRID_DENSITY = 0.25 +# Direction a baked craterlet rim / rock cap is lit from, as an offset in this map's own array +# axes - (axis 0 = image row, axis 1 = image column), the order _local_patch returns. Derived from +# husky_scene.xml's (~74deg elevation), which is the direction light +# travels, so the sun sits toward world (+x, -y) and that is the side of a bump that lights up. +# MuJoCo maps this texture's image column onto world +x and its image row onto world -y (verified +# on both plane and hfield geoms by rendering a quadrant-coded texture over the ground), so world +# (+x, -y) is +column and +row: both components positive, i.e. down-and-right in image pixels. +SUN_DIR_PX = np.array([0.2, 0.2]) +SUN_DIR_PX = SUN_DIR_PX / np.linalg.norm(SUN_DIR_PX) + +# (name, source file, crop's own native full-frame width in px, reseau-line threshold or None) +TILES = [ + ("AS15-86-11671", "AS15-86-11671.png", 3920, None), + ("AS15-87-11766", "AS15-87-11766.png", 3934, 4.0), + ("AS15-87-11777", "AS15-87-11777.png", 3936, 4.0), + ("AS17-146-22370", "AS17-146-22370.png", 4104, 4.0), + ("as17-137-20963", "as17-137-20963.png", 4103, 4.0), + ("as17-137-20981", "as17-137-20981.png", 4091, 4.0), + ("as17-137-20984", "as17-137-20984.png", 4104, 4.0), + ("as17-138-21179", "as17-138-21179.png", 4032, 4.0), + ("as17-142-21706", "as17-142-21706.png", 4033, 4.0), +] + + +# --- Hasselblad reseau-plate fiducial line removal (same technique as inpaint_reseau.py) --- + + +def detect_lines(gray, thresh_std): + col_med, row_med = np.median(gray, axis=0), np.median(gray, axis=1) + col_resid = col_med - uniform_filter1d(col_med, size=25, mode="nearest") + row_resid = row_med - uniform_filter1d(row_med, size=25, mode="nearest") + cols = np.where(np.abs(col_resid) > col_resid.std() * thresh_std)[0] + rows = np.where(np.abs(row_resid) > row_resid.std() * thresh_std)[0] + return cols, rows + + +def _group(indices, margin, limit): + if len(indices) == 0: + return [] + bands = [] + lo = hi = indices[0] + for i in indices[1:]: + if i - hi <= margin * 2: + hi = i + else: + bands.append((lo, hi)) + lo = hi = i + bands.append((lo, hi)) + return [(max(lo - margin, 0), min(hi + margin, limit - 1)) for lo, hi in bands] + + +def shift_fill_columns(arr, cols, margin=5): + w = arr.shape[1] + out = arr.copy() + for c0, c1 in _group(cols, margin, w): + width = c1 - c0 + 1 + src0, src1 = c0 - width, c0 + if src0 < 0: + src0, src1 = c1 + 1, c1 + 1 + width + out[:, c0 : c1 + 1] = arr[:, src0:src1] + return out + + +def shift_fill_rows(arr, rows, margin=5): + h = arr.shape[0] + out = arr.copy() + for r0, r1 in _group(rows, margin, h): + height = r1 - r0 + 1 + src0, src1 = r0 - height, r0 + if src0 < 0: + src0, src1 = r1 + 1, r1 + 1 + height + out[r0 : r1 + 1, :] = arr[src0:src1, :] + return out + + +def process_tile(path, full_frame_px, reseau_thresh): + """Load a committed source crop, remove reseau lines (if any), flat-field, desaturate, and + resample to SOURCE_TILE_PX representing PHYS_TILE_M metres. Returns a [0,1] luminance array. + """ + im = Image.open(path).convert("RGB") + native_phys_m = im.size[0] / full_frame_px * FULL_FRAME_M + + arr = np.asarray(im).astype(np.float32) + if reseau_thresh is not None: + gray = np.asarray(im.convert("L")).astype(np.float32) + cols, rows = detect_lines(gray, reseau_thresh) + arr = shift_fill_columns(arr, cols) + arr = shift_fill_rows(arr, rows) + im = Image.fromarray(np.clip(arr, 0, 255).astype(np.uint8)) + + arr = np.asarray(im).astype(np.float32) / 255.0 + luminance = arr @ np.array([0.2126, 0.7152, 0.0722]) + side = im.size[0] + illum = ( + np.asarray( + Image.fromarray((luminance * 255).astype(np.uint8)).filter( + ImageFilter.GaussianBlur(side // 3) + ) + ).astype(np.float32) + / 255.0 + ) + luminance = luminance / np.clip(illum, 0.15, None) + luminance = luminance * (0.49 / luminance.mean()) + luminance = np.clip(luminance, 0.0, 1.0) + + upscale = PHYS_TILE_M / native_phys_m + lum_img = Image.fromarray((luminance * 255).astype(np.uint8)).resize( + (SOURCE_TILE_PX, SOURCE_TILE_PX), Image.LANCZOS + ) + return np.asarray(lum_img).astype(np.float32) / 255.0, native_phys_m, upscale + + +def equalize_contrast(tiles_lum, names, reference_name): + """Match every tile's contrast (std around the shared 0.49 mean) to the reference tile's own - + process_tile already matches every tile's MEAN, but leaves each photo's own dynamic range + (std) untouched, and that varies a lot frame to frame (0.026-0.193 in this set). Placed + side-by-side, that reads as a light/dark patchwork at the frame pitch even with no repeated + frame. Rescaling std around the mean keeps each tile's own fine grain/shape, only changing its + amplitude, so real detail survives - this is a low-frequency (whole-frame exposure) match, not + a detail-destroying blur.""" + ref_std = tiles_lum[names.index(reference_name)].std() + out = [] + for lum in tiles_lum: + std = lum.std() + scale = ref_std / std if std > 1e-6 else 1.0 + eq = np.clip(0.49 + (lum - 0.49) * scale, 0.0, 1.0) + eq = np.clip(eq * (0.49 / eq.mean()), 0.0, 1.0) + out.append(eq) + return out + + +def dihedral(arr, k): + """8 square-preserving transforms: k=0..3 are rotations, k=4..7 are mirrored rotations.""" + if k >= 4: + arr = np.fliplr(arr) + k -= 4 + return np.rot90(arr, k) + + +def feather_mask(size, edge_px): + ramp = np.ones(size, dtype=np.float32) + r = np.linspace(0, 1, edge_px) + ramp[:edge_px] = r + ramp[-edge_px:] = r[::-1] + return ramp + + +# --- Craterlet/rock stamping, local-patch (non-toroidal - this map is not tiled by MuJoCo) --- + + +def _poisson_scatter_plane(rng, size, n, min_sep, max_tries=40): + pts = [] + for _ in range(n): + for _ in range(max_tries): + p = rng.uniform(0, size, 2) + if all((p[0] - q[0]) ** 2 + (p[1] - q[1]) ** 2 >= min_sep**2 for q in pts): + pts.append(p) + break + return pts + + +def _local_patch(lum, cx, cy, outer_r): + size = lum.shape[0] + x0, x1 = max(0, int(cx - outer_r)), min(size, int(cx + outer_r) + 1) + y0, y1 = max(0, int(cy - outer_r)), min(size, int(cy + outer_r) + 1) + if x0 >= x1 or y0 >= y1: + return None + xx, yy = np.meshgrid(np.arange(x0, x1) - cx, np.arange(y0, y1) - cy, indexing="ij") + return x0, x1, y0, y1, xx, yy + + +def stamp_crater(lum, cx, cy, r): + """Soft depression with a raised rim, rim lit toward the sun, dark crescent away.""" + patch_bounds = _local_patch(lum, cx, cy, r * 1.6) + if patch_bounds is None: + return + x0, x1, y0, y1, dx, dy = patch_bounds + dist = np.sqrt(dx * dx + dy * dy) + within = dist < r * 1.6 + if not within.any(): + return + d = dist[within] + ux, uy = dx[within] / np.maximum(d, 1e-6), dy[within] / np.maximum(d, 1e-6) + sun_align = ux * SUN_DIR_PX[0] + uy * SUN_DIR_PX[1] + + bowl = -0.07 * np.exp(-((d / (r * 0.8)) ** 2)) + rim_profile = np.exp(-(((d - r) / (r * 0.35)) ** 2)) + rim = rim_profile * (0.035 + 0.05 * np.clip(sun_align, 0, 1)) + shadow_len = r * 0.35 + shadow = np.exp( + -(((d - r - shadow_len * np.clip(-sun_align, 0, 1)) / (r * 0.35)) ** 2) + ) + shadow = shadow * -0.045 * np.clip(-sun_align, 0, 1) + + patch = lum[x0:x1, y0:y1] + patch[within] = np.clip(patch[within] + bowl + rim + shadow, 0.05, 1.0) + + +def stamp_rock(lum, cx, cy, r): + """Small embedded rock/clod: brighter sunlit cap, thin dark shadow crescent.""" + patch_bounds = _local_patch(lum, cx, cy, r * 1.4) + if patch_bounds is None: + return + x0, x1, y0, y1, dx, dy = patch_bounds + dist = np.sqrt(dx * dx + dy * dy) + within = dist < r * 1.4 + if not within.any(): + return + d = dist[within] + ux, uy = dx[within] / np.maximum(d, 1e-6), dy[within] / np.maximum(d, 1e-6) + sun_align = ux * SUN_DIR_PX[0] + uy * SUN_DIR_PX[1] + + body = np.exp(-((d / r) ** 2)) + lit = body * (0.03 + 0.07 * np.clip(sun_align, 0, 1)) + shadow_len = r * 0.4 + shadow = np.exp( + -(((d - r - shadow_len * np.clip(-sun_align, 0, 1)) / (r * 0.35)) ** 2) + ) + shadow = shadow * -0.04 * np.clip(-sun_align, 0, 1) + + patch = lum[x0:x1, y0:y1] + patch[within] = np.clip(patch[within] + lit + shadow, 0.05, 1.0) + + +def build_mosaic(plane_m: float, px_per_m: float, seed: int): + rng = np.random.default_rng(seed) + + tiles_lum, provenance = [], [] + for name, filename, ffpx, thresh in TILES: + lum, native_m, upscale = process_tile(SOURCES / filename, ffpx, thresh) + tiles_lum.append(lum) + provenance.append((name, native_m, upscale)) + tile_names = [name for name, _, _, _ in TILES] + tiles_lum = equalize_contrast(tiles_lum, tile_names, REFERENCE_TILE_NAME) + + tile_px = max(8, round(PHYS_TILE_M * px_per_m)) + seam_px = max(2, round(tile_px * SEAM_FRAC)) + step_px = max(1, round(tile_px * GRID_DENSITY)) + target_canvas_px = round(plane_m * px_per_m) + n_cells = max(1, round((target_canvas_px - tile_px) / step_px) + 1) + canvas_px = step_px * (n_cells - 1) + tile_px + actual_px_per_m = canvas_px / plane_m + + # Precompute every (source tile x dihedral transform) variant once at placement resolution, + # rather than per grid cell - 9x8=72 variants total, reused across every cell that draws them. + small = [ + np.asarray( + Image.fromarray((lum * 255).astype(np.uint8)).resize( + (tile_px, tile_px), Image.LANCZOS + ) + ).astype(np.float32) + / 255.0 + for lum in tiles_lum + ] + variants = [[dihedral(s, k) for k in range(8)] for s in small] + + edge = feather_mask(tile_px, seam_px) + tile_w2d = np.outer(edge, edge) + + # An edge cell whose jitter happens to push it INWARD (away from the plane border) would leave + # a sliver of the border uncovered if the grid stopped exactly at the crop boundary - so place + # an extra ring of cells beyond the boundary on every side (their footprint still reaches + # across it, guaranteed by margin >= tile_px) and crop them off afterwards, same jitter + # freedom as every interior cell. + margin = tile_px + ring = int(np.ceil(margin / step_px)) + 1 + grid_lo, grid_hi = -ring, n_cells + ring # cell index range, exclusive hi + padded_px = canvas_px + 2 * margin + canvas = np.zeros((padded_px, padded_px), dtype=np.float32) + weight = np.zeros((padded_px, padded_px), dtype=np.float32) + grid_tile_idx = {} + + for r in range(grid_lo, grid_hi): + for c in range(grid_lo, grid_hi): + avoid = { + grid_tile_idx.get((r - 1, c), -1), + grid_tile_idx.get((r, c - 1), -1), + } + tile_idx = int(rng.integers(0, len(TILES))) + tries = 0 + while tile_idx in avoid and tries < 5: + tile_idx = int(rng.integers(0, len(TILES))) + tries += 1 + grid_tile_idx[(r, c)] = tile_idx + k = int(rng.integers(0, 8)) + jitter_r = rng.uniform(JITTER_FRAC_MIN, JITTER_FRAC_MAX) * tile_px + jitter_r *= rng.choice([-1.0, 1.0]) + jitter_c = rng.uniform(JITTER_FRAC_MIN, JITTER_FRAC_MAX) * tile_px + jitter_c *= rng.choice([-1.0, 1.0]) + r0 = margin + round(r * step_px + jitter_r) + c0 = margin + round(c * step_px + jitter_c) + if r0 < 0 or c0 < 0 or r0 + tile_px > padded_px or c0 + tile_px > padded_px: + continue # this ring cell's footprint doesn't reach the padded canvas at all + canvas[r0 : r0 + tile_px, c0 : c0 + tile_px] += ( + variants[tile_idx][k] * tile_w2d + ) + weight[r0 : r0 + tile_px, c0 : c0 + tile_px] += tile_w2d + + canvas = canvas[margin : margin + canvas_px, margin : margin + canvas_px] + weight = weight[margin : margin + canvas_px, margin : margin + canvas_px] + min_coverage = float(weight.min()) + if min_coverage <= 1e-6: + raise RuntimeError( + f"gap in colormap coverage (min weight={min_coverage:.4f}) - increase GRID_DENSITY " + "or shrink JITTER_FRAC_MAX" + ) + mosaic = canvas / np.clip(weight, 1e-6, None) + + illum = ( + np.asarray( + Image.fromarray((mosaic * 255).astype(np.uint8)).filter( + ImageFilter.GaussianBlur(canvas_px // 6) + ) + ).astype(np.float32) + / 255.0 + ) + mosaic = mosaic / np.clip(illum, 0.15, None) + mosaic = np.clip(mosaic * (0.49 / mosaic.mean()), 0.0, 1.0) + + area_m2 = plane_m * plane_m + n_craters = max(2, round(area_m2 * 1.8 * 6 / 20)) + n_rocks = max(4, round(area_m2 * 1.8 * 14 / 20)) + crater_rng = np.random.default_rng(seed + 1) + for cx, cy in _poisson_scatter_plane( + crater_rng, canvas_px, n_craters, CRATER_MIN_SEP_M * actual_px_per_m + ): + r_m = crater_rng.uniform(0.10, 0.45) + stamp_crater(mosaic, cx, cy, r_m * actual_px_per_m) + for cx, cy in _poisson_scatter_plane( + crater_rng, canvas_px, n_rocks, ROCK_MIN_SEP_M * actual_px_per_m + ): + r_m = crater_rng.uniform(0.03, 0.12) + stamp_rock(mosaic, cx, cy, r_m * actual_px_per_m) + + tint = np.array([1.03, 1.0, 0.94]) + rgb = np.clip(np.stack([mosaic] * 3, axis=-1) * tint, 0.0, 1.0) + final = (rgb * 255).astype(np.uint8) + + info = { + "canvas_px": canvas_px, + "plane_m": plane_m, + "px_per_m": actual_px_per_m, + "n_cells": n_cells, + "tile_px": tile_px, + "n_craters": n_craters, + "n_rocks": n_rocks, + "seed": seed, + "provenance": provenance, + "min_coverage": min_coverage, + } + return final, info + + +def low_freq_std(final_rgb, side=256): + """Downsample to ~side px and report the std of that low-res image - a low-frequency + brightness lattice from mismatched per-placement exposure/contrast (the v1 bug) shows up as an + elevated std even at this heavily-blurred scale; a properly equalized map should look + essentially flat here aside from craterlet/rock shading.""" + im = Image.fromarray(final_rgb).convert("L").resize((side, side), Image.LANCZOS) + return float(np.asarray(im).astype(np.float32).std()) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--plane-m", type=float, default=20.0, help="ground plane side length, metres" + ) + parser.add_argument( + "--px-per-m", type=float, default=410.0, help="output resolution, px/metre" + ) + parser.add_argument("--seed", type=int, default=869) + parser.add_argument("--out", default="lunar_regolith_untiled.png") + args = parser.parse_args() + + final, info = build_mosaic(args.plane_m, args.px_per_m, args.seed) + out_path = ASSETS / args.out + Image.fromarray(final).save(out_path) + + print( + f"saved {out_path} {final.shape[1]}x{final.shape[0]}px " + f"({info['plane_m']:.2f}m x {info['plane_m']:.2f}m plane, {info['px_per_m']:.1f} px/m, " + f"{1000 / info['px_per_m']:.2f} mm/px)" + ) + print( + f"grid: {info['n_cells']}x{info['n_cells']} cells of {len(TILES)} source frames " + f"x 8 dihedral transforms, seed={info['seed']}" + ) + print(f"craterlets: {info['n_craters']}, rocks: {info['n_rocks']}") + print(f"min placement coverage weight: {info['min_coverage']:.4f} (no gaps if > 0)") + lf_std = low_freq_std(final) + print( + f"256px-downsampled std: {lf_std:.2f} (low = featureless aside from craters/rocks)" + ) + + with open(ASSETS / "ground_colormap_provenance.txt", "w") as f: + f.write( + f"canvas {info['canvas_px']}x{info['canvas_px']}px, plane {info['plane_m']:.2f}m x " + f"{info['plane_m']:.2f}m, {info['px_per_m']:.1f} px/m ({1000 / info['px_per_m']:.2f} mm/px)\n" + ) + f.write( + f"{info['n_cells']}x{info['n_cells']} cells, {len(TILES)} distinct source frames, " + f"8 dihedral transforms each, PHYS_TILE_M={PHYS_TILE_M}, seed={info['seed']}, " + f"contrast-equalized to {REFERENCE_TILE_NAME}, jittered " + f"{JITTER_FRAC_MIN}-{JITTER_FRAC_MAX} tile-widths off grid (v2)\n" + ) + for name, native_m, upscale in info["provenance"]: + f.write( + f"{name}: native crop ~{native_m:.2f}m, placed at {PHYS_TILE_M}m (upscale {upscale:.2f}x)\n" + ) + f.write(f"craterlets: {info['n_craters']}, rocks: {info['n_rocks']}\n") + f.write( + "Source frames: NASA Apollo 15/17 Hasselblad surface photos, public domain NASA/JSC, " + "archive.org (collection johnsonspacecentermediaarchive) - cropped to a square clear of " + "the gnomon and any hardware (bootprints/rover tracks left in); committed under " + "assets/ground_colormap_sources/. Excluded as near-duplicate content (same sample/" + "station documented by a second magazine/camera as an already-selected frame): " + "AS15-87-11769, as17-138-21049, as17-142-21699. Rejected as boulder/rock-dominated or " + "for people/hardware in frame: AS15-86-11659, as17-134-20403, as17-137-20901, " + "as17-137-20913, as17-140-21411, as17-146-22336, AS15-87-11778, as17-137-20972, " + "as17-138-21030, as16-117-18825, as16-117-18826, as17-145-22157, AS12-48-7107/7128.\n" + ) + + +if __name__ == "__main__": + main() diff --git a/src/lunar_sim/description/generate_terrain.py b/src/lunar_sim/description/generate_terrain.py new file mode 100644 index 000000000..40175ad18 --- /dev/null +++ b/src/lunar_sim/description/generate_terrain.py @@ -0,0 +1,381 @@ +#!/usr/bin/env python3 +"""Offline, seedable generator for lunar_sim's cratered ground. + +Not run at simulation time. Run manually (or in CI as an asset-refresh step) +and commit its outputs: + - assets/lunar_hfield.png grayscale MuJoCo heightmap + - assets/rocks/rock_N.stl a small library of procedural rock meshes + - rocks_assets_generated.xml asset entries for the rock library + - rocks_geoms_generated.xml scattered placements referencing them + +Recipe (OmniLRS-style): a lunar crater size-frequency distribution (SFD) +stamped onto a low-frequency noise base, plus a rock library scattered with +Poisson-ish spacing. No terrain or placement is computed at MuJoCo load time +- both XML fragments and the PNG are ordinary committed assets, included by +husky_scene.xml via . + +Usage: python3 generate_terrain.py [--seed 869] + +After regenerating, re-run the repo's prettier XML check/fix on the two +generated *_generated.xml files (`pre-commit run prettier`, see +.pre-commit-config.yaml), and if elevation_z or z_min changed, copy this +script's printed "hfield size attr" / "ground geom pos attr" lines into +husky_scene.xml's and ground_plane . +""" +import argparse +import struct +from pathlib import Path + +import numpy as np +from PIL import Image +from scipy.ndimage import gaussian_filter + +HERE = Path(__file__).resolve().parent +ASSETS = HERE / "assets" +ROCKS_DIR = ASSETS / "rocks" + +# Plane geometry: matches the existing 20x20 m ground_plane (size="10 10 0.1"). +PLANE_HALF_M = 10.0 +CELL_M = 0.02 # ~2 cm cells per the task spec +N = round(2 * PLANE_HALF_M / CELL_M) # 1000 + +# Crater SFD: truncated power law, N(>D) ~ D^-B, typical small-crater slope. +CRATER_B = 2.0 +CRATER_DMIN_M = 0.05 +CRATER_DMAX_M = 2.0 +CRATER_COUNT = 600 +CRATER_DEPTH_RATIO = (0.08, 0.15) # depth/diameter, degraded regolith craterlets +CRATER_RIM_RATIO = (0.02, 0.06) # rim height/diameter +CRATER_RIM_WIDTH = 0.3 # extra radius (x crater radius) the rim falloff extends over + +# Low-frequency base undulation (metres of amplitude), several octaves. +NOISE_OCTAVES = [(4.0, 0.02), (1.5, 0.01), (0.5, 0.005)] # (wavelength_m, amplitude_m) + +# Rocks: excluded from the Dead Reckon Square footprint (~1.8 m square near the +# origin) plus margin, so the calibration recheck isolates the heightfield's +# effect and isn't confounded by a wheel snagging a rock. +ROCK_KEEPOUT_XMIN, ROCK_KEEPOUT_XMAX = -1.0, 3.0 +ROCK_KEEPOUT_YMIN, ROCK_KEEPOUT_YMAX = -1.0, 3.0 +ROCK_LIBRARY_SIZE = 6 +ROCK_COUNT = 200 +ROCK_RADIUS_RANGE_M = (0.03, 0.15) +ROCK_MIN_SPACING_M = 0.35 +# MuJoCo has no per-geom mesh scale (only per--asset scale), so continuous +# per-rock radii are quantized to a handful of discrete asset scales, each shared +# by many geom instances - real instancing (one mesh in memory) rather than one +# unique STL per rock. +ROCK_SIZE_BUCKETS = np.geomspace(*ROCK_RADIUS_RANGE_M, 8) + + +def build_noise(rng: np.random.Generator) -> np.ndarray: + """Sum of Gaussian-blurred white noise octaves -> smooth non-periodic undulation.""" + field = np.zeros((N, N), dtype=np.float64) + for wavelength_m, amplitude_m in NOISE_OCTAVES: + sigma_px = (wavelength_m / CELL_M) / (2 * np.pi) + white = rng.standard_normal((N, N)) + smooth = gaussian_filter(white, sigma=sigma_px, mode="wrap") + smooth /= smooth.std() + field += amplitude_m * smooth + return field + + +def sample_crater_diameters(rng: np.random.Generator, count: int) -> np.ndarray: + u = rng.random(count) + dmin_b, dmax_b = CRATER_DMIN_M**-CRATER_B, CRATER_DMAX_M**-CRATER_B + return (u * (dmin_b - dmax_b) + dmax_b) ** (-1.0 / CRATER_B) + + +def stamp_craters(height_m: np.ndarray, rng: np.random.Generator) -> None: + diameters = sample_crater_diameters(rng, CRATER_COUNT) + cx_all = rng.uniform(-PLANE_HALF_M, PLANE_HALF_M, CRATER_COUNT) + cy_all = rng.uniform(-PLANE_HALF_M, PLANE_HALF_M, CRATER_COUNT) + + for d, cx, cy in zip(diameters, cx_all, cy_all): + radius_m = d / 2.0 + depth_m = rng.uniform(*CRATER_DEPTH_RATIO) * d + rim_h_m = rng.uniform(*CRATER_RIM_RATIO) * d + outer_m = radius_m * (1.0 + CRATER_RIM_WIDTH) + + px = round((cx + PLANE_HALF_M) / CELL_M) + py = round((cy + PLANE_HALF_M) / CELL_M) + span = int(np.ceil(outer_m / CELL_M)) + 1 + x0, x1 = max(0, px - span), min(N, px + span) + y0, y1 = max(0, py - span), min(N, py + span) + if x0 >= x1 or y0 >= y1: + continue + + xs = (np.arange(x0, x1) * CELL_M - PLANE_HALF_M) - cx + ys = (np.arange(y0, y1) * CELL_M - PLANE_HALF_M) - cy + xx, yy = np.meshgrid(xs, ys, indexing="ij") + r = np.sqrt(xx**2 + yy**2) + u = r / radius_m + + # Reference elevation each crater cuts/builds from: the pre-existing + # local terrain at its own center, not a global datum, so craters + # stamped later correctly cut across earlier rims instead of just + # summing without bound. + e0 = height_m[min(px, N - 1), min(py, N - 1)] + + patch = height_m[x0:x1, y0:y1] + bowl_mask = u <= 1.0 + bowl = e0 + depth_m * (u**2 - 1.0) + patch[bowl_mask] = np.minimum(patch[bowl_mask], bowl[bowl_mask]) + + # The bowl reaches e0 at u=1 while the rim starts at its full crest there, so each + # crater ends in a one-cell vertical step of rim_h_m. Accepted, previously measured + # artifact: worst case over the committed seed-869 field is a 0.102 m step across one + # 2 cm cell. Part of what the Dead Reckon Square calibration in README.md measures. + rim_mask = (u > 1.0) & (u <= 1.0 + CRATER_RIM_WIDTH) + t = (u[rim_mask] - 1.0) / CRATER_RIM_WIDTH + rim = e0 + rim_h_m * np.cos(t * np.pi / 2.0) ** 2 + patch[rim_mask] = np.maximum(patch[rim_mask], rim) + + +def build_heightfield(seed: int) -> tuple[np.ndarray, float, float]: + """Returns (height_m [x,y]-indexed in metres, elevation_z range, z_min).""" + rng = np.random.default_rng(seed) + height_m = build_noise(rng) + stamp_craters(height_m, rng) + z_min, z_max = height_m.min(), height_m.max() + return height_m, float(z_max - z_min), float(z_min) + + +def height_to_png(height_m: np.ndarray, elevation_z: float, z_min: float) -> np.ndarray: + values01 = (height_m - z_min) / elevation_z + png = np.clip(np.round(values01 * 255), 0, 255).astype(np.uint8) + # An hfield's rows run along +y and its columns along +x, but MuJoCo flips a + # PNG's rows on load, so image row 0 lands at *maximum* y. Transpose for + # image (row=y, col=x) and reverse the rows, so world (x, y) reads back as + # height_m[x_index, y_index] - the convention height_at() samples rock z at. + return png.T[::-1, :] + + +# --- Procedural rock meshes (no mesh-library/trimesh dependency needed) --- + +_PHI = (1 + 5**0.5) / 2 +_ICO_VERTS = np.array( + [ + (-1, _PHI, 0), + (1, _PHI, 0), + (-1, -_PHI, 0), + (1, -_PHI, 0), + (0, -1, _PHI), + (0, 1, _PHI), + (0, -1, -_PHI), + (0, 1, -_PHI), + (_PHI, 0, -1), + (_PHI, 0, 1), + (-_PHI, 0, -1), + (-_PHI, 0, 1), + ], + dtype=np.float64, +) +_ICO_VERTS /= np.linalg.norm(_ICO_VERTS[0]) +_ICO_FACES = [ + (0, 11, 5), + (0, 5, 1), + (0, 1, 7), + (0, 7, 10), + (0, 10, 11), + (1, 5, 9), + (5, 11, 4), + (11, 10, 2), + (10, 7, 6), + (7, 1, 8), + (3, 9, 4), + (3, 4, 2), + (3, 2, 6), + (3, 6, 8), + (3, 8, 9), + (4, 9, 5), + (2, 4, 11), + (6, 2, 10), + (8, 6, 7), + (9, 8, 1), +] + + +def icosphere(subdiv: int) -> tuple[np.ndarray, list[tuple[int, int, int]]]: + verts = list(map(tuple, _ICO_VERTS)) + faces = list(_ICO_FACES) + for _ in range(subdiv): + cache: dict[tuple[int, int], int] = {} + + def midpoint(a: int, b: int) -> int: + key = (min(a, b), max(a, b)) + if key in cache: + return cache[key] + m = np.array(verts[a]) + np.array(verts[b]) + m /= np.linalg.norm(m) + verts.append(tuple(m)) + idx = len(verts) - 1 + cache[key] = idx + return idx + + new_faces = [] + for a, b, c in faces: + ab, bc, ca = midpoint(a, b), midpoint(b, c), midpoint(c, a) + new_faces += [(a, ab, ca), (b, bc, ab), (c, ca, bc), (ab, bc, ca)] + faces = new_faces + return np.array(verts), faces + + +def make_rock_mesh( + rng: np.random.Generator, +) -> tuple[np.ndarray, list[tuple[int, int, int]]]: + verts, faces = icosphere(subdiv=2) + # A few random low-order "bumps" (dot products with random axes) plus + # per-vertex jitter approximate an irregular, non-spherical rock without + # needing a real spherical-harmonics or mesh-library dependency. + radius = np.ones(len(verts)) + for _ in range(3): + axis = rng.standard_normal(3) + axis /= np.linalg.norm(axis) + amp = rng.uniform(0.08, 0.22) + radius += amp * (verts @ axis) + radius += rng.uniform(0.03, 0.08, len(verts)) + radius = np.clip(radius, 0.35, None) + verts = verts * radius[:, None] + + # Anisotropic stretch so rocks aren't all near-spherical. + scale = rng.uniform(0.6, 1.3, 3) + verts = verts * scale + verts /= np.abs(verts).max() # normalize back to a unit-ish bounding box + return verts, faces + + +def write_stl(path: Path, verts: np.ndarray, faces: list[tuple[int, int, int]]) -> None: + with open(path, "wb") as f: + f.write(b"\x00" * 80) + f.write(struct.pack(" 0: + normal = normal / norm + f.write(struct.pack("<3f", *normal)) + for v in (v0, v1, v2): + f.write(struct.pack("<3f", *v)) + f.write(struct.pack(" bool: + return ( + ROCK_KEEPOUT_XMIN <= x <= ROCK_KEEPOUT_XMAX + and ROCK_KEEPOUT_YMIN <= y <= ROCK_KEEPOUT_YMAX + ) + + +def scatter_rocks(rng: np.random.Generator) -> list[dict]: + placements = [] + accepted_xy = [] + attempts = 0 + while len(placements) < ROCK_COUNT and attempts < ROCK_COUNT * 50: + attempts += 1 + x = rng.uniform(-PLANE_HALF_M + 0.3, PLANE_HALF_M - 0.3) + y = rng.uniform(-PLANE_HALF_M + 0.3, PLANE_HALF_M - 0.3) + if in_rock_keepout(x, y): + continue + if any( + (x - ax) ** 2 + (y - ay) ** 2 < ROCK_MIN_SPACING_M**2 + for ax, ay in accepted_xy + ): + continue + accepted_xy.append((x, y)) + radius = rng.uniform(*ROCK_RADIUS_RANGE_M) + bucket = int(np.argmin(np.abs(ROCK_SIZE_BUCKETS - radius))) + yaw = rng.uniform(0, 2 * np.pi) + variant = rng.integers(0, ROCK_LIBRARY_SIZE) + placements.append( + { + "x": x, + "y": y, + "radius": float(ROCK_SIZE_BUCKETS[bucket]), + "bucket": bucket, + "yaw": yaw, + "variant": int(variant), + } + ) + return placements + + +def quat_from_yaw(yaw: float) -> tuple[float, float, float, float]: + return (np.cos(yaw / 2), 0.0, 0.0, np.sin(yaw / 2)) + + +def height_at(height_m: np.ndarray, x: float, y: float) -> float: + """Nearest-cell sample of the (untransposed, [x,y]-indexed) height array in world + metres. World z reconstructs height_m directly once the hfield geom's pos.z is set + to z_min (see main()), so no extra offset is added here.""" + fx = (x + PLANE_HALF_M) / CELL_M + fy = (y + PLANE_HALF_M) / CELL_M + ix, iy = int(np.clip(fx, 0, N - 2)), int(np.clip(fy, 0, N - 2)) + return float(height_m[ix, iy]) + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--seed", type=int, default=869) + args = parser.parse_args() + + ASSETS.mkdir(parents=True, exist_ok=True) + ROCKS_DIR.mkdir(parents=True, exist_ok=True) + + height_m, elevation_z, z_min = build_heightfield(args.seed) + png_t = height_to_png(height_m, elevation_z, z_min) + # world_z = geom.pos.z + value01*elevation_z = geom.pos.z + (height_m - z_min); + # setting geom.pos.z = z_min makes world_z reconstruct height_m exactly, so the + # noise-only baseline (height_m ~ 0) lands at world z=0, matching the old flat plane. + ground_pos_z = z_min + + Image.fromarray(png_t, mode="L").save(ASSETS / "lunar_hfield.png") + + rock_rng = np.random.default_rng(args.seed + 1) + rock_meshes = [make_rock_mesh(rock_rng) for _ in range(ROCK_LIBRARY_SIZE)] + for i, (verts, faces) in enumerate(rock_meshes): + write_stl(ROCKS_DIR / f"rock_{i}.stl", verts, faces) + + placements = scatter_rocks(rock_rng) + + # One asset per (variant, size bucket) combo, each loaded once and shared + # by every geom instance at that size - real instancing, not per-rock geometry. + assets_xml = [""] + for i in range(ROCK_LIBRARY_SIZE): + for b, s in enumerate(ROCK_SIZE_BUCKETS): + assets_xml.append( + f' ' + ) + assets_xml.append("\n") + (HERE / "rocks_assets_generated.xml").write_text("\n".join(assets_xml)) + + geoms_xml = [""] + for i, p in enumerate(placements): + z = height_at(height_m, p["x"], p["y"]) + qw, qx, qy, qz = quat_from_yaw(p["yaw"]) + geoms_xml.append( + f' ' + ) + geoms_xml.append("\n") + (HERE / "rocks_geoms_generated.xml").write_text("\n".join(geoms_xml)) + + print(f"seed={args.seed}") + print( + f"heightfield: {N}x{N} px, cell={CELL_M * 100:.2f} cm, elevation_z={elevation_z:.4f} m, " + f"ground_pos_z={ground_pos_z:.4f}" + ) + print( + f"craters stamped: {CRATER_COUNT}, diameter range sampled [{CRATER_DMIN_M},{CRATER_DMAX_M}] m" + ) + print(f"rocks placed: {len(placements)} / requested {ROCK_COUNT}") + print( + f'hfield size attr for MJCF: "{PLANE_HALF_M} {PLANE_HALF_M} {elevation_z:.4f} 0.1"' + ) + print(f'ground geom pos attr for MJCF: "0 0 {ground_pos_z:.4f}"') + + +if __name__ == "__main__": + main() diff --git a/src/lunar_sim/description/husky_a300.xml b/src/lunar_sim/description/husky_a300.xml new file mode 100644 index 000000000..b8903cae1 --- /dev/null +++ b/src/lunar_sim/description/husky_a300.xml @@ -0,0 +1,208 @@ + + + + diff --git a/src/lunar_sim/description/husky_a300_mujoco.xacro b/src/lunar_sim/description/husky_a300_mujoco.xacro new file mode 100644 index 000000000..4f8a732c5 --- /dev/null +++ b/src/lunar_sim/description/husky_a300_mujoco.xacro @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + picknik_mujoco_ros/MujocoSystem + $(arg mujoco_model) + lunar_sim + $(arg mujoco_viewer) + $(arg mujoco_keyframe) + + 60 + 10 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lunar_sim/description/husky_scene.xml b/src/lunar_sim/description/husky_scene.xml new file mode 100644 index 000000000..ee6d82551 --- /dev/null +++ b/src/lunar_sim/description/husky_scene.xml @@ -0,0 +1,192 @@ + + + + diff --git a/src/lunar_sim/description/rear_left_wheel_link.xml b/src/lunar_sim/description/rear_left_wheel_link.xml new file mode 100644 index 000000000..547ac0481 --- /dev/null +++ b/src/lunar_sim/description/rear_left_wheel_link.xml @@ -0,0 +1,28 @@ + + + + + + + diff --git a/src/lunar_sim/description/rear_right_wheel_link.xml b/src/lunar_sim/description/rear_right_wheel_link.xml new file mode 100644 index 000000000..254cc3ca1 --- /dev/null +++ b/src/lunar_sim/description/rear_right_wheel_link.xml @@ -0,0 +1,32 @@ + + + + + + + + diff --git a/src/lunar_sim/description/rocks_assets_generated.xml b/src/lunar_sim/description/rocks_assets_generated.xml new file mode 100644 index 000000000..9d3104718 --- /dev/null +++ b/src/lunar_sim/description/rocks_assets_generated.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lunar_sim/description/rocks_geoms_generated.xml b/src/lunar_sim/description/rocks_geoms_generated.xml new file mode 100644 index 000000000..e5fde13b1 --- /dev/null +++ b/src/lunar_sim/description/rocks_geoms_generated.xml @@ -0,0 +1,2002 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lunar_sim/description/validate_and_render.py b/src/lunar_sim/description/validate_and_render.py new file mode 100644 index 000000000..d51677513 --- /dev/null +++ b/src/lunar_sim/description/validate_and_render.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python3 +"""Phase-1 validation: MJCF smoke test, Dead Reckon Square calibration recheck +(RECORDED STATE - freejoint chassis pose, not /odom), and comparison renders. + +Run inside the picknikciuser/moveit-pro container (has MuJoCo 3.6 + PIL): + docker run --rm --entrypoint python3 \ + -v "$(pwd)/src/lunar_sim/description:/mjcf:ro" \ + -v ":/validate.py:ro" \ + -v ":/out" \ + -e MUJOCO_GL=egl \ + picknikciuser/moveit-pro:main-jazzy-amd64-cuda13.2-cudnn9 /validate.py /mjcf/husky_scene.xml /out/new +Pass a second scene path (e.g. an earlier husky_scene.xml, mounted read-only +alongside) as a third arg to also render it for the comparison sheet. That scene +must define the current camera and wheel-actuator names (chase_camera, +scene_camera, __wheel_joint) and a keyframe named "default", which +load() applies via reset_to_keyframe; an older one missing any of them raises +KeyError at load rather than rendering something misleading. +""" +import json +import sys +import math +import mujoco +import numpy as np +from PIL import Image + +WHEEL_RADIUS = 0.1645 +WHEEL_SEPARATION = 0.562 +MULTIPLIER = 2.57 +V_CMD = 0.3 +W_CMD = 0.5235988 # 30 deg/s + +# The keyframe husky_a300_mujoco.xacro's mujoco_keyframe arg selects at hardware init. +KEYFRAME_NAME = "default" + +# Actuator names track the wheel joint names in husky_a300.xml. +WHEEL_ACTUATORS = [ + "front_left_wheel_joint", + "front_right_wheel_joint", + "rear_left_wheel_joint", + "rear_right_wheel_joint", +] + + +def require_id(model, objtype, name): + """mj_name2id returns -1 for an unknown name, and every consumer of that id + accepts -1 silently: data.ctrl[-1] drives the last actuator, data.xpos[-1] reads + the last body, and update_scene(camera=-1) falls back to the free camera. Resolve + names through here so a renamed model element fails loudly instead.""" + obj_id = mujoco.mj_name2id(model, objtype, name) + if obj_id < 0: + raise KeyError(f"no {objtype.name} named {name!r} in the model") + return obj_id + + +def wheel_actuator_ids(model): + return { + name: require_id(model, mujoco.mjtObj.mjOBJ_ACTUATOR, name) + for name in WHEEL_ACTUATORS + } + + +def reset_to_keyframe(model, data): + """Put the base where the simulation actually boots. mj_resetData restores qpos0 + (husky_a300.xml's chassis_link pos, i.e. the world origin), which is not the pose + husky_a300_mujoco.xacro's mujoco_keyframe selects - only mj_resetDataKeyframe + applies a .""" + key_id = require_id(model, mujoco.mjtObj.mjOBJ_KEY, KEYFRAME_NAME) + mujoco.mj_resetDataKeyframe(model, data, key_id) + + +def quat_to_yaw(q): + w, x, y, z = q + siny_cosp = 2 * (w * z + x * y) + cosy_cosp = 1 - 2 * (y * y + z * z) + return math.degrees(math.atan2(siny_cosp, cosy_cosp)) + + +def load(scene_path): + model = mujoco.MjModel.from_xml_path(scene_path) + data = mujoco.MjData(model) + reset_to_keyframe(model, data) + return model, data + + +def smoke_test(model, data): + chassis_id = require_id(model, mujoco.mjtObj.mjOBJ_BODY, "chassis_link") + mujoco.mj_forward(model, data) + spawn_xy = data.xpos[chassis_id][:2].copy() + for _ in range(2000): + mujoco.mj_step(model, data) + settled_z = data.xpos[chassis_id][2] + drift = data.xpos[chassis_id][:2].copy() - spawn_xy + print(f"[smoke] settled chassis pos={data.xpos[chassis_id]}") + assert 0.05 < settled_z < 0.30, f"implausible settle height z={settled_z}" + assert np.linalg.norm(drift) < 0.05, f"drifted while settling: {drift}" + + aid = wheel_actuator_ids(model) + for a in aid.values(): + data.ctrl[a] = 3.0 + start_xy = data.xpos[chassis_id][:2].copy() + for _ in range(2000): + mujoco.mj_step(model, data) + dist = np.linalg.norm(data.xpos[chassis_id][:2].copy() - start_xy) + print(f"[smoke] drove {dist:.4f} m under wheel commands") + assert dist > 0.3, f"base barely moved ({dist:.4f} m) - wheels may be pinned" + print("[smoke] PASS") + + +def dead_reckon_square(model, data): + """RECORDED STATE calibration recheck: ground-truth chassis freejoint pose + (xpos/xquat), never /odom (which round-trips the same wrong parameters by + construction - see README's Skid-steer calibration section).""" + reset_to_keyframe(model, data) + chassis_id = require_id(model, mujoco.mjtObj.mjOBJ_BODY, "chassis_link") + aid = wheel_actuator_ids(model) + + def set_wheels(l, r): + data.ctrl[aid["front_left_wheel_joint"]] = l + data.ctrl[aid["rear_left_wheel_joint"]] = l + data.ctrl[aid["front_right_wheel_joint"]] = r + data.ctrl[aid["rear_right_wheel_joint"]] = r + + set_wheels(0, 0) + for _ in range(2000): + mujoco.mj_step(model, data) + + w_straight = V_CMD / WHEEL_RADIUS + L = WHEEL_SEPARATION * MULTIPLIER + wheel_diff_turn = W_CMD * L / 2 / WHEEL_RADIUS + n_straight = round(6.0 / model.opt.timestep) + n_turn = round(3.0 / model.opt.timestep) + + start_xy = data.xpos[chassis_id][:2].copy() + corners = [start_xy] + yaws = [quat_to_yaw(data.xquat[chassis_id])] + for _ in range(4): + set_wheels(w_straight, w_straight) + for _ in range(n_straight): + mujoco.mj_step(model, data) + corners.append(data.xpos[chassis_id][:2].copy()) + set_wheels(-wheel_diff_turn, wheel_diff_turn) + for _ in range(n_turn): + mujoco.mj_step(model, data) + yaws.append(quat_to_yaw(data.xquat[chassis_id])) + + set_wheels(0, 0) + for _ in range(200): + mujoco.mj_step(model, data) + final_xy = data.xpos[chassis_id][:2].copy() + closure_error = float(np.linalg.norm(final_xy - start_xy)) + # quat_to_yaw wraps to (-180, 180]; unwrap each per-corner diff into the same + # range so a turn that crosses the +-180 boundary isn't misreported as ~-260deg. + raw_diffs = [yaws[i + 1] - yaws[i] for i in range(len(yaws) - 1)] + diffs = [((d + 180) % 360) - 180 for d in raw_diffs] + + print(f"[square] closure_error={closure_error:.4f} m") + for i, c in enumerate(corners): + print(f"[square] corner {i} pos: {c}") + print(f"[square] per-corner turn amount (deg): {[f'{d:.2f}' for d in diffs]}") + return { + "closure_error_m": closure_error, + "corner_turns_deg": diffs, + "corners_xy": [c.tolist() for c in corners], + } + + +def render(scene_path, out_prefix): + model, data = load(scene_path) + renderer = mujoco.Renderer(model, height=720, width=1280) + cam_id = require_id(model, mujoco.mjtObj.mjOBJ_CAMERA, "chase_camera") + mast_cam_id = require_id(model, mujoco.mjtObj.mjOBJ_CAMERA, "scene_camera") + scene_option = mujoco.MjvOption() + scene_option.geomgroup[3] = 0 + + for _ in range(2000): + mujoco.mj_step(model, data) + renderer.update_scene(data, camera=cam_id, scene_option=scene_option) + Image.fromarray(renderer.render()).save(f"{out_prefix}_settled.png") + renderer.update_scene(data, camera=mast_cam_id, scene_option=scene_option) + Image.fromarray(renderer.render()).save(f"{out_prefix}_scene_camera.png") + + for aid in wheel_actuator_ids(model).values(): + data.ctrl[aid] = 3.0 + for _ in range(1000): + mujoco.mj_step(model, data) + renderer.update_scene(data, camera=cam_id, scene_option=scene_option) + Image.fromarray(renderer.render()).save(f"{out_prefix}_driving.png") + print(f"[render] saved {out_prefix}_{{settled,scene_camera,driving}}.png") + + +def main(): + new_scene = sys.argv[1] + out_prefix = sys.argv[2] + old_scene = sys.argv[3] if len(sys.argv) > 3 else None + + model, data = load(new_scene) + smoke_test(model, data) + stats = dead_reckon_square(model, data) + + # Persist the calibration before any rendering: the renders are optional + # artifacts, and require_id makes the old-scene comparison render a hard + # failure on a scene that predates the current camera/actuator names. Writing + # first keeps a minutes-long calibration run from being thrown away by it. + with open(out_prefix + "_calibration.json", "w") as f: + json.dump(stats, f, indent=2) + + render(new_scene, out_prefix) + if old_scene: + render(old_scene, out_prefix + "_OLDFLAT") + print("DONE") + + +if __name__ == "__main__": + main() diff --git a/src/lunar_sim/description/verify_ground_colormap.py b/src/lunar_sim/description/verify_ground_colormap.py new file mode 100644 index 000000000..e2475bb40 --- /dev/null +++ b/src/lunar_sim/description/verify_ground_colormap.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +"""Prove generate_ground_colormap.py's output has no periodic repeat: FFT autocorrelation +(largest secondary peak vs. zero-lag) + normalized cross-correlation template matching of +sub-patches against the rest of the image. Downsamples to MAX_SIDE first - a repeat visible at +normal viewing distance shows up fine at this resolution, and it keeps the FFT tractable. + +Usage: python3 verify_ground_colormap.py [--tile-pitch-m N --px-per-m N] +--tile-pitch-m/--px-per-m are optional: when given, also reports the autocorrelation value at +that exact repeat distance, for comparing a naive tiled texture's own repeat pitch against the +"no real peak" case. +""" +import argparse + +import numpy as np +from PIL import Image +from scipy.signal import fftconvolve + +MAX_SIDE = 2048 + + +def load_gray(path): + im = Image.open(path).convert("L") + native_size = im.size + if im.size[0] > MAX_SIDE: + im = im.resize((MAX_SIDE, MAX_SIDE), Image.LANCZOS) + return np.asarray(im).astype(np.float64), native_size + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("image") + parser.add_argument("--tile-pitch-m", type=float, default=None) + parser.add_argument("--px-per-m", type=float, default=None) + args = parser.parse_args() + + raw, native_size = load_gray(args.image) + arr = (raw - raw.mean()) / raw.std() + h, w = arr.shape + + f = np.fft.fft2(arr) + ac = np.fft.ifft2(f * np.conj(f)).real + ac = np.fft.fftshift(ac) + zero_lag = ac[h // 2, w // 2] + + # exclude a window around zero-lag covering the grain's own local correlation length (natural + # 1/f falloff of any photo, not a "repeat") - a real repeat shows as a peak far outside this. + excl = max(40, h // 20) + mask = np.ones_like(ac, dtype=bool) + mask[h // 2 - excl : h // 2 + excl, w // 2 - excl : w // 2 + excl] = False + secondary = ac.copy() + secondary[~mask] = -np.inf + peak_idx = np.unravel_index(np.argmax(secondary), secondary.shape) + peak_val = secondary[peak_idx] + dy, dx = peak_idx[0] - h // 2, peak_idx[1] - w // 2 + peak_pct = peak_val / zero_lag * 100 + print( + f"{args.image}: {native_size[0]}x{native_size[1]}px source, downsampled to {w}x{h} for FFT" + ) + print( + f"autocorrelation: zero-lag={zero_lag:.1f}, largest off-center peak={peak_val:.1f} " + f"({peak_pct:.2f}% of zero-lag) at lag (dx={dx}, dy={dy})" + ) + + if args.tile_pitch_m is not None and args.px_per_m is not None: + px_per_m_ds = args.px_per_m * (w / native_size[0]) + pitch_px = round(args.tile_pitch_m * px_per_m_ds) + if pitch_px < w: + pitch_val = ac[h // 2, min(w - 1, w // 2 + pitch_px)] / zero_lag * 100 + print( + f"autocorrelation at the declared tile pitch ({args.tile_pitch_m}m = " + f"{pitch_px}px, dy=0): {pitch_val:.2f}% of zero-lag" + ) + + # --- template matching: random sub-patches against the whole image --- + rng = np.random.default_rng(0) + patch_size = 128 + N = patch_size * patch_size + ii = np.zeros((h + 1, w + 1)) + ii[1:, 1:] = np.cumsum(np.cumsum(raw, axis=0), axis=1) + ii2 = np.zeros((h + 1, w + 1)) + ii2[1:, 1:] = np.cumsum(np.cumsum(raw * raw, axis=0), axis=1) + ph = pw = patch_size + win_sum = ii[ph:, pw:] - ii[:-ph, pw:] - ii[ph:, :-pw] + ii[:-ph, :-pw] + win_sq_sum = ii2[ph:, pw:] - ii2[:-ph, pw:] - ii2[ph:, :-pw] + ii2[:-ph, :-pw] + win_mean = win_sum / N + win_std = np.sqrt(np.clip(win_sq_sum / N - win_mean**2, 1e-6, None)) + + best_matches = [] + for _ in range(6): + y0 = rng.integers(0, h - patch_size) + x0 = rng.integers(0, w - patch_size) + patch = raw[y0 : y0 + patch_size, x0 : x0 + patch_size] + t = patch - patch.mean() + t_std = patch.std() + number = fftconvolve(raw, t[::-1, ::-1], mode="valid") + ncc = number / (win_std * t_std * N) + corr_masked = ncc.copy() + sy0, sx0 = max(0, y0 - patch_size), max(0, x0 - patch_size) + sy1, sx1 = min(ncc.shape[0], y0 + patch_size), min( + ncc.shape[1], x0 + patch_size + ) + corr_masked[sy0:sy1, sx0:sx1] = -np.inf + best = float(np.max(corr_masked)) + by, bx = np.unravel_index(np.argmax(corr_masked), corr_masked.shape) + print( + f"template match at ({x0},{y0}): best off-self NCC={best:.3f} at ({bx},{by})" + ) + best_matches.append(best) + + print( + f"summary: secondary autocorr peak={peak_pct:.2f}% of zero-lag, " + f"max template-match NCC={max(best_matches):.3f}" + ) + + +if __name__ == "__main__": + main() diff --git a/src/lunar_sim/mjcf/scene.xml b/src/lunar_sim/mjcf/scene.xml deleted file mode 100644 index 0c5e5a476..000000000 --- a/src/lunar_sim/mjcf/scene.xml +++ /dev/null @@ -1,110 +0,0 @@ - - diff --git a/src/lunar_sim/objectives/dead_reckon_square.xml b/src/lunar_sim/objectives/dead_reckon_square.xml new file mode 100644 index 000000000..aa9ed2311 --- /dev/null +++ b/src/lunar_sim/objectives/dead_reckon_square.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/lunar_sim/objectives/reset_simulation.xml b/src/lunar_sim/objectives/reset_simulation.xml new file mode 100644 index 000000000..82da7b929 --- /dev/null +++ b/src/lunar_sim/objectives/reset_simulation.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + diff --git a/src/lunar_sim/package.xml b/src/lunar_sim/package.xml index 51b34ffb9..47f77fd6a 100644 --- a/src/lunar_sim/package.xml +++ b/src/lunar_sim/package.xml @@ -4,8 +4,9 @@ 9.5.0 - MuJoCo simulation configuration package for the dual-arm mobile robot - in a lunar environment. + MoveIt Pro configuration for a Clearpath Husky A300 running under MuJoCo + physics on a procedurally cratered lunar regolith heightfield with scattered + rocks. MoveIt Pro Maintainer @@ -14,16 +15,28 @@ ament_cmake + clearpath_platform_description + controller_manager + diff_drive_controller + hardware_interface + joint_state_broadcaster + launch + launch_ros + lunar_sim_behaviors moveit_studio_agent - phoebe_sim + moveit_pro_behavior + moveit_pro_objectives + picknik_mujoco_ros - ament_lint_auto - ament_clang_format - ament_clang_tidy ament_cmake_copyright ament_cmake_lint_cmake - picknik_ament_copyright + ament_cmake_pytest ament_flake8 + ament_index_python + ament_lint_auto + picknik_ament_copyright + python3-numpy + python3-pil ament_cmake diff --git a/src/lunar_sim/test/test_husky_mujoco_geometry.py b/src/lunar_sim/test/test_husky_mujoco_geometry.py new file mode 100644 index 000000000..3334c6a60 --- /dev/null +++ b/src/lunar_sim/test/test_husky_mujoco_geometry.py @@ -0,0 +1,246 @@ +#!/usr/bin/env python3 + +# Copyright 2026 PickNik Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of the PickNik Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +"""The MJCF wheel collision radius/width must track the vendored URDF's, and the wheel +velocity actuators must stay inside the armature/kv-vs-timestep bound documented in +AGENTS.md (an armature/kv time constant at or above the timestep silently pins the +wheels - see hangar_sim's mecanum base incident). Nothing else in the build checks +either; both failure modes are quiet (no crash, the base just doesn't move, or the +model loads with wheels floating above/through the ground). + +Wheel *placement* (x/y/z body offsets) is deliberately not cross-checked here: deriving +it from the vendored xacro requires evaluating a per-side conditional expression +(`suspension_beam.urdf.xacro`'s `spacer_offset`), which this test can't do without +duplicating that logic (and getting it subtly wrong is worse than not checking it) - +see husky_a300.xml's own derivation comment for that FK chain instead. + +No simulator, no ROS - the MJCF fragments and the vendored xacro are parsed as XML and +asserted on by element/attribute, mirroring hangar_sim/test/test_base_geometry.py. +""" + +import xml.etree.ElementTree as ET +from pathlib import Path + +import numpy as np +import pytest +from PIL import Image +from ament_index_python.packages import get_package_share_directory + +DESCRIPTION = Path(__file__).resolve().parent.parent / "description" +HUSKY_A300 = DESCRIPTION / "husky_a300.xml" +HUSKY_SCENE = DESCRIPTION / "husky_scene.xml" + +CLEARPATH_A300_URDF = ( + Path(get_package_share_directory("clearpath_platform_description")) + / "urdf" + / "a300" +) + +TOLERANCE_M = 1e-4 + + +def _xacro_property(source: Path, name: str) -> float: + """Vendored xacro files declare these as literal numbers; a non-literal value means + the property moved behind an expression and this cross-check needs revisiting.""" + for prop in ET.parse(source).getroot().iter(): + # Namespace-agnostic: the xacro namespace URI is spelled both with and + # without the "www." prefix across upstream files. + if prop.tag.rpartition("}")[2] != "property": + continue + if prop.get("name") == name: + return float(prop.get("value")) + raise AssertionError(f"{source.name} has no numeric xacro:property named {name!r}") + + +def _outdoor_wheel_radius_width() -> tuple[float, float]: + outdoor = CLEARPATH_A300_URDF / "drivetrain" / "wheels" / "outdoor.urdf.xacro" + return ( + _xacro_property(outdoor, "a300_outdoor_wheel_radius"), + _xacro_property(outdoor, "a300_outdoor_wheel_width"), + ) + + +def _wheel_link_roots() -> dict[str, ET.Element]: + roots = { + f.name: ET.parse(f).getroot() for f in DESCRIPTION.glob("*_wheel_link.xml") + } + assert roots, f"no *_wheel_link.xml files under {DESCRIPTION}" + return roots + + +def test_wheel_collision_cylinder_matches_vendored_radius_and_width(): + radius, width = _outdoor_wheel_radius_width() + for name, root in _wheel_link_roots().items(): + cylinders = [g for g in root.iter("geom") if g.get("type") == "cylinder"] + assert len(cylinders) == 1, f"{name} should have exactly one cylinder geom" + got_radius, got_half_width = ( + float(v) for v in cylinders[0].get("size").split() + ) + assert got_radius == pytest.approx(radius, abs=TOLERANCE_M), name + assert got_half_width == pytest.approx(width / 2, abs=TOLERANCE_M), name + + +def test_velocity_actuators_stay_below_the_timestep(): + """See AGENTS.md: "Velocity actuators: armature/kv time-constant must stay below the + timestep." A violation pins the wheels without any error - this is the only check + for it.""" + option = ET.parse(HUSKY_SCENE).getroot().find("option") + assert option is not None and option.get( + "timestep" + ), f"{HUSKY_SCENE.name} has no