Yahoo Web Search

Search results

  1. Western Union, Kroger, Meijer, Giant Eagle, Walgreens and others accept Columbus utility bill payments. For locations please visit Western Union or call 1 (800) 325-6000. Please be aware that contracted vendor payment locations charge a convenience fee. Payment Options page includes a complete list of payment options and associated fees (PDF ...

  2. 这些是之前业余学习四足机器狗的一些研究成果包括仿真代码文档笔记等做个记录。. 要看懂需要先学习机器人相关的一些知识以及机器人数学等。. Core 目录是运行在 pybullet 环境四足狗仿真代码 quadfly.py 的核心实现,实现了步态发生器、运动学约束 ...

    • 概览
    • 一、MIT Min cheetah机械狗系统设计
    • 二、机械狗主要机械结构设计
    • 三、嵌入式硬件设计
    • 四、结束

    【导读】之前写了一篇关于如何设计一款机器人的文章,大家都非常感兴趣。

    这次打算以开源MIT Min cheetah机械狗为契机,来个呼应,真实的剖析一下机械狗的设计过程,本人也是查阅了很多的相关资料,并对资料进行了一个汇总(如果有侵权,请私信本人),尽量从设计的角度来解析这条狗是如何设计的,涉及从底层开发,到顶层设计,再到系统集成,囊括机械、电子电路硬件、嵌入式软件,每个环节尽量做到详细,通俗易懂,所以这个系列的东西会比较多,建议关注,点赞。

    相比于上一篇文章的系统概括,这篇文章才是真正的实战,不过MIT Min cheetah机械狗用到的技术相比上篇文章要少一些,比如一些智能化的东西,MIT机械狗上并没有用到,但不妨碍我们可以从机械狗的设计中体会到设计的精妙。(当然随后的MIT Min cheetah机械狗也用到了智能学习算法,使得机械狗具备自主学习功能,适应不同地形的能力更强!这里对加强版的机械狗暂不作讨论)

    由于本人能力有限,也在不断的学习当中,对于这种这种涉及很多学科融合的项目,难免会有不少纰漏,欢迎大家批评指正,不断完善文章的质量,为机器人爱好者们造福。

    MIT Min cheetah加强版机械狗视频

    视觉辅助的加强版机械狗https://www.zhihu.com/video/1651622758634303488后空翻的机械狗https://www.zhihu.com/video/1651626922680606720

    1、指标需求

    在设计机械狗之前,首先第一步就是要有个输入需求,比如机械狗的尺寸,重量,奔跑速度,各种姿态,控制方式等等,不然就无从谈起设计。这些具体的指标,我们默认是已知的。 比如重量的选择,速度的选择,这些都是要经过运动学和动力学的一个预先评估和仿真。 姿态的规划考虑 以上这些前期的指标需求都要提前进行拆解分析。

    2、系统框图

    根据需求指标,开始搭建系统框图如下: MIT Min cheetah机械狗系统框图 1)机械狗每条腿由3个电机控制,每个电机由1颗STM32控制器控制,由于电机是根据腿部特别定制的,因此电机控制算法也需要自己实现,所用到的算法是FOC算法,因此腿部控制共用到了12个电机和12个STM32控制芯片,另外每个电机上又有2个编码器,一个用来给电机FOC控制做电气角度反馈,另一个用来测试关节位置。 腿部硬件构成 2)所以12个STM32控制芯片只运行FOC算法,并用CAN总线与数据通信转换板通信, 转换板上有两个STM32负责打包CAN消息并用SPI协议发给UP board 计算机板卡,转换板之所以用两个STM32是因为带宽不够, 每个STM32有两路CAN总线, 每一路负责三个电机(一条腿)的通讯才能达到1000Hz, 若一路负责六个电机(两条腿)控,制频率只能降到约600Hz,响应太慢,对控制非常不利。 数据通信转换板部分 3)所有运动学和动力学算法都运行在UP board 计算机板卡中,核心就在于腿部的控制。 每条腿有两种控制模式: •摆动腿的轨迹跟踪模式:使用阻抗进行轨迹跟踪 •触地腿的力控模式:使用雅可比来将MPC控制器计算出的力映射到关节扭矩,另外还通过WBC进行了动力学前馈补偿。 换句话说也就是:如果腿处于腿在摆动中,则使用“摆动腿控制器”,如果腿处于腿在支撑中,则使用“力控支撑腿控制器”。 UP board 计算机板卡硬件组成 4)机械狗姿态估计反馈:机械狗质心处装有IMU传感器,通过陀螺仪和加速度计感知机械狗位姿。 姿态估计用于估计机械狗的位置、速度和姿态: •其中速度和位置作为反馈输入更好的跟随到机械狗质心轨迹; •姿态作为反馈输入用于支撑的平衡控制器。 对机械狗旋转的估计只需对原始数据稍作旋转坐标变换就可得到躯干的姿态与角速度。 对机械狗平动的估计方面,利用扩展卡尔曼滤波器结合IMU和腿部编码器进行二者的融合,得到质心位置速度。 5)用户通过遥控器与机械狗本体建立无线连接,下发指令控制机械狗,指令包括平动速度p_{d}和转向率\\varphi_{d}两个高级命令。 下面再对整个流程做个总结: 核心算法实现部分 (1)操作员通过遥控器给机械狗下发平动速度 p_{d} 和转向率 \\varphi_{d} 命令; (2)机械狗接收到命令,质心CoM生成参考轨迹并传送给身体和腿部控制器。 (3)控制器根据用户输入命令和机器人状态,如果腿处于腿在摆动中,则使用“摆动腿控制器”,如果腿处于腿在支撑中,则使用“力控支撑腿控制器” (4)力和位置指令被发送到STM32微控制器,用于将电机指令传递给机器人的每条腿。 (5)如果对机械狗还有更高的要求,比如自主导航,视觉辅助等,则可以给计算机板卡加个工控机运行SLAM或者AI算法。

    1、四肢朝向的选择

    机械狗的结构设计,第一个摆在我们面前的就说四肢的朝向问题,如下图,我们是选择猎豹的向前弯曲,还是角马的向后弯曲呢?其实为了方便爬楼梯选择了向后弯曲,也即角马的骨骼形式。 不同动物的骨骼形式

    2、电机布局形式的选择

    一般我们在设计四肢运动的时候,最先想到的就是在各个关节上直接加一个电机,如下图的左边所示,两个关节处各加装一个电机,但是,这样当小腿在摆动的时候,惯性会非常大,可以想象如果在你的膝盖住绑一个沙袋,在行走时就会非常的费劲,非常消耗能量,因此我们自然而然会想到将膝盖处的电机移动到上端,通过一个同步带和膝盖相连,如右图所示。 左图:电机安装在关节处,右图:电机集中安装在髋关节 除此之外还要考虑一个问题,如果机械狗摔倒后还要能够翻身起来,我们自然而然会想到再增加一个自由度,也即还要增加一个倾斜电机,原因如下面视频所示: 增加倾斜电机https://www.zhihu.com/video/1651692011479531520

    3、电机的选型及测试(非常重要)

    一个机械狗动力强不强劲,电机起到至关重要的作用,机械狗的电机比较特殊,类似于公版电机T-Motor U8的型号,这款电机是广泛应用于四旋翼的,需要很高的能量密度(不然就无法完成后空翻这样的经典动作),因此机械狗的动力选择的是无人机的无刷电机+行星齿轮组的形式,每个执行器都由一个定制的高耦合到单级6:1的行星齿轮减速机(背隙0.005rad/0.28°)。有效改善机器人的承载能力和低速效率,(至于这里减速比为什么选择6,网上有不少讨论,比如这篇文章https://zhuanlan.zhihu.com/p/90921325,我个人比较倾向于,MIT在设计驱动器的时候,使用了成熟的商用驱动器,也算是一种妥协,机械狗的整个重量,结构布局可能都会受驱动器的影响,后期的Cheetah 3系列就采用了自研的驱动电机。) 使用电机驱动一体化的一大优点是,不需要额外的机械结构和昂贵的传感器就能做到力控。这是因为小减速箱的非线性误差可以忽略不计,因此直接使用电机的电流环和相应的减速比,就能得到驱动器端的输出扭矩。 以上的设计思路,就带来了一个极其紧凑、轻量化的驱动器整体集成效果,当然缺点也很明显,采用镂空减重设计,防水防尘比较麻烦。 机械狗电机结构图 使用到的相关齿轮箱和轴承的型号如下: 行星轮:Misumi GEFHB0.5-40-5-8-W3 太阳轮:Misumi GEABN0.5-20-8-K-4 环形齿轮: KHG SI0.5-100 滚动轴承: HK0408 驱动器的参数: 电机设计完成后,如果加工组装完成还需要对电机进行一系列的测试,包括: 1)、扭矩测试、功率测试、效率图绘制,这里需要使用到扭矩测量仪。 2)、电流扭矩测试 左图:扭矩/电流特性 右图:扭矩常数/电流特性 3)、电角度校准(用于FOC算法调试) 另外电机采用的FOC控制,还要对电角度进行校准,FOC算法中一个重要的指标就是要知道电角度,电角度由磁编码器获得,由于电机摩擦和惯量的存在,实际运行时,它总是稍微滞后于参考角度,如下图左上角;位置传感器的偏心会引起低频纹波,如下图左下角;齿槽转矩又会引起高频纹波,如下图右上角;消除这些误差以后会建立一个表记录下来,只要磁编码器没有重新拆装,下次上电,表记录的数值依然有效,这样在程序运行的时候,可以通过查表来消除传感器误差。 磁编码器误差消除 4)、热分析 除此之外由于机械狗频繁的运动,还要对电机进行高温测试,防止电机高温消磁,高温报警等。 高温试验

    1、硬件组成

    1)UP board计算机板卡:腿部控制器基于Cortex-A8的处理器,执行腿部控制任务,如笛卡尔阻抗的控制或联合PD控制。负责完成较高的腿部频率和高速关节速度摇摆时的滤波、高带宽跟踪相位以及其他位置控制动作。最后,每条腿控制器发送扭矩指令并接收无刷电机上的编码器测量值。可以看出UP board计算机板卡的核心功能就是进行运动学和动力学运算。 2)调试PC机:使用第二代酷睿i7处理器,运行UbuntuLinux(内核4.1.33)和配置抢占RT补丁。UP board通过以太网与笔记本电脑通信,UP board使用轻量级接收用户命令并记录数据通信和编组(LCM)。LCM将允许其他计算机用于视觉、规划和其他易于与计算机通信的任务未来。 3)数据转换板:使用的是STM32的F4系列,一个STM32F4通过CAN总线负责两条腿,一个腿由3个STM32控制板通过FOC算法控制腿部三个电机,而且只运行了FOC算法。 数据转换板电路板 4)IMU传感器:用的是串口通信,每个STM32还有独立串口通信,用于模块的设置与debug。 IMU传感器示意图 5)电机控制器: 硬件层面的信息如下: 24V供电、40A峰值相电流(由于电机热力学限制,实际数值低于40A)、CAN总线通信 接收数据转换板转发来的信息(力矩、位置、速度及位置和速度的增益),并且上传反馈信息(位置、速度以及基于电流环测量的扭矩)最大通信频率:4kHz/驱动器数目 (可通过增加CAN总线数目扩大通信带宽) 电机控制器 MCU最小系统–STM32F446RE MCU最小系统电路图三相驱动桥 6)位置传感器(磁编码器) 磁编码器安装位置编码器电路图 7)STM32和UP board供电系统 24V 5ah电池,右侧的外壳被移除,显示了内置的BMS,输出端子和18650电池供电板PCB 机器人供电板,产生隔离的5V逻辑电源,给腿和计算机供电,并有直通晶体管,实现电机电源和逻辑电源的通断。电源的底面(右)安装FASTON端子,与内置到电池相匹配。

    2、通信速率

    1.每路CAN的通信配置是1M。数据转换板用两个STM32是因为带宽不够, 每个STM32有两路CAN, 每一路负责三个电机的通讯才达到1000Hz, 若一路负责两条腿六个电机,就达不到。 2.数据转换板和UP board通过SPI通信的时钟为12M,通信频率为1000hz

    3、通信协议

    can格式每帧数据8个byte。 数据转换板->腿部控制器(STM32) 指令内容(8字节): •位置指令: 16bit •速度指令: 12bit •kp: 12bit •kd: 12bit •前馈转矩: 12bit 腿部控制器(STM32)->数据转换板 上报内容(5字节): •位置信息: 16bit •速度信息: 12bit •电流(力矩): 12bit PC调试机->数据转换板指令内容(132字节): 一共是33个数据。6个关节的位置指令、速度指令、kp、kd、前馈转矩、两个flag和一个校验。 数据转换板->PC调试机 上报内容(60字节): 一共是15个数据,6个关节的位置和速度,两个flag,和一个校验.

    下一篇文章预告:【干货|开源MIT Min cheetah机械狗设计(二)】|无刷电机FOC控制算法解析

  3. 这是小程序前端,后端请点击这里: 好玩的微信狗狗宠物——服务端. Getting Start: 申请一个小程序AppId(个人类的即可,企业类的更佳),下载微信开发者工具,将前端项目导入开发者工具,. 把AppId换成你的AppId,在globalConstant.js文件中配置你的后台地址,本地 ...

  4. 4. Fork. 0. 捐赠. 0 人次. 仿真狗提供了图形化的iverilog仿真操作界面,不需要去折腾晦涩难懂的命令,萌新也能轻松完成RTL仿真流程。. Python 等 4 种语言. MIT. 暂无发行版.

  5. www.bilibili.com › video › BV1A741117CQ仿cheetah...

    仿cheetah mini四足机器狗仿真,没加控制算法还站不起来. 力矩控制的四足gazebo仿真,这一步着实难,不太稳定是因为控制频率太低,目前还没有找到使数据更新频率和控制算法频率更好配合的方法。. -, 视频播放量 376、弹幕量 0、点赞数 3、投硬币枚数 2、收藏 ...

  6. Oct 21, 2023 · 【导读】开源MIT Min cheetah机械狗设计第24篇基于openGL的仿真实现模型的可视化有2种方法后面会分别介绍原理大同小异只不过方法2要好理解一些。 说到仿真,对于复杂设计来说好处还是很多的,可以节省不…