资讯动态

具身智能进阶:让 MicroDuck 在篮球上保持平衡

发布时间:2026/10/16 3:15:45 来源:尧图企业网站定制
前置知识已阅读 HelloWorld 入门。一、整体流程概览这个 Notebook 演示了**篮球平衡Ball Balance**任务机器狗需要站在一个篮球上保持不摔倒。通俗理解就像让人站在瑜伽球上保持平衡机器狗需要不断调整关节来维持稳定。二、逐步骤解读步骤 1环境配置importos os.environ.setdefault(MUJOCO_GL,egl)os.environ.setdefault(OPENBLAS_NUM_THREADS,1)os.environ.setdefault(OMP_NUM_THREADS,4)环境变量解读环境变量通俗解释MUJOCO_GLegl告诉 MuJoCo 使用 EGL 渲染无显示器的服务器环境也能渲染画面OPENBLAS_NUM_THREADS1限制数学计算库使用 1 个线程避免多线程冲突OMP_NUM_THREADS4允许 OpenMP 并行计算使用 4 个线程加速矩阵运算通俗比喻就像给程序设置工作模式告诉它用什么方式画图、用多少 CPU 核心计算。步骤 2依赖检查importimportlib.metadataasmetadataimportmujocoimportonnxruntime gpu_checksubprocess.run([str(MODEL_ENV/bin/python),-c,import torch; ...])专业库解读库/工具通俗解释importlib.metadata查看已安装 Python 包的版本信息mujoco物理仿真引擎模拟重力、碰撞、关节运动onnxruntime运行 ONNX 格式神经网络模型的引擎torch(GPU 检查)PyTorch 深度学习框架这里检查是否有 GPU 可用GPU 检查在做什么尝试导入torch并检查 CUDA 是否可用如果有 GPU后续训练会更快没有 GPU 也能运行只是训练慢一些步骤 3加载预训练策略模型POLICYprepare_policy()print(策略模型已加载:,POLICY)专业概念解读概念通俗解释预训练模型Pre-trained Model已经在仿真中训练好的大脑可以直接使用不需要从头训练prepare_policy()自定义函数下载或加载策略模型文件通俗比喻就像下载一个已经学会平衡的老师傅直接让它教机器狗怎么站篮球。步骤 4创建 MuJoCo 仿真环境simBallBalanceSimulation(PLAYGROUND,POLICY)print(模型输入:,[(x.name,x.shape)forxinsim.session.get_inputs()])print(模型输出:,[(x.name,x.shape)forxinsim.session.get_outputs()])专业概念解读概念通俗解释BallBalanceSimulation自定义封装类把 MuJoCo 仿真器、篮球、机器狗打包成一个对象模型输入机器狗的姿态、篮球的位置、相对速度等信息模型输出14 个关节的目标位置告诉机器狗怎么调整姿势与 HelloWorld 的区别HelloWorld平地走路输入是机器狗自身状态篮球平衡输入还包括篮球的位置和滚动速度策略需要额外考虑球的动态步骤 5单步推理测试sim.stop()observationsim.observation()actionsim.session.run([sim.output_name],{sim.input_name:observation})[0]targetsim.apply_action(action)for_inrange(4):mujoco.mj_step(sim.model,sim.data)这段代码在做什么发送停止命令让机器狗尝试保持静止获取当前观测机器狗姿态 篮球状态策略模型推理得到关节目标应用到仿真器推进 4 步物理仿真通俗比喻让机器狗站上篮球看它第一反应怎么调整姿势。步骤 6闭环控制循环VIDEO_PATHOUTPUT/ball_balance_demo.mp4writerimageio.get_writer(VIDEO_PATH,fps50,codeclibx264,...)trace[]defrun_for_seconds(seconds,phase,realtimeFalse):stepsround(seconds/sim.control_dt)forstepinrange(steps):obssim.observation()actionssim.session.run(...)[0]sim.data.ctrl[:]sim.default_posesim.action_scale*actions[0]for_inrange(4):mujoco.mj_step(sim.model,sim.data)trace.append({...})framesim.render()writer.append_data(frame)与 HelloWorld 的区别控制循环结构相同观测→推理→执行→仿真但trace记录的数据不同增加了篮球位置、机器狗相对球的偏移等失稳判断更严格不仅检查高度还检查是否从球上掉下来步骤 7平衡演示sim.stop()run_for_seconds(1.0,settle)run_for_seconds(10.0,balance)演示流程settle1秒机器狗站上篮球调整初始姿势balance10秒持续保持平衡篮球可能会滚动机器狗需要不断调整通俗比喻就像看杂技演员站在球上表演球会滚动演员要不断调整重心。步骤 8数据分析reportsave_report(OUTPUT/balance_report.json,trace,POLICY)print(累计平衡步数:,report[steps])print(最大偏移:,report[max_offset_m])print(最终状态:,report[final_state])关键指标解读指标通俗解释steps总共执行了多少步控制循环max_offset_m机器狗相对篮球中心的最大偏移距离米final_state最终是否成功保持平衡步骤 9可视化图表importmatplotlib.pyplotasplt tnp.asarray([row[time_s]forrowintrace])fig,axesplt.subplots(3,1,figsize(9,7),sharexTrue)axes[0].plot(t,[row[ball_x]forrowintrace],labelball position x)axes[1].plot(t,[row[dog_offset_m]forrowintrace],labeldog offset from ball)axes[2].plot(t,[row[upright_cos]forrowintrace],labeluprightness)三张图分别展示篮球位置篮球在 X 方向的移动轨迹机器狗偏移机器狗相对篮球中心的偏移距离直立程度机器狗身体是否保持竖直1完全竖直0水平摔倒步骤 10ONNX 模型导出与验证ONNX_PATHOUTPUT/policy.onnxexport_onnx(POLICY,ONNX_PATH)parityverify_onnx(POLICY,ONNX_PATH)print(ONNX 导出成功输入输出一致性:,parity)专业概念解读概念通俗解释ONNX 导出把 PyTorch 格式的模型转成 ONNX 格式方便部署到不同硬件输入输出一致性验证对比原模型和 ONNX 模型的输出确保转换后结果一致通俗比喻就像把 Word 文档转成 PDF要检查转换后内容是否完全一样。步骤 11BPU 板端部署RUN_BPUos.getenv(MICRODUCK_RUN_BPU,0)1ifRUN_BPU:# 连接 RDK 开发板加载 HBM 模型# 运行板端推理生成视频# 验证模型 SHA 和控制步数专业概念解读概念通俗解释BPU瑞芯微Rockchip的神经网络处理单元类似 GPU 但专为 AI 推理设计RDK 开发板瑞芯微的开发板可以运行部署好的模型HBM板端模型文件格式经过压缩和优化适合在 BPU 上运行MICRODUCK_RUN_BPU1环境变量设置为 1 才启用板端推理通俗比喻把大脑从电脑下载到开发板的小芯片里让机器狗脱离电脑也能自己平衡。步骤 12板端验证ifRUN_BPU:board_reportverify_bpu_report(BPU_VIDEO_OUTPUT,BPU_RUN_ID,[BPU_HBM])print(控制步数:,board_report[steps])print(重置次数:,board_report.get(resets,0))验证内容模型 SHA 是否正确确保用的是正确的模型控制步数是否达到预期视频是否由板端推理驱动生成三、核心概念总结1. 篮球平衡 vs 平地走路维度平地走路篮球平衡支撑面固定地面滚动的球输入维度自身状态自身 球的状态控制难度低高需要预测球的滚动失稳后果摔倒从球上掉下来2. 什么是 PPOPPOProximal Policy Optimization是一种强化学习算法机器狗在仿真中不断尝试保持平衡就奖励摔倒就惩罚经过数百万次尝试后学会平衡PPO 的特点是稳定更新不会因为一次大改动就学坏3. 为什么需要 ONNX 和 BPU阶段格式原因训练PyTorch灵活支持自动求导导出ONNX通用格式跨平台部署HBM (BPU)针对硬件优化推理速度快四、关键参数速查表参数值含义策略频率25 Hz每秒做 25 次决策仿真频率100 Hz每秒推进 100 步物理仿真关节数14MicroDuck 有 14 个可控关节平衡时间10 秒演示中保持平衡的时长BPU 推理可选需要 RDK 开发板总结篮球平衡比平地走路更难因为支撑面是动态的。策略模型需要同时考虑机器狗的姿态和球的运动做出更精细的调整。这展示了具身智能的核心能力在复杂物理环境中保持稳定。附原始 Notebook 参考01_篮球平衡_PPO_ONNX_BPU_MuJoCo.ipynb— 在 GitHub 上查看原始 Notebook可对照代码逐行学习。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