当前位置: 首页 > article >正文

宇树A1电机折腾笔记

文章目录电脑SDK控制变态的硬件接线环境配置下位机直接控制上图就是笨笨的宇树A1这是我目前为止转过的最难转的电机。电机的说明书、SDK链接都来自MATH-286-Pro的视频提供宇树A1相关资料、宇树官方SDK仓库。这篇笔记分两部分先使用SDK驱动电机再迁移到STM32下位机上。电脑SDK控制变态的硬件接线首先驱动宇树A1需要的是RS-485格式的信号这是一种类似CAN的差分信号但和CAN不同的是并不采用总线方式而是直接把TTL串口信号的方波复制一遍并镜像因此一条线的串口信号就需要两条A/B线来传输下图是我用示波器测出来的完美RS-485方波我们的大致思路是电脑接一个USB转TTL模块下游再接一个TTL转RS-485模块下游再接电机这是我这次选择的硬件队里也只有这一套USB转TTL模块FT232HTTL转RS-485模块MAX13488由于宇树A1需要的波特率极高4.8MBd一般常用的CH340、CH341都不支持FT232H是少有支持高波特率的USB转TTL/GPIO/I2C/SPI多功能芯片最高支持12MBd非常适合这一场景MAX13488则最高支持16MBd分别是下面两张图然后就是具体的接线FT232HMAX13488AD0TXTXAD1RXRX5V5VGNDGND默认状态下AD0就是FT232H的TX脚AD1就是FT232H的RX脚。这里非常容易搞错的是RX对RXTX对TX而不是交叉相接可以这样理解因为MAX13488并不是“对面的目标”而是“我方的中转站”接线正常情况下MAX13488上的TX灯会亮起这个灯是红灯红灯并不代表出错反而是成功。下面是宇树A1的接口线序上图方向插线的3pin口从左至右分别是GND、A、B左右两个3pin口线序完全一致可以用于串联多个电机。直接B接BA接AGND接GND连到MAX13488另一端即可。最早提到过对于差分信号一根线的数据应该需要一组A/B线才能传输按照这样的逻辑RX/TX应该需要两组A/B线一共四条线但我们看到MAX13488和电机侧只有一组A/B线。这是因为宇树A1仅支持半双工而RX/TX TTL通信是全双工MAX13488进行了转换原先是发送接收可以同时进行两条线互不干扰但现在只有一条线一组A/B只能表示一条线的信号因此无法同时传输这里MAX13488芯片自动处理了阻塞的逻辑。环境配置建议在Linux系统下使用SDK更快捷方便。我在Ubuntu 22.04 LTS环境中测试通过其他发行版可能出现各种版本问题无法编译我使用的ArchLinux由于gcc太新就报错其他发行版可以使用Distrobox不需要重装系统这里不多赘述。gitclone https://github.com/unitreerobotics/unitree_actuator_sdkcdunitree_actuator_sdkmkdirbuildcdbuild cmake..makesudo./changeID七行命令就可以编译运行更改ID的程序。其中会要求你输入USB设备路径一般情况下都是/dev/ttyUSB0如果你不确认是不是这个设备可以做一个简单的测试ls/dev|grepttyUSB运行这个命令只有一个ttyUSB0那就不用想了如果有好几个可以尝试拔掉FT232H再运行看看哪个设备消失了消失的就是FT232H。changeID运行后会输出[WARNING] SerialPort::recv, unblock version, wait time out [WARNING] motor id187 does not reply Please turn the motor. One time: id0; Two times: id1, Three times: id2 ID can only be 0, 1, 2 Once finished, press a看到wait time out和does not reply不需要慌张因为接收电机信息的线路一直比较抽风我们只要保证能给电机发送信息就能正常驱动电机包括速控和位控。如果运行changeID后电机突然锁死内部发出声音再按a回车声音消失就是接收到了信息。如果一切正常就可以开始设置ID宇树A1的ID只有0、1、2。这里的ID设置方式极度硬核人为外力把电机完整的转一圈再按a就是0两圈就是1三圈就是2由于电机设置ID时会有很大的位控阻力转动会有强烈的棘轮感建议像本文第一张图那样加两个螺丝这样外力更好拧说明书也是这么建议的。ID设置完需要在example/example_a1_motor.cpp中修改serial()和cmd.id分别是USB设备路径和电机ID再编译运行example_a1_motor电机应该就能以默认参数速控开转。这里给一组位控的参数n在这里是圈数cmd.kp0.1;cmd.kd2;cmd.qn*6.28*queryGearRatio(MotorType::A1);cmd.dq-3.14*queryGearRatio(MotorType::A1);cmd.tau0.0;下位机直接控制这里使用STM32F405RGT6为例直接控制宇树A1电机。对于接线和上面电脑连接的逻辑相同现在不过变成MCU上的RX脚接MAX13488的RXMCU上的TX脚接MAX13488的TX。这里需要注意的是需要使用F4主控的USART1或USART6因为这两个串口挂在APB2上支持84MHz的时钟频率在默认采样模式OverSampling16下是5.25MBd的最高波特率而另外几个挂在APB1上最高2.625MBd不满足我们4.8MBd的条件。将完整通信协议迁移到下位机的详细代码构建流程不多赘述这里我可以给出两个资料参考一个是电机接收报文格式也摘取自之前开头的宇树A1相关资料~~这里的markdown格式喂给AI更方便~~字节偏移变量名数据类型说明物理量换算公式 (发送前)0start[0]uint8帧头固定0xFE-1start[1]uint8帧头固定0xEE-2motorIDuint8目标电机ID (0~2)0xBB为广播-3reserveduint8预留固定 0-4modeuint8控制模式 0: 停转 5: 开环缓转 10: 闭环伺服-5ModifyBituint8参数修改位 (通常 0)-6ReadBituint8读取参数位 (通常 0)-7reserveduint8预留 (通常全 0)-8-11Modifyuint32参数修改位 (通常全 0)-12-13Tint16前馈力矩 (Nm)Target_T * 25614-15Wint16目标角速度 (rad/s)Target_W * 12816-19Posint32目标位置 (rad)Target_Pos * 16384/(2*PI)20-21K_Pint16位置刚度 (系数)Target_Kp * 204822-23K_Wint16速度刚度 (系数)Target_Kw * 102424LowHzuint8低频控制索引-25LowHzuint8低频控制值-26-29Resuint8[4]预留-30-33CRCuint32CRC32 校验码校验前 30 个字节另外一个是我根据这个格式写vibe coding的下位机驱动代码测试通过已经推送到GitHub。

