自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pou光明的博客

让你的编程不再孤立无援

  • 博客(288)
  • 资源 (4)
  • 收藏
  • 关注

原创 VMWare ubuntu 18.04 网卡丢失

VMWare ubuntu 18.04 网卡丢失

2024-04-19 10:21:07 278 1

原创 EtherCAT开发_2_SSC使用记录

SSC快速开始参考《EtherCAT Slave Design Quick Guide》字段内容直接参考SSC工具右侧Description,本文未填写。中文也可直接参考:《https://blog.csdn.net/g360250466/article/details/129847081》① Select EL9800 | 8Bit Digital I/O, 16Bit Analog Input...

2024-04-17 23:22:28 909

原创 EtherCAT开发_1_软硬件环境介绍

术语缩略表:ESC EtherCAT Slave ControllerESI EtherCAT Slave Information一、etherCAT硬件方案EtherCAT的从设备是需要使用专用的通信芯片才可以完成传输的,比如EtherCAT的开发者“倍福(Beckhoff)公司“的官方原厂芯片ET1100,其他的各个芯片厂商会取得倍福公司的内核授权,开发相关芯片,如亚信的AX581...

2024-04-15 18:14:37 373

原创 手眼标定问题排查_圆网格数据排查

经过昨天晚上的调试,发现了一个主要问题:使用圆网格标定板标定时,不能使用cornerSubPix()函数,否则寻找角点时,会导致图一的情况(裁剪为30万像素)。就找到能参考的程序,推进还是很快的。图一一些数据对比:棋盘格:30万像素:RMS error reported by calibrateCamera: 0.0595766全像素:RMS error reported by calibrate...

2024-04-12 17:35:14 253

原创 手眼标定问题排查_2_圆网格数据排查

经过昨天晚上的调试,发现了一个主要问题:使用圆网格标定板标定时,不能使用cornerSubPix()函数,否则寻找角点时,会导致图一的情况(裁剪为30万像素)。就找到能参考的程序,推进还是很快的。目前这个相机标定程序比较OK,至此棋盘格和圆网格两种标定板。有需要的同志可在公众号后台留言“改进的相机标定程序”。这些数据看着就挺正常的。下次把有问题的数据列下。未调用cornerSubPix()接口,调用cornerSubPix()接口,上面数据均未使用图片校准。

2024-04-12 15:08:44 831

原创 手眼标定问题排查_1_棋盘格相机内参标定姿态数据

之前手眼标定数据不对,要分析找问题原因,这个过程还是有意思的。正值出差,搞起来也费劲。所以只能趁有兴致的时候多看点儿。总体思路是先参考别人已经成功的。本身opencv官方是有相机标定例程的,官方出版的。这次使用的是在网上找到的,网址如下:https://blog.csdn.net/wanggao_1990/article/details/81435660。选择它的原因是作者放了成功的视频,是可信的...

2024-04-11 00:26:30 600

原创 1_工业总线开发方案概述

准备进一步深入了解工业现场总线知识,搜索到的知识记录于此。一、开源学习资料 1. EtherCAT 主站: https://github.com/ribalda/ethercat基于官方,功能更为全面的igh etehrcat主站https://github.com/leducp/KickCAT一个C++写的全新etehrcat主站,目前功能不完善,持续更新SOEM(Sim...

2024-04-07 21:19:16 391

原创 深圳_现场调试总结_20240404

2024年清明假期第一天,这个清明在深圳。文字记录留痕,希望下次少犯类似的错误,减少各类成本。项目概述:3D视觉引导机械臂完成充电枪的插拔,增加力传感器,完成整个动作流程。前期研发对接,一阶段对接到事业部现场调试。前期准备:开始预调试时比较急,借了一个带力传感器的机械臂调试,此时时间线为周五,调试了一天,预计周一有机械臂,所以使用了一天。该时间线后一周发货,此时有一周时间调试。故此时为一周时间调试...

2024-04-04 10:06:00 241

原创 7_手眼标定_1_一个失败的流程记录

1.Opencv3手眼标定接口介绍 一些基础知识:手眼标定分为两种:眼在手上和眼在手外。文章数据采集的是眼在手上。坐标系:base:机械臂基坐标系,一般在机械臂底座,一般是机械臂的默认坐标系。gripper:机械臂工具坐标系(实际中机械臂都需要携带工具),例子中使用机械臂法兰中心的数据,未使用工具。cam:相机坐标系target:标定板坐标系 对于眼在手上,标定求解...

2024-03-30 15:21:23 404

原创 qt during startup program exited with code 0xc0000135

Windows 下Qt 运行之前的程序,报如上错误。经过排查是缺少运行库。将运行库放置和可执行程序同一目录即可。

