diff --git a/devices/sim/gazebo/urdf/arm.sim.sensors.xacro b/devices/sim/gazebo/urdf/arm.sim.sensors.xacro index b6b63f7..953ab8b 100644 --- a/devices/sim/gazebo/urdf/arm.sim.sensors.xacro +++ b/devices/sim/gazebo/urdf/arm.sim.sensors.xacro @@ -131,55 +131,70 @@ ======================================================================= 真机上是视触觉:一块弹性体 + 内置相机,读出三向力、深度图、力矢量图。 仿真里没法真的模拟弹性体形变成像,采取的务实方案是: - 用 Gazebo 内置的 contact sensor 取接触点的三向力, - 再由自定义插件(devices/sim/gazebo/sensor_plugins/)把它 - 按 Orisys 的 TactileStatus 消息格式发布出去, - 含切向/法向分解,使 P6 的力判据在仿真里可跑。 + 用 Gazebo 内置的 contact sensor 取接触处的真实接触力, + 再由 sim_tactile_adapter 把力投影到指尖坐标系, + 按 Orisys 的 TactileStatus 消息格式发布出去。 - 这里只挂 contact sensor 与自定义插件的位置占位; - 插件的实现与消息映射在 P5c-5 完成。 + ⚠️ 这里**不再**新建空的 tactile link。 + 曾经的做法是建两个空的 sim_tactile_*_link(既无 visual 也无 + collision),挂在 **法兰** 的 tcp 上(不是指尖),而 里 + 又引用了一个 sim_tactile_left_link_collision + —— 那个 collision 元素根本不存在。三重错叠在一起, + 结果是传感器**永远收不到任何数据**,而 Gazebo 不会为此报任何错: + 话题在、没有输出、看起来像"还没接触"。极难查。 + 这也正是把传感器挂到真实碰撞体所在的 link(指尖)上的理由 —— + "接触到的就是读到的",中间不再有需要对齐的第二套几何。 为什么要挂两个(left/right): 真机是双指各贴一片,tangential_1/2 + normal 三路力分别来自两片, 单指的数据无法复现"旋拧时切向力从哪一侧来"这个判据。 + + ⚠️ 单位不是牛顿!真机读数是**形变任意单位**、基线会漂移, + 所有阈值都按"相对静止均值的增量"使用(见 + devices/sensors/orisys/manifest.yaml)。仿真给的是牛顿, + 所以两者的数值**不能直接共用阈值** —— 标度换算由 + config/tactile.yaml 的 force_scale 负责,详见该文件与 README。 ======================================================================= --> - - - - - - - - - - - - - - - + true 100 - - ${prefix}tactile_left_link_collision + + ${prefix}left_finger_mount_fixed_joint_lump__${prefix}left_finger_tip_collision + + /tactile/left/raw - /tactile/left/raw - + true 100 - ${prefix}tactile_right_link_collision + ${prefix}right_finger_mount_fixed_joint_lump__${prefix}right_finger_tip_collision + /tactile/right/raw - /tactile/right/raw diff --git a/devices/sim/gazebo/worlds/assembly.world b/devices/sim/gazebo/worlds/assembly.world index 7c445f5..44518f7 100644 --- a/devices/sim/gazebo/worlds/assembly.world +++ b/devices/sim/gazebo/worlds/assembly.world @@ -221,6 +221,40 @@ ogre2 + + +