3-机器人视觉-机器人抓取与操作

文章目录

  • 3机器人视觉
    • 目录
  • 1. 传感器和标定
    • 摄像头模型
      • Intrinsic Matrix
      • Extrinsic Matrix
    • 标定
      • 内参标定
      • 手眼标定和外参标定
    • 力传感器&其它传感器
      • 其它传感器
  • 2. 神经网络和图像处理
    • 2D特征处理
      • 常见架构
    • 训练流程
    • 推理流程
    • 部署流程
    • 2D 图像任务
    • 3D Point Cloud Feature
      • PointNet Application
  • 3. 3D位姿估计
    • 分类
    • 位姿估计数据集
      • BOP: Benchmark for 6D Object Pose Estimation
      • YCB数据集
    • 位姿估计指标
    • 传统方法
    • PoseCNN
    • DenseFusion
    • YOLO6D
  • Category-level
    • Unseen Object Pose Estimation
    • Foundation Model
    • Foundation Pose
  • Pose Estimation for Grasping
  • REF

3机器人视觉

目录

  • 1. 传感器和标定
    • 摄像头模型
    • 标定
      • 手眼标定和机器人内参标定

1. 传感器和标定

摄像头模型

Pinhole Camera Model
3 coordinates
• World coordinate
• Camera coordinate
• Image coordinate (2D pixel)

在这里插入图片描述

Task:
• Given: pixel(u, v), and depth z;
• Compute: world coordinate ( x _ w , y _ w , z _ w x\_w,y\_w,z\_w x_w,y_w,z_w )

在这里插入图片描述

Intrinsic Matrix

T: 获取外界坐标到相机坐标

  • f x , f y , c x , c y f_x, f_y, c_x,c_y fx,fy,cx,cy
  • Distortion: S

c_x,c_y是像素分辨率的一半
• 假设相机传感器的宽度为36,高度为24,图像分辨率为6000*4000像素。如果相机的等效 35mm 焦距为50,则
在这里插入图片描述

Extrinsic Matrix

T:
• Model the transformation between camera coordinate to world coordinate
• Deal with “variable” frame (i.e. camera frame is moving)
在这里插入图片描述

标定

内参标定

• 内参矩阵K
• 畸变系数 k 1 , k 2 , p 1 , p 2 , k 3 k_1,k_2,p_1,p_2,k_3 k1,k2,p1,p2,k3

工具:
• ROS,OpenCV(内置工具进行标定)

对棋盘格不同角度拍照测量
• 张氏标定法

在这里插入图片描述

手眼标定和外参标定

手眼标定
• 工具:ROS,OpenCV
• 流程(eye-in-hand):
• 机械臂移动到不同位姿对标定板拍照
• 记录机械臂法兰位姿和对应的图片

眼在手上,求夹爪在相机坐标系下位姿
眼在手外:base_link在camera_link但坐标系下单位姿
在这里插入图片描述
在这里插入图片描述

机器人内参标定:

• 机器人内参误差一般小于摄像头外参带来的误差
• 相关产品需要验证机器人的内参误差(需要工程化验证)
• 标定方法
• 测量:一般为激光跟踪仪或者拖动到特定位置
• 算法:POE或者DH参数后,构建参数迭代

可参考:https://www.universal-robots.com/articles/ur/robot-care-maintenance/kinematic-robot-calibration/

手眼的实践问题(基于RGB-D的测量)
• 用于经典的pipeline
• 误差源较多(机器人内参,摄像头内外参,机器人工具到法兰,摄像头深度和RGB测量等),较难分离;
• 标定和验证流程较长,长期使用中出现精度下降问题比较难定位
• 用于数据生产,训练的模型可能会有硬件依赖问题

在这里插入图片描述

在这里插入图片描述

Depth摄像头:
• 结构光(Structured Light):干扰,室外
• 飞行时间(Time of Flight, ToF) :干扰
• 双目视觉(Stereo Vision):低纹理
Depth 信息:
• Pointcloud and depth image
• 有缺失值

