From dcf91ac37938bca04d64b8adc6b7ce7a621001f6 Mon Sep 17 00:00:00 2001
From: PickNik HAL 9000 Bot
<298052124+picknik-hal-9000-bot[bot]@users.noreply.github.com>
Date: Tue, 18 Aug 2026 05:22:52 +0000
Subject: [PATCH] feat(hangar_sim): add mobile base teleoperation group
---
src/hangar_sim/config/config.yaml | 1 +
.../control/picknik_ur.ros2_control.yaml | 22 +++++++++++++++++++
src/hangar_sim/config/moveit/picknik_ur.srdf | 3 +++
src/hangar_sim/config/moveit/pose_jog.yaml | 6 +++--
4 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/src/hangar_sim/config/config.yaml b/src/hangar_sim/config/config.yaml
index ec7de13d0..87029757e 100644
--- a/src/hangar_sim/config/config.yaml
+++ b/src/hangar_sim/config/config.yaml
@@ -109,5 +109,6 @@ ros2_control:
- "joint_trajectory_controller"
- "velocity_force_controller"
- "arm_only_velocity_force_controller"
+ - "mobile_base_velocity_force_controller"
- "joint_velocity_controller"
- "arm_only_joint_velocity_controller"
diff --git a/src/hangar_sim/config/control/picknik_ur.ros2_control.yaml b/src/hangar_sim/config/control/picknik_ur.ros2_control.yaml
index ab6e0afb3..98899b1eb 100644
--- a/src/hangar_sim/config/control/picknik_ur.ros2_control.yaml
+++ b/src/hangar_sim/config/control/picknik_ur.ros2_control.yaml
@@ -21,6 +21,8 @@ controller_manager:
type: velocity_force_controller/VelocityForceController
arm_only_velocity_force_controller:
type: velocity_force_controller/VelocityForceController
+ mobile_base_velocity_force_controller:
+ type: velocity_force_controller/VelocityForceController
joint_velocity_controller:
type: joint_velocity_controller/JointVelocityController
arm_only_joint_velocity_controller:
@@ -379,6 +381,26 @@ velocity_force_controller:
# Padding (in radians) to add to joint position limits as a safety margin.
joint_limit_position_tolerance: 0.02
+mobile_base_velocity_force_controller:
+ ros__parameters:
+ command_joints:
+ - platform_velocity_controller/linear_x_joint
+ - platform_velocity_controller/linear_y_joint
+ - platform_velocity_controller/rotational_yaw_joint
+ command_interfaces:
+ - velocity
+ planning_group_name: mobile_base
+ sensor_frame: ridgeback_base_link
+ ee_frame: ridgeback_base_link
+ state_publish_rate: 50
+ jacobian_damping: 0.0001
+ command_timeout: 0.1
+ max_joint_velocity: [0.175, 0.175, 0.5235987755982988]
+ max_joint_acceleration: [0.2, 0.2, 0.3490658503988659]
+ max_cartesian_velocity: [0.175, 0.175, 0.001, 0.001, 0.001, 0.5235987755982988]
+ max_cartesian_acceleration: [0.2, 0.2, 0.001, 0.001, 0.001, 0.3490658503988659]
+ joint_limit_position_tolerance: 0.02
+
arm_only_velocity_force_controller:
ros__parameters:
# The joint group to control.
diff --git a/src/hangar_sim/config/moveit/picknik_ur.srdf b/src/hangar_sim/config/moveit/picknik_ur.srdf
index 0bd3436d5..f53eded4d 100644
--- a/src/hangar_sim/config/moveit/picknik_ur.srdf
+++ b/src/hangar_sim/config/moveit/picknik_ur.srdf
@@ -15,6 +15,9 @@
+
+
+
diff --git a/src/hangar_sim/config/moveit/pose_jog.yaml b/src/hangar_sim/config/moveit/pose_jog.yaml
index 3722c0395..83b56edec 100644
--- a/src/hangar_sim/config/moveit/pose_jog.yaml
+++ b/src/hangar_sim/config/moveit/pose_jog.yaml
@@ -1,4 +1,6 @@
# Planning groups to use in PoseJog, and their corresponding VFC controllers.
# The number of elements in `planning_groups` and `controllers` must match.
-planning_groups: ['manipulator', 'arm_only']
-controllers: ['velocity_force_controller', 'arm_only_velocity_force_controller']
+planning_groups: ['manipulator', 'arm_only', 'mobile_base']
+controllers: ['velocity_force_controller', 'arm_only_velocity_force_controller', 'mobile_base_velocity_force_controller']
+dpad_layouts:
+ mobile_base: planar