cam

机器人手眼标定

和自甴很熟 提交于 2021-02-11 16:03:47
机器人和摄像机的手眼标定问题分为两类构型: eye-to-hand,摄像机固定,与机器人基坐标系相对位置不变。 eye-in-hand,摄像机安装在机器人末端,随着机器人一起移动。 所谓手眼系统,就是人眼睛看到一个东西的时候要让手去抓取,就需要大脑知道眼睛和手的坐标关系。如果把大脑比作B,把眼睛比作A,把手比作C,如果A和B的关系知道,B和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就知道了。 相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。 在实际控制中,相机检测到目标在图像中的像素位置后,通过标定好的坐标转换矩阵将相机的像素坐标变换到机械手的空间坐标系中,然后根据机械手坐标系计算出各个电机该如何运动,从而控制机械手到达指定位置。这个过程中涉及到了图像标定,图像处理,运动学正逆解,手眼标定等。 常用的标定方法有:九点标定 九点标定: 九点标定直接建立相机和机械手之间的坐标变换关系。 让机械手的末端去走这就9个点得到在机器人坐标系中的坐标,同时还要用相机识别9个点得到像素坐标。这样就得到了9组对应的坐标。 由下面的式子可知至少需要3个点才能求出标定的矩阵。 (1)、标定,Halcon中进行9点标定的算子 % 前面求出图像坐标 area_center(SortedRegions,Area,Row

《视觉SLAM十四讲》笔记(ch7)

廉价感情. 提交于 2021-02-09 10:10:34
ch7 视觉里程计1 本章目标: 1.理解图像特征点的意义,并掌握在单副图像中提取出特征点及多副图像中匹配特征点的方法 2.理解对极几何的原理,利用对极几何的约束,恢复出图像之间的摄像机的三维运动 3.理解PNP问题,以及利用已知三维结构与图像的对应关系求解摄像机的三维运动 4.理解ICP问题,以及利用点云的匹配关系求解摄像机的三维运动 5.理解如何通过三角化获得二维图像上对应点的三维结构 本章目的:基于特征点法的vo,将介绍什么是特征点,如何提取和匹配特征点,以及如何根据配对的特征点估计相机运动和场景结构,从而实现一个基本的两帧间视觉里程计。 特征点:角点、SIFT(尺度不变特征变换,Scale-Invariant Feature Transform)、SURF、、ORB(后三个是人工设计的特征点,具有更多的优点) 特征点的组成: 1. 关键点 :指特征点在图像里的位置 2. 描述子 :通常是一个向量,按照某种人为设计的方式,描述了该关键点周围像素的信息。相似的特征应该有相似的描述子(即当两个特征点的描述子在向量空间上的距离相近,认为这两个特征点是一样的) 以ORB特征为代表介绍提取特征的整个过程: ORB特征:OrientedFAST关键点+BRIEF关键子 提取ORB特征的步骤: 1.提取FAST角点:找出图像中的“角点”,计算特征点的主方向

IMX6Q camera驱动总结 (2)

南笙酒味 提交于 2021-02-09 09:50:46
总体驱动理解如下: 1:如何在设备上创建一个摄像头文件,具体api是什么? 2:内核板级bsp做了什么?是如何与V4L2框架连接起来的? 3:我到底如何给板级bsp什么参数,才能让摄像头工作? ============================================================= 之前没有做过相关的camear 驱动经验,只是对V4L2 有所耳闻,但是知道一些基本的原生框架的API,于是我决定看看板级bsp做了什么让开发变得简洁。看了几天整理了如上内容决定依次解答。 1:对于原生V4L2 架构的API ,是 video_register_device() ,该函数是会创建 /dev/videox 节点的,但是对于我们这款 单板bsp ,官方api是 v4l2_int_device_register() ,其内部调用了原生api。 2:经阅读,发现mxc_v4l2_capture.c文件是做了一个camera的开天辟地的驱动。具体分析见 我的第三篇文章,这里做出一个总结。   2-1: Camera驱动是做了驱动和设备信息的分离 ,该文件是driver框架的一部分,用于读取设备信息如 ipu_id 和csi_id ,sensor的分辨率,引脚复用等等, 用来填充一个cam_data结构体 ,     这个cam_data至关重要

SEAM论文解读:弱监督语义分割的自监督等变注意力机制

十年热恋 提交于 2021-01-30 09:48:16
语义分割是一项基本的计算机视觉任务,其目的是预测图像的像素级分类结果。由于近年来深度学习研究的蓬勃发展,语义分割模型的性能有了长足的进步。然而,与其他任务(如分类和检测)相比,语义分割需要收集像素级的类标签,这既耗时又昂贵。近年来,许多研究者致力于弱监督语义分割(WSSS)的研究,如图像级分类标签、涂抹和边界盒等,试图达到可与全监督方法相媲美的分割性能。[1]侧重于通过图像级分类标签进行语义分割。 目前最先进的弱监督语义分割方法都是基于类激活特征图(CAM)实现的,它是一种通过图像分类标签定位目标的有效方法。但是CAM通常只覆盖到物体最显著的部分,通常在背景区域被错误激活,可以总结为目标激活不足和背景激活过度。 由不同比例的输入图像生成的CAM的比较。(a)常规CAM。(b)由我们的SEAM预测的CAM,它们在重新缩放后更加一致。来源[1] 当通过仿射变换对图像进行增强时,生成的CAM不一致,这些现象的根本原因是完全监督和弱监督语义分割之间的监督差距,并且使用分类获得的CAM之间存在无法克服的差距。网络和真实值因为分类和细分之间仍然存在本质的矛盾。 SEAM [1]将一致性正则化应用于来自各种变换图像的CAM,以提供用于网络学习的自我监督。为了进一步提高网络预测的一致性,SEAM引入了像素相关模块(PCM),该模块可以捕获每个像素的上下文外观信息

PCB被板厂做坏了,谁的锅?

你。 提交于 2021-01-26 02:44:43
不知道同学们做坏过 PCB 板没有?就是做出来的板子,是不能用的。我是有过的,印象中有两次。为什么同样的错误会多次出现呢?下面就来说下具体情况。 PCB 板做坏的过程 这两次大概是这样的,将生产文件发给板厂。回板之后,一看 PCB ,本来是插件 HDMI 座子, 通孔居然没有钻 ,直接废掉了。 出了问题,延误工期自然是一方面,还得找出这个 锅谁来背 吧? 要么设设计有问题,生产文件导错了 要么就是板厂做错了 1 、先检查设计:查看 PCB 封装,座子确实是设计的通孔没有问题,再将生产文件导入到 CAM350 里面来检测一下,可以看到,是有孔的。 2 、打电话给板厂,询问他们为什么做出来的板子没有孔,得到的答复是他们自己做错了,然后免费重做。 至此,锅成功甩给了板厂。 然而,这种未打孔的事情后续又发生一次,以致于后续发板得提醒板厂检查座子的通孔。在很长一段时间内,我对这个问题都是迷糊的,为什么板厂会做错呢?而且大部分情况是没问题的,小部分情况做错了,他们应该是专业的,这种事情应该不会发生才对。 后来,我无意中发现了问题的所在。 生产文件的问题 我用的是 Allegro 软件 设计的 PCB ,在 PCB 板子里面有非圆形孔的时候,导出的 Gerber 的时候,钻孔文件 不仅要导出 .drl 文件,还要导出 .rou 文件 ,有槽型孔,或者是其它不规则孔,都是需要导出 rou 文件的。

编程必备基础知识|计算机组成原理篇(02):计算机的分类

穿精又带淫゛_ 提交于 2020-12-27 09:03:03
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识。关于计算机基础的课程很多,内容繁杂,但无论是相关书籍还是大学课程,都有点脱离工作。特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力。 有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理、操作系统、计算机网络,文章选取了作为程序员最应该掌握的那部分知识,取其精华,弃之于程序员不重要的那部分内容。 目的是: 帮助大家形成计算机知识的结构体系 帮助大家理解计算机底层原理 帮助大家在工作实践中借鉴其中的优秀设计 本篇是计算机组成原理篇之计算机的分类。 欢迎关注、转发、收藏、评论 1.超级计算机 超级计算机是功能最强、运算速度最快、存储容量最大的计算机,多用于国家高科技领域和尖端技术研究,包括天气预报、海洋监测、生物制药、科学计算、核聚变核裂变模拟、加密解密算法的运算、军事战争模拟等等。 用来衡量超级计算机运算速度的单位是TFlop/s,1TFlop/s = 每秒一万亿次浮点计算。 截至目前,全世界超级计算机排名前三的见下图。 为什么神威太湖之光的处理器个数远超Summit,但算力还没有Summit高呢?这是因为神威太湖之光采用的全部是拥有自主知识产权的国产芯片。

全新时代背景下数字孪生技术在工业中的功能分析

本小妞迷上赌 提交于 2020-12-17 03:04:39
现阶段,智能制造系统是数字孪生体首要的、较大的应用领域。但仅仅只是考虑到这一情景还不够,战略上的思索也要从工业化、都市化和国际化的宏伟空间限度、从第四次工业革命和历次工业革命的宏伟时间尺度甚至人类幸福和文明的终结考虑,才可以确保发展战略的完善、一致和领跑。这就是终结逻辑思维,从最难、最高、最大的开始,倒序思索。 那么接下来的难题是,如今第四次工业革命仅是序幕打开,还未正式出场,怎样界定和预测分析其目标和过程?如何识别其核心技术要求?为界定和预测分析第四次工业革命的目标和过程,大家必须从时空两个层面对人类文明过程展开结构化分析。 一、人类文明过程的衡量 1964年苏联科学家尼古拉·卡尔达肖夫(NikolaiKardashev)明确提出根据一个文明所能运用的能量量级来考量其文明发展水准的卡尔达肖夫指数值来衡量人类文明过程。I型文明能应用其所属行星以及通讯卫星的全部可用资源;II型文明能运用其恒星的全部能源;III型文明能运用它所属星系的全部能源。1973年,美国科学家卡尔·萨根(CarlSagan)调整了卡尔达肖夫指数值,并增加了用26个英文字母来考量文明发展水准的信息内容层面(A型文明只能解决一百万条信息内容,仅有口语没有书面语言;古希腊文明大概有十亿比特信息内容,是C型文明)。他估算那时候地球文明的能量和信息内容指数值为0.7H;现阶段人类文明的卡尔达肖夫指数值约为0.73(图1)

NX二次开发-UFUN导入图框UF_PART_import

我们两清 提交于 2020-12-06 18:29:00
1 NX11+ VS2013 2 3 #include <uf.h> 4 #include <uf_part.h> 5 #include <uf_draw.h> 6 #include <uf_ui.h> 7 8 UF_initialize(); 9 10 // 查询图纸页tag 11 int Num_Drawings; 12 tag_p_t Drawing_Tags = NULL_TAG; 13 UF_DRAW_ask_drawings(&Num_Drawings, & Drawing_Tags); 14 15 if (Num_Drawings == 0 ) 16 { 17 uc1601( " 提示:当前没有图纸页 " , 1 ); 18 } 19 20 else 21 { 22 // 打开图纸 23 UF_DRAW_open_drawing(Drawing_Tags[ 0 ]); 24 25 // 导入图框 26 UF_import_part_modes_t Modes; 27 Modes.layer_mode = 0 ; 28 Modes.group_mode = 0 ; 29 Modes.view_mode = 0 ; 30 Modes.cam_mode = false ; 31 double Dest_Csys[ 6 ] = { 1.0 , 0.0 , 0.0 , 0.0

NX二次开发-Ufun API Example【持续更新】

三世轮回 提交于 2020-12-06 18:18:31
外部开发模式exe(不打开NX进行后台操作)以及封装exe传参调用 https://www.cnblogs.com/nxopen2018/p/12386103.html 图为张弛每天幻想开车 飞驰人生-张弛一段很励志的话:当拉力赛车在我身边呼啸而过,我知道!这将是我的一生热爱,我将为此一直奋斗! UF公共类型 1 UF_begin_timer计时函数 https://www.cnblogs.com/nxopen2018/p/10957135.html 2 UF_end_timer计时函数 https://www.cnblogs.com/nxopen2018/p/11099462.html 3 UF_initialize初始化 https://www.cnblogs.com/nxopen2018/p/10952538.html 4 UF_terminate终止 https://www.cnblogs.com/nxopen2018/p/10957141.html 5 UF_translate_variable获取环境变量路径 https://www.cnblogs.com/nxopen2018/p/10957146.html 6 UF_ask_system_info获取系统相关信息 https://www.cnblogs.com/nxopen2018/p/10957155.html 7

PCL点云库(Point Cloud Library)简介

蓝咒 提交于 2020-11-24 02:37:23
什么是PCL PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。 PCL的发展与创景 PCL起初是ROS(Robot Operating System)下由来自于慕尼黑大学(TUM - Technische Universität München)和斯坦福大学(Stanford University)Radu博士等人维护和开发的开源项目,主要应用于机器人研究应用领域,随着各个算法模块的积累,于2011年独立出来,正式与全球3D信息获取、处理的同行一起,组建了强大的开发维护团队,以多所知名大学、研究所和相关硬件、软件公司为主,可参考图1。截止目前,发展非常迅速,不断有新的研究机构等加入,在Willow Garage, NVidia, Google (GSOC 2011), Toyota, Trimble, Urban Robotics,