1.机器人抓取与操作介绍-深蓝学院

ops/2024/10/29 23:02:09/

介绍

在这里插入图片描述

操作任务

操作
• Insertion
• Pushing and sliding
• 其它操作任务
在这里插入图片描述
抓取
• 两指(平行夹爪)抓取
• 灵巧手抓取
在这里插入图片描述

7轴
Franka
对应人的手臂
在这里插入图片描述

6轴 UR构型去掉一个自由度

课程大纲

Robotic Manipulation 操作
• Robotic manipulation refers to the ways robots interact with the objects around them

Manipulation is hard

• Arm, hand, eyes协作
• 一般manipulation问题 -> 有限的manipulation问题 -> 参数化manipulation问题
• 通用grasping -> 静态grasping

在这里插入图片描述
机器人抓取的进化
在这里插入图片描述

落地和挑战

在这里插入图片描述

在这里插入图片描述

1.1 机器人运动规划控制方法介绍

在这里插入图片描述
对比:
• 感知需求:自动驾驶的场景更复杂,机器人识别精度要求更高;
• 无决策&预测模块,无定位&地图模块;
• 规划器:机器人要求6DoF规划,笛卡尔到关节空间,更有挑战性;
• 控制:机器人要求力控,精细操作要求复杂。

机器人场景众多且分散,是否更加具有挑战需要看具体场景需求以及量化指标

Notation of Rigid Body

在这里插入图片描述

Rotation

常见表示
• 旋转矩阵 SO(3):3 × 3 matrix
• 欧拉角:3 × 1 vector,
• 四元数:4 × 1 vector, (x, y, z, w)
• 轴角: 3 × 1 vector(轴)+ scaler (角)
对于四种表示的可逆和组合形状需要牢记
在这里插入图片描述

  • 万向锁
  • (pitch 90度时roll和yaw的motion一致)
  • RPY顺序,当\beta为90度时,
  • 物理上,来自旋转顺序

自身旋转和固定坐标系旋转
p 右乘(自身旋转):
p 先绕x轴旋转,再绕y轴旋转,最后绕z轴旋转,那么总的旋
转矩阵为这三个旋转矩阵的乘积(按照旋转的顺序从右到左
相乘):
R = R z R y R x R=R_z R_y R_x R=RzRyRx

在这里插入图片描述
一个角度为90°时,丧失一个自由度
在这里插入图片描述

Special Euclidean Group SE(3)

在这里插入图片描述

在这里插入图片描述

经典方法回顾-运动学

DH参数法

  • 机器人的每个关节做frame assignment
    Z轴一般是旋转轴,x轴是两个旋转轴的common normal
    • 定义相关assignment的规则和约定
  • 注意DH的变种,classic DH 和Model DH

DH参数
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

DH参数案例

Franka: 使用Craig convention (modifued DH)

在这里插入图片描述
这里需要按照下面这个参数定义来:
在这里插入图片描述

note Z_i ->Z_{i+1} 旋转,逆时针为正,右手定则。
在这里插入图片描述
https://frankaemika.github.io/docs/control_parameters.html

李群和李代数基础

a group that is also a differentiable manifold, such that group multiplication and taking inverses are both differentiable. p SO(3) SE(3)都满足李群的性质要求
b 李代数: SE(3)李群对应的李代数se(3)

POE(指数积)-正运动学介绍

• 螺旋运动:通过螺旋轴和转角表达
• T的计算
机器人正运动学可以用指数乘法表示

在这里插入图片描述

Differential Kinematics

  • 对于一个具有 n个关节的机器人,其 Jacobian 矩阵 J是一个 6*n 的矩阵(对于一般的三维空间操作,考虑位置和姿态的六维向量),其中每一列对应一个关节,矩阵的元素表示末端执行器在基坐标系下的线速度和角速度与关节速度的关系。
    • Measures the relationship of “velocity”
    • 可以通过解析法或者数值法求Jacobian
    在这里插入图片描述

逆运动学

雅可比矩阵和IK位置求解方法
  • 注意Jacobian求逆的数值方法:LM,SVD,QP等

  • 注意local minimum的处理方法
    Line search

  • LM方法其Jacobian逆

参考link

伪代码
在这里插入图片描述

规划

框架
在这里插入图片描述

