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

履带机器人运动控制器c++_PAL Robotics借助磁编码器技术实现机器人运动平衡

此案例介绍了PAL Robotics研发的REEM-C全尺寸双足人型机器人 — 一款可在众多应用领域一展身手的通用型机器人。REEM-C可为包括航海、机器视觉、人-机器人交互、人工智能、抓握、行走和语音识别等的一系列应用提供全定制化基础的研发平台。

背景

想象一下:机器人伙伴辅助每个人完成工作,在机场帮助旅客搬运行李,甚至为老年人提供全方位的生活照料。这便是位于西班牙巴塞罗那的PAL Robotics SL公司希望创造的未来生活。这家创新型公司坐落在巴塞罗那老城区的核心位置,距离世界闻名的兰布拉大道步行街仅数步之遥。 PAL Robotics是机器人行业的领先者,在他们繁忙熙攘的办公区内,机器人的设计、编程和组装工作正在有条不紊地进行,工程师三三两两聚在一起,讨论着如何不断改进机器人的功能。

挑战

PAL Robotics首席技术官Luca Marchionni(左图)指出,最大的挑战之一是保持机器人行走时的平衡,而这一点对于人类而言似乎是理所当然的事情。

机器人的行走涉及双足与周围环境的接触,以及多种自由度下身体各个部分的并发配合运动。双足机器人的控制系统必须处理两个阶段之间的转换,即双足支撑(双足同时着地),及单足支撑(单足着地)。

由于机器人运动力学的非线性特点,因此很难通过单纯的程序法则来实现行走控制,而且通常也无法通过实时状态分析方法实现控制,因为其中的试错过程过于复杂。相反,业内普遍采用一种称为“轨迹优化”的数值方法,即预先规定机器人的“理想行走路径”,然后使用此数值方法计算最为接近此路径的最佳近似值;其中所谓“最佳”的标准则通过一个特定的代价函数来确定,此函数可兼顾机器人的理想行走路径和物理限制这两个条件。

人型机器人的关节设计有着严格的空间和重量限制,目的是尽可能减小机器人的体积和惯性。PAL Robotics制造的大部分机器人都与真人大小类似,并拥有多达40种的运动自由度。

解决方案

PAL Robotics制造的REEM-C和其他人型机器人均具有完全铰接式关节,能够根据任务要求完成一系列复杂的运动。要对各关节的扭矩、速度和位置进行伺服控制,需要用到高质量的编码器反馈数据。

在对PAL Robotics的各种业务需求和产品做了深入了解之后,雷尼绍提供了编码器选型建议。PAL Robotics最终选用了由雷尼绍的关联公司RLS生产的非接触式磁编码器,包括集成到膝部(左图)、腕部和肘部的AksIM™和Orbis™旋转编码器,以及元件级增量式RoLin™编码器。

df1277d3b9421b4cefb242cb9d34b4fe.png

为实现平衡控制,机器人的每只足底均装有一套反馈力测量系统,该系统可计算出零力矩点 (ZMP) — 用于评估REEM-C人型机器人稳定性的指标。测得的ZMP随后被传输到“模糊逻辑”PD控制器,用以追踪所需的ZMP,从而实现运动平衡并防止倾翻。PD控制器的目标是调整机器人的质心 (CoM) 位置,以便将ZMP保持在支撑区域内(即足底与地面的接触面内)。要成功实现双足动态行走,需要精确控制机器人腿部关节的角度(包括位置、速度和加速度等运动参数),这一切都离不开旋转编码器的精确反馈。

结果

平衡控制对于确保双足机器人稳定运动而言至关重要,借助编码器输出的数据,机器人的“大脑”可计算出当前的身体姿态,并不断向每个关节发出新指令(包括位置、速度和加速度等),用以保持运动平衡。

RLS磁编码器为PAL Robotics提供了灵活的位置反馈解决方案,能够满足在空间和性能方面的严苛要求。精心选择的RLS编码器功能强大,可令设计师尽情发挥创意与才能。通过调节作用于每个关节上的瞬时扭矩来确保机器人的四肢始终处于正确位置,以此实现平衡控制和稳定行走。高精度编码器可确保最大限度地减少控制信号误差,控制器因此能够快速调节机器人的身体位置,从而使ZMP始终保持在机器人的足部支撑区域内。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • css 背景图怎么设置自动填充满_几种常见的CSS布局,新手一定要学学
  • 关于存储过程的一些tips
  • python判断文件读取结束_python中readline判断文件读取结束的方法
  • Memory Notification: Library Cache Object loaded into SGA
  • 加密机工作原理_观健电解水机工作原理是什么 电解水机工作原理【介绍】
  • ORA-02064: 不支持分布式操作
  • 无监督学习与有监督学习的本质区别是什么_监督学习 vs 无监督学习
  • wxpython使用_python图形界面开发之wxPython树控件使用方法详解
  • 无线开发,你凭什么吸引VC?
  • python画玫瑰图_python之windrose风向玫瑰图的用法-Go语言中文社区
  • 61A与PC的RS232通信,接收以中断方式
  • python怎么除去列表l中所有是x的元素_清华毕业大佬整理的Python基础22大知识点,自备热水,这货有点干...
  • 拥有至高无上的特权 使用system账户
  • python爬取js_python如何爬取js生成的数据?
  • 深入理解数据库并发控制原理
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Angular 响应式表单之下拉框
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • exports和module.exports
  • Laravel 实践之路: 数据库迁移与数据填充
  • MySQL几个简单SQL的优化
  • python3 使用 asyncio 代替线程
  • quasar-framework cnodejs社区
  • React的组件模式
  • session共享问题解决方案
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 从重复到重用
  • 二维平面内的碰撞检测【一】
  • 讲清楚之javascript作用域
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 排序算法之--选择排序
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 思否第一天
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • ​学习一下,什么是预包装食品?​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $.ajax()方法详解
  • (JS基础)String 类型
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (蓝桥杯每日一题)love
  • (三分钟)速览传统边缘检测算子
  • (转)四层和七层负载均衡的区别
  • . Flume面试题
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net core Swagger 过滤部分Api
  • .net 程序发生了一个不可捕获的异常
  • .NET企业级应用架构设计系列之开场白
  • .NET学习全景图
  • //TODO 注释的作用