在这里插入图片描述
Depth-RGB位置关系和标定
• 结构光,标定IR和RGB位置
其它:
• Pointcloud信息可以直接用于识别分割等任务
• RGB的识别任务,需要做2D到3D的投影

深度摄像头问题
实践中-深度缺失&不准问题
• 材料,光照,边缘
• 人体头发深度
• 玻璃深度
p 实际量产场景
• 入厂测试,
• 功能&参数测试
• 系统测试
• 供应商问题

力传感器&其它传感器

末端力传感器
• 末端力控

单轴,6轴或者3轴
• 安装和使用
在这里插入图片描述

关节扭矩传感器
• 电流估计,电磁式,应变片式
• 可以用于关节力控
• 可以用于末端六维力估计和末端力控(可靠性和性能相对不如直接测量)
在这里插入图片描述

实践中力传感器问题
• 零飘,异常数据等

其它传感器

• 编码器
在这里插入图片描述
电机侧编码器:18位一一2^18=262144
输出端多圈绝对值编码器:19位一一2^19=524288
关节减速比:1:101
问关节转90°,输出端编码器数值及电机转了多少度?

输出端编码器数值 = ( 90 / 360 ) ∗ 2 1 9 输出端编码器数值=(90/360)*2^19 输出端编码器数值=(90/360)219
电机转了 101*90=9090度

关节位置信息
• 触觉传感器
在这里插入图片描述

2. 神经网络和图像处理

在这里插入图片描述

优化视角
• 寻找最优网络参数组合,使得训练数据中的loss最小化;
主要元素
• 网络结构

特征处理和任务头
• 数据集和dataloader
• Loss function and optimizer
• Training and inference
在这里插入图片描述

2D特征处理

p Conv2d
在这里插入图片描述
这个关于维度的变换图经常在图像卷积中用到
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

p MLP(Linear)
p Other layers
• Pooling
• Activation
Max pooling
• normalization

在这里插入图片描述

在这里插入图片描述
一幅搞笑图片
在这里插入图片描述

Normalization

可以参考一文弄懂Batch Norm / Layer Norm / Instance Norm / Group Norm 归一化方法
在这里插入图片描述

常见架构

CNN
• Residual bock
• U-net
在这里插入图片描述
在这里插入图片描述

Transformer:
• ViT

训练流程

• 1 准备数据集
• 2 准备模型
• 3 准备Loss函数和优化器
• 4 训练循环(模型评估)
• 4.1 optimizer.zero_grad()
• 4.2 outputs = model(images)
• 4.3 loss = criterion(outputs, labels)
• 4.4 loss.backward()
• 4.5 optimizer.step()

在这里插入图片描述

推理流程

• 1 读取图像
• 2 加载模型参数
• 3 模型forward推理

训练流程

在这里插入图片描述

部署流程

在这里插入图片描述

2D 图像任务

p 常见任务
• 分类
• 检测
• 分割
• 其它:生成,人脸,OCR,抠图,降噪,检索等
p 机器人相关:
• 位姿估计和追踪
在这里插入图片描述
在这里插入图片描述

3D Point Cloud Feature

在这里插入图片描述
注意这里会用一个T-Net生成转换矩阵,这是考虑到点云在空间的坐标变换。

PointNet 示例
在这里插入图片描述
在这里插入图片描述

pointNet++
推荐阅读:https://zhuanlan.zhihu.com/p/266324173
关注局部范围的point
在这里插入图片描述
Autonomous Driving Prediction and ML Planning:
• PointNet for subgraph feature extraction
在这里插入图片描述

PointNet Application

Autonomous Driving Prediction and ML Planning:
• PointNet for subgraph feature extraction
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 3D位姿估计

分类

 问题分类:
• Instance-level (特定的物体)
• Categories-level (一类物体)
• Unseen Object
 方法分类(Instance-level) :
• Correspondence-based method
• Template-based method
• Voting-based & Regression-Based Method
 输入:
• RGB图像
• RGB+Depth
• 3D模型

Vision-based robotic grasping from object localization, object pose estimation to grasp estimation for parallel grippers: a review

