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
相关推荐
ZPC82103 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82103 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
2501_946205523 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
xybDIY3 天前
Kiro Workshop - 使用 AI 代理聊天机器人构建电子商务网站
人工智能·机器人
宝贝儿好3 天前
【强化学习】第十章:连续动作空间强化学习:随机高斯策略、DPG算法
人工智能·python·深度学习·算法·机器人
大江东去浪淘尽千古风流人物3 天前
【SLAM】GenRobot / IO-AI / Scale / Appen 能力对比表(机器人数据与闭环视角)
人工智能·机器学习·机器人·大模型·概率论·端侧部署·巨身智能
梦想的旅途23 天前
企业微信API:外部群自动化推送实战指南
大数据·机器人·自动化·企业微信·rpa
鲁邦通物联网3 天前
架构设计:基于边缘网关构建异构电梯协议的统一机器人梯控中间件
机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯·agv机器人梯控
RobotNow3 天前
优秀的机器人厂商集中平台哪家创新力强
机器人
shuidaoyuxing3 天前
机器人具身智能概念
人工智能·机器人