仿真感知:真值孔位 + 真值相机 + 补 /home,让流程不改代码就能跑仿真
三块补齐,目标是"同一个流程节点,仿真/真机都不改代码":
1. 真值孔位(truth_holes.py):把 scene.yaml 与模型 SDF 里已知的孔几何
直接投影到相机像素坐标,替代 HoughCircles。perception.source 选:
yolo / truth / external —— truth 就走这条路。
为什么不用 Hough:仿真里孔是"方孔 + 贴片亮环"的近似(SDF 没有布尔运算),
靠图像门槛去凑 radus 区间很脆;而孔位本来就是场景里已知量,直接投影
既准又稳,还能当真实检测算法的对照基线。
2. 真值相机(sim_truth_perception.py):同理,直接算物体位姿,供
visual_servo/filtered_point 用,绕开 ONNX。
3. 补 /home 与 set_named_pose 服务(sim_home_service.py):真机上这两个
由 Flexiv 驱动提供,仿真里没有 —— 缺了 S01 直接超时。
4. sim_tactile_adapter 容错导入 ros_gz_interfaces:那一路只是"接触点",
力本身走 geometry_msgs/Wrench。typesupport 加载不了时退化成
contact 恒 False + centroid 恒 0,三力判据(S07 用的)不受影响 ——
宁可用退化模式跑,也不要整个适配器起不来。
5. repo_root 解析(已装包要能找回源码仓库根,见 test_repo_root.py 的用例)
与 use_sim_time 向子 launch 的传递。
另:scripts/gen_sim_handeye.py 把 URDF 真值导出手眼文件(仿真不标定)。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -94,11 +94,19 @@ sides:
|
||||
# 力传感器所在的坐标系(即 *_inner_finger_joint 的 child link)。
|
||||
# 接触点会转到这个系里,用来算 centroid_u/v,也是轴的参照系。
|
||||
frame: sim_left_finger_mount
|
||||
# 指腹内侧的"夹持点"(= tool center point)。**上料脚本要用它**:
|
||||
# 两指 TCP 的中点就是工具轴,规尖垂在这条轴线上。
|
||||
# 与 frame 的区别:frame 是力传感器的参照系(指尖关节的 child link),
|
||||
# TCP 在它的子链再往下 0.036m(见 flexiv_description 的 finger_tcp_joint)。
|
||||
# 名字不能靠 frame 加后缀推 —— 实测这两条链分别是
|
||||
# sim_left_finger_mount / sim_left_finger_tcp(父链与子链并列命名)。
|
||||
tcp_frame: sim_left_finger_tcp
|
||||
|
||||
- side: right
|
||||
wrench_topic: /tactile/right/wrench
|
||||
contact_topic: /tactile/right/raw
|
||||
frame: sim_right_finger_mount
|
||||
tcp_frame: sim_right_finger_tcp
|
||||
|
||||
# --- 轴向映射(已实测,不是猜的)----------------------------------------
|
||||
# 力传感器挂在指尖关节上,给出的是该关节 child link 坐标系里的三向力。
|
||||
|
||||
Reference in New Issue
Block a user