位姿估计数据集

在这里插入图片描述

在这里插入图片描述

BOP: Benchmark for 6D Object Pose Estimation

 BOP Tookit
 BOP Dataset:
https://bop.felk.cvut.cz/datasets/
可以直接使用huggingface cli和toolkit来准备相关数据集
部分数据集略有改动
Data: depth, rgb, model, camera_info, mask
 BOP Format:
• https://github.com/thodan/bop_toolkit/blob/master/docs/bop_datasets_format.md
 Leaderboard
在这里插入图片描述

YCB数据集

 21 YCB objects captured in 92 videos.
 常见物品, 在超市能够买到
 扩展数据集:
• DexYCB,YCB Affordance
• YCB-Sight: A visuo-tactile dataset (视觉和触觉两种模态数据集)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

位姿估计指标

ADD和ADD-S较为常用.
 Visible Surface Discrepancy (VSD)
 Maximum Symmetry-Aware Surface Distance (MSSD)
 Maximum Symmetry-Aware Projection Distance (MSPD)
average point distance (ADD): ref
average closest point distance (ADD-S)
 其它:
• Intersection-over-Union (IoU) 3D
在这里插入图片描述

 BOP评估方式
• 对VSD,MSSD,MSPD增加threshold
• 然后对相关数据集计算AR,然后取平均
在这里插入图片描述

传统方法

SFM(Structure From Motion )
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 2D Image
针对点匹配错误的问题
• PnP (Perspective-n-Point (PnP) )
• PnP+RANSAC(Random sample consensus): ref

OpenCV solvePnPRansac()
在这里插入图片描述
在这里插入图片描述

3D PointCloud
• ICP
• pcl::IterativeClosestPoint

ICP Algorithm: Theory, Practice And Its SLAM-oriented Taxonomy
在这里插入图片描述

Instance-level Pose Estimation

 Correspondence based method
 Template-Based Methods
 Voting-based & Regression-Based Method
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PoseCNN

Pose estimation with RGB Input
[]Model
Feature Extraction
Segmentation
Center point prediction
Rotation and translation regression
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Task and Loss:
• Segmentation
• Center point prediction
* regress to the center direction for each pixel
* Hough voting
• Transformation prediction:
- PLoss: pose loss
- SLoss: shape match loss
计算两种loss,位姿和形状匹配
在这里插入图片描述

Model

  • Feature Extraction
  • Segmentation
  • Center point prediction
  • Rotation and translation regression
    在这里插入图片描述

center point ,预测 x,y的方向, Td
在这里插入图片描述
在这里插入图片描述

DenseFusion

Pose Estimation with RGB and Depth Image
在这里插入图片描述

Feature:
• 在分割的物体上,通过CNN和PointNet的编码器分别提取图像和点云特征
• 在像素坐标下做特征融合(concat)
• 提取全局特征
• 全局特征和局部特征融合(concat)
在这里插入图片描述
在这里插入图片描述

 Head
• Translation, rotation, confidence
 Loss
 Pose Refinement
• Pose residual estimator

在这里插入图片描述

在这里插入图片描述

YOLO6D

 Simple and Fast
 feature extraction
• CNN
 Detection architecture
• Prediction 8 bbox points + 1 center point; and Class
• PnP for 3D estimation uses 9 control point correspondences
在这里插入图片描述
\

Category-level


Example application of category level perception:

  • Object detection in autonomous driving:
    • Hierarchical categories:
    • Car – Truck, SUV, Sedan, etc;
       Category-level pose estimation
      • 针对同类物体估计位姿(例如,杯子)
      generalizing to objects within established categories
      在这里插入图片描述

Category-level pose estimation
• 针对同类物体估计位姿(例如,杯子)
• generalizing to objects within established categories


NOCS:
https://github.com/hughw19/NOCS_CVPR2019
• Represent a category of objects
• Normalized Object Coordinate Space
•Predict NOCS map (x, y, z)
在这里插入图片描述
在这里插入图片描述

Data generation:

  • Mixed Reality data generation
    • Real background with sim object
    • Rendering with different lighting

