前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >七自由度冗余机械臂梯度投影逆运动学

七自由度冗余机械臂梯度投影逆运动学

原创
作者头像
ZC_Robot机器人技术
发布于 2020-10-28 15:55:17
发布于 2020-10-28 15:55:17
6.9K0
举报

冗余机械臂的微分逆运动学一般可以增加额外的优化任务。 最常用的是梯度投影算法 GPM (Gradient Project Method),文献 [1] 中第一次将梯度投影法应用于关节极限位置限位中。 该算法中设计基于关节极限位置的优化指标, 并在主任务的零空间中完成任务优化。 此种思想也用于机械臂的奇异等指标优化中。 Colome 等 对比分析了速度级微分逆向运动学中的关节极限位置指标优化问题, 但是其研究中的算法存在一定的累计误差, 因而系统的收敛性和算法的计算稳定性难以得到保证。 其他学者综合多种机器人逆向运动学方法, 衍生出二次计算方法、 梯度最小二乘以及模糊逻辑加权最小范数方法等算法。Flacco 等 针对七自 由度机械臂提出一种新的零空间任务饱和迭代算法, 当机械臂到达关节限位时, 关节空间利用主任务的冗余度进行构型调整, 从而使得机械臂回避极限位置。 近年来, 关于关节极限回避情况下的冗余机械臂运动规划成为了很多学者的研究方向, 相应的改进 策 略 也 很 多.

冗余自由度机械臂的运动学分析的难点在于其逆运动学具有多解性, 即对应于同一末端(任务空间) 位姿, 其关节位置序列有无穷多个, 也即对应的机械臂空间构型有无穷多个。 同时, 也正是由于冗余自由度机械臂的这种特性使其具有更好的灵活性, 在避障、 避奇异、 避关节超限和优化性能指标等方面具有天然的优势。

自由度空间机械臂具有完整的笛卡尔位姿控制能力。笛卡尔空间某一位姿,6 自由度非冗余机械臂仅具有有限组关节角度以及构型与之对应。所以对于已经非冗余机械臂的控制,其运动控制是唯一确定的。与6 自由度非冗余机械臂相比,冗余机械臂可以利用冗余自由度进行运动学与动力学优化,从而达到更好的关节运动限制,避奇异,避障和优化关节驱动力矩等。

冗余机械臂
冗余机械臂

对于冗余机械臂,对应于相同的末端位置和姿态,机械臂存在无数种构型。所以当末端位姿确定时,其关节仍运动的现象叫做机械臂的“自运动”,这是冗余机械臂在实际运动过程中与非冗余机械臂最大的区别,也是冗余机械臂冗余度的具体体现

1 系统建模

机械臂采用“3-1-3” 构型, 共有 7 个自由度, 且各自由度均为旋转自由度。忽略关节的柔性效应, 将机械臂视为刚体, 采用修正的 D-H 方法建模。 建立的 D-H 坐标系如图,其中,l_0=l_8=700;l_1=l_2=l_6=l_7=430;l_4=387;(mm)

机械臂DH
机械臂DH
机械臂DH表格
机械臂DH表格

此时,坐标系o_{i-1}x_{i-1}y_{i-1}z_{i-1}o_ix_iy_iz_i 的齐次变换矩阵为

齐次变换矩阵
齐次变换矩阵

在不同的构型下, 其各关节连杆长度a_{i-1}连杆转角\alpha_{i-1}和连杆偏距d_i均是定值。

T矩阵
T矩阵

机械臂末端坐标系相对于基座坐标系的齐次变换矩阵为

齐次变化矩阵乘法
齐次变化矩阵乘法

冗余自由度机械臂的正运动学方程可用下式描述:

p=f(q)

机械臂的运动学求解,一般从其速度层面进行分析。 将上式对时间求导可得

\dot p= J \dot q

用雅可比矩阵可以建立起机械臂末端运动速度与各关节速度之间的关系,以及末端与外界接触力和对应各关节力矩之间的关系, 因此雅可比矩阵在机械臂的运动学和动力学分析中占有重要地位。 为方便求解, 本文采用矢量积方法计算七自由度冗余空间机械臂的雅可比矩阵。 矢量积方法求取雅可比矩阵的过程是逐列分别计算, 然后由所有列组成机械臂的m-n雅可比矩阵。

如果关节 i 为移动关节, 则雅可比矩阵的第 i 列为

J_i=\begin{bmatrix}Z_i \\ 0\\ \end{bmatrix}

如果关节 i 为转动关节, 则雅可比矩阵的第 i 列为:

J_i=\begin{bmatrix}Z_i \times ^ip^0_n \\ Z_i\\ \end{bmatrix}

由以上可求得机械臂的雅可比矩阵:

J=\begin{bmatrix}J_1 ,J_2.....J_n\\ \end{bmatrix}

2 奇异鲁棒逆解与梯度投影法

机械臂的逆运动学分析是指: 已知任务空间速度向量求解关节空间速度向量, 对于非冗余自由度机械臂, 一般可用其雅可比

矩阵的逆矩阵求解:

\dot q=J^{-1}\dot p

对于冗余自由度机械臂, 由于其雅可比矩阵是一个长方阵, 无法计算它的逆,此时用其伪逆表示

\dot q=J^{+}\dot p

针对某一具体构型的机械臂,上式可以视为一般的线性方程组求解问题, 在雅可比矩阵行满秩的条件下, 其通解为

\dot q=J^{+}\dot p+(I-J^{+1}J)\dot q_0

前项即为伪逆解, 后项中q_0 为关节空间的任一速度矢量, 正是通过调节q_0可实现冗余自由度机械臂的性能指标优化。 采用这种方法进行机械臂的逆运动学求解称为伪逆法, 亦称为最小范数法, 因为其满足以下关系:

\begin{cases} min\left\|\dot q\right\| \\[5ex] subject -to: \left\|\dot p-J\dot q\right\| \end{cases}

通过对伪逆J^+进行奇异值分解可知:

J^+=U^TD^+V

D^+ (R^{n \times m}) 是由雅可比矩阵的伪逆J^+ 的奇异值组成的对角矩阵。 且满足:

D^+(i,i)= \begin{cases} \cfrac {1}{\sigma_{m+1-i}}, & \sigma_{m+1-i} \ne 0 \\[5ex] 0, & \sigma_{m+1-i} = 0 \end{cases}

最小奇异值常用于表示当前时刻机械臂构型的奇异程度.

可得由雅可比伪逆法求得的关节速度范数:

\left\|\dot q\right\| =\sqrt{\sum^m_i \cfrac {\gamma^2_i}{\sigma^2_i}}

采用伪逆法求解机械臂的逆运动学, 当机械臂接近奇异位型时, 求解获得的机械臂关节速度急剧变大, 即实际上获得的逆运动学解并不可行. 当采用伪逆法求解机械臂的逆运动学时, 之所以产生关节速度急剧变大的情况, 是因为以保证末端跟踪精度为前提条件, 也就是保证了末端跟踪误差最小的优先级总是高于关节速度最小的优先级。 但事实上, 完全可以以牺牲部分末端跟踪精度为代价使得机械臂在奇异位型附近的关节速度不至于过大。采用这一思路进行机械臂的逆运动学求解即为阻尼最小二乘法.

阻尼最小二乘法求解的目标问题是:

\begin{cases} min\left\|\dot q\right\| \\[5ex] subject -to: \left\|\dot p-J\dot q\right\|+\lambda^2 \left\|\dot q\right\|^2 \end{cases}

由此可以得到奇异鲁棒通解:

\dot q= J^*\dot p+(I-J^*J)\dot q_0

其中,J^*=R^{nm},J^*=J^T(JJ^T+I)^{-1} 称为雅可比矩阵的奇异鲁棒性逆.

同样对奇异鲁棒性逆 J^*进行奇异值分解, 可得由阻尼最小二乘法求得的关节速度范数:

\left\|\dot q\right\| =\sqrt{\sum^n_i \cfrac {\lambda^2\gamma^2_i}{(\lambda^2+\sigma^2_i)}}

由上式可知, 由于阻尼系数的存在, 即使机械臂的雅可比矩阵的最小奇异值\sigma_m 很小, 只要\lambda 取合适的值, 也可以使机械臂的关节速度不会过大。

根据式可求得采用阻尼最小二乘法时的末端跟踪误差为:

\left\|\dot p-J\dot q\right\| =\sqrt{\sum^r_{i=1} \cfrac {\lambda^2\gamma^2_i}{(\lambda^2+\sigma^2_i)}+\sum^m_{i=r+1}\gamma^2_i}

为了降低机械臂的末端跟踪误差, 引入变阻尼系数, 以雅可比矩阵的最小奇异\sigma_m 来度量机械臂接近奇异位型的程度:

\lambda^2= \begin{cases} \lambda^2_0(1-\cfrac {\sigma_m}{\sigma_0}), & {\sigma_m<\sigma_0} \\[5ex] 0, & {\sigma_m \geq \sigma_0} \end{cases}

采用阻尼最小二乘法实现了机械臂在奇异位型区间内逆运动学解的可行性,但并未发挥出冗余自由度在性能指标优化方面的优势。

采用梯度投影法, 通过对关节空间速度矢量q_0取不同的值可实现性能指标的优化, 设要优化的性能指标H(q) 则取关节空间速度矢量q_0

