2.经典规划控制方法-深蓝学院

规划算法

关于规划算法可以参考我的博客
这里说明一下机械臂规划算法的特性以及规划算法的扩展
在这里插入图片描述
任务规划 - 路径规划 - 轨迹优化
过程:路径规划:笛卡尔空间通过IK求解得到关节空间(构型空间c-space),然后通过关节插值生成关节空间轨迹,关节空间通过FK(正运动学)可以得到笛卡尔空间。

其它路径规划算法

• Informed RRT*;BIT •知情RRT*;BIT• Informed RRT*;BIT •知情RRT*;BIT• Informed RRT*;BIT •知情RRT*;BIT• Informed RRT*;BIT •知情RRT*;BIT
• Anytime planner:Should return a valid solution “anytime” later than the initial solution•随时计划器:应该在初始解决方案之后“随时”返回有效的解决方案
• Lazy evaluation: •惰性评估:
• RRT with constraints:Kinematic RRT and Dynamic RRT•带约束的RRT:运动学RRT和动态RRT
• Geometric Method: Medial-Axis RRT:采样特定几何区域 。• Geometric Method: Medial-Axis RRT:采样特定几何区域 。
Learning for sampling-based planning: Neural RRT; MPNet基于抽样的规划学习:神经RRTMPNet

实践经验

  • 一般来说single-query(树结构算法)比较适合场景变换较快的环境,multi-query(图结构算法)适合静态场景;
  • 树结构算法可以和图结构算法配合,后者作为粗粒度,拓扑关系变换较小的信息,配合树结构算法使用,适合动静结合的场景

Trajectory Generation 轨迹生成

Y: 加入时间,更高维度的连续轨迹(导数)

Point to point trajectory点对点轨迹Point to point trajectory点对点轨迹Point to point trajectory点对点轨迹Point to point trajectory点对点轨迹
• Polynomial •多项式
在这里插入图片描述

• 梯形规划
在这里插入图片描述在这里插入图片描述
而对于多个途径点的规划可以使用Bazier曲线、B样条和多项式曲线

控制算法(以人体按摩为例)

在这里插入图片描述

Force control for massaging按摩力控制Force control for massaging按摩力控制
• 1. The robot is expected to touch human with a constant desired force•1。机器人被期望以恒定的期望力接触人•
• 2. The robot is expected to touch human with a xy trajectory and a time-variant force on z-axis•2。期望机器人以xy轨迹和z轴上的时变力与人接触
• The controller compute a position displacement u to move the robot up or down, then the system force changed accordingly•控制器计算位置位移u,使机器人上下移动,系统力随之变化

在这里插入图片描述
推荐视频教程:PID从理论到实践: https://www.bilibili.com/video/BV1B54y1V7hp

系统建模

Transfer function: 微分方程和laplace 变换,z变换Transfer function: 微分方程和laplace 变换,z变换
状态空间(state space) 状态空间(state space)

在这里插入图片描述

在这里插入图片描述

Block Diagram

在这里插入图片描述

PID

PD控制器

  • 增加damping ration,减少overshoot
  • 容易受噪声影响

PI

  • 增加系统的阶数,一般稳定性也会随之降低
  • 消除稳态误差

PID

使用关键
需要关注damping ratio,steady-state error
实践中
• 还要关注sensor noise, 适当滤波
• 积分项最好clip,防止非预期的误差累计
• 要注意硬件能力

在这里插入图片描述

  • 调参
    Ziegler–Nichols Tuning Rule Based on Step Response of Plant (First Method)

    Ziegler–Nichols Tuning Rule Based on Step Response of Plant (Second Method)
    在这里插入图片描述

控制系统分析

分析方法包括

  • 控制系统的Pole(分母为0)和zero(分子为0)
  • Characteristic Equation
  • Pole and root locus
    • 系统要求pole 在LHP
    • Root locus:通过图形化的方式展示了K从0变化到无穷大时,闭环控制系统极点在复平面上变化的路径

在这里插入图片描述

MPC控制器

可以参考博客
在这里插入图片描述

系统运行图例和优化问题构建和求解流程
在这里插入图片描述
推荐DR_CAN 的MPC视频

实现案例

  • 轨迹跟踪
  • 轨迹优化
    Problem setting: replay human demo trajectory, with object-centric and nonlinear mapping、
    Reference Trajectory w: recorded human motion data for end-effector
    Model: robot kinematic model with speed and workspace limit

Need to deal with speed and workspace constraints, as well as singularity (manipulability)
Predicted Trajectory: predicted state with robot model and constraints
Final output: optimized offline trajectory (end-effector) for robot

力控-导纳控制

T:通过期望力来调整位置
• 通过位置控制来实现追踪期望力

导纳控制是改变期望位置来顺应外力,外力往自己这边顶,那自己的期望位置就往后缩,最后还是尽可能到达改变后的期望位置,只不过这个期望位置相比最初是做了让步的,是位置环控制。

• M,D,K分别代表了惯性特性、阻尼特性和刚度特性
比如推门,需要
在这里插入图片描述
PD控制器
• 根据导纳模型计算𝑥 𝑑
• 通过PD控制追踪𝑥 𝑑

笛卡尔空间力控实现:
• 可以通过关节力矩传感器估计末端力
• 也可以通过末端力传感器实现(后者有一定成本,可靠性更高)

力控-阻抗控制

阻抗控制直接控制力矩来达到期望力

阻抗控制是期望位置不变,根据外力来改变自己的力,外力越大,自己输出的力就越小,最后就算没到期望位置也无所谓,反正自己的力小了,没有跟外力硬碰硬,是力环控制。
在这里插入图片描述

对比

阻抗vs导纳(一般来说):
• 阻抗响应和精度更好,导纳更加柔顺
• 阻抗控制输出力,导纳控制输出位置
• 一般来说,阻抗适合刚性环境,导纳适合柔性环境
• 两者都是基于质量-阻尼-弹簧的系统来实现位置和力的相对关系

操作与抓取的传统方法

历史
在这里插入图片描述

 从manipulation到grasping
• Grasping是manipulation的子集
• 目前很多研究都是基于静态场景的grasping
 Grasping:
•通过在一组接触点施加力和扭矩来抑制物体的运动

Challenge

被抓取的物体通常难以准确建模,因此接触模型往往存在许多假设。
抓取的末端准确位姿难以确定;
抓取的采样和优化是高维问题,求解不容易。

basic

contact

Point Contact
• Frictionless:只考虑法向力
• Friction:法向力和摩擦力

Friction cone: the vector space of all possible/admissible forces a point can
apply due to friction (w/o slipping)
在这里插入图片描述

  • Soft Contact or Patch Contact

wrench

  • 简单的说:force and torque
  • 对于第i个contact point,wrench表达为w_i (d_i是接触点到COM的向量)
  • Grasp Wrench Space:the set of all possible wrenches that can be applied to an object through admissible forces at k contact points

Evaluation

Patch Contact: cost function is just reward for all of the points in the point cloud, based on how aligned their normal is to the x-axis of the gripper ,
希望接触夹爪与接触点云的面法线对齐

在这里插入图片描述
x-y平面抓取,夹爪能够对齐(如图中抓取小刀的红色矩形) ,并且希望靠近中心,越靠近得分越高。
在这里插入图片描述

Force Closure

力封闭指这样一种状态,即如果一个物体因一组施加在物体表面的静态约束而不能发生任何位姿的改变,而这组静态约束完全由于机器人的手指施加在物体接触点处的力螺旋决定,那么就称这种状态为力封闭状态,同时称这组抓取为力封闭抓取。

if the composite wrench cone contains the entire wrench space,so that any external wrench w on the body can be balanced by contact forces 𝑓𝑖 .
处于力平衡的状态
在这里插入图片描述

Grasp Wrench Space
在这里插入图片描述

Grasp Wrench Hull

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这部分可以参考Fundamentals of Grasping和现代机器人学弟12章

Computing:
 计算每个contact point的力和力矩
 假设2D场景
 计算force cone,wrench space
 原点是否在内

Force closure quality measure example:
 radius of largest ball (in 6D) that is centered at origin and contained within the Grasp Wrench Hull
 Magnitude of smallest external wrench that pushes grasp to its limits
在这里插入图片描述

Form Closure

相对于力闭合更严格
Form closure of a body
• is achieved if a set of stationary constraints prevents all motion of the body.
• If these constraints are provided by robot fingers, we call this a form-closure grasp.
• 4 contact points for 2D; 7 contact points for 6D

The Quality of a Form-Closure Grasp

Eval计算过程
• 构建每个contact point的关系
• 通过linear prog计算k

计算案例:
F为一个列向量,由j个接触力旋量组成的矩阵 (n x j)维,对于平面物体n=3, F i = [ m i z f i x f i y ] T F_i=[m_{iz} f_{ix} f_{iy}]^T Fi=[mizfixfiy]T(旋转分量和线性分量)。如果存在一个权重向量 k ∈ R j , k > = 0 k \in R^j ,k>=0 kRj,k>=0 ,使得对于所有 F e x t ∈ R n F_ext \in R^n FextRn F k + F e x t = 0 Fk + F_ext = 0 Fk+Fext=0, 那么接触将产生形封闭。
如图所示,平面物体中心有一个孔,两个手指分别与孔的两个不同边缘接触,产生四条接触法线
F=[F_1,F_2,F_3,F_4].
在这里插入图片描述
求解程序

import numpy as np
from scipy.optimize import linprog 
F1=[0,-1,0]
F2=[0,0,-1]
F3=[-1,1,0]
F4=[2,0,1]
F = np.array([F1,F2,F3,F4]).transpose()
# print(F)
f = [1,1,1,1]
A_eq= F 
b_eq=np.zeros(F.shape[0])
# print(b_eq)
A = [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,-1]]
b=[-1,-1,-1,-1]
k=linprog(f,A,b,A_eq,b_eq)
k

输出如下

        message: Optimization terminated successfully. (HiGHS Status 7: Optimal)success: Truestatus: 0fun: 6.0x: [ 2.000e+00  1.000e+00  2.000e+00  1.000e+00]nit: 0lower:  residual: [ 2.000e+00  1.000e+00  2.000e+00  1.000e+00]marginals: [ 0.000e+00  0.000e+00  0.000e+00  0.000e+00]upper:  residual: [       inf        inf        inf        inf]marginals: [ 0.000e+00  0.000e+00  0.000e+00  0.000e+00]eqlin:  residual: [ 0.000e+00  0.000e+00  0.000e+00]marginals: [-2.000e+00 -1.000e+00  5.000e+00]ineqlin:  residual: [ 1.000e+00  0.000e+00  1.000e+00  0.000e+00]marginals: [-0.000e+00 -6.000e+00 -0.000e+00 -0.000e+00]mip_node_count: 0mip_dual_bound: 0.0mip_gap: 0.0

k的解是存在的,但如果把右侧手指移动到孔的右下角,那么F矩阵为

array([[ 0,  0,  0, -2],[-1,  0,  1,  0],[ 0, -1,  0, -1]])

但是无解,不能形封闭

from 现代机器人学,一阶形封闭

抓取方法简单计算流程

基于Force-closure评估的抓取计算流程示例
在这里插入图片描述

在这里插入图片描述

Robotic Manipulation-Planar Pushing

数据集:https://web.mit.edu/mcube/push-dataset/;
https://web.mit.edu/mcube/omnipush-dataset/index.html
多指抓取(Multi-finger Grasping) Dex -YCB
双指抓取:planar grasping(rectangle ; x , y , w , h , θ x,y,w,h,\theta x,y,w,h,θ)
6Dof grasping(more general)

在这里插入图片描述

push

机器人实用案例

在这里插入图片描述

Ref

https://www.shenlanxueyuan.com/course/727/task/29297/show

现代机器人学-抓握与操作

• Unified impedance and admittance control
• Modern Control Engineering (Ogata)
• An overview of 3D object grasp synthesis algorithms
• Tutorial: Fundamentals of Robotic Manipulation and Grasping by Alberto Rodriguez, MIT
• Robotic Manipulation Perception, Planning, and Control by Russ Tedrake, MIT
• principles of robot autonomy II Stanford
• Springer Handbook of Robotics – Grasping
• A Mathematical Introduction to Robotic Manipulation
• More than a Million Ways to Be Pushed: A High-Fidelity Experimental Dataset of Planar Pushing

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/484106.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Matlab计算机视觉的车道线识别与前车检测系统研究

随着自动驾驶技术的发展,车道线识别和前车检测成为智能驾驶系统中的核心技术之一。本实训报告围绕基于计算机视觉的车道线识别与前车检测系统展开,旨在通过处理交通视频数据,实时检测车辆所在车道及其与前车的相对位置,从而为车道…

Java Web 2 JS Vue快速入门

一 JS快速入门 1.什么是JavaScript? 页面交互: 页面交互是指用户与网页之间的互动过程。例如,当用户点击一个按钮,网页会做出相应的反应,如弹出一个对话框、加载新的内容或者改变页面的样式等;当用户在表…

OpenHarmony-4.GPIO驱动

GPIO 1.功能简介 GPIO(General-purpose input/output)即通用型输入输出。GPIO又俗称为I/O口,I指的是输入(in),O指的是输出(out)。可以通过软件来控制其输入和输出,即I/O控制。通常&…

文本生成类(机器翻译)系统评估

在机器翻译任务中常用评价指标:BLEU、ROGUE、METEOR、PPL。 这些指标的缺点:只能反应模型输出是否类似于测试文本。 BLUE(Bilingual Evaluation Understudy):是用于评估模型生成的句子(candidate)和实际句子(referen…

UG NX二次开发(Python)-UIStyler-选取点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、设计一个UI界面3、创建长方体的代码4、需要引入的库5、测试验证1、前言 采用Python语言进行UG NX二次开发的资料比较少,我本来不是很认可采用Python进行二次开发的,但是近期有读者咨询…

鸿蒙 Next 可兼容运行 Android App,还支持出海 GMS?

最近 「出境易」和 「卓易通」 应该算是鸿蒙和 Android 开发圈“突如其来”的热门话题,而 「出境易」可能更高频一些,主要也是 Next 5.0 被大家发现刚上架了一个名为「出境易」的应用,通过这个 App 用户可以直接运行不兼容 Next 的 Android A…

请求响应:常见参数接收及封装(数组集合参数及日期参数)

数组参数 在前端页面的表单中,存在复选框元素,当提交表单到后端的时候,会将复选框中的全部内容提交到后端进行处理,由于复选框中往往存在很多数据,并且同复选框中数据名称相同,这样的请求参数叫做数组参数…

ASP.NET Core SignalR 入门

一、简介 📢 SignalR的主要功能是提供服务器和客户端之间的实时通信。当连接的客户端变得可用时,服务器可以立即向其推送内容,而不是等待客户端发起请求。这种功能特别适合需要实时更新数据的应用场景,如聊天应用、实时数据分析、…

介绍一下希尔排序法(c基础)

hi , I am 36 适合对象c语言初学者 希尔排序(Shell Sort)是一种改进的插入排序算法,它通过将原始数据分成多个子序列来改善插入排序在处理大规模无序数组时性能较差的情况。 基本原理 希尔排序的基本思想是先将整个待排序的记录序列分割成为…

Python知识分享第十九天-网络编程

网络编程 概述用来实现 网络互联 不同计算机上运行的程序间可以进行数据交互也叫Socket编程 套接字编程 三要素IP地址概述设备在网络中的唯一标识分类IPV4城域网13广域网22局域网31IPV6八字节 十六进制相关dos命令查看ipwindows: ipconfigmac和linux: ifconfig测试网络ping 域…

opencv-android编译遇到的相关问题处理

1、opencv-android sdk下载 下载地址:https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细,大家可安装官方给出的步骤导入。…

【CC2530开发基础篇】光敏和热敏传感器

一、前言 1.1 开发背景 本实验通过CC2530单片机接入光敏传感器和热敏传感器,进行数据采集与检测,并将检测结果通过串口终端输出。光敏传感器和热敏传感器是常见的环境感知设备,分别用于测量光强和温度。在实际应用中,这些传感器…

基于 LLamafactory 的异步API高效调用实现与速度对比

文章目录 背景摘要简介代码实现运行结果速度对比异步调用速度同步调用速度 背景 原先经常调用各家的闭源大模型的API,如果使用同步的方式调用,速度会很慢。为了加快 API 的调用速度,决定使用异步调用 API 的方式。 摘要 通过异步方式调用大…

贪心算法实例-问题分析(C++)

贪心算法实例-问题分析 饼干分配问题 有一群孩子和一堆饼干,每个小孩都有一个饥饿度,每个饼干都有一个能量值,当饼干的能量值大于等于小孩的饥饿度时,小孩可以吃饱,求解最多有多少个孩子可以吃饱?(注:每个小孩只能吃…

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写)

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写) 1. 实验要求2. 功能分析3. 模块设计4. 波形图4.1 按键消抖模块4.2 按键控制蜂鸣器模块 5.代码编写5.1 rtl代码5.2 测试代码 6. 代码仿真7. 添加约束文件并分析综合 在上期的内容中&…

linux环境GitLab服务部署安装及使用

一、GitLab介绍 GitLab是利用Ruby onRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 二、GitLab安装 1、先安装相关依赖 yum -y install policycoreutils openssh-server openssh-clients postf…

视频码率到底是什么?详细说明

视频码率(Video Bitrate)是指在单位时间内(通常是每秒)传输或处理的视频数据量,用比特(bit)表示。它通常用来衡量视频文件的压缩程度和质量,码率越高,视频质量越好&#…

企业多套系统如何一步步实现对接完成闭环?

前言 很多企业用着用着突然发现企业内部有很多的系统,有ERP、CRM、MES、PLM各个系统还比较独立上线时间不一致,主数据包袱很重。这期就讲讲面对情况如何实施对接的案例。 客户背景 公司专注于健康科技领域,致力于打造国际化的专业健康管理…

MySQL大小写敏感、MySQL设置字段大小写敏感

文章目录 一、MySQL大小写敏感规则二、设置数据库及表名大小写敏感 2.1、查询库名及表名是否大小写敏感2.2、修改库名及表名大小写敏感 三、MySQL列名大小写不敏感四、lower_case_table_name与校对规则 4.1、验证校对规则影响大小写敏感4.1、验证校对规则影响排序 五、设置字段…

【HarmonyOS开发】超详细的ArkTS入门

安装DevEco Studio和新建项目就不多说了,可以移步官网 就可以把他们拆成这几个部分了,如果看不懂可以暂时忽略下面冒号后面的内容 装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中Entry、Component和St…