在这里插入图片描述

Unseen Object Pose Estimation

 Input: CAD model, reference image
• No training on novel object
• Non-like category-level which requires training on category,
and alignment if using NOCS
 Traditional:
• template-based, or feature-based method
 Foundation Model
在这里插入图片描述
在这里插入图片描述

Foundation Model

 Foundation Pose
 SAM-6D
 FreeZe
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Foundation Pose

https://github.com/NVlabs/FoundationPose/tree/main/learning/models

 Input:
• model-based, where a textured 3D CAD model of the object is
provided;
• model-free, where a set of reference images of the object is provided
 Good Performance in these tasks
• model-based, model-free;
• Pose estimation, pose tracking
在这里插入图片描述

 Pose generation data pipeline
• Hierarchical LLM from data generation

  1. LLM Prompt for object description
  2. LLM description for texture generation
    • Physics engine for rendering
    在这里插入图片描述

Pose Estimation for Grasping

 6D object pose estimation
 Grasping pose generation
 Pre-grasping pose
 Path planning and trajectory generation

REF

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

 Deep Learning-Based Object Pose Estimation: A Comprehensive Survey; “https://github.com/CNJianLiu/Awesome-Object-Pose-Estimation”
 Vision-based Robotic Grasping From Object Localization, Object Pose Estimation to Grasp Estimation for Parallel Grippers: A Review
 Challenges for Monocular6D Object Pose Estimation in Robotics
 BOP: Benchmark for 6D Object Pose Estimation
 FoundationPose: Unified 6D Pose Estimation and Tracking of Novel Objects
 DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion
 Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation
 PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes
 Real-Time Seamless Single Shot 6D Object Pose Prediction
 Computer Vision: A Modern Approach
 https://deeprob.org/w24/projects/project3/, Project 3 PoseCNN

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

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

相关文章

从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——消费者如何进行消费

本章节主要从底层源码探索Spring Boot中RabbitMQ如何进行消费,至于RabbitMQ是如何使用如何生产消息,本章不做过多介绍,感兴趣的小伙伴可以参考:从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——生产者…

修改vscode中emmet中jsx和tsx语法中className的扩展符号从单引号到双引号 - HTML代码补全 - 单引号双引号