2024-03-28 10:05:31 264

原创 6_相机坐标系_相机4个坐标系详述

相机系列文章是用来记录使用opencv3来完成单目相机和6轴机械臂手眼标定。本人吃饭的主职是linux下6轴机械臂相关应用开发。但对于机械臂运动学、相机应用等都非常感兴趣,所以对一些线性代数基础薄弱又想深入了解机械臂内部运算的同志比较有体会。由于是探索性学习,所以文章并没有太多规律而言,更像是技术路线调整,但这更贴近实际。探索事物本质是快乐的,强者不是天生的,而是学习思考来的。最近...

2024-03-26 18:58:26 1461

原创 Linux GLIBCXX_3.4.22版本查询指令(先更后改)

scp将本地文件拷贝到远程目标机器。

2024-03-24 11:26:46 86

原创 6_相机坐标系_1_相机标定概述

本例的函数使用所谓的针孔相机模型。在此模型中,场景视图是通过使用透视变换将 3D 点投影到图像平面来形成的。 (X, Y, Z) 是世界坐标空间中 3D 点的坐标(u, v) 是投影点的坐标(以像素为单位)A是相机内参矩阵(cx, cy) 是通常位于图像中心的主点fx、fy 是以像素单位表示的焦距。 因此,如果来自相机的图像按一个因子缩放,则所有这些参数都应按相同的...

2024-03-23 21:22:09 405

原创 ubuntu安装多个gcc并设置可切换

update-alternatives: --install 需要 <链接> <名称> <路径> <优先级>安装,比如说我想安装gcc-7,则命令为。3. 设置gcc/g++ 版本可切换。测试环境: Ubuntu16.04。1. 查看当前有几个gcc,g++2. 安装特定gcc/g++ 版本。4.切换系统的gcc/g++版本。有两个版本,5和7.

2024-03-23 13:14:18 499

原创 Linux gcc二进制下载地址

【代码】Linux gcc二进制下载地址。

2024-03-21 22:30:23 216

原创 ARM下文件压缩与解压

【代码】ARM下文件压缩与解压。

2024-03-20 19:06:42 99

原创 ARM架构Linux查收看版本

【代码】ARM架构Linux查收看gcc版本。

2024-03-20 19:02:55 128

原创 5_相机标定_4UVC相机图像校准

30万像素UVC相机拍摄图片,与海康600万像素相机无法相比,但这个更贴近入门。想起我们一个大三学弟带大一的:有些小同志没电脑但是有手机,然后给他们手机上整了一个软件,在手机上编C语言程序。属实震惊了我,只要思想不滑坡,办法总比困难多。 有了cameraMatrix和distCoeffs这两个相机内参后,我们可以做什么?之前600万的工业相机几乎看不到图像畸变,所以买了一个UVC...

2024-03-18 23:00:19 735

原创 Compile error when using std::hash; does not name a template type

C++11 才支持的功能。

2024-03-18 15:15:44 338

原创 5_相机标定_3_calibrateCamera()例子

上次介绍了calibrateCamera()接口参数,这次实际调用。程序中所用标准标定板。一、图片预处理使用的图片原像素是3072*2048,即600万像素,处理起来不快;改成了560*420,即20万像素。调用opencv接口如下:// 最小分辨率(560x420像素) Size dsize = Size(560, 420); Mat shrink; resi...

2024-03-17 20:17:22 331

原创 5_相机标定2_calibrateCamera()与内外参

彩色角点图片镇楼opencv官方文档:https://docs.opencv.org/4.8.0/d4/d94/tutorial_camera_calibration.htmlhttps://docs.opencv.org/3.4.18/d9/d0c/group__calib3d.html#gaebfc1c9f7434196a374c382abf43439b相机标定目的:cv::calibrat...

2024-03-15 20:29:49 444

原创 arm linux(aarch64) 设置动态库环境变量

运行可执行程序前先设置环境变量,如将上述指令存取env.sh中, 在终端执行source ./env.sh。环境变量仅对当前终端生效。./代表库文件所在目录,

2024-03-11 19:19:42 349

原创 linux_aarch64_qt环境搭建

平台环境:ubuntu 16.04:gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)aarch64 gnu gcc版本:gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu.tar.xzQt交叉编译版本:qt-everywhere-src-5.12.9.tar.xz一、aarch64...

2024-03-10 17:06:24 999

原创 5_相机标定_1_标定板选取与角点绘制