相关文章:

宇树A1电机折腾笔记

文章目录电脑SDK控制变态的硬件接线环境配置下位机直接控制上图就是笨笨的宇树A1,这是我目前为止转过的最难转的电机。电机的说明书、SDK链接都来自MATH-286-Pro的视频提供:宇树A1相关资料、宇树官方SDK仓库。这篇笔记分两部分,先使用SDK驱动…...

Java中的修饰符,类,接口,多态

最近学了Java中的修饰符,类,接口,多态1.修饰符学了public,默认,protected,private。public是公用的,都能访问。默认的话只能在同类中和同包中调用,而protected则可以在同类中&#x…...

SEO_ 揭秘影响搜索引擎排名的核心因素与算法

SEO核心因素解析:揭秘影响搜索引擎排名的算法 在互联网时代,搜索引擎优化(SEO)已成为每一个网站运营者的重要关注点。SEO不仅关系到网站的流量,更直接影响到网站的知名度和商业价值。究竟有哪些核心因素和算法影响着搜…...

机器学习周报三十九

文章目录摘要Abstract1.TurboDiffusion1.1 注意力改进1.2蒸馏模型1.3权重量化2 训练和推理2.1 训练阶段2.2 推理阶段3 Make It Count3.1数据集3.2损失函数总结摘要 本周阅读了清华大学的论文《TurboDiffusion: Accelerating Video Diffusion Models by 100–200 Times》&#…...

LightOnOCR-2-1B实操手册:Gradio界面上传限制绕过与Base64编码调试技巧

LightOnOCR-2-1B实操手册:Gradio界面上传限制绕过与Base64编码调试技巧 1. 开篇:为什么需要绕过Gradio上传限制? 如果你用过LightOnOCR-2-1B的Gradio界面,可能会遇到这样的困扰:上传大一点的图片就报错,或…...

GitHub协作开发AnythingtoRealCharacters2511项目指南