\dot q_0=K\nabla H(q)

结合阻尼最小二乘法和梯度投影法各自优点

\dot q=J^*\dot p+K(I-J^*J)\nabla H(q)

前项即为奇异鲁棒性逆解, 后项为性能优化指标的梯度H(q)在零空间的投影。 同样, 以雅可比矩阵的最小奇异值 \sigma_m表示当前时刻机械臂构型的奇异程度, 可以采用变优化系数

K= \begin{cases} 0, & {0\leq\sigma_m<\sigma_0} \\[5ex] k_m[sin(\pi\sigma/\sigma_0)+\pi/2+1]/2, & {\sigma_0 \leq \sigma_m <2\sigma_0}\\[5ex] k_m, & {\sigma_m \geq 2\sigma_0} \end{cases}

H(q)取为避关节极限指标, 当进行轨迹优化时, 避关节极限指标越小越好:

H(q)=\sum^n_{i=1} \cfrac{1}{n}\cfrac{(q_{imax}-q_{imin})^2}{(q_{imax}-q_{i})(q_{i}-q_{imin})}

则其梯度向量可表示为

\nabla H(q)=[\frac{\partial H}{\partial q_1},\frac{\partial H}{\partial q_2},......,\frac{\partial H}{\partial q_n}]^T

其中:

\cfrac {\partial {H}}{\partial q_{i}}= \cfrac{1}{n}\cfrac{(q_{imax}-q_{imin})^2(2q_i-q_{imax}-q_{imin})}{(q_{imax}-q_{i})^2(q_{i}-q_{imin})^2}

3 总结

本文给出的基于奇异鲁棒逆和梯度投影法的结合是最符合大部分机器人运动控制算法的。也是实际工程中应用最多的速度级别的逆向运动学。奇异鲁棒逆保证了机器人在奇异构型下仍能很好的进行机器人的运动控制,梯度投影主要是针对冗余机器人的运动控制算法,其可以充分利用机器人的冗余度实现特定目标的优化。


