6edb8d39ab
在开始'设备契约层 + 目录重构 + 通止规装配'改造之前,先钉住当前可运行状态, 使后续任何删除/重构都可回退。 本基线包含: - 现有 ROS 2 工作区全部源码(arm_application / arm_control / arm_bringup 等) - 官方 flexiv_ros2 栈(含 flexiv_hardware / flexiv_controllers 等符号链接) - 设备契约层 src/arm_interfaces(新增,46 项单测通过) - devices/ 设备选型与品牌清单(新增) - scripts/gen_site_example.py 与由它生成的 config/site.example.yaml 按 .gitignore 排除:build/ / install/ / log/ / config/site.yaml / 模型权重二进制。
41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
# Orisys 视触觉
|
||
|
||
夹爪左右指上的视触觉相机(**不是**腕部 D405)。SDK 用厂家 wheel 安装
|
||
(`pip install --no-deps ~/sensor_ws/0.4.2/orisys-0.4.2-cp311-*.whl` 到 ros_flexiv 环境),
|
||
本仓库只放适配器、现场参数和 `dd03.json`。
|
||
|
||
源码:
|
||
|
||
| 文件 | 作用 |
|
||
|------|------|
|
||
| `arm_application/orisys_tactile.py` | SDK 适配 + `load_orisys_from_site` + `tactile_worker`(多进程工作器) |
|
||
| `arm_application/tactile_interface.py` | 可替换接口 / Mock |
|
||
| `arm_application/tactile_node.py` | 发布 `/tactile/left\|right/status` |
|
||
| `config/orisys/dd03.json` | 传感器几何/跟踪(厂家配置,可进 git) |
|
||
|
||
**架构:每侧手指一个独立进程**(厂家示例 `two_sensor_pipeline.py` 的推荐做法,
|
||
每进程独立 CUDA 上下文)。实测单进程双开两路会互相拖垮(30→0.8fps),
|
||
双进程各 30fps。`tactile` 节点内部用 `multiprocessing(spawn)` 起两个 worker,
|
||
主进程只做队列→话题转发。worker 进程 comm 名 `orisys_tac_w`,runner 脚本会
|
||
连带清理(**孤儿 worker 会占死 /dev/video\***,表现为下次启动
|
||
"Failed to open video source",手动清:`pkill orisys_tac_w`)。
|
||
|
||
现场要点(都在 **`config/site.yaml` → `tactile:`**):
|
||
|
||
- `left_video/right_video` 用 **`/dev/v4l/by-path/...` 稳定路径**——Orisys 是
|
||
"USB Camera"(不是 RealSense!),video 编号随插拔漂移,by-path 绑定物理 USB 口
|
||
- `cuda: false` + `infer_backend: cpu`——双路并行抢 GPU 上下文会互相拖慢,
|
||
CPU 解算仅 ~9ms/帧足够(单路想快可开 cuda)
|
||
- 读数是**形变任意单位**(非牛顿)且夹持基线会漂移;三阶段节点启动时自动测
|
||
静止基线,所有力阈值都是相对增量(见 `docs/HOLE_DETECT.md` 三阶段段落)
|
||
|
||
```bash
|
||
bash ~/ros2/scripts/run_tactile.sh --cli # 打印力 若干秒
|
||
bash ~/ros2/scripts/run_tactile.sh # ROS 节点
|
||
```
|
||
|
||
无硬件时:`tactile.backend: mock`。
|
||
|
||
搜孔插入运动(机械臂螺旋 + 力闭环)已由三阶段实现:`stage3_search_node.py`,
|
||
见 `docs/HOLE_DETECT.md` 三阶段段落,跑 `bash ~/ros2/scripts/run_stage3_search.sh --arm 89`。
|