- 博客(99)
- 资源 (31)
- 收藏
- 关注
原创 激光雷达与组合贯导(imu)联合标定方案三(含源码)
目录原理提取单帧点云及其对应的四元素与gps,并求解出贯导坐标系下的标记点坐标三级目录原理拿纸箱或角反射器作标记物,记录标记点gps位置,让无人机携带激光雷达与组合贯导扫描标记点,提取出含标记点的某一帧点云及其对应的四元素与gps,然后可以通过matlab提取出标记物点云坐标,同时可以根据四元素与gps计算出此时标记点在贯导坐标系中的坐标。按照这种方法,改变标记物位置,获取多组点对,然后通过ICP算法求解出雷达到贯导之间的旋转矩阵。提取单帧点云及其对应的四元素与gps,并求解出贯导坐标系下的标记点坐标
2021-04-22 10:29:53
3724
2
原创 ubuntu向rosrun运行的cpp文件输入参数的方法(char** argv[])
目录问题向主函数int main()输入参数使用问题有时候我们通过rosrun运行的.cpp文件中会打开或保存某个文件,而此时文件名如果直接写入程序里会有些不方便,每次更改文件名都需要再编译一次。。。最近在对实验的点云数据进行处理时就遇到了这个问题,每个ros包中提取出一帧点云,如果每次改保存的文件名就每次都需要重新编译,比较麻烦,比较慢。。。向主函数int main()输入参数部分代码:int main(int argc,char** argv){ string m_=argv[1];
2021-04-21 17:52:59
1077
原创 c++中printf显示string类乱码的解决
问题:int m=5;std::string pcd_mame;printf("成功保存第%d帧,并命名为:%s\n",m,pcd_mame);运行会出现:解决:int m=5;std::string pcd_mame;printf("成功保存第%d帧,并命名为:%s\n",m,pcd_mame.c_str());结果:
2021-04-21 16:58:37
1918
原创 ubuntu使用qt时QIODevice::ReadWrite串口打开失败
打开串口时:老是进入“if(!m_serialPort->open(QIODevice::ReadWrite))”if(!m_serialPort->open(QIODevice::ReadWrite))//用ReadWrite 的模式尝试打开串口 { qDebug()<<"打开失败!"; ui->textEdit->append("send$:QIODevice::ReadWrite打开失败!"); }但是能进入“i
2021-04-14 09:34:59
4405
2
原创 ubuntu装pl2303USB转串口驱动(详细,亲测)
目录查看usb串口号下载pl2303 USB转串口驱动安装步骤查看效果给串口权限查看usb串口号一般来说ubuntu都装有pl2303等常见USB转串口驱动,特别是340、341这些,但是也容易出现插上usb转串口线后找不到串口的情况如:查看usb串口号python -m serial.tools.list_ports 【出现上图如果不是USB转串口的线坏了,就很有可能是因为串口驱动的事】(判断是否是USB转串口的线坏了的方法:可以插在win系统下,一般情况下设备管理器里会识别到)下载pl
2021-04-13 21:56:30
11494
13
原创 ubuntu串口设置报错:cannot write to /etc/minicom/minirc.dfl
原因:权限不够将指令“minicom -s”改为“sudo minicom -s”即可安装minicomsudo apt-get install minicom设置sudo minicom -s
2021-04-13 10:08:57
1657
原创 ubuntu18qt报错:The process was ended forcefully.
出现这个错,网上好多说是因为dll动态链接的问题后来反复查找,发现是自己声明的一个指针变量没有初始化借此给大家提供一个解决思路,看一下是不是因为自己的原因造成的程序崩溃错误:原因:下图的“QTimer *mytimer;”在mainwindow.cpp中未初始化:解决运行...
2021-04-12 17:56:05
1072
原创 根据点云及其对应的四元数与GPS计算出其相对坐标系的经纬坐标(matlab)
目录数据提取数据处理(matlab)实验数据效果根据点云及其对应的四元数与GPS计算出其相对初始坐标系的经纬坐标,首先提取出包含标志物的单帧点云及该帧点云对应的四元数与GPS,该实验主要是从不同方向飞来采集数据,以查看雷达到惯导的旋转矩阵造成的误差。。。数据提取提取出包含标志物的单帧点云及该帧点云对应的四元数与GPS//*******************************************************************************************
2021-04-09 09:36:41
1368
原创 ubuntu工控机固定设备usb串口号(详细)
目录方法一方法二编程时用法由于usb串口号容易变,给程序的运行带来了些许不便,所以特此学习了一下固定设备usb串口号,主要有两种方法,各有利弊.方法一通过usb转串口的芯片不同,设串口名。1.查看串口设备lsusb(拔掉usb后,发现少了一行:Bus 001 Device 018: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port)其中的“ID 067b:2303”就是我们需要用的(不同芯片会不一样,我这条是绿联的,最常见的
2021-04-08 20:47:35
8665
5
原创 经纬度与墨卡托之间的转换(matlab)
经纬度转墨卡托gpstoMercator.mfunction [jing,wei] = gpstoMercator(j,w )jing = j * 20037508.34 / 180; ly = log(tand((90+ w)*pi/360))/(pi/180);wei = ly *20037508.34/180;end墨卡托转经纬度MercatorToGps.mfunction [jing,wei] = MercatorToGps(j,w )jing = j/ 2003
2021-04-08 14:32:57
2935
2
原创 【902项目】qgis+qt+vs结合socket与串口通信远程控制界面(地面端)
目录环境搭建源代码界面搭建运行结果该项目以前发过一篇博客:https://blog.csdn.net/xx970829/article/details/111997428在原来的基础上新添加了一些功能,并且打包好,不仅能跨平台运行,还能在其他win10系统下的vs中编译(亲测)环境搭建win10中vs+qt+qgis环境搭建环境搭建见我另一篇博客:(很详细,免编译)https://blog.csdn.net/xx970829/article/details/109890931环境搭建常见问题及解
2021-03-30 19:01:38
2001
3
原创 c++将pcd点云保存为txt文件(亲测)
之前在网上参考了很多,发现有些并不能直接运行,特此保存,以便以后使用:#include<iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_types.h>#include <fstream>#include <stdlib.h>using namespace std;//命名空间int main(int argc, char** argv)//运行时把命令行窗口传给主程序{
2021-03-29 10:26:02
2129
3
原创 基于四元数与GPS的点云拼接(粗拼接)
目录原理方案一方案二结果原理根据四元素与GPS完成点云粗拼接方案一拼接到第一帧所在坐标系:#include "ros/ros.h"#include <math.h>#include <iostream>#include <cmath>#include "std_msgs/String.h"#include <sensor_msgs/Imu.h>#include <sbg_driver/SbgImuData.h>#includ
2021-03-28 20:39:30
2285
6
原创 ubuntu下将单帧点云保存为pcd文件
目录方法一:指令方法二:代码方法一:指令直接终端运行命令:rosrun pcl_ros bag_to_pcd xxx.bag /velodyne_points /home/xx/catkin_my/pcdxxx.bag:是bag包名/velodyne_points /home/xx/catkin_my/pcd:是保存pcd帧的路径方法二:代码#include<ros/ros.h>#include<iostream>#include<fstream>
2021-03-27 21:09:25
931
2
原创 ubuntu下数据时间戳对齐并保存到txt文档里
小编是将欧拉角与gps数据时间戳对齐后保存到txt文档里,然后通过matlab读取数据画空间运动轨迹及欧拉角变化折线图时间戳对齐 //message_filters::Subscriber<sensor_msgs::PointCloud2> points_sub(n, "/velodyne_points", 2000); message_filters::Subscriber<sbg_driver::SbgEkfNav> gps_sub(n, "/sbg/ekf_nav",
2021-03-27 20:45:29
637
1
原创 matlab通过txt数据画空间曲线及同一张图画多条曲线方法
打开txt数据%打开数据画三维点data=load('.\data2.txt');r=size(data,1); %列数画空间曲线figure(1);%图1x=data(:,4);y=data(:,5);z=data(:,6);plot3(x,y,z);同一张图画多条曲线方法figure(2);%图2m=data(:,1);n=data(:,2);l=data(:,3);title('欧拉角变化');hold onplot(m,'r');hold onplot(n
2021-03-27 20:34:56
1141
1
原创 激光雷达与组合惯导联合标定--方案二(matlab)
目录原理matlab代码【说明】:该方法是自己通过坐标系转换关系建立方程并用matlab求解的,精度不一定满足要求,可能有很多不足之处,仅供参考。方案一:https://blog.csdn.net/xx970829/article/details/115072158原理按照方案一,在实际采集数据时比较困难,纸箱或车等标志物在点云中都不够明显,若要良好效果需要以一栋小平房的一角来做角点,于是提出了方案二:通过地面或台阶一条明显的点云线在地图坐标系中建立一条空间直线方程,在不同时刻,不同帧之间对应雷达坐
2021-03-22 21:19:39
4690
3
原创 激光雷达与组合惯导联合标定--方案一(matlab)
目录原理matlab程序三级目录【说明】:该方法是自己通过坐标系转换关系建立方程并用matlab求解的,精度不一定满足要求,可能有很多不足之处,仅供参考。原理首先找到一个标志物,如一个大纸箱,确定某一个角为角点(由于采用的16线激光雷达,如果同时拾取4个角为角点,计算出来的误差是很大的,当然这里也可以自己写一个算法,来自动计算出纸箱上表面的中心点位置),假设这个标志物的在地图坐标系中的坐标为A(a,b,c),通过无人机搭载激光雷达和组合惯导来采集该标志物,通过点云可以看到该标志物,而且可以得到该标志物
2021-03-22 17:37:09
3082
原创 【毕设】通过RGB识别红外图像火点(matlab)
红外热像仪与激光雷达联合标定标定后将获得投影矩阵,在数据融合前后点云投影前后有对应关系,通过此关系就可以实现通过RGB值寻找到火点后找到对应的雷达点坐标,有很多不足之处,权当回忆吧!!!通过RGB识别火点clce=0.5;%控制精度0.5,1k=0.5;%/////////////////////////////% 输入所要查找的的RGB值%138未发现火点,137输出% r_value =30; %603,149等%138未发现火点% g_value =33;% b_value =
2021-03-21 19:59:48
1465
1
原创 ubuntu下打包qt项目跨平台运行(详细)
目录准备工作寻找lib文件跨平台运行准备工作1.生成可执行文件qt使用Release模式编译【有的时候编译后没有生成这个文件,需要在pro文件里面加上一句:QMAKE_LFLAGS += -no-pie】2.新建文件夹在桌面新建一个文件夹“qt_ctrl”3.新建.sh文件在文件夹“qt_ctrl”里新建两个.sh文件copylib.sh//用来找lib文件#!/bin/bashLibDir=$PWD"/lib"Target=$1lib_array=($(ldd $Target
2021-03-20 12:11:27
7641
17
原创 [902项目]qt+expect+ssh控制界面
目录前期准备expect文件qt程序界面搭建前期准备建立ssh连接及多机通信:参考我另一篇博客:https://blog.csdn.net/xx970829/article/details/114899706expect安装:sudo apt-get install expectexpect文件roscore.sh#!/usr/bin/expect -fset user [lindex $argv 0]set host [lindex $argv 1]set port 22set
2021-03-19 21:16:16
813
5
原创 roscore cannot run as another roscore/master is already running
运行roscore报错:解决:killall -9 roscore //如果提示未找到进程不用管,继续执行下一条killall -9 rosmaster结果:
2021-03-19 12:06:22
5474
1
原创 ‘pcl::visualization::CloudViewer::showCloud(boost::shared_ptr<pcl::PointCloud<pcl::PointXY...’未定义的引用
目录问题:解决:其他问题:ubuntu18编译ubuntu16的ros功能包时,pcl 1.8报错:CMakeFiles/velodyne_imu_gps.dir/src/velodyne_imu_gps.cpp.o:在函数‘chatterCallback(boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> > const> const&, boost::shared_ptr<
2021-03-17 19:28:56
1978
4
原创 ubuntu通过ssh实现远程控制及ros多机通信(详细)
目录前期准备配置ssh连接远程控制实现前期准备主机:自己的笔记本工控机:被控制的系统注意:两台设备必须连接同一个局域网查看工控机ip地址ifconfig工控机ip地址为:192.168.1.100(系统名为:cxd)配置ssh连接1.在本地计算机生成公钥和私钥ssh-keygen(一直回车确定)2.然后将id_rsa.pub 文件复制到远程计算机scp ~/.ssh/id_rsa.pub cxd@192.168.1.100:/home/cxd(cxd@192.168.1
2021-03-16 21:00:35
3597
7
原创 ros基本操作(笔记)
目录创建工作空间:播放ros包:查看话题名:话题名:查看消息类型:查看话题消息数据:记录话题:设置环境变量:创建功能包:创建工作空间:mkdir -p ~/catkin_ws/src播放ros包:rosbag play -l xxx.bag查看话题名:rostopic list/clock/daheng_camera 大恒相机/rosout /rosout_agg /sbg/ekf_euler 欧拉角/sbg/ekf_na
2021-03-15 19:56:11
491
原创 qt界面加按钮控制终端运行ros(通过system())
目录示例效果说明示例实现方式有很多,这里主要是通过system()实现。先讲一个示例,下面以运行ros的小乌龟为例:先新建一个qt项目然后ui界面设计两个按钮然后第一个按钮点击右键->选择转到槽然后在槽函数中写入 system("gnome-terminal -- bash -c 'source /opt/ros/melodic/setup.bash ;roscore'&");然后在另一个按钮槽函数中写入 system("gnome-terminal -- bash -
2021-03-12 19:28:02
2338
14
原创 Qt建线程(通过QtConcurrent)
目录头文件示例关闭线程头文件#include<QtConcurrent>#include<QMutex>QMutex是为了防止多个线程调用同一个数据文件时出错,也称互斥锁mutex.lock();//必须成对出现。。。mutex.unlock();示例 thread1 = QtConcurrent::run([=]()//开启一个新线程(创建socket通信) { QString s = "hello new thread!"; ui
2021-03-09 14:08:01
353
原创 qgis清空图层中的特征
代码 newLayer1->startEditing();//开始编辑 newLayer1->deleteFeatures(newLayer1->allFeatureIds());//删除特征(清空图层) newLayer1->commitChanges(); newLayer1->updateExtents();// 更新范围
2021-03-09 13:53:50
956
1
原创 qt获取comboBox列表中的选项(并将Qstring转为char)
代码: QString str = ui.comboBox_3->currentText();//获取comboBox选项 char *n; //将QString转为char QByteArray m = str.toLatin1(); n = m.data(); const char * filename = n;
2021-03-09 13:49:49
7070
原创 qt获取当前目录下所有txt文件目录列表(并将列表加载到comboBox中)
代码: QDir dir(QDir::currentPath());//当前文件路径 QString filtername = "*.txt"; QStringList filter; filter << filtername; dir.setNameFilters(filter); QStringList Neuronindex = dir.entryList(); ui.comboBox_3->addItems(Neuronindex);//把列表加载到comboB
2021-03-09 08:56:57
1915
原创 qt 给tab widget的添加页改名称
选中所要改名的页在右侧找到:currentTabText然后双击即可改名:当然通过代码改名也可以,比较简单就不再赘述了。。。
2021-03-09 08:37:28
11607
5
原创 win10查看局域网 IP地址及物理地址
鼠标右击左下角win10图标->选中“windows powershell(管理员) ”运行然后输入:ipconfig即可看到局域网 IP地址如图:
2021-03-08 19:14:28
1703
原创 c++调用系统时间给txt文件命名
代码:#pragma warning(disable:4996)#include <iostream>#include <ctime>#define _CRT_SECURE_NO_WARNINGS 1using namespace std;int main(){ time_t nowtime = time(NULL); struct tm* p=localtime(&nowtime);; char filename[200] = { 0 };
2021-03-08 14:54:43
518
2
原创 c++打开txt文本数据并存入二维数组(自动计算行数)
计算txt文本数据行数 ifstream file;//定义读取文件流 infile.open("data.txt");//打开文件 char c; int line= 0; while (file.get(c)) { if (c == '\n') line++; } file.close();//读取完成之后关闭文件打开文本数据#include <iostream>#include <vector> //提供向量头文件#i
2021-03-08 13:38:39
4470
4
原创 qtcreator用串口库出错:QT Unknown module(s) in QT: serialport
解决方法:sudo apt-get install libqt5serialport5sudo apt-get install libqt5serialport5-dev如果遇到问题:E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)终端输入:ps -e | grep apt 出现:1895 ? 00:00:02 aptd 2666 ? 00:00:00 update-apt-xapi 然后输入:su
2021-03-04 15:22:47
1447
1
原创 tx2+qt+cuda:线程网格学习(含源码)
目录线程网格源码pro配置测试结果环境搭建参考:tx2+qt环境:https://blog.csdn.net/xx970829/article/details/112392488tx2+cuda安装:https://blog.csdn.net/xx970829/article/details/112390718线程网格一个线程网格是若干线程块组成的, 每个线程块是二维的,拥有x轴与Y轴。此时,每次最多能开启x乘y乘T个线程。我们限制Y轴方向只有一行线程。假设我们现在正在看一张标准高清图片,这张图
2021-01-21 19:36:07
1006
原创 tx2+qt+cuda:线程块与线程学习(含源码)
目录线程块源码pro配置结果分析线程块thread->一个cuda程序会被多个threads执行block->多个threads组成grid->多个block组成warp->线程束,32个threads组成一个warp,是调度和运算的基本单元准备工作tx2+qt环境:https://blog.csdn.net/xx970829/article/details/112392488tx2+cuda安装:https://blog.csdn.net/xx970829/arti
2021-01-21 13:04:27
419
转载 ubuntu与win10双系统时间不同步
1、在ubuntu下安装ntpdatesudo apt install ntpdate2、设置同步windows时间sudo ntpdate time.windows.com3、把时间更新到硬件sudo hwclock --localtime --systohc4、重启后就能看到同步了参考:https://www.cnblogs.com/nuochengze/p/12343030.html...
2021-01-11 13:28:02
471
1
原创 ubuntu中qt的pro配置ros及cuda
目录pro配置rospro配置cudapro配置ros改为自己文件路径INCLUDEPATH += /opt/ros/melodic/includeDEPENDPATH += /opt/ros/melodic/includeLIBS += -L/opt/ros/melodic/lib -lroscpp -lroslib -lrosconsole -lroscpp_serialization -lrostimepro配置cuda改为自己文件路径#在已有的工程上添加以下内容####cuda库
2021-01-11 12:18:02
661
原创 jetson tx2 安装qt5及环境配置
目录安装qtqt环境配置安装qtjetson tx2 安装qt5,在终端输入如下代码: sudo apt-get install qt5-default qtcreator -y 如果报错->尝试换源此时并没有编译器,是无法运行的,所以需要配置环境qt环境配置打开qt creator选择:工具->选项->构建和运行->编译器(没有找到"工具"选项->将qt最大显示)然后点击添加,并选择GCC输入gcc地址:/usr/bin/gcc接下来修改ABI选项
2021-01-09 15:48:15
1510
3
qt编译vtk生成的QVTKWidgetPlugin.dll资源
2022-09-01
点云与图像提取标定板的试验数据
2022-04-17
pcd点云数据--采集地点为教学楼一角
2022-03-26
百度离线地图api调用含实例(直接替换成自己瓦片即可使用)
2021-08-01
rosbag控制界面.zip
2021-06-01
linux或ubutu下PL2303GT驱动
2021-04-13
【902项目】Linux端通过ssh远程控制操作界面
2021-03-20
雷达-相机-惯导的功能包.tar.gz
2021-01-13
[jetson tx2] arm_cuda9.0
2021-01-09
JetPack-L4T-3.3-linux-x64_b39.run
2021-01-09
tx2+cuda+cmake:第一个cuda程序
2021-01-09
libpcap-1.10.0.tar.gz
2021-01-09
VS中用qt5插件平台platforms.zip
2020-12-30
ros串口通信功能包
2020-12-29
win10串口调试助手
2020-12-29
902工控机外设控制程序.tar.gz
2020-12-28
qgis+qt串口远程控制程序实现收发数据及在地图画布上显示位置
2020-11-28
qt+qgis+vs环境下编写qt界面并利用qt串口远程控制
2020-11-21
vs2015打包插件VSI_bundle解决vs中没有“visual studio installer”的问题
2020-11-21
火和飞机的svg格式卡通图片
2020-11-11
qgis+qt+vs开发:打开在线地图并加载svg格式图标
2020-11-11
vs+qt+qgis环境下通过串口通信接收数据并在地图上标注出位置
2020-11-07
利用无线数传c++串口通信
2020-11-07
vs+qgis+qt实现地图上画点
2020-11-07
利用组合惯导实现多帧点云拼接并迭代显示
2020-11-06
基于组合惯导的点云拼接
2020-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