Microduck自定义动作开发:继承Move类,三步为双足机器人添加新技能
【免费下载链接】Microduck-build-tutorialA practical hardware and software setup for a compact RL-powered biped robot.项目地址https://gitcode.com/gh_mirrors/mi/Microduck-build-tutorial点击查看免费下载Microduck 是一个基于树莓派与 Dynamixel 舵机的紧凑型双足机器人项目内置强化学习行走策略。本教程讲解 Microduck 自定义动作开发方法通过继承Move基类三步即可为双足机器人添加点头、深蹲等全新动作技能并用键盘按键或手柄按钮一键触发。一、先看懂 Move 基类所有动作背后的状态机在 microduck/src/moves/move.py 中Move是所有运动行为的抽象基类。每个动作的生命周期由四态状态机MoveState驱动状态触发时机对应回调你的工作INACTIVE未激活—等待用户按下按键STARTING按键按下后on_start从当前姿势平滑过渡到动作起始姿势完成后置ACTIVEACTIVE动作执行中step每个控制周期50 Hz计算目标关节角STOPPING按键再次按下on_stop平滑回到中立姿势完成后置INACTIVE调度器 microduck/src/scheduler.py 以 50 Hz 的频率运行主循环每 tick 会由Observer读取 IMU 姿态与全部舵机的位置/速度打包成Observation遍历所有已注册动作根据状态分发调用on_start/step/on_stop把动作写入MotorCommand的目标角度批量下发到舵机并执行过流保护总电流连续超阈值即自动断电阈值见 microduck/src/constants.py 中的OVERCURRENT_CUTOFF_A。也就是说你的动作类只需要回答一个问题这一 tick各关节应该转到哪个角度把它写进command.target_angles即可。二、第一步写一个继承 Move 的动作类在microduck/src/moves/目录下新建文件即可。以点头动作为例核心结构如下完整实现可参考头颈旋转动作 microduck/src/moves/rotate_head.pyfrom moves.move import Move, MotorCommand, MoveState class NodMove(Move): def on_start(self, obs, command): # 用 lerp 在 0.5 秒内把头部平滑过渡到起始角然后进入 ACTIVE ... def step(self, obs, command): # 每个 tick 生成正弦点头目标角弧度 command.target_angles[head_pitch] 0.3 * math.sin(2 * math.pi * 0.3 * t) def on_stop(self, obs, command): # 平滑回到 NEUTRAL_POSE完成后置 state MoveState.INACTIVE ...三个要点单位是弧度target_angles以关节名为键键名与 microduck/src/constants.py 中MOTOR_TO_ID一致值为目标角度中立站姿定义在NEUTRAL_POSE中MotorCommand初始化时会自动填充它未覆盖的关节保持不动平滑过渡on_start/on_stop中做 lerp线性插值过渡是现有动作点头、深蹲的共同套路避免关节跳变善用观测数据obs.robot_state里提供陀螺仪、投影重力向量、各关节位置与速度做需要平衡补偿的动作时直接读取即可。三、第二步把动作注册进 SchedulerScheduler构造时接收一个moves字典动作名就是之后触发它的标签。默认注册如下见 microduck/src/scheduler.pyregistered_moves { head: RotateHeadMove(), squat: SquatMove(), walk: WalkMove(), }在入口 microduck/src/main.py 中把新动作加入Scheduler的moves参数即可。若动作需要加载较重资源如行走策略加载 ONNX 模型可覆写preload()方法——main.py会在启动控制循环前统一调用所有动作的preload()。四、第三步绑定按键用键盘或手柄触发输入源键盘 microduck/src/input/keyboard_input.py 或手柄 microduck/src/input/gamepad_input.py通过一张键 → 动作名映射表来开关动作。在main.py中MOVE_KEYS {v: walk} # 键盘按 v 切换行走 GAMEPAD_BUTTON_MOVES {A: walk} # 手柄按 A 切换行走只需追加一行映射例如{n: nod}运行后终端会打印按键帮助。触发逻辑非常简单——同一按键再按一次即停止调度器会自动让动作走STOPPING流程回到中立姿势。除触发动作外还可用方向键调节行走速度、i切换 IMU 显示、q紧急停止。五、实用技巧与避坑指南先仿真验证项目提供 MuJoCo 仿真入口microduck/Makefile 中的sim目标对应 microduck/src/sim/sim_main.py新动作先在仿真里看效果再上实机避免不必要的摔倒风险过渡时间要够长lerp_duration过短会造成关节冲击深蹲动作 microduck/src/moves/squat.py 用了 1 秒过渡可供参考别忘记安全网调度器内置过流保护若动作让总电流持续超限会自动切断全部舵机扭矩——动作设计应尽量小步幅、低速试错调试工具microduck/src/debug/下提供了各动作的日志绘图脚本如 plot_squat_log.py配合各动作文件顶部的LOGGING False开关可导出关节角度曲线分析动作质量。六、相关文件速查文件说明microduck/src/moves/move.pyMove基类与状态机定义microduck/src/moves/rotate_head.py最简单的动作范例正弦头颈旋转microduck/src/moves/squat.py使用 placo 逆运动学的深蹲动作microduck/src/moves/walk.py加载 ONNX 强化学习策略的行走动作microduck/src/scheduler.py50 Hz 控制主循环与动作分发microduck/src/main.py动作注册与按键映射入口microduck/docs/usage.md键盘/手柄操作说明按照写类 → 注册 → 绑键三步一个完全属于你的 Microduck 自定义动作就开发完成了。赞分享【免费下载链接】Microduck-build-tutorialA practical hardware and software setup for a compact RL-powered biped robot.项目地址https://gitcode.com/gh_mirrors/mi/Microduck-build-tutorial点击查看免费下载相关推荐如何为OpenDroid添加自定义Action三步实现新设备能力如何为OpenDroid添加自定义Action三步实现新设备能力 OpenDroid 是一款开源的自主 Android 智能体AI Agent能通过本地一文读懂paddlepaddle/arabic_PP-OCRv5_mobile_rec_safetensors移动端阿拉伯文识别的终极解决方案一文读懂paddlepaddle/arabic_PP OCRv5_mobile_rec_safetensors移动端阿拉伯文识别的终极解决方案 在当今数字化时如何用好 Element PlusVue 3 UI 组件库完整上手指南含 5 个常见坑如何用好 Element PlusVue 3 UI 组件库完整上手指南含 5 个常见坑 Element Plus 是一套基于 Vue 3 的企业级 UI前端UI组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Pollard袋鼠算法:SECP256K1离散对数区间攻击实战

