Commit Graph

53 Commits

Author SHA1 Message Date
Saberlve
b2875851ae Remove redundant code 2026-08-17 15:22:42 +00:00
Saberlve
99546165ec Exclude log record in data collection 2026-08-17 15:06:02 +00:00
ChenYuhan
172bec5fe6 Fix smooth safe GELLO joint recording 2026-08-17 21:03:44 +08:00
ChenYuhan
dbe76964de Document GELLO guard latency findings 2026-08-17 11:35:34 +08:00
ChenYuhan
c0e950f4f1 Add guarded GELLO latency experiment 2026-08-17 11:24:35 +08:00
ChenYuhan
14c3e798f0 Add camera serial number and slow the reset speed between episode 2026-08-16 17:25:24 +08:00
ChenYuhan
4f76d5cefb Refine the guard control to eliminate jitter 2026-08-16 16:49:16 +08:00
ChenYuhan
ede2b4bed9 Add safety height guard in control 2026-08-16 15:56:02 +08:00
ChenYuhan
6288ac7d7d Reduce GELLO latency and use relative dataset paths 2026-08-11 17:16:40 +08:00
ChenYuhan
e64b46447e Improve xArm gripper communication handling 2026-08-11 17:04:07 +08:00
ChenYuhan
652562a7b7 refactor: keep GELLO hardware patches in main repository 2026-08-10 18:33:28 +08:00
ChenYuhan
2c59ff82ba feat: align GELLO from its current passive pose 2026-08-10 17:47:48 +08:00
ChenYuhan
6cc1a3df95 feat: add calibrated GELLO reset workflow 2026-08-10 14:06:25 +08:00
Saberlve
d40893cb44 Add safety inference code 2026-08-08 14:47:22 +00:00
Saberlve
03775cefc0 Update readme; Add replay script 2026-08-08 17:07:34 +08:00
Saberlve
e2f06ea677 update readme 2026-08-08 17:03:46 +08:00
Saberlve
1b775a4be2 Fix bug in dataset root resolution 2026-08-08 16:51:08 +08:00
Saberlve
ed0063730d Add camera preview 2026-08-08 16:22:34 +08:00
Saberlve
6d813e53c0 update data root resolve 2026-08-07 15:04:00 +00:00
Saberlve
30b0169c56 update readme 2026-08-07 14:57:29 +00:00
Saberlve
b5d46c4edd Add data replay 2026-08-07 17:49:10 +08:00
Saberlve
d336b73aa3 Fix bug in camera config 2026-08-07 16:44:18 +08:00
Saberlve
c04fcf4427 Add gripper control via keyboards in manual mode 2026-08-07 16:16:55 +08:00
Saberlve
da5a076f4c Fix bug 2026-08-07 16:04:08 +08:00
Saberlve
2f7077fcbf Add gello and robot reset pose logic. 2026-08-07 15:56:54 +08:00
Saberlve
b51dfa128a Install realsense dependencies 2026-08-07 14:47:48 +08:00
Saberlve
651e9ca313 Add manual mode data collection script 2026-08-07 14:14:55 +08:00
Saberlve
75bbbed689 Add reset after manual mode in temp script 2026-08-07 13:15:46 +08:00
Saberlve
4dfed85048 Add simple manual mode script and uv lock 2026-08-07 13:00:21 +08:00
Vinman
e492233348 fix(umi): 预加载 libtbb.so.2,解决 bundled OpenCV 兼容性问题
bundled 的 libopencv_core.so.4.2 依赖旧版 libtbb.so.2 (Intel TBB 2.x ABI),
Ubuntu 22.04+ 的 oneAPI TBB (libtbb.so.12) 不兼容,导致 OpenCV 加载失败。
按 系统路径 → 本地 bundled 的顺序预加载 libtbb.so.2 解决此问题。
2026-07-23 16:14:33 +08:00
Vinman
811a7f7717 feat(config): 添加自定义配置解析器,过滤未知 YAML 字段
新增 configs 模块,封装 draccus.wrap 扩展解析逻辑:
加载 YAML 配置时自动过滤 dataclass 不识别的字段,避免解析报错;
支持 ChoiceRegistry 嵌套类型字段过滤;
移除已废弃的左右 xArm6 UMI 录制配置文件。
2026-07-22 11:50:22 +08:00
Vinman
a187221e45 feat(umi): 添加左右 xArm6 双臂 UMI 录制配置
新增左右双臂 xArm6 的 UMI 遥操作录制配置文件,包含机器人 IP、
相机、遥操作参数及数据集设置;utils 新增 version_ge 版本比较函数。
2026-07-22 10:00:32 +08:00
Vinman
8c7cea1cb6 feat(robot): 增强 UMI SLAM 稳定性,支持相机画面缩放
将插件猴子补丁改为通过 UF_LEROBOT_PATCH_TYPE 环境变量按需触发;
SLAM 初始化增加就绪等待、重试及位姿置信度/时间戳校验;
新增 cameras_args 配置支持相机画面 resize;
修复遥操作 config parser 导入及多臂相机清理问题。
2026-07-21 18:59:17 +08:00
Vinman
e2632889b3 chore: 清理调试代码及废弃配置,修复 TeleopConfig 初始化
删除 uf_lerobot_eval.py 中的调试 print/exit 代码,
清理 dual_xarm6_umi_record_config.yaml 中废弃的 teleop_id 和注释配置。
TeleopConfig 新增 __post_init__ 将 cameras 初始化为空字典,避免下游空值报错。
2026-07-02 14:08:08 +08:00
Vinman
fece62dba1 docs: 更新 README — 包名重命名、CLI 参数修正、项目结构同步 2026-06-30 15:24:42 +08:00
Vinman
bdc8ef05ab refactor: 插件化重构 — 重命名包、draccus 配置迁移、上下文注册、Pika 复用
1. 重命名 ufactory_lerobot → lerobot_robot_ufactory
   以独立插件包形式支持 lerobot 加载,pyproject.toml 同步更新

