OK-Robot
作者: 刘沛琪*, Yaswanth Orru*, Jay Vakil, Chris Paxton, Mahi Shafiuallah†, Lerrel Pinto†
* 贡献相同, † 指导相同。
OK-Robot是一个零样本模块化框架,有效结合了最先进的导航和操作模型,可以在真实家庭中执行拾取和放置任务。它已在10个真实家庭中对170多个物体进行了测试,总成功率达到58.5%。
https://github.com/ok-robot/ok-robot/assets/156981262/7221264b-2fa3-4008-a757-0604cdc04e2b
硬件和软件要求
所需硬件:
- 带激光雷达传感器的iPhone Pro
- 安装了Dex Wrist的Hello Robot Stretch
- 一台带GPU的工作站用于运行预训练模型
所需软件:
- Python 3.9
- Record3D (>1.18.0)
- CloudCompare
安装
- 你需要获取anygrasp的许可证和检查点。
- 在工作站上安装必要的环境以运行导航和操作模块
- 完成上述步骤后验证工作空间安装。
- 在机器人上安装必要的包,以便能够与后端工作站正确通信。
- 你可能还需要获取一个新的校准URDF以进行精确的机器人操作。
一旦机器人和工作站都准备就绪,你就可以开始实验了。
运行实验
首先设置环境,用胶带标记,正确放置机器人并扫描环境以从Record3D获取r3d文件。将其放在/navigation/r3d/
中,运行以下命令。
在工作站上:
在一个终端中运行导航模块。
mamba activate ok-robot-env
cd ok-robot-navigation
python path_planning.py debug=False min_height={地面胶带的z坐标 + 0.1} dataset_path='r3d/{你的r3d文件名}.r3d' cache_path='{你的r3d文件名}.pt' pointcloud_path='{你的r3d文件名}.ply'
在另一个终端中运行操作模块
mamba activate ok-robot-env
cd ok-robot-manipulation/src
python demo.py --open_communication --debug
在机器人上:
在机器人上运行任何东西之前,你需要校准它
stretch_robot_home.py
我们的机器人代码依赖于home-robot提供的机器人控制器。就像运行其他基于home-robot的代码一样,你需要在两个终端中同步运行两个进程。
在一个终端中启动home-robot
roslaunch home_robot_hw startup_stretch_hector_slam.launch
在另一个终端中运行机器人控制。更多详情请参见ok-robot-hw
cd ok-robot-hw
python run.py -x1 [x1] -y1 [y1] -x2 [x2] -y2 [y2] -ip [你的工作站ip]
引用
如果你发现这项工作有用,请考虑引用:
@article{liu2024okrobot,
title={OK-Robot: What Really Matters in Integrating Open-Knowledge Models for Robotics},
author={Liu, Peiqi and Orru, Yaswanth and Paxton, Chris and Shafiullah, Nur Muhammad Mahi and Pinto, Lerrel},
journal={arXiv preprint arXiv:2401.12202},
year={2024}
}
我们的工作依赖于许多其他出版物和开源项目,如果你发现某个特定组件有用,请考虑也引用原作者。
引用列表
@article{fang2023anygrasp,
title={Anygrasp: Robust and efficient grasp perception in spatial and temporal domains},
author={Fang, Hao-Shu and Wang, Chenxi and Fang, Hongjie and Gou, Minghao and Liu, Jirong and Yan, Hengxu and Liu, Wenhai and Xie, Yichen and Lu, Cewu},
journal={IEEE Transactions on Robotics},
year={2023},
publisher={IEEE}
}
@article{minderer2024scaling,
title={Scaling open-vocabulary object detection},
author={Minderer, Matthias and Gritsenko, Alexey and Houlsby, Neil},
journal={Advances in Neural Information Processing Systems},
volume={36},
year={2024}
}
@article{yenamandra2023homerobot,
title={HomeRobot: Open-Vocabulary Mobile Manipulation},
author={Yenamandra, Sriram and Ramachandran, Arun and Yadav, Karmesh and Wang, Austin and Khanna, Mukul and Gervet, Theophile and Yang, Tsung-Yen and Jain, Vidhi and Clegg, Alexander William and Turner, John and others},
journal={arXiv preprint arXiv:2306.11565},
year={2023}
}
路线图
虽然OK-Robot本身就能做很多事情,但我们认为零样本、家居机器人还有很大的改进空间。这就是为什么我们认为OK-Robot是一个持续发展的项目,并将尝试不时地添加新功能。我们也鼓励你查看下面的列表,如果你感兴趣,可以通过为这个项目做出贡献来与社区分享你的改进。
- 创建OK-Robot,一个零样本、开放词汇拾取和放置机器人的共享平台。
- 集成AnyGrasp抓取原语。
- 集成VoxelMap开放词汇导航。
- 集成基于启发式的放置。
- 改进文档。
- 添加操作失败时的错误检测/恢复。
- 实现交互式导航:如果找不到物体或查询不明确,询问最终用户。
- 集成开源抓取感知模型,以便我们可以MIT许可所有依赖项。