SpotMini末端控制策略
相信很多人都注意到了“机器人学家”两天前推送的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末端控制策略的更多相关文章
- SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究
catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...
- **RESTful API版本控制策略
做RESTful开放平台,一方面其API变动越少, 对API调用者越有利:另一方面,没有人可以预测未来,系统在发展的过程中,不可避免的需要添加新的资源,或者修改现有资源.因此,改动升级必不可少,但是, ...
- Trusted Execution Technology (TXT) --- 启动控制策略(LCP)篇
版权声明:本文为博主原创文章,未经博主允许不得转载.http://www.cnblogs.com/tsec/p/8428631.html 在TXT平台中,启动控制策略(Launch Control P ...
- 监听RecyclerView滑动到末端
监听RecyclerView滑动到末端 效果图 实现 1. 添加滑动到末端的接口 package com.kongqw.recyclerviewdemo; /** * Created by kongq ...
- 08-OpenLDAP主机控制策略
OpenLDAP主机控制策略 阅读视图 参考 环境准备 openldap服务端配置 openldap客户端配置 客户端测试登录 故障处理 1. 参考 本文基本转载博客openldap主机访问控制(基于 ...
- flask路由末端带斜线和不带斜线的区别
路由末端带有“/” app.route('/test/') 在浏览器中输入http://127.0.0.1:5000/test/ 和http://127.0.0.1:5000/test都能访问 路由末 ...
- 9.11排序与查找(一)——给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B。将B合并入A并排序
/** * 功能:给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B.将B合并入A并排序. */ /** * 问题:假设将元素插入数组A的前端,就必须将原有的元素向后移动,以腾出空间. ...
- Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究
1. 访问控制基本概念 访问控制是网络安全防范和客户端安全防御的重要基础策略,它的主要任务是保证资源不被非法使用.保证网络/客户端安全最重要的核心策略之一. 访问控制包括 入网访问控制 网络权限控制 ...
- java 字符串 大小写转换 、去掉首末端空格 、根据索引切割字符 、判断是否含有某连续字符串
1. 字符串转大写: toUpperCase() 字符串转小写: toLowerCase() @Test public void tt(){ String d = "sdgGHJGjghGH ...
随机推荐
- IOS 解析XML文档
前段时间想找点事做,就是试着看能不能用豆瓣的API做点什么,于是就碰到了这个问题——XML解析. 老师还没讲,只能自己去查. XML文档解析主要有SAX和DOM两种模式,IOS上两种模式都可以用,这里 ...
- selenium太有爱,我已离不开!!!
自动化测试,超有用. PROXY,PLUGIN,PROFILE,WINDOWS HANDLE个个搞定!!! from selenium import webdriver from selenium.c ...
- poj3164 (朱刘算法 最小树形图)
题目大意:给定n个点坐标,m条有向边,要求最小树形图. 题解:直接上模板,前面打的 vis[v]=i一直把i打成1,一直TLE. #include<iostream> #include&l ...
- WPF:如何实现单实例的应用程序(Single Instance)
原文:WPF:如何实现单实例的应用程序(Single Instance) 好吧,这是我将WPF与Windows Forms进行比较的系列文章的第四篇,讨论一下如何实现单实例(single instan ...
- c#发送邮件样例
1.通过gmail邮箱发送邮件 try { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient(& ...
- ORTP库API使用入门
一.简介 ORTP是一个支持RTP以及RFC3550协议的库,有如下的特性: (1)使用C语言编写,可以工作于windows, Linux, 以及 Unix平台 (2)实现了RFC3550协议,提供简 ...
- 快速理解RequireJs
原文地址:http://www.tuicool.com/articles/jam2Anv RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可 ...
- <php>PDO链接方法
<?php //定义数据源 $dsn = "mysql:dbname=mydb;host=localhost"; //$dsn = "sqlsrv:dbname=m ...
- Android 按二次后退键退出应用程序
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- Win32多线程编程(2) — 线程控制
Win32线程控制只有是围绕线程这一内核对象的创建.挂起.恢复.终结以及通信等操作,这些操作都依赖于Win32操作系统提供的一组API和具体编译器的C运行时库函数.本篇围绕这些操作接口介绍在Windo ...