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

news2024/11/29 10:57:44

介绍

在这里插入图片描述

操作任务

操作
• 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.coloradmin.cn/o/2227233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spark豆瓣书籍推荐系统-计算机毕业设计源码53447

摘要 本论文主要论述了如何基于Spark开发一个豆瓣书籍推荐系统,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述豆瓣书籍推荐系统的当前背景以及系统开发的目的,后续章节将严…

macOS开发环境配置与应用开发教程

macOS开发环境配置与应用开发教程 引言 macOS是一个强大的操作系统,广泛应用于软件开发,尤其是iOS和macOS应用开发。本文将详细介绍如何配置macOS开发环境,并通过实例演示如何进行应用开发。希望通过这篇文章,帮助读者快速上手m…

Unity吃鸡背包系统笔记

功能需求 查看玩家拥有的所有物品,可以放下其中的任意物品;查看已死的他人背包的物品,可以拿起其中的任意物品;查看附近的物品,可以拿起其中的任意物品(暂时不考虑背包容量); 难点 …

《Linux系统编程篇》fork函数——基础篇

文章目录 引言fork() 函数概述父子进程 fork函数fork() 的常见问题fork() 的优势与限制 结论 命为志存。 —— 朱熹 引言 《Linux系统编程篇》——基础篇首页传送门 本节我们正式进入Linux的进程代码编写。 fork() 是 Unix 系统中一个重要的系统调用,用于创建一个…

MySQL 8 下载与安装攻略

MySQL是一个流行的关系型数据库管理系统,目前MySQL属于Oracle公司的,关于MySQL的详细介绍可以参考: MySQL 的完整介绍 本篇主要关注MySQL 的下载和安装。 MySQL 下载 官方下载 进入MySQL 的下载页面 :https://dev.mysql.com/do…

HarmonyOS 鸿蒙开发 路由跳转报错this uri is empty, not support in route push.

检查方案1: 工程目录下 entry > src > main > resources > base > profile > main_pages.json中检查是否配置了NextPage 检查方案2: 在路由跳转的代码中检查是否路径配置错误 这里要注意,url的路径一定要和main_pages.json…

芯片上音频相关的验证

通常芯片设计公司(比如QUALCOMM)把芯片设计好后交由芯片制造商(比如台积电)去生产,俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证(这里说的验证是FPGA(现场…

【VSCode】配置

安装插件 C vscode-icons gdb调试 https://www.bilibili.com/video/BV15U4y1x7b2/?spm_id_from333.999.0.0&vd_sourcedf0ce73d9b9b61e6d4771898f1441f7f https://www.bilibili.com/video/BV1pU4y1W74Z?spm_id_from333.788.recommend_more_video.-1&vd_sourcedf0…

springboot使用枚举作为接口的参数

1.定义枚举类 2.定义接口 3.具体实现方法 4.apifox传入参数 枚举的具体’名称’就可以了 5.调试 6.进入断点,这样我们发现在接口的参数就映射到应的枚举类上了

数据结构(8.4_3)——堆的插入删除

在堆中插入新元素 在堆中删除元素 总结:

《计算机网络网络层:连接虚拟世界的关键桥梁》

一、网络层概述 网络层在计算机网络中占据着至关重要的地位,它作为连接不同网络的关键层次,起着承上启下的作用。网络层的主要任务是实现网络互连,将数据设法从源端经过若干个中间节点传送到目的端,为分组交换网上的不同主机提供通…

【linux】fdisk磁盘分区管理

介绍 fdisk是一个磁盘分区管理工具,可以用来创建、删除、修改和查看磁盘分区。 fdisk一般都是交互式使用,基础语法: fdisk /dev/sdd。进入交互窗口后,有一些选项,需要了解下: 选项含义n创建新分区p查看磁盘的分区情…

项目成本管理系统有哪些功能?9款工具详解

本文推荐的9大主流项目成本管理工具有: 1. PingCode;2. Worktile;3. 用友U8项目管理;4. 金蝶K3 Cloud;5. 泛微e-Project;6. 亿方云项目管理; 7. SAP Project System; 8. Trello; 9. …

基于opencv的眼镜试戴系统

对于正在准备毕业设计或者想在技术项目上加点“创新”的同学们,推荐一款基于OpenCV的眼镜试戴系统!这不仅是一个实现个人创意的项目,更是一个结合AI技术和实用应用的完美范例。 🌟 系统核心功能: 图片试戴&#xff1a…

解决cuda环境使用dgl

Dgl 是实现图结构数据构造的工具包,想在gpu环境下使用它,如果安装的是pip install dgl 会有下面错误 dgl._ffi.base.DGLError: [09:10:13] /opt/dgl/src/runtime/c_runtime_api.cc:82: Check failed: allow_missing: Device API cuda is not enabled. P…

软考高级备考记录

一 报考条件和报名流程 报考条件 该考试具有水平考试性质,报考任何级别不需要学历、资历条件,只要达到相应的专业技术水平就可以报考相应的级别 报名流程 软考报名官网:中国计算机技术职业资格网 官网上有 报名时间,考试…

springboot077基于SpringBoot的汽车票网上预订系统--论文pf(论文+源码)_kaic

汽车票网上预订系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车票网上预订系统的开发全过程。通过分析汽车票网上预订系统管理的不足,创建了一个计算机管理汽车票网上预订系统的方案。文章…

vue使用xlsx以及file-saver进行下载xlsx文件以及Unit8Array、ArrayBuffer、charCodeAt的使用

先说Unit8Array、ArrayBuffer、charCodeAt的使用下面会用到这三个 Unit8Array:数组类型表示一个 8 位无符号整型数组,创建时内容被初始化为 0。创建完后,可以以对象的方式或使用数组下标索引的方式引用数组中的元素。 new Uint8Array(); //…

Python中的数据可视化:Matplotlib基础与高级技巧

Python中的数据可视化:Matplotlib基础与高级技巧 数据可视化是数据分析和数据科学中不可或缺的一部分。通过图表,我们可以更直观地观察数据的分布和趋势。Matplotlib作为Python最基础、也是最广泛使用的绘图库之一,不仅支持多种常用图表&…

Android Studio中Gradle一直在加载怎么解决(首次安装过程中)

目录 前言:遇到问题:已解决: 前言: Android Studio中Gradle一直在加载怎么解决(首次安装过程中),在安装Android Studio的过程中,我因为环境的问题,被困扰了一天&#xf…