当前位置: 首页 > news >正文

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

介绍

在这里插入图片描述

操作任务

操作
• 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.mrgr.cn/news/60340.html

相关文章:

  • Rust整合Elasticsearch
  • Arduino语法详解_含示例详解
  • ReactNative TurboModule(3)
  • 猫头虎 分享:MySQL 中 TEXT 与 LONGTEXT 数据类型详解与使用场景分析
  • 15-4连续子串和的整除问题
  • 基于neo4j的旅游知识图谱维护与问答系统
  • 匹配正确率提升187.9%!华中科技大学CGCL实验室用自监督学习助力胶囊内窥镜图像拼接,「天眼」里也可看肠胃健康
  • 【yashandb】初体验
  • matlab实现了一个基于粒子群优化(PSO)算法的程序,用于寻找一种三层材料结构的最佳配置
  • 遗传算法与深度学习实战(20)——使用进化策略自动超参数优化
  • Django+Vue全栈开发项目入门(二)
  • 09DSP学习-F28379D发送浮点数 Vofa+接收数据 使用JustFLoat数据引擎
  • 中科院分区表能不能查SSCI分区?该怎么查?
  • 队列的实现(单链表)
  • 重采样方法(交叉验证法)——基于glm与LOOCV法(Weekly数据集分析)
  • C++-继承
  • 快速上手 Rust——环境配置与项目初始化
  • 天地图实现海量聚合marker--uniapp后端详细实现
  • 2024年推荐最详解析项目管理平台与敏捷开发的五个阶段
  • Redis内部数据结构Dict结构详解
  • DevTools 中的新滚动徽章
  • mac下使用docker安装php7.4环境
  • Spring MVC:响应结果和设置
  • Python Flask内存泄漏分析定位
  • Vue前端开发:数据绑定方法
  • php伪协议和move_uploaded_file、rename、copy等文件操作