1背景 MIT猎豹在2019年末开源,提供了一个基于MPC的线性化模型预测控制框架,其核心是将四足机器人简化为单刚体后构建一个多点支撑的力平衡模型,并通过MPC的控制理论在线性化假设下采用QP优化来求解,实现在低成本嵌入式处理器上实时运算。基于MPC框架大大简化了四足机器人步态状态机的设计,在MIT原始步态规划中仅采用时间开环相序就可以实现不同的步态,而传统的方法则需要设计完善的状态机进行切
1 原因(实时的驱动通讯才能保证实物与仿真的一致性) 众所周知对于四足机器人的控制系统来说,首当其冲的是底层驱动与控制软硬件部分,由于四足机器人需要进行试试的力矩控制,关节自由度也很多因此其对底层控制带宽有严格的要求,目前常用的底层驱动频率是1Khz,采用如此高评论的原因是: (1)更高的控制频率利于摆动关节的控制,由于目前四足机器人采用的电机大多是准支驱(减速比再9以内),虽然减速比
1. 仿真框架的优化 在前文中给出了搭建2D-SLIP模型的基本方法,该框架也能推广到其他的机器人模型中,如无人机仅需要替换飞行相中的动力学和微分方程,另外在动画绘制中基于质心状态和姿态结合运动学绘制出机构末端位置,对于矢量平面的简化四足机器人或双足机器人来说也可以用这样的方法来实现,总之基于这套框架能快速地在matlab中搭建一个简单的动力学仿真环境并开展一些算法的研究,当然你也可以直接使
SLIP轨迹规划仿真 在之前的1D-SLIP模型中我们基于matlab的ODE45构建了其开环动力学的模型并进行了简单的跳跃仿真,在之前的模型中由于没有控制输入,弹簧在空中完全按牛顿定律进行自由落体运动,在支撑中则以弹簧的刚度阻尼模型改变自身的加速度,该模型即四足机器人或者足式机器人最简单的弹跳模型,基于虚拟模型理论将其产生的控制量输出即可以实现所谓的力伺服控制。 那我们现在设想一
MatthewPeterKelly提供了一个很好的非线性优化库matlab版本能让我接触如何进行轨迹优化,对于机器人来说轨迹优化的目的是对未来期望状态的规划控制,产生所需的前馈信号让系统完成复杂的轨迹运动,而反馈控制是来修正跟踪轨迹过程中的误差,这里的轨迹并不完全是指空间中一个三维轨迹,他也可以是系统状态,如机器人每个关节如何随时间运动,而对于机器人来说由于其自由度非常多要实现如后空翻或跳跃等
最近研究下动力学前馈设计在查询资料时发现了一个韩国的机器人课程,但是其里面与足式机器人的平衡控制联系比较紧密,特别是本文后面的SLIP与弹跳设计是可以直接用于机器人控制中的相关资料与摘要如下: https://www.youtube.com/watch?v=3jJa2QJeyTowww.youtube.com/watch?v=3jJa2QJeyTo https://video.zhihu
++ 普天同庆在将树莓派4b更换为Odroid C4控制器后终于可以稳定运行QP算法,目前VMC+QP运行周期为2ms即500Hz。由于VMC仅采用PD虚拟伺服因为较高的控制频率能提供相应参数的最大范围,虽然相比MPC算法仍然存在差距,但是确实比之前我采用的虚拟腿解析求解方法好很多,最重要的是这样不再需要我针对不同着地腿数量做特殊处理,如三腿支撑时的动态WALK力分配会变得更加简单,下面是对比视
目前MOCO-8平台已经逐步稳定,在典型室内环境下已经具备可靠的行走能力,现在是是时候达成最初设计MOCO8替代室内SLAM小车的目标了,参考了很多网络教程了解到D435i在港科大的项目中是实现了很多基于视觉下的SLAM地图和避障,如Fastplanner等,下面给出了一个对D435i从标定到运行VINS相关代码的过程,期间参考了很多前辈的教程,总结如下的整个我走通流程,特此记录。
之前在文章中介绍了给Odroid C4打实时补丁: 四足机器人高算力、低成本主控第八步:超越树莓派4B给Odroid C4打上RT实时补丁26 赞同 · 4 评论文章 和给树莓派打实时补丁的教程: 四足机器人高算力、低成本主控第一步:给树莓派打上RT实时补丁41 赞同 · 8 评论文章 综合来说,Odroid C4的运算性能是比树莓派好很多的,通过测试发现,其发热也比较小,可能由于Odro
之前我采用树莓派4B构建了一个高性能、低成本的运动控制器,同时设计了一个基于STM32的伺服驱动载板来实现CAN伺服和IMU采集,最终驱动ODrive实现四足机器人的步态与力控,相关资料如下: 四足机器人高算力、低成本主控第一步:给树莓派打上RT实时补丁 上述的控制器存在如下几个问题: 1)首先树莓派4B发热很严重,导致板载IMU温飘严重,需要频繁标定陀螺仪偏差; 2)树莓派4B莫名重
在构建单片机与树莓派的通讯中,我之前已经基于中断的方式实现了较可靠的通讯,由于SPI发送中采用轮询的方式,即树莓派作为主机一直给底层发送数据,其数据长度按帧格式定义不同每次都不一样,单片机端采用SPI接收中断的方式: 四足机器人高算力、低成本主控第二步:树莓派和STM32的SPI高速通讯 if(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE)
在完成前几步主控的开发后,一个低成本高算力的实时控制器已经搭建好,当我们的控制程序框架编写完成后就可以开始进行运动控制算法的开发,对于之前提到的典型三任务架构中,control_task由于需要不断修改因此其会在调试中不断编译启动,而hardware_task在底层协议确定后基本不用修改,因此我们希望它能上电自动运行,另外navigation_task主要负责遥控和上位机通讯,在一般情况下也不需要
在STM32中我们使用USB虚拟串口完成与上位机的通讯,从而帮助我们更方便地监视机器人状态和调试参数,而在树莓派中我们已经采用Linux系统因此可以使用UDP网口来实现更高速更复杂的通讯,这里我们让树莓派作为服务器上位机作为客户端,简单来说UDP的通讯机制是客户端向服务器主动发送数据,客户端在收到数据后对其进行反馈,因此在使用UDP时我们需要先包上对应的头文件: UDP通讯的关键是二者在
对于四足机器人来说其配置参数很多,在单片机中可以使用结构体和宏定义的方式来实现参数设置,另外也可以将部分参数存储在Flash中,这样有很大的问题,一是参数顺序修改很麻烦,另外是同类参数归纳整理很麻烦,在ROS中使用ymal来管理相关参数其能很方便的显示各个参数属于哪一类并且易于移植和管理。新主控已经使用树莓派当然我们可以借助ymal来方便的管理我们的系统参数,具体流程如下: (1)安装库和依赖
1. 多任务的机器人控制软件框架 在单片机中我们可以使用计时器中断、软件调度或者直接使用嵌入式操作系统如FreeRTOS或UCOSII的方式来实现不同控制任务的定时运行,由于单片机是单核系统因此就算构建了多线程也仅仅是在某个线程sleep时主动将资源释放而言,而在树莓派中其有多个CPU能实现多核心运行,而且当很多高速运动控制任务与单一CPU内核绑定时其运行的速度和实时性都远远优于单片机的操作
在为树莓派安装好实时补丁后,它已经能够作为一个高性能控制器来代替传统的单片机或其他嵌入式系统,相比单片机除了计算能力更高外如树莓派4B为例其内部还具有GPU资源可以运行深度学习或OpenCV等单片机中无法运行的库,大大提高了机器人的运算能力和扩展能力,但相比单片机来说其实时性还是稍有欠缺,另外最大的问题的通讯接口的缺乏,如树莓派仅有串口、IIC或SPI等通讯接口,无法实现面向伺服驱动器的通讯控制,
之前开发四足机器人主要基于单片机来实现,目前STM32整体价格上升,使得后续主控制器芯片的选用十分困难,另外单片机算力对于四足机器人来说还是无法满足,目前整个机器人代码运行相比仿真中各模块已经大大降低控制频率,在Webots仿真中从状态估计到底层力控制都能运行在5ms内,而在单片机中不得不拆分开系统层级,仅保证底层力控和CAN通讯能实现2~5ms,并且控制周期会浮动,导致整个机器人控制带宽的下
经过8篇知乎教程,我已经为大家介绍了如何自制一个最简单的8自由度并联机器人底盘,其基于无刷电机直接驱动来实现高性能力控,可以最为科研和实验平台,当然也为大家早日实现GhostRobotic那样的丰富效果提供了一个可参考的模板。教程主要介绍了如果设计和加工一个机器人,我同时提供了2版的机架设计能满足不同的需求,在驱动器方面采用ODrive能快速构建伺服电机驱动系统,同时借助其在淘宝的低成本和高成
在完成对ODrive标定和接口板的标定后既可以开始通过CAN通讯来驱动各个电机的期望电流、速度和角度,首先再次重新再次确定电机的坐标系ID号和关节坐标系,以机器人俯视图为例,各腿的ID号如下图所示: 如上图所示,机器人右前腿FR的腿号为0,右后HR为1,左前FL为2,左后HL为3,这个ID编号如果在提供的CAN通讯例子中对应结构体VMC[*]中各腿的顺序一致,另外机头方向为机体{B}系X
在完成机器人安装前需要进行的几个必要步骤如下: (1)更新好ODrive固件; (2)更新好接口板固件; (3)确定好机头和机体朝向; 为方便固件更新和修改,我在所有下载接口处都预留的工艺孔,方便进行固件更新和标定,则机器人主要的几个步骤为: (1)标定ODrive参数 (2)调节三相线保证上电转向与规定一致 (3)
1 V1版本机架 在完成机架碳板切割、ODrive板子焊接和主控模块加工后,需要采购如下物料完成焊接: (1)固定编码器磁铁 使用502在电机后方的轴心上固定编码器磁铁,注意一定不要让502滴入电机轴的槽或其他部分,否则会导致电机转动不流畅,这个部分非常关键,一定要保证最终的磁铁即牢固水平固定在轴心同时502又没深入下面的转轴,最终的转动无阻力; (2)安装小腿 将切割的小腿碳板
(1)常用机器人主控方案 本节介绍我为MOCO-ML机器人专门设计的主控制器,类似无人机四足机器人主控同样还是完成对运动传感器的采集,相比无人机来说除IMU和GPS、视觉等设备外,机器人各关节的角度和电流是非常重要的数据反馈,主控在完成传感器数据采集、处理、融合后估计机器人的状态并最终实现力控稳定机器人姿态和位置,可以看到类似无人机主控主要承担运动控制和数据融合的工作,但由于其自由度相比无人
在之前的设计指导下,机架设计首先依赖于你选择哪款电机,电机尺寸决定了你单腿足的尺寸,并最终决定机器人的机架大小和相关电气设备的安装,另外由于我们的驱动器采用ODrive没法像Minitaur一样放置于电机背面因此将有很大一部分空间被驱动器占用,综上Moco-ML机器人的机架设计主要具有如下几个特点: (1)采用同轴直驱电机设计:为保证电机同轴,而且采用直驱降低机构复杂度,机架设计采用
Moco-ML使用的伺服驱动方案借鉴与Doggo的修改版本,其使用ODrive构建高性能伺服驱动,但可惜的是其没有实现力控仅基于位置控制完成步态规划,但实际上Doggo项目团队已经对3.5版本固件进行了非常多的修改,大大提高了原始ODrive的使用便利性,几个主要的修改部分如下: (1)增加一键配置文件:原始ODrive的配置十分复杂,首先需要用USB连接电机然后完成电机标定、编码器
Moco-ML为8自由度并联腿结构参考Minitaur 的硬件数据其采用T-Motor U8电机(重量280g持续扭矩3Nm价格1000RMB)整机重量为4Kg,无法满足桌面级的需求,除了太重外其整机成本也没法约束在5000RMB内,参考相关低成本电机参数Moco-ML的总体参数相比Minitaur 均缩小一倍吗,即整机重量在2Kg,站立高度在10cm,尺寸小于50*40cm,对于自制
Moco-Minitaur LTS(Moco-ML)机器人的设计目的是建立一个支持力控的桌面级无刷四足机器人平台,其需要具有低成本、结构简单、电气安全、扩展性高的特点,作为研究机器人基本控制算法和作为一个小型SLAM底盘平台,因此以8自由度支接驱腿作为主要结构,采用现成的开源驱动器和单片机来保证低成本,相比Doggo等国外开源平台来说更加符合国内开发者的使用习惯。 (1)硬件框架设计
Minitaur是自宾夕法尼亚大学的研究人员制作的一个高性能直驱8自由度并联四足机器人,其开发者主要是 Gavin Kenneally 和 Avik De,他们也是目前著名的Ghost Robotics公司创始人,旗下的Vision 60系列机器人已经是当今最成熟的军用四足机器人系统,而Minitaur则早已经商业化被许多国外机器人实验室用于开发机器人系统、研究机器人运动控制。
下面我们使用LM法来解决之前用线性最小二乘法难以解决的椭球拟合问题,在磁力计标定中我们的目的是通过磁场测量数据来拟合当前受干扰的地磁场椭球,通过其参数反向缩放和补偿位置,从而将其映射为正球体完成对磁场的校准,这样通过磁场纠正数据计算出的航线角才随机体转动近似线性变化的,通过LM法我们不需要换元处理,同时也可不用把参数方程展开为一般式,直接列出椭球的参数方程: 构建误差方程: 求取每一个参数在第
在线性最小二乘法中我们知道了通过测量数据构建齐次方程组来拟合最优系数的基本步骤,其中包括直接法即所有系数均为线性形式;广义法即通过构建误差的最小化形式求解系数,其相比直接法运算量固定,更加适合计算机编程;间接法其主要是通过换元处理将一些模型中简单的非线性元素替换,从而将其转换为可采用前两种方法的线性系统。以之前提到的二位圆拟合例子为例,其一般式方程如下: 上式中存在着非线性系数部分,无法采用直接
1. 最小二乘法 最小二乘法是一种最基本的数学工具其在机器人系统中有着诸多的应用,比如在IMU标定中我们会使用最小二乘法来拟合IMU待标定的参数,在力分配环节中用它来求取需要的足底力,当然其和卡尔曼滤波等算法也有着非常重要的联系。目前在网络上有许多最小二乘法的相关资料,无论是在代码和原理上都有着丰富的资料可以查阅,但总体上还是无法提供一个能快速理解的脉络,特别是涉及到实际应用问题中如椭球拟合磁力计
在降维解耦框架中可知采用VMC虚拟模型方法可以将四足机器人本体控制简化为对虚拟刚体高度、速度和姿态的独立控制,通过构建PD控制器模拟虚拟弹簧刚度产生期望的伺服力与力矩最终通过力分配的方式将控制量映射到支撑腿上,并进一步使用虚功原理采用雅克比矩阵将力与关节力矩进行映射。该方法在顶层控制中仅关心对刚体的控制不明确具体的机器人构型因此可以扩展到车、无人机、双足等不同的机器人中,而面向最终机器人构型的主要
本节对Moco-8的软硬件设计进行详细介绍,包括了原理图设计详解和开源版本步态算法的讲解,首先对控制器硬件设计进行介绍。 硬件设计详解 Moco-8机器人使用了OLDX通用机器人控制器OLDX-HROS,其能兼容多种机器人如飞控、无人小车或者足式机器人,采用STM32F4系列高性能处理器实现导航和控制算法,板载了10轴MEMS传感器并采用内减震设计,控制器具有丰富的外扩接口具有最多12路的PW
Moco-8仅有8自由度因此以对角步态为主,而对四足机器人来说爬行步态是更重要的一种步态其能实现在崎岖路面上的移动特别是上下楼梯大多以爬行步态为主,相比如波士顿动力公司所设计机器人采用的液压或高性能伺服驱动,受体积和成本限制其关节多采用舵机及减速组传动,因此关节响应速度较慢同时由于缺少关节角度反馈和足底力反馈使其难以实现可靠的对角小跑步态,因此爬行步态是微型四足机器人中最主要的移动方式。 优酷视频
本章介绍如何使用开源的Moco-8资料自己完成机器人的制作,相关资料被托管在github上,其包括了PCB和3D打印机架,对于机器人的软件代码来说我们建立了一个单独的项目方便下载和维护。 golaced/MocoMoco_Softwaregithub.com/golaced/MocoMoco_Software 项目采用多种构建方式,可以根据自己已有的工具和预估经费进行选择,项目的搭建模式如下表所
第3章 Moco-8四足机器人导航算法简介 3.1 Moco-8导航算法框架 Moco-8导航算法框图 如图所示Moco-8的导航系统包括了完整的姿态解算和组合导航,上述框架也适用于飞控和其他小车底盘的导航系统中。在完成对IMU数据采样后首先对其进行预处理,包括中值滤波剔除异常值,标定参数校准和低通滤波。之后,使用预处理数据完成姿态解算获取精确的姿态角和机体加速度值。为减少机器人冲击地面
注:本人并非专业研究足式机器人,只是兴趣爱好开发,如有错误请谅解! 第2章 Moco-8四足机器人控制算法简介 2.1 分解式虚拟模型步态算法 2.1.1 VMC支撑相控制算法 对于足式机器人来说有许多不同的步态,最典型的如ZMP算法规划重心在着地平面移动轨迹的爬行步态,对角步态是足式机器人最常用的步态由于Moco-8机器人每个腿仅有2Dof、没有胯关节因此其主要以对角步态为主,其余如Boun
第1章 Moco-8四足机器人简介 1.1 四足机器人现状介绍 四足机器人是近年来十分热门的一个研究领域,虽然其相关系统设计和控制算法已经发展了近数十年但是在波士顿动力公司发布其产品后才真正被大众所知,并打破人们对机器人的认识,波士顿动力公司正式研发军用四足机器人大疆刚在创业比赛中脱颖而出,二者经过十年的发展一个成为无人机领域的独角兽,一个占据了足式机器人领域的半壁江山。 M200行业级无人机
今天主要介绍最近基于python学习完成的上位机开发,通过这个项目学习了python语言同时也为后续机器人所需的上位机开发搭建提供了良好的基础,而且确实相比c来说我选择python在使用过后,虽然有些编程习惯需要调整如全局变量调用、没有switch、格式进位、IDE简单,但确实挺不错除了跨平台、移植性强外库丰富而且支持矩阵运算对于机器人控制编程来说十分完美。 后续将免费开放使用的机器人调试上位机
1.强化学习方案 生物最大的特点是在完全对外部世界不存在精确模型的前提下通过环境交互获取奖励提高智能体对环境的认识(强化学习),通过专家的评判和标签构建正确与不正确的模糊映射(深度学习)从而用实现用时间换经验的方式,提高环境模型的精度采用简单的方法论能适用于不同的任务。 对智能体训练最有名的工作就是由Google DeepMind提出的AlphaGo项目其通过计算机上万次的模拟博弈与学习超越了人
综上,可见采用刚体降维解耦的方式可以较好地简化机器人控制并能将该方法向多种不同构型的机器人进行推广,姿态、位置控制算法只需要关心刚体位姿控制问题,而具体这些虚拟控制力和力矩如何通过执行器输出则可采用不同的力分配原理就行,最终构建成一套完成的反馈控制系统,但由于该方法忽略了躯干质量和惯性使得在真实机器人系统中可能无法保证对期望质心运动轨迹跟踪的精度,因此在上述反馈控制的基础上进一步结合能量前馈控制就
1.嵌入式机器人主控处理器 1.1意法半导体STM32系列 目前意法半导体的STM32系列是采用率很高的低成本机器人主控芯片,目前其面向伺服系、机器人和无人车推出了多种不同算力性能的单片机处理器,覆盖了STM32F0/F1/F2/F3/F4/F7/L0/L1/L4等多个产品系列。以ARMCortex-M4的STM32F4系列MCU为例,其主频为180MHz能满足目前无人机所需要姿态解算、PID
在一起做四足7中我们提到了基于强化学习实现的机器人步态算法,其中以OpenAI最先在真实机器人上进行了实现而目前ETH提出的强化学习框架甚至超过了传统动态稳定控制算法实现的效果。Pybullet是许多强化学习算法应用训练采用的物理引擎,github上许多强化学习的工程特别是在足式机器人方面的基本都基于该引擎进行试验,因此要学习强化学习首先需要按装pybullet物理引擎,同时也能将其当做一个仿真平
1.三通道解耦控制理念 Raibert所写的《Legged-Robots-That-Balance》可以说是足式机器人必读的书籍,其中提出了经典的三通道足式机器人控制框架,通过降维的方式实现对足式机器人非线性动力学模型的解耦同时引入虚拟腿和虚拟弹簧的概念使得整个算法在有精确可靠的系统状态估计下,能采用简单的PD控制律实现并能获取较好的控制性能和抗外力作用性能,下面对本文中的核心算法进行简单的总结。
目前经过下面过程基本库预编译都不会报错,但是在make的时候会出现c++ no-pie的错误,我也不知道为什么,通过强行删除对应cmakelist文件中该标志位貌似解决该问题,但是仍出现了一些文件缺失(大部分都是ipopt的),目前任然在尝试如解决这些问题会更新帖子。 (9.3号更新已经成功在14.04虚拟机中编译运行成功,如在其他环境中遇到编译问题可参考该贴)。 如果没兴趣尝试请不要参考该贴或者
1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 欢迎关注我的开源四足机器人项目!!
摘要: 强化学习技术在近年来得到了快速的发展,其在游戏、自动驾驶和机器人领域中都具有了不少成功应用的案例,研究人员针对强化学习技术提出了许多算法实现在无模型下借助智能体与环境交互学习复杂的技能,但其仍然存在着许多问题需要解决,比如如何加快网络的训练、更精细的提供对任务具体指标的训练结果等。 在将强化学习技术应用于实际机器人中同样面临着很大的挑战,除了训练数据集难以获取外建模误差、传感器测量误差都
足底传感器 首先使用双面胶裁剪一小块贴在小圆片槽上以增加摩擦力 然后将其与开关对应凸出安装,并黏贴足底减震 首先采用下图的方式安装空槽足底件和两个小腿 从底部安装开关,并用对应塑料螺母固定 焊接转接板 使用4P线将其与控制器对应舵机口后的4P端子连接,走线可以从机臂空槽中过去(官方机架) 采用同样的方式安装4条腿,主要要保证软垫均朝向下方 使能足底传感器首先需要查看vmc_al
积分
粉丝
勋章
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信