GitHub协作开发AnythingtoRealCharacters2511项目指南 1. 项目概述与协作价值 AnythingtoRealCharacters2511是一个专门将动漫角色转换为写实真人形象的AI模型项目。这个模型基于Lora技术,经过30900步训练,使用103组图组(合计206张图片&…...

通义千问1.5-1.8B-Chat-GPTQ-Int4入门:C语言基础概念问答助手

通义千问1.5-1.8B-Chat-GPTQ-Int4入门:C语言基础概念问答助手 刚学C语言那会儿,指针、结构体这些概念真是让人头大。书上讲得抽象,网上资料又太零散,要是当时有个能随时提问、还能给出代码例子的“随身老师”就好了。现在&#x…...

语音情感识别在心理评估中的应用:Emotion2Vec+镜像实战案例

语音情感识别在心理评估中的应用:Emotion2Vec镜像实战案例 1. 语音情感识别技术概述 语音情感识别(Speech Emotion Recognition, SER)技术正在改变传统心理评估的方式。这项技术通过分析语音中的声学特征,能够准确识别说话者的情…...

VideoAgentTrek-ScreenFilter智能体(Agent)实践:自主决策的视频内容净化流程

VideoAgentTrek-ScreenFilter智能体实践:自主决策的视频内容净化流程 最近在做一个视频内容平台的项目,团队最头疼的问题就是每天海量的UGC视频审核。人工审核不仅成本高、效率低,而且标准还容易不统一。后来我们尝试引入了一些AI内容识别工…...

ClawdBot部署全流程:从安装到设备授权,手把手带你跑通

ClawdBot部署全流程:从安装到设备授权,手把手带你跑通 1. ClawdBot简介与核心价值 ClawdBot是一个可以在本地设备上运行的个人AI助手,它使用vLLM提供后端模型能力。与常见的云端AI服务不同,ClawdBot的设计理念强调: …...

告别BLAST卡顿!用FastANI和Skani快速搞定微生物基因组ANI计算(附实战对比)

微生物基因组分析提速指南:FastANI与Skani的性能对决与实战应用 当实验室的测序仪日夜不停地吐出海量微生物基因组数据时,生物信息学分析流程中的ANI计算环节往往成为效率瓶颈。传统BLAST-based方法在应对数十甚至上百个基因组比较时,不仅耗时…...

Mirage Flow 运维效率提升实战:智能日志排查与故障自愈方案

Mirage Flow 运维效率提升实战:智能日志排查与故障自愈方案 你是不是也经历过这样的深夜?告警短信突然炸了锅,几十上百条日志涌进来,你得像侦探一样,在成百上千行日志里大海捞针,试图找出那个导致系统崩溃…...

万象视界灵坛惊艳效果:CLIP-ViT-L/14在低分辨率图像上的鲁棒性语义解析

万象视界灵坛惊艳效果:CLIP-ViT-L/14在低分辨率图像上的鲁棒性语义解析 1. 平台概览与核心价值 万象视界灵坛是一款基于OpenAI CLIP-ViT-L/14模型构建的多模态智能感知平台。不同于传统视觉识别系统的单调界面,这个平台将复杂的语义对齐过程转化为直观…...

关键词SEO服务对网站排名有什么影响_关键词SEO服务与移动端优化有什么关系

SEO服务对网站排名有什么影响 在当前数字化时代,网站排名的重要性不言而喻。无论是企业、个人博客还是新媒体,网站的流量直接关系到业务的发展和品牌的影响力。而在这其中,关键词SEO服务起到了至关重要的作用。关键词SEO服务对网站排名究竟有…...

Intv_AI_MK11 架构设计咨询:后端微服务拆分与通信方案评估

Intv_AI_MK11 架构设计咨询:后端微服务拆分与通信方案评估 1. 微服务架构的核心挑战 想象你正在设计一个电商平台的后端系统。随着业务增长,单体架构开始暴露出各种问题:部署周期长、扩展困难、技术栈单一。这时微服务架构自然成为解决方案…...

Qwen-Image-Lightning部署教程:国产昇腾/海光平台适配可行性初探

Qwen-Image-Lightning部署教程:国产昇腾/海光平台适配可行性初探 1. 项目概述 Qwen-Image-Lightning是一个基于Qwen/Qwen-Image-2512旗舰模型构建的文生图应用,集成了最新的Lightning LoRA加速技术。这个方案最大的特点是实现了极速生成和高稳定性&…...

Intv_AI_MK11 Node.js全栈开发指南:环境配置与AI服务端集成

Node.js全栈开发指南:环境配置与AI服务端集成 1. 前言:为什么选择Node.js开发AI应用 Node.js已经成为现代Web开发的热门选择,特别是在需要处理高并发、实时数据流的场景下。当我们将AI能力集成到Web应用中时,Node.js的非阻塞I/O…...

FireRedASR Pro代码详解:从音频预处理到文本后处理全流程

FireRedASR Pro代码详解:从音频预处理到文本后处理全流程 1. 引言 如果你对语音识别感兴趣,想知道一段音频是怎么变成文字的,那么这篇文章就是为你准备的。我们这次不聊怎么用现成的工具,而是直接打开一个叫FireRedASR Pro的语音…...

ICLR2025杰出论文启示录:大模型安全、微调与知识编辑的三大前沿突破

1. 深度安全对齐:从表层防御到系统级防护 大语言模型的安全性问题一直是业界关注的焦点。普林斯顿大学和Google DeepMind的研究团队发现,当前主流的安全对齐方法存在一个致命缺陷——它们只停留在模型输出的前几个token层面。这就好比给房子装防盗门却忘…...

Qwen3-VL-8B-Instruct-GGUF实战:上传图片秒懂内容,智能问答体验分享

Qwen3-VL-8B-Instruct-GGUF实战:上传图片秒懂内容,智能问答体验分享 1. 模型概述与核心优势 Qwen3-VL-8B-Instruct-GGUF是阿里通义最新推出的中量级多模态模型,它最大的特点可以用一句话概括:用8B参数实现72B级别的视觉语言理解…...

all-MiniLM-L6-v2效果展示:实测文本相似度计算,准确率惊艳

all-MiniLM-L6-v2效果展示:实测文本相似度计算,准确率惊艳 1. 模型能力概览 all-MiniLM-L6-v2作为轻量级语义嵌入模型的代表,在保持高效推理的同时,展现出令人惊喜的文本理解能力。这个基于BERT架构的模型通过知识蒸馏技术&…...

基础入门-版本控制-GitLab/Gitea 基本使用

GitLab/Gitea 基本使用 在前面的章节中,我们学习了 Git 基础命令和团队协作流程。在实际工作中,这些操作都是围绕着代码托管平台展开的。GitLab 和 Gitea 是两种广泛使用的自托管 Git 仓库管理工具,它们提供了仓库管理、权限控制、代码审查、CI/CD 等功能,是运维团队进行配…...

DeepSeek LeetCode 1210. 穿过迷宫的最少移动次数 public int minimumMoves(int[][] grid)

我来分析 LeetCode 1210 “穿过迷宫的最少移动次数” 的解题思路和实现。 问题分析 我们有一条长度为 2 的蛇,需要从起点 (0,0) 和 (0,1)(水平放置)移动到终点 (n-1, n-2) 和 (n-1, n-1)(仍为水平放置)。蛇可以&#x…...

DeepSeek linux-6.19/kernel/events/ring_buffer.c 源码分析

我来分析 Linux 6.19 内核中 kernel/events/ring_buffer.c 的源码。这个文件实现了 perf events 子系统的环形缓冲区管理,用于在内核和用户空间之间高效传递性能事件数据。 文件概述 ring_buffer.c 是 perf events 系统的核心组件,负责管理用于存储性能事…...

PyTorch 2.8镜像智能助手:科研人员用预装Jupyter+Pandas快速分析训练指标

PyTorch 2.8镜像智能助手:科研人员用预装JupyterPandas快速分析训练指标 1. 为什么科研人员需要这个镜像 深度学习研究中最耗时的往往不是算法设计,而是环境配置和数据准备。传统开发流程中,研究人员需要花费大量时间在: 安装C…...

未来之窗昭和仙君(八十八)东方仙盟神识FACLAW说明书—东方仙盟

东方仙盟类md5算法功能说明书未来之窗昭和仙君 - cyberwin_fairyalliance_webquery一、功能概述东方仙盟类md5算法主要用于对输入的文本进行压缩处理,生成一个32位的十六进制字符串。该算法通过加权计算、哈希强化、位置扰动等步骤,确保即使对于超长文本…...

Qwen3-TTS在VSCode中的开发调试技巧:从语音克隆到音色设计

Qwen3-TTS在VSCode中的开发调试技巧:从语音克隆到音色设计 1. 开发环境搭建 1.1 Python虚拟环境配置 在VSCode中开发Qwen3-TTS项目,首先需要配置合适的Python环境。推荐使用conda或venv创建独立的虚拟环境,避免依赖冲突。 # 使用conda创建…...

Qwen3-Reranker-0.6B效果实测:轻量级模型重排序能力展示

Qwen3-Reranker-0.6B效果实测:轻量级模型重排序能力展示 1. 引言:为什么需要重排序模型? 在信息检索和问答系统中,我们经常会遇到这样的场景:用户输入一个问题,系统返回多个相关文档。但如何判断哪些文档…...

别再让YOLO的检测框丑哭你!手把手教你根据图片大小动态调整边框粗细(附Ultralytics源码修改)

让YOLO检测框颜值翻倍:基于图像尺寸的动态边框优化实战 在计算机视觉领域,YOLO系列算法因其出色的实时性和准确性,已成为目标检测任务的首选工具之一。然而,许多开发者在实际应用中发现,虽然模型的检测精度令人满意&am…...

从经典控制器到前沿控制的发展

目录 前言 一、PID控制 1.数字PID 2.PID参数的优化 1.微分项的问题 2.积分项的问题 3.PID参数整定法 3.PID参数对系统性能指标的影响 二、模糊控制 1.模糊控制的五大核心步骤 1.模糊化 2.建立模糊规控制规则 3.模糊推理与解模糊 2.模糊PID 1.直接型模糊PID 2.增…...