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许可所有依赖项。