1 安装部署在之前测试了FastLio并在样机上进行了部署华北舵狗王:四足机器人雷达-视觉导航4:测试FAST-LIO-LC,这边测试另外一个雷达惯性里程计项目DLO文。其提出了一种轻量前端激光雷达里程计解决方案,用于在计算能力受限的机器人平台上,具有快速和精确的定位能力,我们的直接激光雷达里程计(DLO)方法包括几个关键的算法上的创新,这些创新优先考虑计算效率,并使用稠密的、预处理最少的点云实时
1 前沿目前四足机器人主要的应用场景聚焦在室内环境作业,典型任务如巡检与搜索,针对传统机器人再完成建图启动路径规划算法后可以通过Rviz下发Nav Goal从而实现机器人的自主导航和在线建图,但是在很多时候特别是真实环境中仅能下达一次或者几次任务更多的时候机器人需要自主机动和搜索,这样的情况主要发生在通讯质量不好和高级任务模式下,典型的代表就是由Dapar组织的SubT比赛,其需要机器人自己完成2
FAST LIO是目前较为通用的雷达与IMU紧耦合导航定位算法,对于四足机器人来说高精度的导航有利于局部高程图的构建并实现自主越障和落足点选择,高精度的里程计也为自主导航提供了可靠的反馈数据,原始的FastLIO不具有回环功能的,这里运行的是由ETH RSL实验室修改的版本,其实现回环检测因此可以更加利于室内狭窄区域内的自主机动:代码 依赖: Ubuntu 18.04 and ROS Me
四足机器人导航可以采用多种方案,对于小型室内机器人更多的会采用2D雷达运行SLAM算法实现地图的构建,典型的地图算法包括HectorMap、Gmapping,由Google推出的 Cartographer SLAM是目前公认效果较好的2D 建图和定位算法。其可以融合雷达、IMU和机器人里程计,采用图优化因此相比前两个SLAM算法具有更好的建图效果,目前室内扫地机器人或轮式底盘都会采用该方案。 对
1. 姿态解算为何对四足机器人至关重要 在开发无人机飞控的时候我们都知道首先要完成对无人机的姿态计算,因为它决定了无人机在空中的悬停精度,高实时、高精度的姿态解算加上优秀姿态闭环,室内环境下无人机在无定位的情况下也可以做基本不动。同时由于无人机在融合GPS信号的时候需要全局加速度,姿态解算的误差将累计到加速度分量上,在融合时会导致某自由度的误差,如侧飞时的掉高问题! 无人机精确悬停对组
本章是细品Spot最后一部分,后续会重新针对各个细节完善1-5章中的相关内容 6 电气系统 Spot前后两部分采用了两个独立的控制单元: 前后两侧腿分别由两部分载板和两个PC进行控制,中间则采用了高速总线,从下图可以看到前后两部分模块除了部分硬件接口资源不一样外,大部分功能是重叠的特别是腿部的驱动和相机接口: 6.1尾部模组 Spot的尾部模组具有两个
在华北舵狗王:NLP非线性优化第一步Webots与CasAdi中我们完成了采用matlab下casadi库对优化算法的快速验证,在华北舵狗王:NLP非线性优化第二步CasAdi Matlab库导出与部署我们完成了将成型的优化算法转换为c程序并进一步编译为c++可以识别库,最终在Webots环境下调用实现了迁移应用,本文完成部署最终一步就是将优化程序部署到嵌入式平台和机器人内部完成在线的优化。这样顺
基于CasAdi可以实现四足机器人运动控制与跳跃,在华北舵狗王:NLP非线性优化第一步Webots与CasAdi中介绍了如何在Windows环境下部署与测试C++版本的代码,当然也实现了Webots下的仿真接口,从而加快了在仿真中快速验证相关算法,但实际上更多时候我们是在Matlab环境下完成对优化问题的设计与开发,之后在实物样机中完成代码的部署,当然更合适的方法是完全在Ubuntu下直接采用Py
非线性优化和轨迹优化是目前四足机器人和仿生机器人非常重要的技术部分,前者如腾讯Max机器人演示的后空翻和跳跃都需要用到相应的轨迹优化技术,而求解这样的轨迹优化控制问题就需要非线性优化工具,比较令人熟悉的是ipopt或MATLAB中自带的优化工具,CasADi则是一个在此基础上构建非线性优化问题的工具,其可以采用模板的方式来描述优化问题,从而使得非专业编程人员也能用其来求解优化问题,其支持Mat
1. Spirit40机器人是啥 Spirit40是由美国军事四足机器人公司Ghost Robotics设计并生产的轻小型高性能四足机器人平台,其设计参考了MIT Mini Cheetha的方案,采用电机背靠背的方式布置,膝关节皮带传动,但是输出轴平移从而可以实现360°的旋转,因此其也实现了MIT小狗无法实现的正反两面行走能力,大大增强了自己的自恢复能力: 机械狗 | Spirit系列:Sp
机器人的状态估计可以说是在实物样机中最重要的部分,例如对于无人机来说高实时、高精度的状态估计能大大简化控制器的设计复杂度,这也是为何早期PIX4飞控采用串级PID加一些简单的补偿就能实现可靠的飞行,而其中的EKF2或AutoQuad等飞控采用的UKF才是最关键的部分,对于四足机器人来说也一样,高动态的状态估计对于四足机器人的作用在于: (1)高动态的速度反馈能更好地用于落足点控制:众所周知目前大
1. 机械臂与四足机器人 如果你没看过波士顿动力Spotmini最新的机械臂应用视频那可以查看以下链接,四足机器人目前最大的问题是落地应用不明确,而增加机械臂实现更多应用场景的方案已经是目前四足机器人产业未来最大的特点,已知有增加过机械臂相关四足机器人有Spotmini,绝影,GhostRobotics等,而Spotmini应当是这个应用领域的先驱。 https://www.bilibili.
《Robot Dynamics Lecture Notes》中详细介绍了机器人所需要的矩阵和姿态变换,另外也介绍了WBC中应用的零空间和Task任务控制控制原理,文中后半部分大量涉及浮动基座控制和VMC虚拟模型控制的原理介绍,看完能提高对机器人现在主要控制方法的理解! 反对称矩阵: B在A系下的位置: SO3下B到A旋转: 旋转矩阵特性: 将向量U从B系转换到A:
1. 状态反馈+参考状态跟踪 在控制方法中反馈系统的控制占了绝大一部分,而且很多资料介绍中主要是这一块的系统设计,在现代控制理论方法指导下构建一个基于模型的闭环系统有很成熟的方法,但在很多实际系统中主要还是以PID的测量误差反馈控制作为代替,以典型的线性控制系统设计为例,在获取到系统的状态空间方程后就可以基于极点配置或者LQR等方法来设计控制器,值得注意的是这一类状态反馈主要目的是保证系统状态收
MOCO通用控制器正式支持ROS,SDK下载地址为: https://github.com/golaced/MOCO_SDKgithub.com/golaced/MOCO_SDK 固件需要采用V105以上的固件版本,在完成使用OCU上位机优化步态参数,可以稳定行走后,可基于树莓派采用ROS来控制机器人,目前以传统全向小车底盘的方式来控制四足机器人,具体使用教程如下: MOCO通用 四足机器
作为一个普通的理工生,很荣幸用自己整个博士学习时光见证了无人机整个行业和技术的崛起,从TED看到拉菲罗教授展示的四轴飞行器演示,第一次被真正的自动控制所震惊了,原来机器人是那么好玩,在兴趣使然下从电力电子转到了自动化,那时候课题组正好在准备中航工业杯,使用的飞控还是现在已经绝版的悟空飞控,由于那个时候的大疆还没有二次开发接口,而它也是唯一在自组情况下能实现15kg级8轴的唯一选择,所以我们直接使用
在前文中我给出了基于Webots环境下配置和安装qpOASEs非线性优化库的方法: 四足机器人优化方法:Webots下Eigen与qpOASES非线性优化库环境搭建 本文基于该库来实现对三通道降维解耦框架中最核心的力分配环境进行仿真验证并与传统的静力学分配方法对比。由三通道降维解耦控制方法可知通过构建虚拟刚体VMC模型我们可以设计高度、速度与姿态三个通道的虚拟伺服,采用简单的线性PD控
在最小二乘法一章节中我给出了基于matlab仿真下的手推最小二乘解方法,最终采用广义法能将任意多组数据求最小二乘解转换为求取固定矩阵元素平均值的形式从而避免数据增长带来的计算量增大: 四足机器人优化方法初探:最小二乘法的基本理解 为实现编程应用可以将求解算法单独写入matlab文件的函数中再使用coder将其转换为c或c++代码。最小二乘法的理论知识实际为我们后续基于QP优化或LQR,MPC等
1. FOC常用驱动硬件方案介绍 目前的电驱动四足机器人中关节伺服驱动是最关键的电子模块,其完成对无刷电机的驱动以产生持续的力矩输出从而实现机器人所需要的力矩控制,对于无刷电机的伺服驱动目前主要采用FOC矢量控制算法,基于该算法已经有许多成熟的开源方案如SimpleFOC和著名MIT开源项目提供的基于STM32的驱动电路设计,基于该方案目前淘宝上有许多电机厂商都推出了自己的一体化伺服驱动电机,如
视频链接:https://vdn6.vzuu.com/HD/ccc32054-c9d6-11ea-b9f0-e2dc6f6d1025.mp4?pkey=AAUWuR1o3A8lgB0RcqEXx4Ik8rcEdSMSnt_c6MmISNNK-PVw8G1Omiwg_QFikNCHhTxQ1J4qYtfPXToX3L4fOg1k&c=avc.0.0&f=mp4
目录 1 四足机器人开源项目回顾 自从Mini Cheetah开源后似乎我们所能触及的国内大部分四足机器人都是基于该方案优化改进而来,而这两年MIT原生项目更是没有啥新的重大更新。近年来针对其中的MPC和WBC部分已经有了有很多优秀的论文和改进,例如前段时间硕博完成的开源四足机器人项目,其基于Gazebo以宇树A1机器人为被控对象,开发了一个完整工程框架。基于
目前我的机器人基于虚拟模型的控制框架已经逐渐完善,在典型复杂地形上的运动控制已经有了不错的效果,并且仿真与实物样机同步性也不错. https://video.zhihu.com/video/1504472693869608960?player=%7B%22autoplay%22%3Afalse%2C%22shouldShowPageFullScreenButton%22%3Atrue%7D
5. 结构设计 5.1 单腿部组件 Spot单腿重量为4.2kg,包括3个电机和2套减速器,丝杠传动,外壳等: 为了降低重量,腿部采用大量玻璃纤维填充树脂,侧展电机可以实现对整腿的安装: Spot的侧展和大腿采用了50:1减速比传动,膝关节则由布置与大腿顶部电机通过丝杠进行减速传动,相比目前国内比较常用的行星减速方案,Spot这样的传动方式更加直接,可以看到Ghost的Vision
1介绍 众所周知四足机器人的仿真对开发算法是非常重要的,由于四足机器人即包含支撑力伺服控制,规划控制,如何确认规划的结果是符合预期的是十分关键的,特别是当涉及到落足点规划或高程图显示时,如何没有合适的可视化接口,那是没法快速验证算法的正确性的。以MIT Cheetha的仿真为例其提供了OpenGL下良好的可视化接口,使用其能快速实现高程图显示: MIT 仿真下的可视化与窗口 对于
Spot的内部构造 首先感谢徐博士的翻译,Spot机器人基本参数如下: 可以看到上表中列出了Spot的主要参数,从上述参数可以大致分析数机器人的设计思路和所面向的应用场景,首先Spot采用了快拆式的电池设计,电池电源为58.8V与国内常规中型四足机器人的电压标准步态一样,整机续航时间也就1.5个小时 类似Vision60 Spot在四个大腿上方布置了带子方便搬运,Vision60
为纪念我的专栏第100篇内容,发布Corgi-Sim原创四足机器人仿真项目,欢迎大家基于该项目开发有趣的算法与SLAM应用! 足式仿生机器人 DIY手帐www.zhihu.com/column/c_1090923972006240256 1 项目介绍 目前四足机器人已经是国内外重要的研究热点,四足机器人的控制、状态估计算法通过仿真能快速的进行验证,目前常用的四足机器人仿真环境有MIT
3. 控制能力 Spot采用了标准化的单腿模组,在维护拆卸时可以实现整腿的装配,其中与Mini Cheetha的最大区别是膝关节采用了线性驱动器采用旋转轴推拉连杆。 3.1 步行控制 Spot主要运动控制模式包括站立,Trot,Jog和翻身,站立模式下Spot可以实现大角度的Yaw轴的机身扭动,柔顺的俯仰和横滚调节,在Trot模式下小跑能满足大部分地形越障需求,而Jog小跑模式下还可以实
对于四足机器人来说相比自动驾驶所需的全局导航,由于其需要主动选择落足点,因此对于局部高程图来说更加关心,要获取局部高程图可以采用视觉或雷达来进行采集,由于上述传感器都存在自己的问题,特别是如果采用低成本传感器后深度数据的噪声、死区、雷达点云稀疏等问题都会造成高程地图出现缺口或不正常的起伏,因此目前更稳定的方案是二者进行融合,可以查到的方案是由雷达提供长期可靠的里程计信息,采用深度视觉获取局部深度来
2 Spot的软件开发 2.1 Spot的运行模式 Spotmini采用Wifi和网络与载荷和外部设备通讯,其提供了完善的API来实现二次开发,采用gRPC框架实现通讯。在Github上Spotmini主要提供的二次开发方案为python语言,另外也提供C++等多种语言的开发接口。 下面我们分析一下Spotmini 面向行业应用到底为用户如何提供SDK和二次开发接口的支持,下图展示了Sp
1 四足机器人感知方案: 四足机器人强烈依赖感知来实现高性能的越障,对于四足机器人盲目爬行(Blind Walk)步态来说其是四足机器人最基本的要求,即在摆动高度固定、满足运动空间约束的条件下,四足机器人通过灵敏的着地判断与伺服力柔顺控制就能实现通过障碍地形,这部分以Spotmini和Vision60在盲爬下就能实现可靠稳定的上下台阶,该部分主要依赖可靠的力觉着地判断和可靠的MPC控制,但我
目前四足机器人低成本高算力的主控有很多方案,主流是参考MIT的原始设计选用Upboard或者为了更快的MPC选用Upboard2,当然你也可以重新移植Spine或者采用其他伺服驱动方案这样就可以采用其他的x86平台,对于ARM平台通过对原始MPC等依赖库的重新编译MIT的代码也可以适用于如AGX、NX或者RK3399等ARM平台,当然我之前已经测试了树莓派和Odroid C4的平台,并构建了需要的
本系列主要材料来自于之前日本一个Spot用户出版的《Spot全面拆解一书》,原书为日文版后由舵狗之家Doghome众筹,B站西红柿君(徐博士)组织进行翻译,本系列将随着概述的各个章节进行叙述,但并不会完全复制其原文,而是结合个人对四足机器人设计和行业应用的感悟进行分析品味,希望该系列为相关四足机器人从业人员提供一点帮助,为中国未来高性能四足机器人的设计提供宝贵的资料! 由于个人学识和领域限制如文
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 微博 微信