Upupup6
这个作者很懒,什么都没留下…
展开
-
Socket:注意事项
socket通信客户端和用户端的程序里,出现了多种数据结构,调用了多种函数,使用小白的我要了解socket通信的过程,每段代码的用途和函数调用的功能,但是注意不要去纠结这些结构体和函数的参数,这些函数和参数虽然比较多,但是可修改的比较少,使用过程中,按照固定格式别抄错就可以了。1、socket文件描述符socket()函数返回值;2、服务端程序绑定地址如果服务器有多个网卡,多个IP地址,socket通信可以指定用其中一个地址来进行通信,也可以任意IP地址。1)指定ip地址的代码。m原创 2020-11-30 10:48:28 · 379 阅读 · 0 评论 -
1.Socket通信
本博客部分内容参考教程来自C语言中文网。进入socket通信首先要了解两个概念,第一:服务器端,第二:客户端。(区别是两者的服务对象不同。服务器端是为客户端服务的,客户端就是为真正的“客户”来服务的,所以这两者之间不同,但又密切相连,客户端是请求方或者说是指令发出方,而服务器端是响应方。)服务器端:顾名思义是服务的,客户端发送的请求交给服务器端处理,是以response对象存在,服务器端处...原创 2019-12-13 13:51:37 · 201 阅读 · 0 评论 -
Socket:UDP协议小白
UDP(user datagram protocol)用户数据报协议,属于传输层。首先要搞清楚网络通信的几个层次:OSI 是 Open System Interconnection 的缩写,译为“开放式系统互联”。OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。OSI 只是存在于概念和理论上的一种模型,它的缺点是分层太多,增加了网络工作的复杂性,所以没有大规模应用。后来人们对 OSI 进行了简化,合并了一些层,最终只保留了 4 层原创 2020-10-31 18:12:57 · 974 阅读 · 0 评论 -
基于openCV的项目实战1:信用卡数字识别
目的:识别信用卡卡号;方法:基于模板匹配;模板匹配思想:拿4和左边模板进行一一匹配,算一下平方项的差异,恰好4和左边模板中的4差异最小,所以就知道当前的数字是4;具体步骤:第一步:找到与你当前非常接近的一个模板;第二步:把模板中每一个数字单独拿出来,(基于轮廓检测拿到每一个数字的外轮廓的外接矩形)第三步:在待检测区域中做同样的事情,拿到数字的每一个外接矩形;第四步:使用for循环对第三步中的第一个外界矩形与模板中的进行一一匹配(在匹配过程中需要进行一个resize,比如说模.原创 2021-11-12 16:36:51 · 3756 阅读 · 0 评论 -
基于近距离的测距感知传感器调研以及扩展介绍
首先想实现的目的是:(有两个,第一个是距离检测;第二个是已完成的码垛箱体边缘位置检测。)1、在码垛机器人的三面装上传感器,实现前、左、右的距离感知。(环境是:机器人需要进入码头的大集装箱里边,实现在集装箱内部的码垛,该集装箱内部是类似于锯齿状的结构,所以左右不能用点激光来进行距离的检测,至少应该是线激光。前边要检测的是距离已完成的码垛箱体的距离位置。)2、找到已完成的部分码垛的箱体的边缘位置,从而引导下一步码垛时的位置矫正。---------------------1针对于第一个问题的调研:原创 2020-10-19 11:18:59 · 1488 阅读 · 0 评论 -
SICK LMS151-10100使用攻略
PS.首先在拿到仪器之前一定要把官方自带的操作指南浏览一遍,这样你对仪器有个整体的把握了解。1.LMS系列激光扫描器原理():激光发射器发出激光脉冲,当激光脉冲碰到物体后,有部分激光脉冲反射回激光接收器,通过发射与接收激光脉冲的时间差(与光速)可计算出物体的距离。激光扫描器连续不停的发射激光脉冲,由内置的旋转光学机构将激光脉冲按照一定的角度间隔(即扫描的角度分辨率)发射到扫描角度内的各个方向而...原创 2019-07-29 09:16:33 · 2271 阅读 · 11 评论 -
ladar:16线激光雷达(雷神)
2、结果:原创 2020-09-25 12:21:51 · 1698 阅读 · 0 评论 -
SICK 单线激光雷达LMS511
(在连接激光雷达的时候,一定将个人电脑跟激光雷达配置在一个IP网段比如:sensor是192.168.0.1那么个人电脑就可以配置为192.168.0.2)对于单线激光雷达如何产生单帧与多帧数据解读:此图为LMS511单线激光雷达,“北京首个自动驾驶测试场启用”新闻中出现的福田自动驾驶汽车就使用了4个单线激光雷达,分别布置于无人车的前后左右,用于车身周围障碍物的检测,如图。 ...原创 2019-12-25 13:39:54 · 4221 阅读 · 0 评论 -
QT:qt安装缺少GUI Application 选项
https://blog.csdn.net/HeyLoong/article/details/106330838转载 2020-07-29 09:48:05 · 2700 阅读 · 0 评论 -
halcon与QT联合:(5.2)瓶盖检测以及QT界面搭建
在上一个博客5.1中只是做了一个简单的界面,下面我们将在界面上添加按钮、添加资源、画图(包括画圆、画矩形)、管理参数(参数的自动加载与保存)1、添加按钮、添加资源(类似于软件界面上方菜单栏的设置)1.1添加那妞PS:输入后要回车(不然添加不上)顺便把右边对应的属性下:QObject下的objectName改一下:分别改为drawCircle、drawRectangle、drawRectangle2。下面操作下边对应的Action Editor:还可以右键转到槽:...原创 2021-07-26 16:43:29 · 1050 阅读 · 2 评论 -
Halcon与QT的联合编程(1)
1、halcon代码的封装在对代码进行封装的时候,你一定要考虑你的输入输出是什么?以输入:图像输出:点、矩形、2个数字。(点和矩形是为了展示给客户看的)步骤:(1)首先选中要封装的代码,右键创建一个新函数,进入如下界面:一般文档里面你也可以进行描述一下信息。初学者暂时只需要选择本地程序函数即可,下边的库函数和函数文件,就是自己定义的可以一直用他一直存在。但是本地函数他是本地的,只存在这个项目中。图中箭头的进出分别表示参数的输入与输出。(2)点击应用就会完成函数的封装。原创 2021-07-23 23:17:17 · 6972 阅读 · 15 评论 -
halcon与QT联合:(5.1)瓶盖检测以及QT界面搭建
halcon实现瓶盖检测与定位代码:dev_close_window()dev_open_window(0, 0, 1024, 1024, 'black', WindowHandle)list_image_files('C:/Users/TIMI/Desktop/picture/circle', 'default', [], ImageFiles)for J := 1 to 4 by 1 *read image read_image(halconImage, ImageFil原创 2021-07-25 21:48:01 · 870 阅读 · 0 评论 -
QT:(2)Window10、VS15下安装qt5.12.8
11原创 2020-07-28 14:48:46 · 638 阅读 · 0 评论 -
Halcon与QT的联合编程(2)
在(1)的基础上继续对halcon与QT的联合编程项目进行扩展。1、添加类的两种方法:1.1、添加C++类1.2、添加设计师界面类QT的设计类他是有界面的。如果有些参数需要修改的话可以在这个界面上进行修改。本案例参数比较少选择添加C+类即可。---------------------------------添加C+类------------------1、添加这个因为是写在MainWindow下面,代码比较多,所以把图像处理单独写在一个类里面。Details:暂.原创 2021-07-24 16:36:49 · 831 阅读 · 2 评论 -
halcon与QT联合:(5.4)瓶盖检测以及QT界面搭建
接着上篇博客的鼠标滚轮事件之后,本次要完成的是基于结构体的参数管理以及如何让参数与界面进行关联。---------------------------------下面实现的是参数管理----------------------------------PS:如果你是基于结构体的变量管理:个人习惯:在写结构体时单独去写一个文件,起名为公共部分,(这个部分就可以把需要用到的结构体或者define变量,就是每一个成员都可能会用到的变量都可以放在这里 )添加---->Add New---原创 2021-08-03 15:59:36 · 1079 阅读 · 1 评论 -
QT:(3)在VS2015下配置qt
接上一篇我们已经在Win10下安装了QT5.12.8。因为使用VS2015习惯了所以想在VS2015上配置一下qt。方法如下:1、在开始菜单下选择VS2015打开。(可以是VS的其他版本,本人使用的是VS15而已)2、选择菜单栏上的工具--->扩展和更新3、之后按照1234步骤进行下载安装,重启VS2015即可。4、安装完成后重启VS2015之后就会看到菜单栏处多一个菜单项Qt VS Tools。5、点击Qt VS Tools--->Qt Options,做如原创 2020-07-28 20:42:27 · 1383 阅读 · 0 评论 -
halcon与QT联合:(5.3)瓶盖检测以及QT界面搭建
接着上篇博客的添加资源之后,本次要实现的是鼠标的滚轮功能图片的缩放。在QT代码中中文乱码的处理方法:qDebuge()<<QString::fromLocal8Bit("这个图像的Row坐标:=")<<Row[0].D();一般halcon里边里边的数据Row我们会把它当做tuple,数组,他有可能不是一个值,他有可能是多个值,所以要默认只有一个数的时候,使用0下标。.D就是你把halcon里边的数据拿出来的话,需要进行转化。这里是转化为double。下面是..原创 2021-07-28 14:44:47 · 528 阅读 · 0 评论 -
QT:(4)解决在VS15下配置QT后没有QT GUI Application选项
妈呀折腾了一上午终于出来了其实就是按照其他博客的思路解决的,最主要就是注意一下细节。1、首先卸载之前安装的。(注意自动更新扩展一定不要勾选上)2、进入下边网站下载,点击安装即可。(本次下载的是2.4.3)https://download.qt.io/official_releases/vsaddin/2.4.3/3、重新添加路径...原创 2020-07-29 10:13:11 · 5840 阅读 · 7 评论 -
QT:(1)QT下载地址
QT官网:http://download.qt.io/选择进入自己想要安装的版本。我下载的版本是:http://download.qt.io/archive/qt/5.13/5.13.2/(没有看到x64,所以就咨询别人说X86在X64平台下可以完全兼容。)点击Details,之后就进去借助国内镜像下载比较快:之后就是下载安装了。...原创 2020-06-15 14:15:18 · 303 阅读 · 0 评论 -
3D相机调研
最近因为自己实验需要配置一个3D相机,安装在机械臂上实现eye in arm的自动化引导过程,调研结果记录如下:3D相机又称为深度相机,即通过该相机能检测出拍摄空间的景深距离(与普通相机(2D的最大区别))。普通彩色相机(2D相机)拍摄到的图片能将看到相机视角内的所有物体记录下来,但是其记录的数据不包含这些物体离相机的距离,我们仅仅是通过图像的语义分析来判断出哪些物体离我们比较远,哪些物体比较近,只是没有具体的数据表示。而3D相机通过获取到的数据,我们可以准确知道图像中每个点离摄像头的距离,这样再加原创 2020-08-31 17:35:06 · 443 阅读 · 0 评论 -
深度相机分类:TOF、RGB双目、结构光 对比分析
目前的深度相机根据其工作原理可以分为三种:TOF、RGB双目、结构光一、RGB双目RGB双目相机因为非常依赖纯图像特征匹配,所以在光照较暗或者过度曝光的情况下效果都非常差,另外如果被测场景本身缺乏纹理,也很难进行特征提取和匹配。你看看下面的图就懂了。三种相机的参数对比:从分辨率、帧率、软件复杂度、功耗等方面来考虑(1)分辨率TOF方案深度图分辨率很难提高,一...转载 2020-04-20 14:50:54 · 3518 阅读 · 0 评论 -
ROS与深度相机入门教程:(2) 在ROS中驱动Intel D435i深度相机采集数据(遇到的问题)
在ROS环境下完成数据的安装,需要安装基于ROS使用RealSense的包(包含安装RealSense SDK和ROS Kinetic)接上篇:https://blog.csdn.net/m0_37957160/article/details/105633516上篇博客完成了基于Ubuntu16的D435i的RealSense的包。这篇博客完成了ROS Kinetic的安装与配置。链接...原创 2020-04-23 14:58:45 · 1687 阅读 · 2 评论 -
ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机
Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400、SR300系列深度相机和T265双目跟踪相机,支持Linux、Windows、Mac OS以及Android,链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installin...原创 2020-04-21 09:53:25 · 1730 阅读 · 0 评论 -
项目3:(9)与安川控制器P3000通信模块代码
1、common.h//通信传输的IP地址typedef struct{ char serverIp[16]; int iPort;}CONNINFO; //定义连接信息数据结构//定义发送数据的结构体typedef struct{ double R_Box_Num;//每行箱数Row_Box_Num double S_Layer_Num;//堆垛层数Stacking_Layer_Num double S_Row_Num;//堆垛行数Stacking_Row_Num doub原创 2021-06-06 17:25:41 · 230 阅读 · 0 评论 -
在Win10下如何实现VS下工程代码的开机自启功能
原来不知道自己写的原创 2020-11-23 14:20:52 · 758 阅读 · 0 评论 -
直线检测控制小车左右偏移
在小车的前边和左边分别安装一个雷达,每个雷达都有自身的坐标系。小车是在集装箱内部作业的,所以前向雷达和左向雷达分别检测的是直线,确定该条直线与雷达自身坐标轴Y轴正向的距离和夹角来进一步控制小车的姿态。下图是检测直线与Y轴正向夹角的锐钝说明,通过根据锐角还是钝角的结合分析,来判断小车的车体是左偏移还是右偏移。代码如下:...原创 2021-04-27 14:57:49 · 179 阅读 · 0 评论 -
避障雷达IO输出记录
避障雷达的使用首先需要在软件上划分区域,区域一共可以划分为3个:代码实现部分://第四个雷达处理算法(后边雷达)int alarm(int a){ int b; int array[8]; for (int i = 0; i<8; i++) { b = a & 1; a = (unsigned int)a >> 1; array[i] = b; //std::cout << array[i] << std::endl原创 2021-04-27 14:49:31 · 134 阅读 · 0 评论 -
求多个拐点坐标并可视化显示
实验场景如下:使用的是二维雷达:源代码为:#include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/surface/concave_hull.h> #include <pcl/segmentation/sac_segmentation.h>#include <pcl/原创 2021-04-09 10:53:06 · 1342 阅读 · 6 评论 -
3D相机(1):1、了解
前言:随着机器视觉, 自动驾驶等颠覆性的技术逐步发展, 采用 3D 相机进行物体识别, 行为识别, 场景建模的相关应用越来越多, 可以说 3D 相机就是终端和机器人的眼睛。那什么是 3D 相机呢? 跟之前的普通相机(2D) 比, 又有哪些差别?3D 相机又称之为深度相机, 顾名思义, 就是通过该相机能检测出拍摄空间的景深距离, 这也是与普通摄像头最大的区别。 普通的彩色相机拍摄到的图片能看到相机视角内的所有物体并记录下来, 但是其所记录的数据不包含这些物体距离相机的距离。 仅仅能通过图...转载 2020-12-03 15:21:10 · 843 阅读 · 0 评论 -
项目3:(4)点到直线的距离以及夹角
在第三步我们求出了直线的点向式方程,即://提取两条直线void linetwo(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, std::vector<pcl::ModelCoefficients> a){//a是存储的拟合的直线的模型系数 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_p(new pcl::PointCloud<pcl::PointXYZ>), clou原创 2020-11-11 09:21:47 · 487 阅读 · 0 评论 -
【物料钢卷识别与定位】:1.读取数据(获取原始数据)
首先获取的数据是一个txt文档,展示如下,如果不方便理解可以在excel中打开此txt文档来查看。原创 2020-06-29 16:24:15 · 568 阅读 · 3 评论