🤖家庭机器人

type
status
slug
summary
tags
category
icon
password
Date
notion image
您的开源机器人移动操作堆栈!
HomeRobot 可让您开始在低成本移动操纵器上运行一系列机器人任务,从开放词汇移动操纵OVMM)开始。 OVMM 是一项具有挑战性的任务,这意味着在未知的环境中,机器人必须:
  • 探索其环境
  • 寻找对象
  • 找到一个容器——必须放置该物体的位置
  • 将物体放在容器上。
准备好后,请按照以下说明参与
新 OVMM 挑战参与者的重要注意事项:如果您正在参加挑战并立即开始,请使用当前home-robot-ovmm-challenge-2024标签。您可以通过以下方式克隆家庭机器人:
核心概念
该软件包假设您有一个计算能力有限的低成本移动机器人(最初是Hello Robot Stretch)和一个具有更多 GPU 计算能力的“工作站”。假设两者都在同一网络上运行。
这是硬件机器人的推荐工作流程:
  • 打开你的机器人;对于 Stretch,运行stretch_robot_home.py
    • 即可使用。
  • 从您的工作站,通过 SSH 进入机器人并启动ROS 启动文件
    • ,该文件会调出必要的低级控制和硬件驱动程序。
  • 如果需要,请在工作站上运行rviz
    • 以查看机器人所看到的内容。
  • 开始在工作站上运行您的 AI 代码 - 例如,您可以运行python projects/real_world_ovmm/eval_episode.py
    • OVMM 任务。
我们为有用的感知库(例如DeticGrounded-SAMContact Graspnet)提供了一些连接,您可以将它们用作方法的一部分。
安装
初步的
HomeRobot 需要 Python 3.9。在工作站上安装需要condamamba。在机器人上安装假定使用 Ubuntu 20.04 和ROS Noetic
要在 Hello Robot Stretch 上设置硬件堆栈,请参阅中的ROS 安装说明home_robot_hw
您可能需要经过校准的 URDF 才能使我们的逆运动学代码正常工作;参见校准说明
现场安装说明尚处于实验阶段,但也可用。
网络设置
按照网络设置指南设置您的机器人以使用网络,并确保它可以通过 ROS 在工作站和机器人之间进行通信。在机器人方面,使用以下命令启动控制器:
工作站说明
要设置您的工作站,请按照以下说明进行操作。 HomeRobot 需要 Python 3.9。这些说明假设您的系统支持 CUDA 11.7 或更高版本的 pytorch;早期版本应该没问题,但可能需要对 conda 环境进行一些更改。
如果在 Ubuntu 上,请确保安装了一些基本软件包:
然后在本地克隆 home-robot:
1. 创建你的环境
如有必要,请在您的 conda 基础环境中安装 mamba 。可选:在您的工作站上安装 ROS noetic 。
这些应该安装 pytorch;如果遇到问题,您可能需要编辑安装以确保您拥有正确的 CUDA 版本。有关更多信息,请参阅pytorch 安装说明
或者,设置一个catkin 工作区以使用改进的 ROS 可视化。
2. 运行安装脚本
确保您设置了正确的环境变量:CUDA_HOME应指向您的 cuda 安装,与您的 python 环境使用的变量相匹配。我们推荐 11.7,它将作为 conda 环境的一部分在上面自动安装。
要构建一些第三方依赖项,您还需要完整的 cuda 工具包及其编译器nvcc.您可以从nvidia 的下载页面下载它。下载运行文件,并确保选中该框,不要安装驱动程序或更新系统 cuda 版本。它将安装在单独的位置。
然后确保环境变量设置为合理的值,例如:
最后,您可以运行安装脚本来下载子模块、模型检查点并构建用于开放词汇对象检测的 Detic:
如果您遇到问题,请查看分步说明
截至 2023-10-31,您可能会发现通过 pip 安装的 ros-numpy 版本存在一些问题;请尝试直接从源代码安装它。
3. 模拟设置
要使用 Habitat 设置模拟堆栈、培训 DDPPO 技能并运行评估:请参阅中的安装说明home_robot_sim。与其他组件一样,模拟假设您拥有 Python 3.9、conda、mamba 和 CUDA 11.7 或更高版本,但其他 CUDA 版本也可能适用。
有关 OVMM 挑战的更多详细信息,请参阅Habitat OVMM 自述文件。您可以首先运行安装脚本来下载所有必要的数据:
4. 在 Stretch 上运行开放词汇移动操作
然后您应该能够运行 Stretch OVMM 示例。
运行抓取服务器;联系 Graspnet 或我们简单的抓取服务器。我们建议从我们的主服务器开始:
然后您可以运行 OVMM 示例脚本:
5. 故障排除
请参阅我们的故障排除文档以了解一些常见错误。
代码贡献
我们欢迎为 HomeRobot 做出贡献。
HomeRobot 中有两个主要类需要您关注:
  • 环境抽象环境类观察以及应用操作的
    • 扩展了
      并提供了对世界的
      方法。
一般来说,新方法将作为代理来实现。
硬件开发
请参阅机器人硬件开发指南,获取一些可能使在 Stretch 上开发代码更容易的建议。
组织
HomeRobot分为多个不同的包:
资源
描述
包含代理和接口的核心包
包含 Hello Robot Stretch 硬件接口的 ROS 包
使用 Boston Dynamics Spot 的最小包
home_robot包包含与具体实施无关的代理代码,例如我们的ObjectNav 代理(在场景中查找对象)和我们的分层 OVMM 代理。这些代理可以扩展或修改以实现您自己的解决方案。
重要的是,代理使用一组固定的接口,这些接口被覆盖以提供对
home_robot_sim包含接口代码
风格
我们使用 linter 来强制执行良好的代码风格。lint如果您的代码不符合要求,测试将不会通过。
通过运行安装 git预提交挂钩
要手动格式化,请运行:pre-commit run --show-diff-on-failure --all-files
执照
家用机器人获得麻省理工学院许可。有关详细信息,请参阅许可证
 
初创公司CTO手册D-POINT:具有光学惯性跟踪功能的数字笔