空间:
• 构型空间 Configuration space
• 笛卡尔空间
• C-space到笛卡尔的映射相对容易
路径规划-高维空间
• 基于采样的方法: RRT, PRM
• 基于优化的方法
• 后处理
• 碰撞检测

轨迹生成&规划&优化介绍
基于sampling based方法生成的path往往需要后处理平滑 C-space(joint space)需要做速度规划,往往通过cubic spline等方法来实现,保证联系且满足一定的边界约束再进行C-space和Cartesian space的变换,同时优化和碰撞检测需要处理
在这里插入图片描述

在这里插入图片描述

控制

从笛卡尔空间到关节控制

• 关节模组控制
• 力控
末端力控
关节力
在这里插入图片描述

机器人传感器和视觉介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

视觉感知任务

在这里插入图片描述

机器人学习方法介绍

通过学习的方法来解决机器人问题,特别是规划和控制问题
p 常见学习任务
• 运动学和规划器:
机器人运动学学习:学习机器人FK和IK模型,输出一般为关节角
• 通用规划学习-sampling-based planning:输出一般为采样点
• 任务学习
• 静态场景-抓取:输出一般为抓取位姿
• 操作学习&policy学习(例如叠衣服):输出一般为action
• 通用场景学习(语言指令+长时序任务):输出action,(中间一般有planning)

监督学习方法

抓取位姿学习&数据集

• 二指&平行夹爪-Planar抓取:
ü Cornell
ü Jacquard
• 二指&平行夹爪- 6DoF抓取:
ü Graspnet
ü Grasp anything
• 灵巧手抓取:
ü DexYCB

在这里插入图片描述

强化学习

p 强化学习一般定义为MDP和POMDP问题,通过 s, t, a, r 来定
义状态转移和奖励函数
p 相比于监督学习,一般不需要数据集,通过探索来得到数据
p 可以通过reward来定义长期奖励,intuitively比较适合规划任务
p 可以通过policy iteration来迭代,上限更高
p 对数据采集要求量大,对仿真要求高,相对不容易训练,且训
练成本较高
p 需要Gym env 和 仿真环境
p 需要处理sim-to-real问题

大模型

长时序复杂任务往往比较挑战
• 例如下图的gearbox组装任务,步骤繁多,且有出错的可能;
• 任务可能较为多样化,基于规则的方法相对难以调整,以及难以和人自然交互
在这里插入图片描述

两种范式(非定义)
• VLA端到端模型介绍
Vision-Language-Action
• VLM&LLM + Control Policy 分层模型
Task planner + control action • 两者之间的界限不严格

在这里插入图片描述

机器人VLA模型-端到端方法

• 静态场景
• 任务多样化,且描述方式多样化
• 语言到动作有gap
• 有一点的交互和澄清的需求
在这里插入图片描述

自动驾驶-端到端方法
• 通过一个纯视觉(UniAD)或者融合(FusionAD)的BEV模型来完成端到端的多任务(感知、地图、预测、决策和规划)自动驾驶模型
• 输出是规划轨迹(5秒左右)
• 任务理解容易,e.g. a点到b点;或者根据routing行驶
• 但是场景和行为多样化;决策交互和感知有挑战;动
态场景

大模型分层框架
分层规划方案VLM&LLM + Control Policy
• 大模型做任务拆解和规划
• 相关动作模型(control policy, visuomotor policy)输出轨迹
• 传统算法优化轨迹
在这里插入图片描述

LLM&VLM for planning

• 通过prompt来做任务规划
• 输入描述和能力,生成伪代码,代码,或者任务序列
• 最上层任务规划和人机交流,低频

在这里插入图片描述

https://github.com/microsoft/PromptCraft-Robotics/blob/main/examples/manipulation/pick_stack_msft_logo.md

实践工具

研发流程

         s a
特点:团队小,功能多,交互业务多
版本发布后问题需要优化,可以补充到产品需求设计中

在这里插入图片描述

ROS

p 机器人中间件:ROS&ROS2
p 可视化工具和插件
p 核心算法和工程包:ROS Control,Navigation,Moveit
p 消息通讯和序列化
p 自动驾驶中间件Cyber

在这里插入图片描述

常用控制包

ROS2 control使用非常重要,一般基于这个框架进行开发。
硬件组件参考
调试指南
在这里插入图片描述
ROS2 moveit则可以参考实现。