Pollard袋鼠算法:SECP256K1离散对数区间攻击实战

简介:这是一份面向密码学与椭圆曲线离散对数问题研究者的C工程源码,基于VanitySearch引擎实现Pollard袋鼠算法,专门用于SECP256K1曲线上的区间ECDLP求解,限定125位间隔搜索。包内共58个文件,以cpp与h源码为主体&#x…

2026/10/15 18:56:44 阅读更多 →
Snow CLI 终极入门指南:5分钟装好终端AI编程智能体,兼容Claude/GPT/Gemini/DeepSeek

Snow CLI 终极入门指南:5分钟装好终端AI编程智能体,兼容Claude/GPT/Gemini/DeepSeek

【免费下载链接】snow-cli Agentic coding in your terminal,Simultaneously compatible with OpenAI, Gemini, and Claude.运行在终端的 AI 编程智能体,同时兼容 Deepseek、OpenAI、Gemini和Claude。 项目地址: https://gitcode.com/gh_mirrors/sn/snow…

2026/10/15 18:56:44 阅读更多 →
STM32裸机实现Modbus RTU主从站全功能通信

STM32裸机实现Modbus RTU主从站全功能通信

简介:本资源是一套面向嵌入式开发初学者与工业通信实践者的STM32 MODBUS RTU全功能码通信实战工程,聚焦单片机与PLC、传感器等工业设备的串行互连需求,解决MODBUS协议栈移植难、功能码覆盖不全、RS485硬件适配易出错等典型问题。压缩包共787个…

2026/10/15 18:55:43 阅读更多 →

最新新闻

Apollo-11导航计算机源码解析:实时调度与容错设计

Apollo-11导航计算机源码解析:实时调度与容错设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:42:37 阅读更多 →
同花顺期货指标公式期货指标源码编写

同花顺期货指标公式期货指标源码编写

HH:HHV(HIGH,11); LL:LLV(LOW,11); 育龙:BARSLAST((HH>REF(HH,1))); LL1:BARSLAST((LL < REF(LL,1))); DRAWTEXT(CROSS(育龙,LL1),90,话),COLORWHITE; DRAWTEXT(CROSS(LL1,育龙),90,糸),COLORYELLOW; DRAWTEXT(CROSS(育龙,LL1),60,1),COLORWHITE; DRAWTEXT(CROSS(LL1,育龙…

2026/10/15 19:42:37 阅读更多 →
SAP PM模块实战拆解:从主数据到工单结算的全流程解析

SAP PM模块实战拆解:从主数据到工单结算的全流程解析

简介&#xff1a;面向SAP PM&#xff08;工厂维护&#xff09;模块的培训型PPT资料&#xff0c;聚焦设备、设备组件及固定资产的维护与管理场景&#xff0c;适合SAP实施顾问、企业设备管理人员以及正在参与SAP项目的学员快速建立体系化认知。课件以苏州华苏塑料有限公司SAP二期…

2026/10/15 19:42:37 阅读更多 →
富途牛牛指标期货macd技术分析macd背离指标

富途牛牛指标期货macd技术分析macd背离指标

育龙:EMA(CLOSE,10); 公式:EMA(CLOSE,20); DRAWTEXT(CROSS(育龙,公式),90,话),COLORWHITE; DRAWTEXT(CROSS(公式,育龙),90,糸),COLORYELLOW; DRAWTEXT(CROSS(育龙,公式),60,1),COLORWHITE; DRAWTEXT(CROSS(公式,育龙),60,1),COLORYELLOW; DRAWTEXT(CROSS(育龙,公式),70,5),CO…

2026/10/15 19:42:37 阅读更多 →
基于51单片机与GSM模块的智能快递柜设计与实现全攻略

基于51单片机与GSM模块的智能快递柜设计与实现全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:42:37 阅读更多 →
PLC红绿灯八段LED控制:状态映射、消隐处理与故障防护

PLC红绿灯八段LED控制:状态映射、消隐处理与故障防护

简介&#xff1a;本资源是一份面向电气工程及其自动化专业本科生的PLC实践教学材料&#xff0c;聚焦S7-1200可编程控制器在八段LED显示与智能交通灯控制两大典型场景中的综合应用&#xff0c;解决初学者对TIA Portal V13软件操作、梯形图编程、HMI人机交互及仿真验证等核心技能…

2026/10/15 19:41:36 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时&#xff0c;网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上&#xff0c;依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里&#xff0c;扩缩容到底难在哪做过大模型推理服务部署的人&#xff0c;大概都经历过这样的场景&#xff1a;一个团队共用一套推理集群&#xff0c;A 业务跑的是 7B 的小模型&#xff0c;B 业务跑的是 72B 的大模型&#xff0c;C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子&#xff1a;一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减&#xff0c;为了把启动时间压进两秒以内&#xff0c;我手贱地把一串自认为“没用”的 systemd 服务给 disable 了&#xff0c;其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →