07软件与工具链
把本体、控制和感知串起来的软件:ROS 2、URDF、运动库、学习框架和部署工具。 · 232 条
- 7.1开发环境基础11
- 7.2ROS 2 入门23
- 7.3机器人模型与坐标系17
- 7.4通信中间件进阶23
- 7.5连接真机与实时系统23
- 7.6运动学、规划与控制库30
- 7.7感知、建图与导航17
- 7.8数据记录与可视化10
- 7.9深度学习与机器人学习库29
- 7.10训练工程与算力14
- 7.11部署与推理加速21
- 7.12产业平台与生态14
7.1开发环境基础
先把电脑配好:编程语言、Linux、代码仓库、环境隔离、GPU 与远程登录。
- Python 与 C++(具身常用编程语言)Python and C++具身智能最常用的两门语言:Python 做模型和实验,C++ 做实时控制
- UbuntuUbuntu LinuxCanonical 公司维护的 Linux 发行版,机器人开发的默认操作系统
- WSL2(Windows 下的 Linux 子系统)Windows Subsystem for Linux 2微软在 Windows 里跑完整 Linux 环境的官方功能,不用装双系统
- GitHub(代码托管平台)GitHub全球最大的代码托管平台,论文代码和开源项目基本都放在这里
- Python 圈常用的包与虚拟环境管理器,隔离不同项目的依赖
- uvuv (Python package manager)用 Rust 写的极快 Python 包与虚拟环境管理工具。
- 国内镜像源(换源:清华 TUNA / 阿里云等)Package Mirror Sources in China (pip / conda / apt / Docker mirrors)把 pip、conda、apt 等下载地址换成国内镜像,解决装包慢或失败。
- C/C++ 项目的跨平台构建配置工具,写清楚「怎么编译」
- 把程序和运行环境打包成容器,换台机器也能原样跑
- CUDACompute Unified Device Architecture英伟达的 GPU 通用计算平台,让深度学习能在显卡上跑
- SSH 远程登录Secure Shell (SSH)通过加密通道登录并操作另一台电脑命令行的网络协议
7.2ROS 2 入门
环境就绪后学机器人软件的「胶水」:节点与话题等通信方式,以及项目怎么组织。
- 机器人操作系统Robot Operating System机器人开发最通用的开源中间件框架,不是真正的操作系统
- ROS 2Robot Operating System 2ROS 的第二代重写版,底层通信默认用 DDS,是新项目的首选
- ROS 发行版ROS DistributionROS 按版本打包发布的一整套软件集合,每版对应特定 Ubuntu。
- 鱼香 ROS 一键安装FishROS One-Click Installer国内 ROS 社区「鱼香ROS」做的一行命令装 ROS 和配环境的脚本
- 节点Node (ROS)ROS 里完成单一功能的程序单元,多个节点互相通信组成整套系统
- 话题Topic (ROS)ROS 节点之间持续传数据的命名通道,按发布/订阅方式工作
- 发布/订阅Publish-Subscribe发送方往话题里发消息、接收方订阅话题收消息,双方互不认识。
- 消息Message (msg / srv / action interface)ROS 节点之间传递数据时约定好的数据格式。
- cmd_vel 速度指令话题(Twist 消息)cmd_vel Topic (geometry_msgs/Twist velocity command)ROS 里给移动机器人下发线速度和角速度的标准话题。
- 服务Service (ROS)ROS 中一问一答式的通信方式:客户端发请求,服务端回结果
- 动作Action (ROS Action)ROS 里用于耗时任务的通信方式,可中途看进度、可取消
- 参数服务器Parameter ServerROS 1 里存放全局配置参数的共享字典,节点可随时读写
- 启动文件Launch FileROS 里一次性启动多个节点并配置参数的脚本文件。
- ROS 客户端库ROS Client Library (rclcpp / rclpy)写 ROS 节点时调用的编程接口,C++ 用 rclcpp,Python 用 rclpy
- 功能包Package (ROS)ROS 里组织代码的最小单位,一个包装一组相关的节点和配置。
- ROS 工作空间ROS Workspace存放、编译和安装自己 ROS 功能包的一个目录
- colconcolcon (collective construction)ROS 2 推荐的编译工具,一条命令编译整个工作空间
- ament(ROS 2 构建系统)amentROS 2 的包构建系统,ament_cmake 管 C++ 包,ament_python 管 Python 包
- catkin(ROS 1 构建系统)catkinROS 1 的官方构建系统,基于 CMake 编译和管理工作空间里的功能包
- 按功能包声明自动安装系统依赖的 ROS 命令行工具
- ROS 主节点ROS Master (roscore)ROS 1 里负责登记节点、帮节点互相找到对方的中心进程
- 让 ROS 1 和 ROS 2 节点互相收发话题和服务的桥接程序
- 古月居(ROS 中文社区)Guyuehome (Chinese ROS community)国内较早、较大的 ROS 机器人中文学习社区和教程网站
7.3机器人模型与坐标系
会用 ROS 后,用 URDF 等文件描述机器人,再用 TF、RViz 看到它。
- 统一机器人描述格式Unified Robot Description Format用 XML 描述机器人连杆、关节、外形和质量的标准文件格式
- Xacro(XML 宏)Xacro (XML Macros)给 URDF 加上变量、宏和引用的 XML 宏语言,用来少写重复的机器人描述
- 语义机器人描述格式Semantic Robot Description Format给 URDF 补充规划分组、免检碰撞对等语义信息的配置文件
- MJCFMuJoCo XML FormatMuJoCo 仿真器用来描述机器人和场景的 XML 模型格式。
- 谷歌 DeepMind 整理的高质量 MuJoCo 机器人模型库。
- SDFormat 仿真描述格式Simulation Description Format (SDFormat)Gazebo 用的 XML 格式,能描述机器人和整个仿真世界
- 通用场景描述Universal Scene Description (OpenUSD)皮克斯开源的 3D 场景描述格式,英伟达仿真平台的标准场景格式
- 网格文件Mesh File (STL / OBJ / DAE / glTF)用大量三角形描述物体外形的 3D 文件,机器人模型的「外壳」。
- CAD 建模软件(SolidWorks / Onshape / Fusion 360)CAD Software (SolidWorks / Onshape / Fusion 360; STEP files)画机械零件和整机三维模型的软件,机器人结构设计的起点
- SolidWorks 转 URDF 插件SolidWorks to URDF Exporter把 SolidWorks 装配体一键导出成 URDF 机器人模型的插件
- 把 Onshape 里画好的机器人装配体导出成 URDF/MJCF 的开源工具
- 免费开源的三维建模与渲染软件,常用来处理机器人模型和生成合成数据
- CoACD 凸分解工具CoACD (Collision-Aware Approximate Convex Decomposition)把网格模型自动切成一组凸块,给物理引擎当碰撞体。
- TF 坐标树TF / tf2 Transform TreeROS 用来记录和查询各坐标系之间实时变换关系的树状结构
- ROS 包:读 URDF 和关节角,算出并发布机器人各连杆的坐标变换
- REP 105 坐标系约定(map / odom / base_link)REP 105: Coordinate Frames for Mobile PlatformsROS 规定移动机器人 map、odom、base_link 三个坐标系怎么定义、怎么连
- RVizRViz / RViz2ROS 自带的 3D 可视化工具,用来看机器人模型、坐标系和传感器数据
7.4通信中间件进阶
回到通信层深挖:DDS、QoS、零拷贝,以及 ROS 之外的通信库和框架。
- 中间件Middleware夹在操作系统和应用之间,负责程序间通信的软件层。
- 数据分发服务Data Distribution ServiceOMG 制定的发布/订阅通信标准,ROS 2 默认的底层传输
- 服务质量Quality of ServiceROS 2 里规定消息怎么传的一组策略,如是否可靠、保留几条
- ROS_DOMAIN_ID(域 ID)ROS 2 Domain IDROS 2 的环境变量,决定哪些节点能互相发现和通信
- ROS 中间件接口ROS Middleware InterfaceROS 2 里把上层 API 和底层通信实现隔开的抽象接口层
- Fast DDSeProsima Fast DDS西班牙 eProsima 公司开源的 DDS 实现,多个 ROS 2 版本的默认中间件
- Cyclone DDSEclipse Cyclone DDSEclipse 基金会的开源 DDS 实现,ROS 2 可选的底层通信中间件之一
- ZenohEclipse Zenoh统一发布/订阅、存储和查询的开源通信协议,ROS 2 可用它替代 DDS
- 零拷贝Zero-Copy (Shared-Memory IPC)进程间传大数据时不复制内容、只传共享内存位置的通信方式
- iceoryxEclipse iceoryx基于共享内存的零拷贝进程间通信库,常被 DDS 和 ROS 2 用来传大数据
- 可组合节点 / 进程内通信Composable Nodes (Components) & Intra-process Communication把多个 ROS 2 节点装进一个进程,通信直接传指针不拷数据。
- ROS 2 执行器与回调组ROS 2 Executor & Callback GroupsROS 2 里决定回调函数由谁、用几个线程、能否并发执行的机制
- 生命周期节点Lifecycle Node (Managed Node)ROS 2 中带标准状态机的节点,可被外部按顺序配置、启动、暂停和关闭。
- LCMLightweight Communications and Marshalling一套轻量的发布/订阅消息库,基于 UDP 组播,延迟低,常用于实时机器人控制。
- 轻量开源消息库,几行代码就能让程序之间收发数据
- ProtobufProtocol Buffers谷歌开源的跨语言结构化数据序列化格式,体积小、解析快
- gRPCgRPC Remote Procedure Calls谷歌开源的远程过程调用框架,让不同机器上的程序像调函数一样通信
- 在一条 TCP 连接上双向实时收发消息的网络协议。
- WebRTC 实时音视频传输Web Real-Time Communication浏览器原生支持的低延迟点对点音视频与数据传输标准。
- 用 WebSocket 和 JSON 把 ROS 开放给网页和非 ROS 程序的桥
- MCP / ROS-MCP-ServerModel Context Protocol (ROS MCP Server)让大模型通过统一协议调用 ROS 机器人接口的桥接工具。
- dora-rsDataflow-Oriented Robotic Architecture用 Rust 写的机器人数据流中间件,定位是更低延迟的 ROS 替代品
- AimRT(智元机器人运行时框架)AimRT (AgiBot robot runtime framework)智元开源的现代 C++ 机器人运行时框架,可与 ROS 2 等通信后端互通
7.5连接真机与实时系统
通信打通后接上真机:厂商 SDK、驱动、嵌入式与实时系统,把指令送到电机。
- 软件开发工具包Software Development Kit厂商提供的库、接口和示例,让开发者能用代码控制设备
- 二次开发Secondary Development (custom development on SDK)在厂商开放的 SDK 或接口上,自己写程序定制机器人功能
- 宇树 SDKUnitree SDK2宇树官方开源的机器人开发包,用来读传感器、控制关节和运动
- libfrankalibfranka / Franka Control InterfaceFranka 机械臂的官方 C++ 底层控制库,经 FCI 以 1 kHz 实时收发指令。
- RTDEReal-Time Data Exchange (Universal Robots)优傲 UR 机械臂的实时数据交换接口,外部程序靠它读状态、发指令
- RealSense SDKIntel RealSense SDK 2.0 (librealsense)RealSense 深度相机的官方开源驱动与开发库,负责取图、对齐和生成点云。
- 驱动Driver (device driver)让操作系统或上层程序能读写某个硬件的那层软件
- 硬件抽象层Hardware Abstraction Layer把具体硬件差异封装起来,给上层软件提供统一接口的一层代码
- ROS 2 里连接控制算法和真实电机硬件的标准控制框架
- 嵌入式软件开发Embedded Software Development给电机驱动板、传感器等设备里的芯片写程序
- 交叉编译Cross-compilation在 x86 电脑上编出能在机器人 ARM 主控上跑的程序。
- 固件Firmware烧写在硬件芯片里、直接控制设备底层行为的程序
- OTA 升级Over-the-Air Update通过网络远程给设备更新固件、系统或模型,不用拆机插线。
- 实时操作系统Real-Time Operating System保证任务在规定时间内完成的操作系统,用于对时序敏感的控制。
- 硬实时Hard Real-Time每次都必须在截止时间前完成,错过一次就算系统失效
- 跑在单片机上的小型开源实时操作系统内核
- 国内团队开发的开源嵌入式实时操作系统
- 把 ROS 2 搬到单片机上运行的框架。
- 实时内核补丁PREEMPT_RT Real-Time Linux Patch让 Linux 内核几乎处处可抢占、降低最坏延迟的实时化改造
- 给 Linux 加上硬实时能力的开源框架,常用于机器人底层控制
- EtherCAT 主站EtherCAT Master (SOEM / IgH)在 EtherCAT 总线上负责下发指令、收集数据的一端,通常跑在主控电脑上
- SocketCANSocketCAN (Linux CAN interface)Linux 内核自带的 CAN 总线驱动,把 CAN 口当网卡用
- 精确时间协议Precision Time Protocol通过以太网让多台设备时钟对齐到亚微秒级的同步协议
7.6运动学、规划与控制库
真机能收发指令后,用现成库算运动学、规划无碰撞轨迹、求解优化控制。
- MathWorks 的商业数值计算与图形化建模仿真软件,控制领域常用。
- Robotics Toolbox for Python(Peter Corke 机器人工具箱)Robotics Toolbox for Python (Peter Corke)Peter Corke 维护的 Python 机器人学工具箱,适合学运动学和动力学
- EigenEigen (C++ linear algebra library)C++ 里最常用的开源线性代数库,矩阵、向量、旋转运算都靠它
- 开源的刚体动力学库,快速算机器人的运动学、动力学及其导数。
- RBDLRigid Body Dynamics Library一个开源 C++ 刚体动力学库,高效算机器人的正逆动力学
- KDLOrocos Kinematics and Dynamics LibraryOrocos 项目的 C++ 运动学与动力学库,ROS 里算正逆解的老牌工具
- 比 KDL 更稳更快的开源通用数值逆运动学求解库。
- OpenRAVE 里的解析逆解生成器,为具体机械臂自动生成极快的 C++ 逆运动学代码。
- Pink(基于 Pinocchio 的微分逆运动学库)Pink (Python inverse kinematics based on Pinocchio)基于 Pinocchio 的 Python 微分逆运动学库,用任务加权求解关节速度
- minkmink (MuJoCo inverse kinematics)基于 MuJoCo 的 Python 微分逆运动学库。
- PyRokiPython Robot Kinematics伯克利开源的 JAX 机器人运动学优化工具包
- OMPLOpen Motion Planning Library莱斯大学开发的开源运动规划库,集成了大量基于采样的规划算法
- FCLFlexible Collision Library机器人规划里最常用的开源 C++ 碰撞检测与距离计算库
- MoveItMoveIt Motion Planning FrameworkROS 上最常用的开源机械臂运动规划框架。
- TOPP-RATime-Optimal Path Parameterization based on Reachability Analysis给定路径,在速度、加速度限制下算出最快走法的开源算法库。
- RuckigRuckig (online jerk-limited trajectory generation)每个控制周期实时生成限加加速度、时间最优轨迹的开源库
- cuRobocuRobo (NVIDIA GPU-accelerated motion planning)英伟达的 GPU 并行运动规划库,毫秒级出无碰撞轨迹。
- cuMotionNVIDIA Isaac ROS cuMotion英伟达基于 cuRobo 的 GPU 机械臂运动规划 ROS 2 包。
- 把符号规划器和连续采样器接在一起做任务与运动规划的框架
- MIT 与丰田研究院主导的基于模型的机器人仿真与优化工具箱
- 做数值优化和自动微分的开源符号工具,常用于 MPC 与轨迹优化建模
- IpoptInterior Point OPTimizerCOIN-OR 开源的大规模非线性优化求解器,基于内点法,常用于轨迹优化。
- OSQPOperator Splitting Quadratic Program solver基于算子分裂方法的开源二次规划求解器,常用于 MPC 和全身控制
- 基于在线有效集法的开源二次规划求解器,常用于 MPC
- acadosacados (fast embedded optimal control solver)面向实时模型预测控制的开源最优控制求解器,可生成嵌入式 C 代码
- TSIDTask Space Inverse Dynamics library用二次规划做任务空间逆动力学全身控制的 C++ 库
- CrocoddylCrocoddyl (Contact RObot COntrol by Differential DYnamic programming Library)面向接触的最优控制库,用微分动态规划解机器人轨迹。
- OCS2Optimal Control for Switched Systems苏黎世联邦理工开源的 C++ 最优控制工具箱,常用于足式机器人 MPC
- legged_controllegged_control (NMPC + WBC framework for legged robots)开源的足式机器人控制框架,用非线性 MPC 规划加全身控制跟踪,基于 OCS2 和 ROS。
- 谷歌 DeepMind 开源的 MuJoCo 实时模型预测控制工具。
7.7感知、建图与导航
让机器人看懂环境:图像与点云库、标定、SLAM 建图,再到自主导航。
- OpenCVOpen Source Computer Vision Library最常用的开源计算机视觉库,处理图像、相机和几何计算
- 处理点云、网格和三维重建的开源 3D 数据处理库
- 点云库Point Cloud Library处理三维点云的开源 C++ 算法库,滤波、配准、分割都有。
- 苏黎世联邦理工开源的标定工具箱,专做多相机和相机-IMU 的内外参与时间标定。
- 开源的运动恢复结构加多视图立体三维重建工具。
- Nerfstudio / gsplat(NeRF 与高斯泼溅开源工具库)Nerfstudio / gsplat用照片重建三维场景的开源工具库,覆盖 NeRF 和高斯泼溅。
- 谷歌开源的 C++ 非线性最小二乘优化库,SLAM 和标定的常用后端
- g2o 图优化库g2o (General Graph Optimization)用来解 SLAM 位姿图和光束法平差这类图优化问题的 C++ 库
- GTSAMGeorgia Tech Smoothing and Mapping佐治亚理工开发的因子图优化库,SLAM 和传感器融合常用后端
- ROS 常用 SLAM 建图包(GMapping / SLAM Toolbox / RTAB-Map)Common ROS SLAM Packages (GMapping / SLAM Toolbox / RTAB-Map)ROS 生态里三个装上就能用的建图定位功能包。
- CartographerGoogle Cartographer谷歌开源的实时激光 SLAM 系统,支持 2D 和 3D 建图
- Nav2ROS 2 Navigation StackROS 2 官方导航框架,让移动机器人从 A 点自主走到 B 点。
- BehaviorTree.CPP(C++ 行为树库)BehaviorTree.CPP机器人领域最常用的 C++ 行为树库,用 XML 描述任务逻辑
- Groot2(行为树可视化编辑器,非英伟达 GR00T)Groot2 (BehaviorTree.CPP IDE)给 BehaviorTree.CPP 配套的图形化行为树编辑和调试工具
- Autoware(开源自动驾驶软件栈)Autoware (open-source autonomous driving stack on ROS 2)基于 ROS 2 的开源自动驾驶全栈软件,由 Autoware 基金会维护
- PX4 / ArduPilotPX4 / ArduPilot (open-source flight control stacks)两套主流开源飞控软件栈,用于无人机、固定翼和无人车船
- 多机调度系统Fleet Management System (e.g. Open-RMF)统一给一群机器人分任务、排路线、防冲突的上层管理软件
7.8数据记录与可视化
把传感器和机器人状态录下来、画出来:既用来调试,也为后面的学习攒数据。
- rosbagROS BagROS 的录包工具,把话题消息连同时间戳录下来,之后可回放。
- FFmpeg(音视频编解码工具)FFmpeg开源的音视频处理工具集,负责转码、剪切、抽帧和压缩
- ROS 自带的插件式图形调试工具集
- 开源时间序列曲线查看工具,常用来看 ROS 话题和日志数据
- FoxgloveFoxglove Studio看机器人数据的可视化工具,能回放 rosbag、画曲线、显示点云和图像
- 开源的多模态时序数据可视化工具,看图像、点云、曲线同步回放。
- 在浏览器里显示机器人和三维场景的轻量可视化工具。
- 在浏览器里显示 3D 场景和交互控件的 Python 可视化库。
- 用 Python 驱动、可在 VR 头显浏览器里运行的 3D 可视化框架。
- 跨平台 C++ 图形界面框架,机器人上位机软件常用它做界面
7.9深度学习与机器人学习库
有了数据就能学:深度学习框架、模型仓库,再到 LeRobot 与强化学习库。
- 目前最主流的深度学习框架,具身模型大多用它训练
- 谷歌的数值计算与深度学习框架,写法像 NumPy,能自动求导并编译加速。
- 谷歌开源的深度学习框架,机器人数据集常用它的数据格式
- 昇思 MindSporeMindSpore华为开源的深度学习框架,主要配合昇腾芯片使用。
- WarpNVIDIA Warp英伟达的 Python 框架,把 Python 函数编译成 GPU 代码来写仿真
- Taichi(太极)/ QuadrantsTaichi Programming Language / Quadrants (Genesis fork)嵌在 Python 里的高性能并行计算语言,Genesis 仿真器的底层
- Transformers 库Hugging Face TransformersHugging Face 的开源 Python 库,一行代码加载各种预训练模型。
- Diffusers 库Hugging Face DiffusersHugging Face 开源的扩散模型工具库,含现成调度器、网络和生成流水线
- safetensors 权重格式safetensorsHugging Face 推出的安全、加载快的模型权重文件格式
- 开放权重Open-weight Model公开了训练好的模型参数、可下载使用的模型,但不一定公开训练数据和代码
- 开源许可证Open-Source License (Apache 2.0 / MIT / Non-commercial)规定别人能否以及如何使用、修改、商用你公开的代码或模型的法律条款
- HF 镜像站Hugging Face Mirror (hf-mirror.com)国内访问 Hugging Face 模型和数据集的非官方镜像网站。
- 魔搭社区ModelScope阿里推出的国内开源模型与数据集社区,类似中文版 Hugging Face。
- LLaMA-Factory / ms-swift(大模型与 VLM 微调框架)LLaMA-Factory / ms-swift (ModelScope SWIFT)两个常用的开源大模型微调框架,改配置就能微调 LLM 和 VLM。
- LeRobotLeRobot (Hugging Face)Hugging Face 开源的机器人学习工具库,覆盖采数据、训练、部署全流程
- EnvHubLeRobot EnvHubLeRobot 的仿真环境共享机制,把环境代码放上 Hugging Face Hub 一行加载。
- openpiopenpi (Physical Intelligence)Physical Intelligence 开源的 π 系列 VLA 模型代码与权重仓库
- DexboticDexbotic (Dexmal VLA toolbox)原力灵机开源的 VLA 训练与部署工具箱,把多种主流 VLA 放进同一套代码
- starVLAStarVLA像搭积木一样组装和训练 VLA 模型的开源代码库
- 谷歌 DeepMind 给开发者评测和微调 Gemini Robotics 模型的开发工具包
- GymnasiumGymnasium (formerly OpenAI Gym)强化学习环境的标准接口库,OpenAI Gym 的继任者
- 基于 PyTorch 的经典强化学习算法库,接口简单、实现可靠
- 把每个深度强化学习算法写成单个文件的开源实现库,便于读懂和改
- rsl_rlRSL RLETH 机器人系统实验室开源、面向 GPU 并行仿真的强化学习库
- 为 GPU 大规模并行仿真优化的强化学习训练库,Isaac 系列常用
- 模块化的 Python 强化学习库,可直接对接 Isaac Lab
- HumanoidVerse(多仿真器人形 sim2real 框架)HumanoidVerseCMU LeCAR 实验室开源的多仿真器人形机器人学习框架
- Holosoma(亚马逊人形 RL 训练部署框架)Holosoma (Amazon FAR humanoid RL framework)亚马逊 FAR 团队开源的人形机器人强化学习训练与部署框架
- GR00T 全身控制代码库GR00T-WholeBodyControl英伟达开源的人形机器人全身控制器训练、评测与部署代码库
7.10训练工程与算力
把训练跑起来再放大:租卡、记实验、省显存、多卡与集群、大规模强化学习。
- AutoDL(GPU 算力租用平台)AutoDL GPU Cloud国内按小时租 GPU 服务器的云平台,学生跑实验常用
- 在浏览器里查看训练曲线、图像等日志的本地可视化工具
- 在线记录和对比深度学习训练实验的云端平台
- SwanLab(国产训练实验追踪工具)SwanLab国产开源的训练实验记录与可视化工具,类似 W&B
- Hydra 配置框架Hydra (Meta configuration framework)Meta 开源的 Python 配置管理框架,用 YAML 组合配置、命令行随时覆盖参数。
- 数值精度格式(FP32 / FP16 / BF16 / FP8 / INT8 / INT4)Numerical Precision Formats (FP32 / FP16 / BF16 / FP8 / INT8 / INT4)模型参数和计算用多少位、什么格式存数字,决定显存、速度和精度。
- 分布式数据并行Distributed Data Parallel每张 GPU 存一份完整模型、各算一部分数据,再同步梯度的多卡训练方式
- 全分片数据并行Fully Sharded Data Parallel把模型参数、梯度和优化器状态切开分到多张卡上的数据并行训练方式
- 微软开源的大模型分布式训练加速库,以 ZeRO 显存优化出名
- Accelerate 库Hugging Face AccelerateHugging Face 的训练封装库,让同一份 PyTorch 代码轻松跑多卡
- Slurm 集群调度Slurm Workload ManagerGPU 集群上排队、分配显卡和提交训练任务的调度系统
- Ray 分布式框架Ray把 Python 程序扩展到多机多卡运行的开源分布式计算框架
- veRLveRL (Volcano Engine Reinforcement Learning library)字节跳动开源的大模型强化学习训练框架,也被用于 VLA 的 RL。
- 面向具身和智能体大模型的开源大规模强化学习训练框架
7.11部署与推理加速
训好的策略搬回机器人:远程或端侧运行,再靠算子优化、导出和推理引擎提速。
- 推理部署Inference Deployment把训练好的模型放到真实机器或服务器上跑起来、实时给出动作
- 策略服务器Policy Server (Remote Inference)把模型放在 GPU 服务器上跑,机器人把观测发过去、拿回动作。
- 端侧部署On-Device / Edge Deployment把模型直接放在机器人自带的计算板上运行,而不是调用远程服务器
- 云边端协同Cloud-Edge-Device Collaboration把机器人的计算分到云、边缘和机身三层,各担一部分。
- 算子Operator / Kernel神经网络里的基本计算单元,如矩阵乘、卷积、Softmax 及其硬件实现
- cuDNNCUDA Deep Neural Network Library英伟达为深度学习常用算子做的 GPU 加速库。
- 按 GPU 显存层级重排计算的注意力实现,结果不变但更快更省显存
- PyTorch 2.0 起提供的一行式模型编译加速接口。
- CUDA GraphCUDA Graphs把一串 GPU 操作录成一张图,之后一次提交省启动开销。
- TorchScript / LibTorch(策略导出与 C++ 部署)TorchScript (torch.jit) / LibTorch把 PyTorch 模型导出成脱离 Python 运行的文件,再用 C++ 加载推理。
- ONNXOpen Neural Network Exchange一种通用的神经网络模型文件格式,方便在不同框架和推理引擎之间转换
- 微软开源的跨平台推理引擎,用来运行 ONNX 格式的模型
- TensorRTNVIDIA TensorRT英伟达的推理加速库,把训练好的模型编译成在 GPU 上跑得更快的引擎
- JetPackNVIDIA JetPack SDK英伟达 Jetson 板卡的官方系统与开发套件
- TensorRT Edge-LLMNVIDIA TensorRT Edge-LLM英伟达面向车载和机器人芯片的大模型/多模态模型端侧推理框架
- TensorRT-LLMNVIDIA TensorRT-LLM英伟达开源的大语言模型推理加速库,让 LLM 在英伟达 GPU 上跑得更快
- 开源的大语言模型高吞吐推理与服务引擎。
- OpenVINOIntel OpenVINO英特尔开源的推理优化与部署工具包,让模型在英特尔 CPU、核显、NPU 上跑得更快。
- RKNN-ToolkitRockchip RKNN-Toolkit瑞芯微的模型转换工具,把神经网络转成能在其 NPU 上跑的格式
- 地平线天工开物Horizon Robotics OpenExplorer地平线为自家 BPU 芯片提供的 AI 模型转换、量化与部署工具链
- 昇腾 CANNCompute Architecture for Neural Networks (Huawei Ascend)华为昇腾 NPU 的底层计算架构和算子编译工具链。
7.12产业平台与生态
最后看厂商如何把前面各层打包:英伟达 Isaac、国产机器人 OS 与云平台。
- NVIDIA IsaacNVIDIA Isaac Platform英伟达面向机器人开发的一整套软件、模型和工具的总称
- OmniverseNVIDIA Omniverse英伟达基于 OpenUSD 的 3D 仿真与协作开发平台
- Isaac ROSNVIDIA Isaac ROS英伟达提供的一组 GPU 加速 ROS 2 功能包。
- 英伟达的物理 AI 工作流编排平台,把训练、仿真、数据生成调度到多种算力上
- 把 ROS 用到工业机器人和制造场景的开源项目与联盟
- TogetheROS.BotTogetheROS.Bot (D-Robotics)地瓜机器人推出的机器人软件栈,基于并兼容 ROS 2。
- M-Robots OSM-Robots OS (OpenHarmony-based Robot OS)基于开源鸿蒙的国产机器人操作系统,主打多机协同。
- 灵渠 OS(智元具身操作系统)Link-U OS (AgiBot Lingqu OS)智元机器人推出的具身智能机器人操作系统,计划分层开源。
- Genie Studio(智元具身开发平台)AgiBot Genie Studio智元机器人推出的一站式具身智能开发平台,覆盖采数、训练、评测到部署
- OM1(OpenMind 机器人 OS)OM1 (OpenMind modular AI runtime for robots)OpenMind 开源的机器人 AI 运行时,把大模型能力接到不同机器人上
- RoboOSRoboOS (BAAI embodied OS)智源研究院开源的跨本体、多机器人协作的具身「大小脑」框架
- 慧思开物Huisi Kaiwu (X-Humanoid general embodied AI platform)北京人形机器人创新中心推出的通用具身智能软件平台
- 华为云 CloudRoboHuawei Cloud CloudRobo Embodied AI Platform华为云推出的具身智能云平台,在云端提供机器人所需的大模型与服务
- 腾讯 TairosTencent Tairos Embodied AI Open Platform腾讯推出的具身智能开放平台,提供机器人大模型和开发工具