仿真

用于自测

  • 仿真引擎
    • V-rep(CoppeliaSim )
    • MuJoCo
    • Bullet
  • 仿真环境
  • Isaac sim
  • RLbench
  • Gazebo

在这里插入图片描述
CoppeliaSim (PyRep)仿真图像和代码
• 代码示例和动画
• RLBench基于PyRep,有相关数据集和标准任务

在这里插入图片描述
在这里插入图片描述

Docker:部署和研发标准化方案

• Image and container
• Docker build 构建image
• Docker run 运行container
• Docker exec 进入正在运行的container

调试:logging, GDB&PDB, ros2 log
性能分析perf, profile
Git:熟练使用

调试:logging
• Logging是自测和运营问题的重要排查手段,
• 自动化log分析也是生产环境提效的手段
• 好的log习惯很重要
调试:GDB&PDB
• GDB用于断点,core dump排查等
• 其它静态分析,单测,内存分析等相关工具也需要有
所了解
性能分析perf, profile
• 生产环境中,算法工程师需要和软件,系统积极
配合准备相关的排查链路和需求
Git
• 有比较好的git使用习惯,commit习惯
• 熟悉常见操作,特别是分支合并操作
https://docs.ros.org/en/humble/Tutorials/Demos/Logging-and-logger-configuration.html
• 熟悉团队的MR&PR提交规则

推荐MIT课程,B站上可以搜计算机缺失的一课

p 业界研发流程:需求-技术评审-开发-自测-提测

ref

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


http://www.ppmy.cn/ops/129430.html

相关文章

NLTK无法下载?

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 nltk无法下载怎么办?什么是NLTK?为什么要用NLTK?如何下载? nltk无法下载怎么办? 什么是NLTK? NLTK是学习自然…

Git_GitHub

Git_GitHub 创建远程仓库 远程仓库操作 创建远程仓库别名 基本语法 案例实操 推送本地分支到远程仓库 基本语法 案例实操 拉取代码 基本语法 案例实操 克隆远程仓库到本地 基本语法 案例实操 邀请加入团队 选择邀请合作者 填入想要合作的人 复制邀请函 接受邀…

w外链如何跳转微信小程序

要创建外链跳转微信小程序,主要有以下几种方法: 使用第三方工具生成跳转链接: 注册并登录第三方外链平台:例如 “W外链” 等工具。前往该平台的官方网站,使用手机号、邮箱等方式进行注册并登录账号。选择创建小程序外…

关于k8s的cilium网络插件踩坑记

cilium状态为CrashLoopBackOff coredns状态为Pending 使用的系统镜像为centos7.6 内核是3.*** 然后用的工具来部署集群,开始以为是调度啥的,然后单节点试也出现CrashLoopBackOff、Pending等状态,更新内核在到5 集群自己就好了 注意&am…

基于ESP32的RGB便携式视频灯

基于ESP32的RGB便携式视频灯 拥有一套能够满足个人需求的灯光设备至关重要。市面上的RGB视频灯虽然功能强大,但往往价格不菲。我制作的这款灯是20W RGB便携式视频灯不仅满足了我的需求,而且成本仅为市售产品的三分之一。接下来,我将详细介绍这…

基于SSM儿童众筹救助系统设计与实现

前言 儿童众筹救助系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 此系统设计主要采用的是JAVA语言来进行开…

微信小程序 - 图像加载时渐隐淡入效果 image,实现渐入渐出动画效果,微信小程序实现图片加载淡入淡出效果,图像加载时的渐隐淡入效果!

前言 由于微信小程序图片组件加载成功后,会突然显示出来比较生硬,所以需要对其进行动画修饰。 在微信小程序开发中,实现图片加载时淡隐淡出效果,避免图片加载时显示的生硬效果。 小程序 vue2 | vue3 版本语法都能使用,跟着教程复制代码运行即可。 如下图所示,每次页面加…

.Net 8 Web API CRUD 操作

本次介绍分为3篇文章: 1:.Net 8 Web API CRUD 操作https://blog.csdn.net/hefeng_aspnet/article/details/143228383 2:在 .Net 8 API 中实现 Entity Framework 的 Code First 方法https://blog.csdn.net/hefeng_aspnet/article/details/1…