curobo——CUDA加速的机器人库

仓库地址:https://github.com/nvlabs/curobo

目录

  • 1.关于curobo
    • [1.1 仓库概述](#1.1 仓库概述)
    • [1.2 仓库目录结构](#1.2 仓库目录结构)
    • [1.3 启动文件介绍](#1.3 启动文件介绍)
    • [1.4 配置文件介绍](#1.4 配置文件介绍)
  • 2.curobo安装和部署
    • [2.1 curobo本地安装](#2.1 curobo本地安装)
    • [2.2 示例测试](#2.2 示例测试)

1.关于curobo

1.1 仓库概述

cuRobo(CUDA Accelerated Robot Library)是 NVIDIA 推出的基于 CUDA 加速的机器人算法库,专注于通过并行计算大幅提升机器人相关算法的运行速度。该库提供了一系列高性能的机器人学核心算法,适用于运动规划、轨迹线优化、碰撞检测等关键任务。

  • 核心功能

    • 运动学计算:正向和逆向运动学求解
    • 碰撞检测:支持机器人与环境的碰撞检查,环境可表示为立方体、网格和深度图像
    • 数值优化:包含梯度下降、L-BFGS 和 MPPI 等优化算法
    • 几何规划:提供高效的路径规划能力
    • 轨迹优化:生成平滑、低冲击的运动轨迹
    • 运动生成:结合逆运动学、几何规划和轨迹优化,可在 30ms 内生成全局运动
  • 特点优势

    • 基于 CUDA 加速,性能远超传统实现
    • 并行处理多个轨迹种子以快速找到最优解
    • 轨迹优化考虑加加速度和加速度惩罚,生成更平滑的轨迹
    • 提供与 MoveIt 的集成插件(Isaac ROS cuMotion),便于商业应用

cuRobo通过并行处理多个初始种子来执行轨迹优化,以寻找最优解。其轨迹优化机制会对加速度和减速度变化率施加惩罚,从而鼓励生成更平滑、更短的轨迹。下文我们将对比cuRobo在左侧的运动生成效果与BiRRT规划器在拾取-放置任务运动规划阶段的表现。

1.2 仓库目录结构

bash 复制代码
curobo/
├── docker/
│   └── 包含与 Docker 相关的文件和配置
├── examples/
│   └── 包含示例代码,展示如何使用 cuRobo 库
├── images/
│   └── 包含项目相关的图像文件
├── src/
│   └── curobo/
│       └── 包含 cuRobo 库的核心源代码
├── tests/
│   └── 包含测试代码,用于验证库的功能
├── .clangd
│   └── 包含 clangd 的配置文件
├── .gitattributes
│   └── 包含 Git 属性配置
├── .gitignore
│   └── 包含 Git 忽略文件配置
├── CHANGELOG.md
│   └── 包含项目的变更日志
├── CODEOWNERS
│   └── 包含代码所有者的配置
├── LICENSE
│   └── 包含项目的许可证
├── LICENSE_ASSETS
│   └── 包含资产许可证
├── MANIFEST.in
│   └── 包含 Python 包的清单文件
├── README.md
│   └── 包含项目的介绍和使用说明
├── pyproject.toml
│   └── 包含 Python 项目的配置
├── setup.cfg
│   └── 包含 Python 包的配置
└── setup.py
    └── 包含 Python 包的安装脚本

1.3 启动文件介绍

cuRobo 项目的启动文件位于 examples/ 目录下。这些文件展示了如何使用 cuRobo 库来实现不同的机器人算法。以下是一些常见的启动文件:

  • examples/example_kinematics.py: 演示如何使用 cuRobo 进行正向和逆向运动学计算。
  • examples/example_collision_checking.py: 演示如何使用 cuRobo 进行碰撞检测。
  • examples/example_trajectory_optimization.py: 演示如何使用 cuRobo 进行轨迹优化。

1.4 配置文件介绍

cuRobo 项目的配置文件主要用于配置 Python 包的安装和构建过程。以下是一些重要的配置文件:

  • pyproject.toml: 包含 Python 项目的配置,定义了项目的依赖和构建工具。
  • setup.cfg: 包含 Python 包的配置,定义了包的元数据和安装选项。
  • setup.py: 包含 Python 包的安装脚本,用于安装 cuRobo 库。

2.curobo安装和部署

2.1 curobo本地安装

参考:https://curobo.org/get_started/1_install_instructions.html

  • 前置条件:官方文档中有要求python、cuda、pytorch版本,我使用的环境如下:
bash 复制代码
python                               3.10
torch                                2.7.1+cu118
torchaudio                           2.7.1+cu118
torchvision                          0.22.1+cu118
CUDA                                 11.8
  • curobo安装
bash 复制代码
sudo apt install git-lfs
git clone https://github.com/NVlabs/curobo.git
cd curobo
pip install -e . --no-build-isolation # 把当前目录的 Python 包,以改代码无需重新安装的可编辑模式,安装到当前 Python 环境中,并且用当前环境的工具来构建这个包,不搞临时隔离

安装成功,如下图:

2.2 示例测试

  • tests/curobo_version_test.py
bash 复制代码
>>> import curobo
>>> print(curobo.__version__)
0.7.7.post1.dev5
  • examples/kinematics_example.py
相关推荐
EAI-Robotics1 天前
机器人操作鲁棒性:当机械手遇上真实世界的不确定性
人工智能·算法·机器人
深圳多奥智能一卡(码、脸)通系统1 天前
机器人(狗)和AGV,AMR自动开门过闸配合使用的门控规格书
机器人·agv·机器狗·门禁·梯控·智能门禁·amr
2601_963671682 天前
机器人产业演进逻辑与商业化落地全景攻略
机器人
rosemary5122 天前
WSL2 ROS2 控制Issac sim中机器人
机器人·ros2·issac sim
陈天伟教授2 天前
FreeCAD 启动后小窗口闪现即退的解决思路
人工智能·机器人·工业设计
workflower2 天前
设备单元级(L1)实施路径
人工智能·线性代数·矩阵·机器人·开源
iPad协议个微协议2 天前
企业微信文件上传下载在自动化系统中的处理方式
java·运维·人工智能·机器人·自动化·企业微信
沫儿笙2 天前
克鲁斯弧焊机器人混合气智能节气装置
机器人
辰尘_星启2 天前
【三维重建】概述
计算机视觉·机器人·slam·控制·三维重建·sfm
硅谷秋水2 天前
FATE:面向物理落地机器人课程学习具备主动修复功能且考虑可行性-觉察的闭环任务生成方法
人工智能·深度学习·语言模型·机器人