相信很多人都注意到了“机器人学家”两天前推送的Boston Dynamics新机器人Spot-Mini。除了一如既往独领风骚的步态控制外,这次BD还给机器人增加了一个机械臂。视频中的一幕挺有趣,就是Spot-Mini全身都在摆动,但机械臂末端基本保持稳定。

matlab做的GIF好棒,都找不到循环点

  使机器人消除底座运动影响,并保持机械臂末端相对于环境稳定(维持期望运动状态),是移动机械臂领域的关键技术之一。那么BD是如何做到这一点的呢?

  先把BD放一边,在移动机器人领域,一般有两种方法来保持机械臂末端稳定:基于误差的控制、基于模型的控制(视频在文末)。

  其中,两种方法都需要用到雅克比,或者叫做微分运动学(n为机械臂自由度):

  利用雅克比矩阵,可以将每个关节的速度换算成机械臂末端速度(反之亦然)。

  1. 基于误差的控制

  基于误差的控制是将机械臂与移动底座分开考虑,只关注机械臂末端与预期运动状态的误差。通过传感器(加速度计、视觉等)可以实时测量得到机械臂末端的误差,之后利用雅克比(伪)逆转换成机械臂各关节运动状态,从而使得机械臂往误差减小的方向运动(接近期望运动轨迹)。

  由于手头没有合适的移动机械臂平台,这里我用上面这个平台代替:认为整个地球+Baxter左臂是移动机械臂,而小车是环境(world)。当小车被拉动时,从小车上看,可以认为是移动机械臂的底座发生了移动(等效于下面这个模型)。

  在这里,我利用摄像机识别小车上二维码的位置,并利用如下控制方法确保机械臂末端与二维码相对位置不变,及机械臂在world坐标系下保持稳定。

  演示视频见最后(由于摄像机帧率为20Hz,所以控制效果可以看出较明显延时)。

  【note】欧拉角表示姿态时,角速度用如下公式计算:

  这个方法的优点是不管什么样的底座均可以使用相同的方法进行控制,而缺点就是对传感器精度、实时性要求高,机械臂也容易出现奇异、超出工作空间等问题。

  2. 基于模型的控制

  基于模型的控制是通过建立整个移动机械臂模型,通过系统冗余性计算控制指令。

  当机器人的自由度大于6的时候,便会呈现一定的冗余特性,换句话说,机器人末端的某一动作,可以通过无数种关节运动方式获得。国内做控制的人喜欢将这个特性称为机器人的自运动,但是我个人更喜欢用线性空间的概念(雅克比零空间)。简而言之,如果知道机器人的完整模型,就能利用零空间实现所有关节都运动而末端不动。

  后面的视频中,我会用7自由度的Motoman SDA5F左臂来演示这个方法:假设第一个旋转关节是移动底座,后面六个关节是固定在底座上的机械臂。当然,与我在视频中使用的例子不同,移动底座的运动状态往往与下发的控制指令有较大偏差(与地面打滑等),所以,必须增加底座运动状态估计(卡尔曼滤波)模块,利用估计的运动状态作为整个机器人模型前几个广义坐标数值。这个方法的优点是拥有整个机器人的模型,可以实现一些二级任务(保证末端任务的前提下,完成其他优化任务),同时更容易避免机械臂超出工作空间等情况;但是缺点就是底座的运动状态难以准备获得。

  3. BD是怎么做的

  我没找到他们的论文,所以只能靠猜了。通过仔细观看高清视频,SpotMini底部运动时,机械臂末端会发生(较高频率)抖动,这种感觉非常类似于PID控制时P增益稍微太大的情况;另一方面,BD底座的控制应该是力矩控制,无法保证高精度的位置,采用基于误差的控制可以大大降低建模和控制的复杂度。所以,我猜是采用基于误差的控制方式。

  4. 我的视频

  我的视频在这里看:

SpotMini末端控制策略的更多相关文章

  1. SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究

    catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...

  2. **RESTful API版本控制策略

    做RESTful开放平台,一方面其API变动越少, 对API调用者越有利:另一方面,没有人可以预测未来,系统在发展的过程中,不可避免的需要添加新的资源,或者修改现有资源.因此,改动升级必不可少,但是, ...

  3. Trusted Execution Technology (TXT) --- 启动控制策略(LCP)篇

    版权声明:本文为博主原创文章,未经博主允许不得转载.http://www.cnblogs.com/tsec/p/8428631.html 在TXT平台中,启动控制策略(Launch Control P ...

  4. 监听RecyclerView滑动到末端

    监听RecyclerView滑动到末端 效果图 实现 1. 添加滑动到末端的接口 package com.kongqw.recyclerviewdemo; /** * Created by kongq ...

  5. 08-OpenLDAP主机控制策略

    OpenLDAP主机控制策略 阅读视图 参考 环境准备 openldap服务端配置 openldap客户端配置 客户端测试登录 故障处理 1. 参考 本文基本转载博客openldap主机访问控制(基于 ...

  6. flask路由末端带斜线和不带斜线的区别

    路由末端带有“/” app.route('/test/') 在浏览器中输入http://127.0.0.1:5000/test/ 和http://127.0.0.1:5000/test都能访问 路由末 ...

  7. 9.11排序与查找(一)——给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B。将B合并入A并排序

    /**  * 功能:给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B.将B合并入A并排序. */ /** * 问题:假设将元素插入数组A的前端,就必须将原有的元素向后移动,以腾出空间. ...

  8. Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究

    1. 访问控制基本概念 访问控制是网络安全防范和客户端安全防御的重要基础策略,它的主要任务是保证资源不被非法使用.保证网络/客户端安全最重要的核心策略之一. 访问控制包括 入网访问控制 网络权限控制 ...

  9. java 字符串 大小写转换 、去掉首末端空格 、根据索引切割字符 、判断是否含有某连续字符串

    1. 字符串转大写: toUpperCase() 字符串转小写: toLowerCase() @Test public void tt(){ String d = "sdgGHJGjghGH ...

随机推荐

  1. AngularJS自定义表单验证器

    <!doctype html> <html ng-app="myApp"> <head> <script src="G:\\So ...

  2. “express不是内部或外部命令”解决办法

    由于安装的Express是最新版本4.13.1,4.x版本就需要安装express-generator.命令如下:npm install -g express-generator ps: 1.卸载: ...

  3. 关于popupwindow的两种实现方式

    http://104zz.iteye.com/blog/1685389 android PopupWindow实现从底部弹出或滑出选择菜单或窗口 本实例弹出窗口主要是继承PopupWindow类来实现 ...

  4. windows下重命名一个带有前缀"."dot字符的名字的错误问题

    如果用正常的右键重命名那么肯定会报错的,比如: 有一个名为project的文件,我想把它命名为.project,加了个前缀dot.然后window就报错了,弹出个对话框让“你必须输入一个文件名”.它可 ...

  5. ImageMagick提取图像原始数据(ImageData/RawData)

    我用的是ImageMagickWand的接口,因为这接口比Core接口更上层,所以官方文档推荐用. 抽取整个图像文件字节数据: http://www.imagemagick.org/discourse ...

  6. 2015第19周四jquery版本

    今天用到一个jquery插件,发现最新版需要jquery2.0以上版本才行,而目前项目在用的版本是1.8.3,自然无法使用,刚看了jquery的主要版本和差异,直接百度搜索无满意结果,最后在百科中给出 ...

  7. Asp.Net 构架(Http Handler 介绍) - Part.2

    原文地址:http://www.cnblogs.com/JimmyZhang/archive/2007/09/15/894124.html 引言 在 Part.1 Http请求处理流程 一文中,我们了 ...

  8. (Stack)Basic Calculator I && II

    Basic Calculator I Implement a basic calculator to evaluate a simple expression string. The expressi ...

  9. 关于初学者上传文件到github的方法

    转:http://blog.csdn.net/steven6977/article/details/10567719 说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传 ...

  10. tool - 支持TestLink 1.93,将excel格式用例转化成可以导入的xml格式

     tool - 支持TestLink 1.93,将excel格式用例转化成可以导入的xml格式  https://github.com/zhangzheyuk/CaseConvert