一、旋转矩阵与平移向量对于每一幅相机得到的特定物体的图像,我们可以在摄像机系统上用旋转和平移来描述物体的相对位置。如下图。通常任何维的旋转可以表示为坐标向量与合适尺寸的方阵的乘积(旋转矩阵)。最终一个旋转等价于在另一个不同坐标系下对点位置的重新描述。由之前刚体知识知道可以用三个角度来表示旋转,用三个参数(x,y,z)来表示三维平移。因此总共有6个参数。对相机而言,OpenCV内参矩阵有4个参数(f...

2024-03-06 22:31:35 359

原创 4_相机透镜畸变

理论上讲,是可能定义一种透镜而不引入任何畸变的。然而现实世界没有完美的透镜。这主要是制造上的原因,因为制作一个“球形”透镜比制作一个数学上理想的透镜更容易。而且从机械方面也很难把透镜和成像仪保持平行。下面主要描述两种主要的透镜畸变并为他们建模。径向畸变来自于透镜形状,而切向畸变则来自于整个摄像机的组装过程。径向畸变,实际上摄像机的透镜总是在成像仪的边缘产生显著畸变。对径向畸变,成像仪中心(光学中心...

2024-02-27 19:18:50 592

原创 3_相机模型

相机标定对于联系相机测量和真实三维世界测量也很重要。它的重要性在于场景不仅仅是三维的,也是物理单位度量的空间。因此,确定相机的自然单位(像素)与物理单位(如mm)的关系是三维场景重构的重要部分。相机标定的过程既给出相机的几何模型又给出透镜的畸变模型,这两个模型定义了相机的内参。单应性变换(homography transform):它是一种能反应相机基本行为、各种失真和矫正特性的数学工具。...

2024-02-26 20:26:21 477

原创 2_linux海康工业相机环境搭建与测试

测试平台:VMWare虚拟机中ubuntu 18.041、海康相机资料资料下载:https://www.hikrobotics.com/cn具体软件:MVS是海康官方用sdk自己实现的相机控制软件,Runtime组件包是sdk开发库和驱动。我用的是图中这两个软件版本,实际安装完后MVS的Runtime是4.3.0的,后来就用MVS里面的库和头文件了。一些例子可以查看doc文件夹下内容...

2024-02-20 19:15:40 478

原创 error: missing space between ‘ “ “ ‘ and suffix identifier

解决方法:在""与_之间加一个空格。

2024-02-19 21:33:29 379

原创 Windows常用小工具集合

1、查看cpu温度。

2024-02-18 11:13:30 344

原创 1_opencv3环境搭建与测试

之前2020年5月写过一次,时隔3年多,有机会再重新写一次。相比之前,应该是有一点儿进步的。之前是使用默认安装路径,所以无需配置共享库的搜索路径。这次是自定义安装路径,略有区别。随着写程序的时间增长,编译开源库时,更加青睐自定义安装路径,方便添加与移除。1、系统环境ubuntu 18.04gcc :7.5.0(gcc --version)g++ :7.5.0cmake : 3.10.2opencv...

2024-02-13 12:22:20 386

原创 8_姿态的其他描述及一般坐标系映射

1.机器人姿态的其他表示方法 前面说的用3×3矩阵矩阵描述姿态,9个元素,6个约束条件,实际上只有3个独立元素。即用3个独立元素即可描述机器人姿态。常用的有RPY角,欧拉角和四元数。1.1RPY角RPY角是船舶在海上航行时常用的一种姿态表示方法,其笛卡尔坐标建立方法如下:以船头前进方向为Z轴,以垂直于甲板平面的法线向上方向为X轴,Y轴依据右手法则由X、Z确定。定义绕Z轴的转动为Roll(...

2024-02-07 18:53:42 885

原创 7机器人位姿的数学描述与坐标变

由上次刚体的空间转动直接切换为机器人相关术语。1.机器人位姿的数学描述与坐标变换1.1位姿描述{B}相对于{A}的姿态描述用3x3矩阵表示为:式中为三个单位正交主矢量,分别表示刚体坐标系{B}的三个坐标轴XBYBZB在参考系{A}中的方位,∠XBXA表示坐标轴XB与坐标轴XA之间的夹角,其他的类似。姿态矩阵具有如下特点:1>共有9个元素,但只有3个是独立的,有6个约束条件:2>是单位正...

2024-02-06 16:16:53 1331

原创 10_机械臂运动学_机械臂C++逆解——2023

就是算!遨博机械臂改进DH参数表:机械臂正运动学连杆变换通式:其中si代表sin(θi),ci代表cos(θi)sij代表sin(θi-θj),cij代表cos(θi-θj)sijk代表sin(θi-θj+θk),cijk代表cos(θi-θj-+θk),用两角和差公式直接展开即可.每一个连杆变换矩阵:06T中第四列的前三行数据就是机器人末端连杆在笛卡儿坐标系里的位置参数,前面3*3矩阵表示姿态。...

2024-02-05 00:17:34 962

原创 6_机械臂运动学_刚体转动的描述

1.方向余弦矩阵如果在向量空间里再定义向量的长度和角度等概念必须定义内积,定义了内积的向量空间称为欧氏空间。1.1 标准正交基标准正交基也叫规范正交基。实际上,如果这些基向量互相垂直,就叫正交基,而且每个基向量的长度等于单位1的话,那么这个基就叫标准正交基。1.2 二维空间标准正交基其中为基向量逆向旋转的角度。这正是单位向量圆的参数表示式。对应旋转矩阵:1.3 三维空间R3标准正交基三维空间R...

2024-01-30 19:38:58 402

原创 9_机械臂运动学_正解C++推导验证

1.前置知识1.1 D-H矩阵表达式(改进型)相邻连杆间坐标系变换通式:R = Rot T = Transi-1iT = Rx(αi-1)Tx(ai-1)Rz(θi)Tz(di) (9-1)i-1iT = Screwx(ai-1, αi-1 )Screwz(di, θi)ScrewQ(r, φ)代表沿Q轴平移r,再绕Q轴旋转角度φ的组合变换。由矩...

2024-01-28 21:02:40 454

原创 5_机械臂运动学基础_矩阵

上次说的向量空间是为矩阵服务的。1、学科回顾 从科技实践中来的数学问题无非分为两类:一类是线性问题,一类是非线性问题。线性问题是研究最久、理论最完善的;而非线性问题则可以在一定基础上转化为线性问题求解。线性变换:数域F上线性空间V中的变换T若满足条件:T(a+ b) = Ta+ Tb(a,bϵV) T(ka) = kTa(kϵ F, aϵ V)...

2024-01-24 00:00:44 760

原创 4_机械臂运动学基础向量空间

在了解机械臂正解推导的过程中,几个问题一直困扰着我:1、为什么3*3矩阵可以描述姿态?矩阵更进一步的意义是什么?姿态是否有其他的描述方式,如果有是什么?2、机械臂法兰中心相对于基座的坐标,6个矩阵连乘的进一步意义?翻阅过一些材料,《机器人学导论》、《机器人学》(战强)、《机器人学》(蔡自兴,谢斌),并未解惑。于是自己搜索一些材料,尝试学习。该从何说起呢?1、向量空间1.1向量空间设V是非空的n维向...

2024-01-23 00:15:26 344

原创 3_机械臂运动学之刚体的运动

机械臂为什么是6个自由度?1.刚体力学自由度:把确定一个力学体系在空间的几何位形所需要的独立变数的个数称为自由度.刚体 :刚体是这样一种质点组,组内任意两质点间的距离保持不变.2.刚体的运动2.1.1 刚体的自由度和运动的分类1. 自由刚体的自由度在三维空间中,含有 N 个质点的自由质点系的自由度为3N.但具有N个质点的刚体,其自由度却远远取不到这个值,因为这些质点彼此的距离必须保持不变,刚体的自...

2024-01-20 09:15:11 366

原创 qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““

将Windows下打包发布的platforms文件夹拷贝到可执行程序目录。链接了一些64位的第三方库,程序编译完运行后出现。系统环境:Win10家庭中文版。

2024-01-15 21:16:26 783

原创 机械臂运动学D-H参数学习笔记(2)

图片主要来自《机器人学导论》,部分来源网络。D-H建模方法主要有两种:标准D-H和改进D-H。区别是连杆坐标系{i}建立在i关节轴线上的是改进型,连杆坐标系{i}建立在i+1关节轴线上的是标准型。标准D-H方式在处理树形结构和闭链结构的建模时会出现问题,改进的更具有通用性。1、机械臂运动学概述连杆描述:操作臂可以看成由一系列刚体通过关节连接而成的一个运动链,将这些刚体称为连杆。连杆0:连杆长度a:...

2024-01-13 10:28:25 433

ThreadClientSendPicture.zip

Qt 线程中使用socket发送图片数据,由于图片数据较大,进行了拆包操作。想要具体了解可参考之前的博客。https://blog.csdn.net/ACK_ACK/article/details/98565090

2019-09-07

ConditionWait.tar.gz

使用条件变量域互斥锁来同步生产者和消费者之间访问临界区数据问题,大幅降低CPU占用率问题。

2019-08-20

NRF无线通信

NRF通信

2016-12-21

蓝牙开发书籍

想开发蓝牙的可以看看一看,里面有协议栈,链路等等的介绍

2015-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除