自定义博客皮肤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光明的博客

让你的编程不再孤立无援

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

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

恍恍惚惚一周,接着上次清明未完成的调试继续。上图是我的右手,这次是在户外调试,挨着草坪,全是蚊子,第一天调试时穿的短袜,脚脖上也被咬的全是。而且被咬了5,6天也没有消退,后面下午点蚊香调试,效果似乎也不明显。OK,调试场景大抵如此,其余可进行脑补。上周五到的,周六开始调试。最开始用叉车把机械臂整体从室内搞到户外,是个体力活,刚开始觉得有难度,后面3个人完成。之后户外...

2024-05-19 11:24:00 333

原创 EtherCAT通信特点_7

一个 EtherCAT 数据帧足以完成所有节点控制数据的发送和接收。 question:数据会不会超过限制?一个 EtherCAT 数据帧足以完成所有节点控制数据的发送和接收,这种高性能的运行模式克服了前面章节描述的各种问题!EtherCAT 主站发送一个报文,报文经过所有节点。EtherCAT从站设备高速动态地(onthe fly)读取寻址到该节点的数据,并在数据帧继续传输的同时插入...

2024-05-15 22:47:05 298

原创 工业以太网三剑客之EtherCAT_EtherCAT开发_6

运行机制:EtherCAT 的关键工作原理在于其节点对以太网数据帧的处理:在数据帧向下游传输的过程中,每个节点读取寻址到该节点的数据,并将它的数据写入数据帧。这种传输方式提高了带宽利用率,使得每个周期通常用一个数据帧就足以实现整个系统的数据刷新,同时,网络无需使用交换机或集线器。 网络性能:EtherCAT 处理帧的独特方式使得它成为最快的工业以太网技术;没有任何其他技术能获得比...

2024-05-12 10:43:17 164

原创 git cherry-pick冲突解决

我使用的vscode, 选择incomming,没实际图片,不贴了。然后 git push 即可。

2024-05-09 09:05:09 523

原创 EtherCAT开发_5_wireshark抓包记录

1、TwinCAT 设置成混杂模式保存后重启TwinCAT。此时我的设备无法进入OP状态,WireShark也没有任何数据。2、TwinCAT无法进入OP状态,如何再次进入到OP状态?①点击绿色按钮后,点击弹窗的确定按钮,消除弹窗,此时仍无法进入OP状态 ②重新加载设备选择是。可以了。3、EtherCAT数据帧初步分析EtherCAT采用标准的IEEE 802.3以太网帧,帧类型为0x88A...

2024-05-08 22:13:43 659

原创 EtherCAT开发_4_分布时钟知识点摘抄笔记1

分布时钟(DC,Distributed Cl ock) 可以使所有EtherCAT设备使用相同的系统时间,从而控制各设备任务的同步执行。从站设备可以根据同步的系统时间产生同步信号,用于中断控制或触发数字量输入输出。支持分布式时钟的从站称为 DC 从站。分布时钟具有以下主要功能: ·实现从站之间时钟同步·为主站提供同步时钟·产生同步的输出信号·为输入事件产生精确的时间标记· 产生同步的中...

2024-05-05 13:08:58 319

原创 EtherCAT开发_3_SSC生成协议栈移植到STM32F405

一、协议栈的生成协议栈的生成可参考《https://blog.csdn.net/g360250466/article/details/129847081》几个重点的字段:1、Hardware中EL9800_HW, 设置为1,在该基础上进行修改CONTROLLER_16BIT,设置为0CONTROLLER_32BIT,设置为1_IPC24, 设置为02、Applicati...

2024-05-03 20:55:48 323

原创 gitlab new commits, untracked content 调试记录

在子模块下执行 git clean -f, 变为new commits,new commits ,之前从主分支上拉过代码。

2024-04-29 11:17:28 86

原创 qt pro设置生成静态库

TEMPLATE= libCONFIG += staticlib

2024-04-29 09:25:26 228

原创 ubuntu22.04 修改密码You must choose a longer password

username根据自己用户名不同自己设置。然后根据提示修改密码。

2024-04-28 09:37:39 98

原创 8_手眼标定总结_auboi5机械臂与海康平面相机

经过不断地学习与调试,不断地学习网络上其他同志分享的资料,opencv手眼标定迎来了阶段性结束。实际测试结果在机械臂坐标系中X方向差5mm左右。 代码参考《https://blog.csdn.net/wanggao_1990/article/details/81435660》 注意事项:①标定板占据相机视野1/3左右,否则找不到角点②代码未使用openc...

2024-04-27 20:46:52 804 1

原创 7_手眼标定_3_求解AX=XB理论

之前的文章调用了一堆opencv接口,但是从来没有涉及任何手眼标定的理论知识,这次聊一聊手眼标定的理论知识。 手眼标定行业内分为两种形式,根据相机固定的地方不同,如果相机和机器人末端固定在一起,就称之为"眼在手" (eye in hand),如果相机固定在机器人外面的底座上,则称之为"眼在外" (eye to hand)。本文只聊眼在手上。 1、AX=XB推导...

2024-04-25 23:27:14 266 2

原创 VMWare ubuntu 18.04 网卡丢失

VMWare ubuntu 18.04 网卡丢失

2024-04-19 10:21:07 305 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 961

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

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

2024-04-15 18:14:37 442

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

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

2024-04-12 17:35:14 259

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

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

2024-04-12 15:08:44 837

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

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

2024-04-11 00:26:30 608

原创 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 409

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

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

2024-04-04 10:06:00 247

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

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

2024-03-30 15:21:23 410

原创 qt during startup program exited with code 0xc0000135

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

2024-03-28 10:05:31 270

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

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

2024-03-26 18:58:26 1472

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

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

2024-03-24 11:26:46 123

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

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

2024-03-23 21:22:09 413

原创 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 567

原创 Linux gcc二进制下载地址

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

2024-03-21 22:30:23 244

原创 ARM下文件压缩与解压

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

2024-03-20 19:06:42 132

原创 ARM架构Linux查收看版本

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

2024-03-20 19:02:55 149

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

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

2024-03-18 23:00:19 744

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

C++11 才支持的功能。

2024-03-18 15:15:44 343

原创 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 350

原创 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 577

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

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

2024-03-11 19:19:42 371

原创 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 1097

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

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

2024-03-06 22:31:35 375

原创 4_相机透镜畸变

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

2024-02-27 19:18:50 596

原创 3_相机模型

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

2024-02-26 20:26:21 481

原创 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 584

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

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

2024-02-19 21:33:29 399

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关注的人

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