效果图 实现步骤 文件 > 首选项 > 设置搜索“”在settings.json中修改,增加 "emmet.syntaxProfiles": {"html": {"attr_quotes": "single"},"jsx": {"attr_quotes": "double","…

【小白51单片机专用教程】protues仿真AT89C51入门

课程特点 无需开发板0基础教学软件硬件双修辅助入门 本课程面对纯小白,因此会对各个新出现的知识点在实例基础上进行详细讲解,有相关知识的可以直接跳过。课程涉及protues基本操作、原理图设计、数电模电、kell使用、C语言基本内容,所有涉及…

ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

作者:羿莉 背景 对企业数据进行敏感数据扫描和保护可以提升企业或组织的数据安全。一方面敏感数据可能包括个人身份信息、财务记录、医疗记录等,定期扫描这些数据可以防止未经授权的访问和泄露。 另一方面,许多国家和地区都有关于数据保护的…

Redis和数据库的一致性(Canal+MQ)

想要保证缓存与数据库的双写一致,一共有4种方式,即4种同步策略: 先更新缓存,再更新数据库;先更新数据库,再更新缓存;先删除缓存,再更新数据库;先更新数据库,再…

spring学习(spring-bean实例化(无参构造与有参构造方法实现)详解)

目录 一、spring容器之bean的实例化。 (1)"bean"基本概念。 (2)spring-bean实例化的几种方式。 二、spring容器使用"构造方法"的方式实例化bean。 (1)无参构造方法实例化bean。 &#…

Qt WORD/PDF(二)使用 QtPdfium库实现 PDF操作、打印等

关于QT Widget 其它文章请点击这里: QT Widget GitHub 源码: QWidgetLearningPro (暂未更新) 姊妹篇: Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览 一、简介 QtPdfium 是基于Pdfium库的一个Qt绑定。Pdfium是一个…

【Leecode】Leecode刷题之路第82天之删除排序链表中的重复元素II

题目出处 82-删除排序链表中的重复元素 II-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 82-删除排序链表中的重复元素 II-官方解法 方法1:一次遍历 思路: 代码…

IDEA 可视化使用 git rebase 合并分支步骤 使git分支树保持整洁

模拟环境 dev 分支开发完一个功能,需要合并到 master 分支,如果现在直接 merge 合并的话 git分支树会出现杂乱分叉,先把 master 分支 rebase 到 dev git分支树就会是整洁的一条直线 git rebase介绍 rebase:翻译成中文是重新设定,…

短信验证码burp姿势

首先声明,本文仅仅作为学习使用,因个人原因导致的后果,皆有个人承担,本人没有任何责任。 在之前的burp学习中,我们学习了图片验证码的突破,但是现实中还有很多短信验证码,在此我介绍几种短信验…

你知道OSI参考模型是什么吗?

你知道OSI参考模型是什么吗? 一. OSI模型图解二. OSI七层模型三. OSI模型的特点四. OSI模型与TCP/IP模型的对比五. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱…

好用便签好用在哪里?

在这个信息如潮水般涌来,生活节奏快得像开了倍速的时代,我们的大脑常常被各种事务塞得满满当当,仿佛一台即将 “死机” 的电脑。这时候,我希望有一些工具能帮我轻松梳理这团乱麻,让一切变得井井有条。 从时间管理的维度…

Codeforces Round 993 (Div. 4)

Codeforces Round 993 (Div. 4) 2024.12.15 rank289 123:1381->1504 A Cube is given an integer n n n. She wants to know how many ordered pairs of positive integers ( a , b ) (a,b) (a,b) there are such that a n − b an-b an−b. Since Cube is…

Linux中的service命令

service命令 在Linux系统中,service命令是用来启动、停止、重启以及查看系统服务状态的一个常用命令。服务,或称为守护进程,是在后台运行的进程,它们通常会监听某个端口,等待其他程序的请求。例如,MySQL、…

R环境配置 以及Debug方法 (VSCode, conda, 远程R)

生物信息学中的R环境配置 以及Debug方法 开始设置1、建议使用VSCode conda 远程R2、 VSCode配置安装插件安装好插件后,远程设置链接成功后,设置项目 3、 linux conda 和 远程R配置4、VScode 远程访问R环境下面配置远程R 5、开始Debug新建个R文件&#…

druid图形化监控 + MyBatis优化器使用

文章目录 1.集成druid图形化监控1.配置application.yml2.测试访问 http://localhost:项目端口/druid 2.MyBatis优化器(显示完整sql)1.目录2.SqlBeautyInterceptor.java:sql拦截器3.MybatisConfiguration.java:将sql拦截器注入容器4.测试5.MyBatis优化器动…

【经验分享】私有云运维的知识点

最近忙于备考没关注,有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源,但我以交流、交换为主,笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟,为了避免更多人花没必要的钱,所以决定公…

Unity 2020、2021、2022、2023、6000下载安装

Unity 2020、2021、2022、2023、6000 下载安装 以Unity 6000.0.24fc1下载安装为例: 打开 https://unity.cn/ 优三缔 官方网站; 点击【产品列表】→点击【查看更多】→选择自己需要的版本→点【开始使用】 点击【从Unity Hub下载】 以Windows为例&am…

240004】基于maven的java+ssm+mysql的房屋租赁系统的设计与实现

基于ssmmavenmysql的房屋租赁系统的设计与实现 1.项目描述2.运行环境3.项目截图4.源码获取 1.项目描述 该项目在原有的基础上进行了优化,包括新增了注册功能,房屋模糊查询功能,管理员和用户信息管理等功能,以及对网站界面进行了优…

NEEP-EN2-2023-Section5PartB

题目 个人答案 The chart depicts the outcomes of a survey conducted in a specific university regarding the acquisition of practical activity in class. The chart illustrates that learning knowledges accounts for 91.3 percent, which is the highest percentage…