Maciejewski A A, Klein C A. Obstacle avoidance for kinematically redundant manipulators in dynamically varying nvironments[J]. The international journal of robotics research, 1985, 4(3): 109-117.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
301被墙域名跳转@azhi2023
301被墙域名跳转@azhi2023
回复回复点赞举报
推荐阅读
容器网络硬核技术内幕 (4) 命运共同体
上一节我们讲到,同一宿主机内部的容器可以通过docker0作为网桥互通,而宿主机之间的容器,可以通过VXLAN的方式互通。
用户8289326
2022/07/27
2650
容器网络硬核技术内幕 (4) 命运共同体
容器网络硬核技术内幕 (2) 容器
上回说到,虽然虚拟化技术大大提升了计算机硬件资源的利用率,也让业务部署变得更加灵活,但由于虚拟化技术的部分限制,在虚拟机上运行RDMA等ICT关键业务加速特性几乎成了不可能的,或者要付出极大的代价。
用户8289326
2022/07/27
3230
容器网络硬核技术内幕 (2) 容器
容器网络硬核技术内幕 (12) 美丽的法兰绒 (上)
但是,实际上,大家不知道的是,法兰绒因其制作工艺,以及紧致柔软的特点,也得到了很多姑娘们的青睐。
用户8289326
2022/07/28
3950
容器网络硬核技术内幕 (12) 美丽的法兰绒 (上)
容器网络硬核技术内幕 (6) 天堑变通途
上回说到,docker自带的网桥br0,在跨宿主机通讯时,默认充当了VXLAN的VTEP,因此,会造成较大的互通开销。
用户8289326
2022/07/27
6960
容器网络硬核技术内幕 (6) 天堑变通途
腾讯云私有化容器平台之网络
刚开始接触容器集群的人会发现,与在单节点上使用容器相比,容器集群一个很复杂的领域就是网络。Kubernetes 作为容器编排领域的事实标准,对容器集群的网络进行了合理抽象,并开放了容器网络标准 CNI,供各公司根据自身应用场景和底层基础设施选用开源方案或者自行实现一套网络插件。本文主要介绍腾讯云容器平台针对私有化不同场景的一些网络方案实践。
腾讯云原生
2020/02/14
9.1K0
解密Docker容器网络
一个Linux容器能看见的“网络栈”,被隔离在它自己的Network Namespace中。
JavaEdge
2023/07/09
3740
解密Docker容器网络
Docker单机网络模型动手实验
容器的本质就是一个进程,只不过对它进行了Linux Namesapce隔离,让它看不到外面的世界,用Cgroups限制了它能使用的资源,同时利用系统调用pivot_root或chroot切换了进程的根目录,把容器镜像挂载为根文件系统rootfs。rootfs中不仅有要运行的应用程序,还包含了应用的所有依赖库,以及操作系统的目录和文件。rootfs打包了应用运行的完整环境,这样就保证了在开发、测试、线上等多个场景的一致性。
mazhen
2023/11/24
3040
Docker单机网络模型动手实验
深入解析容器网络
在使用kubernetes之前, 最为火热的技术就是Docker技术了。 它完成了从虚拟机时代的过度,是走向云原生时代的开端。 但是由于docker的故步自封导致被google的开源的kubernetes后来居上, 现在的Docker虽然在积极改进, 但是主流大势已经被kubernetes掌握, 所以也只能起到助力作用。 回归正题, 在kubernetes的服务发现, 服务网格等技术火热之前, 是怎么来实现容器之间的通信呢 ?本文我们就来探讨一下。
用户11097514
2024/08/05
1900
深入解析容器网络
K8s网络模型
容器不是模拟一个完整的操作系统,而是对进程进行隔离,对容器里的进程来说它接触到的各种资源都是独享的,比虚拟机启动快、占用资源少。
冬夜先生
2021/09/02
1.9K0
Docker 跨主机网络方案分析
上篇文章介绍了容器网络的单主机网络,本文将进一步介绍多主机网络,也就是跨主机的网络。总结下来,多主机网络解决方案包括但不限于以下几种:overlay、macvlan、flannel、weave、cacico 等,下面将分别一一介绍这几种网络, PS:本文仅从原理上对几种网络进行简单的对比总结,不涉及太多的细节。 overlay 俗称隧道网络,它是基于 VxLAN 协议来将二层数据包封装到 UDP 中进行传输的,目的是扩展二层网段,因为 VLAN 使用 12bit 标记 VLAN ID,最多支持 4094 个
Linux云计算网络
2018/05/28
2.5K0
一文读懂 Kubernetes 容器网络
在Kubernetes中要保证容器之间网络互通,网络至关重要。而Kubernetes本身并没有自己实现容器网络,而是通过插件化的方式自由接入进来。在容器网络接入进来需要满足如下基本原则:
iMike
2021/02/07
6790
Docker 之容器间通信配置
当你开始大规模使用Docker时,你会发现需要了解很多关于网络的知识。Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理。然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分。因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求。
小手冰凉
2020/08/05
5.3K0
Kubernetes网络模型
在Kubernetes中设计了一种网络模型,要求无论容器运行在集群中的哪个节点,所有容器都能通过一个扁平的网络平面进行通信,即在同一IP网络中。需要注意的是:在K8S集群中,IP地址分配是以Pod对象为单位,而非容器,同一Pod内的所有容器共享同一网络名称空间。
mikelLam
2022/10/31
1.2K0
Kubernetes网络模型
docker浅入深出4
带着我们就这些问题,我们来学习一下docker的网络模型,最后我会通过抓包的方式,给大家演示一下数据包在容器和宿主机之间的转换过程。
萧晚歌
2020/09/04
9750
docker浅入深出4
Docker核心技术之网络管理
容器中可以运行一些网络应用(如nginx、web应用、数据库等),如果要让外部也可以访问这些容器内运行的网络应用,那么就需要配置网络来实现。
Lansonli
2021/10/09
5130
容器网络硬核技术内幕 (5) 为人民服务重于泰山
在上一期中,我们实现了Docker通过swarm组建的Overlay网络,经过VXLAN封装,解决了docker跨宿主机互联互通的问题。
用户8289326
2022/07/27
2410
容器网络硬核技术内幕 (5) 为人民服务重于泰山
Docker | Docker技术基础梳理(五) - Docker网络管理
容器的网络默认与宿主机、与其他容器相互隔离,且容器中可以运行一些网络应用,比如nginx、web应用、数据库等,如果需要让外部也可以访问这些容器中运行的网络应用,那么就需要配置网络来实现。
咸鱼学Python
2019/10/09
8240
容器网络简介
在容器内,可以看见的“网络栈”其实就是隔离在该容器内 Network Namespace 当中的,其中就包括了网卡(Network Interface)、回环设备(Loopback Device)、路由表(Routing Table)和iptables 规则。这些要素,就构成了网络请求的基本环境。
周萝卜
2020/06/29
7570
容器网络硬核技术内幕 (11) 西直门桥的传说
上回我们说到,bridge插件在kubernetes的node之间,为pod的互联互通架起了简单直接的一座大桥,像南京长江大桥一样实现了天堑变通途。
用户8289326
2022/07/28
4580
容器网络硬核技术内幕 (11) 西直门桥的传说
Docker 容器虚拟化
Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。
Alone-林
2022/08/23
7640
Docker 容器虚拟化
相关推荐
容器网络硬核技术内幕 (4) 命运共同体
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档