2. 配置文件迁移至 draccus 格式
   所有 YAML config 从 _target_ 格式迁移至 ChoiceRegistry type 格式
   dict 值类型从具体类改为抽象基类(RobotConfig/TeleoperatorConfig)
   确保嵌套 dict 中的 type 选择器能被 draccus 正确解析

3. teleop 上下文注册替代属性注入
   新增 context.py(contextvars 实现),支持多 teleop 按 id 存取
   UFBaseTeleop.connect/disconnect 自动注册/注销活跃 teleop
   UFMockRobot.get_observation 从上下文获取 teleop action
   移除 record() 对 cfg.robot.teleop 的注入

4. 部分导入延迟加载
   pika_device: serial/list_ports 延迟导入
   gello_teleop: gello 依赖延迟导入
   umi_teleop/camera_umi: XVLib 延迟导入
   space_mouse: spnav 延迟导入

5. Pika 设备实例复用
   PIKA_DEVICE_MAP 共享已连接的 Sense/Gripper,防止多实例化抢占端口
   修复 pika_gripper 属性误用 _pika_sense_port 的 bug

6. 修复 multiple_uf_mock_robot
   robots 从 list 改为 dict[str, UFMockRobot],移除 keys 列表
   send_action 改用 dict items 遍历
   新增 MultipleUFMockRobot.cameras 聚合属性
2026-06-30 15:07:39 +08:00
Vinman
83a1c46441 feat(record): 支持 --async-save 异步保存 episode 2026-06-29 18:07:50 +08:00
Vinman
68d7898603 fix(vive-tracker): 删除重复的 __del__ 方法,增加生命周期日志 2026-06-29 17:08:53 +08:00
Vinman
15d9eae9a1 refactor(umi): 延迟导入外部依赖,增强 xvlib 设备接口 2026-06-29 17:04:48 +08:00
Minna
57e57358b6
Merge pull request #1 from MinnaZhong/main
Include video
2026-06-23 18:28:41 +08:00
Minna
17ac84448f Include video 2026-06-23 18:24:05 +08:00
Minna
fe42559905 Include video 2026-06-23 17:29:10 +08:00
Vinman
1282a073ec fix(vive-tracker): _init 方法补充 return True 返回值 2026-06-22 15:23:04 +08:00
Vinman
6768c03918 chore(config): 更新各遥操作配置文件
统一 GELLO/Pika/UMI/SpaceMouse 配置项格式。
2026-06-18 17:35:20 +08:00
Vinman
be0f5c4abf docs: 修正 XVSDK 安装命令格式
curl 管道改为 -o 临时文件再 dpkg 安装。
2026-06-18 16:41:16 +08:00
Vinman
dbad475cb2 perf(umi): 摄像头读取启用零拷贝 Ref API
xv_get_color_camera_data 默认使用 use_ref=True 减少内存拷贝。
2026-06-18 16:18:38 +08:00
Vinman
b939a7842a feat(umi): 重构 xvlib 和 vive_tracker 接口
xvlib 新增零拷贝 Ref 结构体、XVSDK 检测、设备等待逻辑,
vive_tracker 改为单例模式,优化 API 接口,
新增 libopencv/lipxvlib 二进制文件。
2026-06-18 16:17:23 +08:00
Vinman
de538a24c3 docs: 生成英文 README,新增摄像头查看工具
README 拆分为英文版和中文版并添加语言切换链接,
新增 uf_camera_view 多摄像头拼接工具,
udev 规则移至项目根目录。
2026-06-16 17:05:34 +08:00
Vinman
e01fec8b91 feat(project): 新增配置、udev 规则并完善文档结构
添加 GELLO/Pika/UMI/SpaceMouse 遥操作配置,
新增 udev 设备规则,更新 README 项目结构,
优化键盘提示格式。
2026-06-16 13:13:21 +08:00
Vinman
6f520b5fef chore(project): 重构为 src 布局并新增校准脚本
将包、xvsdk、rules 移入 src/,新增 vive_calibrate 脚本。
2026-06-15 12:22:52 +08:00