- 博客(62)
- 收藏
- 关注
原创 GPU编程学习
2 【GPU】Nvidia CUDA 编程基础教程——使用 CUDA C/C++ 加速应用程序。3 Linux上GPU编程的新玩法(linux使用gpu)1 Linux上C++与CUDA混合编程。// 1.定义结果矩阵,用于返回。// 1.定义cuda消息处理器。
2024-02-27 18:00:37
450
转载 Autoware 主要模块
引言本文参考Autoware_wiki_overview,主要描述了Autoware的整体框架和模块描述,主要包括感知和规划两大部分。感知包括定位模块,检测模块,预测模块。定位模块使用3D map和SLAM算法来实现,辅助以GNSS和IMU传感器。检测模块使用摄像头和激光雷达,结合传感器融合算法和深度学习网络进行目标检测。预测模块使用定位和检测的结果来预测跟踪目标。规划模块主要是基于感知的输出结果,进行全局路径规划和局部路径规划。全局路径规划在车辆启动或重启的时候被确定,局部路径根据车辆的状态进行实.
2021-04-13 16:02:24
797
原创 error: Could NOT find pugixml (missing: PUGIXML_LIBRARIES PUGIXML_INCLUDE_DIRS)
解决办法:sudo apt-get install libpugixml-devsudo apt-get install libpugixml1v5
2021-04-06 18:08:16
1810
转载 EKF的通俗理解
导:ekf,扩展卡尔曼滤波简称,应用非常广泛;1.五个黄金公式2.应用场合1)找清楚模型2)对准五个公式的公式3)实现:求革新值,卡尔曼系数,进而求到修真量大小4)估计值和协方差的计算,利于下次迭代使用5)迭代参考论文:https://blog.youkuaiyun.com/xiaoxilang/article/details/80533049?utm_source=copy...
2021-02-22 09:53:32
1461
转载 C++ socket编程实例
文章目录socket基本过程基本的局域网聊天局域网TCP服务器端局域网TCP客户端客户端服务端双向异步聊天异步聊天服务器端代码异步聊天客户端代码局域网内服务端和有限个客户端聊天局域网TCP 2人聊天服务器端代码局域网TCP 2人聊天客户端代码完美异步聊天服务端和客户端无限个客户聊天的服务器端代码无限个客户端连接的客户端代码服务端:服务器端初始化socket,然后与端口绑定,对端口进行监听,调用accept阻塞,等待客户端连接。socket() -> bind() -&g
2021-01-10 14:27:48
1132
原创 Could not find a package configuration file provided by “OpenCV“ with any of the following names
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):Could not find a package configuration file provided by “OpenCV” with anyof the following names:OpenCVConfig.cmakeopencv-config.cmakeAdd the installation prefix o
2020-12-28 17:01:49
7903
转载 OpenCV 鼠标事件
在之前显示图片的基础上,左键位置处显示红色,右键显示蓝色。首先,了解如何响应鼠标事件:cvSetMouseCallback()通过这个函数设置回调函数,函数要符合void xxx(int event,int x,int y,int flags,void* param )格式.cvSetMouseCallback(“窗口名称”,自行定义子程序名称,自行定义子程序名称的ID);void onMouse(int Event,int x,int y,int flags,void* param ) 子程序的
2020-12-19 16:08:16
248
1
转载 Qt5的鼠标类事件
QEvent类继承关系:Qt5.QEvent.QTimerEvent 定时器事件QMouseEvent 鼠标事件QWheelEvent 滑动鼠标滑轮事件QTabletEventQKeyEvent 键盘事件QFocusEvent 焦点事件QPaintEvent 绘画事件QMoveEvent 移动事件QResizeEvent 窗口尺寸大小改变事件QCloseEvent 关闭事件QShowEvent 显示事件QHideEvent 隐藏事件QContextMe
2020-12-19 16:04:42
575
1
转载 机器人局部避障的动态窗口法(dynamic window approach) DWA
rosparam命令可对ROS参数服务器上的参数进行操作。通过rosparam -h命令,可以看到有下面的一些方法:Commands:rosparam set set parameter 设置参数rosparam get get parameter 获得参数值rosparam load load parameters from file 从文件中加载参数到参数服务器rosparam dump dump parameters to file 将参数服务器中的参数写入到文件rosparam dele
2020-11-17 21:21:55
4225
转载 机器人局部动态避障算法dwa解析
简介dwa算法全称叫动态窗口法(dynamic window approach),其算法过程主要分为仿真获取机器人的运动轨迹、对轨迹进行评价选择最优轨迹两个主要过程,动态窗口表达的是仿真的运动轨迹数量有限,主要是因为机器人在较短的控制周期内只能达到一定的速度。一、机器人如何仿真获取运动轨迹1、获取机器人速度样本根据机器人当前速度以及运动特性,确定机器人可达的运动速度范围。由于运动的最终目的是到达目标点,因此,在到达目标点附近时,需要降低机器人运动速度,也就是进一步限制机器人的速度范围,以保证机器人能
2020-10-21 20:27:02
5447
1
转载 ubuntu16.04使用qt5时安装opencv3.2
1.安装官方给的opencv依赖包$ sudo apt-get install build-essential$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtif
2020-09-24 16:18:16
313
转载 三维向量笔记
笔记一、1)三维向量Vec3的使用:(1)Vec3: cocos定义的一个三维向量的类,在cc模块中;(2)向量在每个坐标轴的分量: x、y、z:(3)构造一个向量的3种方式:new Vec3(v: Vec3): new了一个Vec3的实例出来,然后我们的实例里面的x,y,z–>v的分量一样;new Vec3(x,y,z): new Vec3的实例,实例xyz分别是这个参数;cc模块也为我们定义了一个函数: cc.v3(x,y,z)xyz是可选的,可以全都不填(4)Vec3定义了
2020-09-22 17:20:57
3447
转载 DWAPlannerROS源码分析
1 体系结构(1)主要成员base_local_planner::LocalPlannerUtil planner_util_; 用来存储运动控制参数以及costmap2d、tf等,会被传入dp_costmap_2d::Costmap2DROS* costmap_ros_;base_local_planner::OdometryHelperRos odom_helper_; 用来辅助获取odom信息,会被传入dp_boost::shared_ptr dp_; 正常的dwa运动控制类base_lo
2020-09-18 17:01:58
1601
转载 保存并查看Lego-Loam的三维点云地图
Loam的安装及运行方法可以参考 https://blog.youkuaiyun.com/qq_36396941/article/details/82973772本文提供ROS wiki http://wiki.ros.org/loam_velodyne上无imu信息的bag百度云链接链接: https://pan.baidu.com/s/18ISyr4ky2MfTl7TXJD2W-A 提取码: 2yea在运行过程中执行rosbag record -o out /laser_cloud_surround来录
2020-08-06 10:03:51
3875
8
转载 IMU标定及Allan方差分析
0.引言标定IMU的工具包参考港科大的github: https://github.com/gaowenliang/imu_utils1.安装依赖:sudo apt-get install libdw-dev2.下载imu_utils和code_utilsimu_utils下载地址为:https://github.com/gaowenliang/imu_utilscode_utils下载地址为: https://github.com/gaowenliang/code_utils3.安装顺
2020-06-30 15:54:23
925
转载 LOAM SLAM代码解析:scanRegistration.cpp 点云及IMU数据处理节点
前言先说一下这个节点的流程,主要做了什么;然后结合代码一步一步分析。这个节点一共接收两个话题消息并发布六个话题消息。接收的两个话题分布是激光点云消息和IMU数据消息。建议读者先从imuHandler()函数看起,因为laserCloudHandler()函数会用到这个函数的结果。main函数这个main函数很简单,都是一些ros里面定义话题订阅器和发布器。这个节点一共订阅了两个话题的消息,发布六个话题的消息,没有什么难点,如果看不懂的读者需要首先复习一下ros的基本知识了。int main(int
2020-06-08 17:18:12
616
转载 velodyne vlp-16 使用教程
1.首先将velodyne 16与电脑相连velodyne上电(12v) 通过以太网网口连接电脑 2.新增网络vlp-16,以太网->ipv4设置->方法:手动,更改配置address :192.168.1.77 netmask: 255.255.255.0 gateway: 192.168.1.1 选择网络 vlp-163.安装激光驱动sudo apt-get install ros-YOURDISTRO -velodyne YOURDISTRO 指:indig
2020-06-08 09:39:02
3709
原创 安装ros时sudo rosdep init报错
错误;sudo rosdep initERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.解决办法:报错原因是GitHu...
2020-05-07 17:04:26
338
转载 KF与无迹卡尔曼滤波详解
这是另一片写卡尔曼滤波的文章,亮点在与总结的卡尔曼滤波的五个公式,可通过上一篇理解卡尔曼滤波的推导原理,本篇用来理解卡尔曼滤波的计算实现1.简介(Brief Introduction)在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,...
2020-04-10 16:47:41
7014
1
转载 Cartographer scan to map 过程
1:已知上一时刻的地图m,也是未完成的submap。因为scan to map的过程,就是scan to current submap的过程。2:submap是栅格地图,这是为了方便匹配。3:机器人在任意时刻,都能看到map上的所有occupied points。但是,scan不一定能扫描到所有的点。4:matching的过程,实际上就是把scan的所有扫描数据,映射到当前的submap,去...
2020-03-31 10:00:02
955
1
转载 ROS随笔 如何替换ROS中默认的Planner
官方文档参阅:http://wiki.ros.org/pluginlib有时候,可能会需要将替换ROS默认的planner替换成别的planner或我们自己的planner。这就涉及到了新planner包的建立和配置。建立一个新的planner,大致分为以下几个步骤:实现nav_core包中的base_global_planner或base_local_planner接口,来建立一个新的...
2020-01-19 09:52:31
1520
转载 rviz远程配置
环境:(1)虚拟机本地端IP 192.168.10.30 (虚拟机需要通过桥接的形式与PC本地机连接, PC 机IP 192.168.10.21)(2)移动端 IP 192.168.10.111 配置本地环境变量(1)打开 .bashrcgedit ~/.bashrc(2)配置ROS_MASTER_URI 和 ROS_HOSTNAME在 .bashrc 文件中添加如下配置:expo...
2020-01-02 10:48:00
1551
1
转载 socket函数详解
关于socket函数,每个的意义和基本功能都知道,但每次使用都会去百度,参数到底是什么,返回值代表什么意义,就是说用的少,也记得不够精确。每次都查半天,经常烦恼于此。索性都弄得清楚、通透,并记录下来,一来便于自己记忆,再者以防日后查阅、回顾。主要介绍:socket、bind、listen、connect、accept、send、sendto、recv、recvfrom、close、shutdow...
2019-12-28 14:24:50
319
转载 C语言实现TCP通信
C语言通过socket编程实现TCP通信服务端客户端通信例子:socket tcp 通信1,socket tcp通信2,udp使用讲解,socket udp通信例子TCP/IP协议叫做传输控制/网际协议,又叫网络通信协议。实际上,它包含上百个功能的协议,如ICMP(互联网控制信息协议)、FTP(文件传输协议)、UDP(用户数据包协议)、ARP(地址解析协议)等。TCP负责发现传输的问题,...
2019-12-26 10:36:19
10654
1
转载 Qt5开发之各种按钮控件详细讲解
Button控件介绍控件类 控件名 中文名QPushButton PushButton 按钮QToolButton ToolButton 工具按钮QRadioButton RadioButton 单选按钮QCheckBox CheckBox 复选按钮QCommandLinkButton CommandLinkButton 命令链接按钮QButtonBox ButtonBox 组合按钮...
2019-12-24 15:45:39
1164
转载 浅谈C++中的多线程
本篇文章围绕以下几个问题展开:何为进程?何为线程?两者有何区别?何为并发?C++中如何解决并发问题?C++中多线程的语言实现?同步互斥原理以及多进程和多线程中实现同步互斥的两种方法Qt中的多线程应用引入传统的C++(C++98)中并没有引入线程这个概念。linux和unix操作系统的设计采用的是多进程,进程间的通信十分方便,同时进程之间互相有着独立的空间,不会污染其他进程的数据,天然...
2019-11-29 14:29:36
316
转载 MATLAB编程入门基础知识
MATLAB 是 MATrix LABoratory(矩阵实验室)的缩写。 它是一种功能强大的数值计算语言,在工程和数学领域中应用广泛。% 以百分号作为注释符%{多行注释可以这样表示%}% 指令可以随意跨行,但需要在跨行处用 ‘…’ 标明:a = 1 + 2 + …4% 可以在MATLAB中直接向操作系统发出指令!ping google.comwho % 显示内存中...
2019-11-21 13:52:49
760
转载 std::vector使用
Vector被认为是一个容器,是因为它可以存放各种类型的对象,正因为这,有时候也被人叫动态数组,能够增加和压缩数据为了使用vector,必须在头文件中包含如下代码:#include 按照下面格式使用:vector vInts;或者连在一起,使用全名:std::vector vInts;c.assign(beg,end)c.assign(n,elem)将[beg; end)区间中的...
2019-11-11 09:10:53
463
转载 boost::bind的使用
boost::bind操作想必大家都使用过,它特别神奇,能够绑定函数与参数,绑定后能够改变参数数量,并且还可以使用占位符。它可以绑定普通函数也可以绑定类成员函数。好多小伙伴试图看过boost::bind的源码,但是可能效果不佳。原因在于boost::bind的代码考虑了很多使用情况,而且还要兼容各种编译环境,所以实现的代码很复杂,很容易在看源码的时候被各种宏定义带跑偏,以至于乱了思路。在这里我试图...
2019-11-08 14:16:43
624
转载 使用std:map建立链表与删除
多年的C码农,最近才开始玩C++,所以难免会遇到C++里很平常普通的东西,在C程序员眼里已经灰常神奇了。举个例子,最普通的链表,在C里面要构建一个链表,要解决的几个问题:每个节点的数据结构节点的插入、删除问题,以及由此产生的内存问题链表的表头,表尾问题特定节点的查找,匹配链表的遍历,排序问题等等上面列举的是链表操作的几个基本问题,但是在C里面要自己构建一个好用且不出错的链表,并且...
2019-11-08 14:07:58
467
转载 ROS_OpenCV_socket客户端发送kinect图像及接受图像
//Includes all the headers necessary to use the most common public pieces of the ROS system.#include <ros/ros.h>//Use image_transport for publishing and subscribing to images in ROS#include &...
2019-11-07 17:19:49
266
转载 Cartographer详解
Cartographer 论文解读一、Introduction在建图上应用SLAM并不是一个新的概念,这里不再作为本文的重点。本文的贡献在于:提出了一种新的基于激光数据的回环检测方法,这种方法可以减少计算量,可以满足大空间的建图需要,并且对大规模数据进行实时优化。hector并没有应用到回环检测,而google在此基础上进行改进,并应用上了回环检测,,还是值得学习和借鉴的。二、Relat...
2019-11-05 17:53:50
30830
1
转载 teb参数解析
TebLocalPlannerROS:odom_topic: odommap_frame: /odomTrajectoryteb_autosize: Truedt_ref: 0.3 #期望的轨迹时间分辨率dt_hysteresis: 0.03 #根据当前时间分辨率自动调整大小的滞后现象,通常约为。建议使用dt ref的10%。#min_samples (int, default: 3...
2019-11-04 16:56:25
6595
转载 cartographer输出机器人相对地图位姿
cartographer(0.3.0版本)中机器人位姿是以tf的格式发布的。cartographer在关于位姿的tf_tree为:map->odom->base_footprint。其中odom->base_footprint理解为激光模拟的里程计信息,map->odom理解为对里程计数据的补偿,如消除累积误差等。在应用中推荐把provide_odom_frame参数置为f...
2019-11-04 15:57:48
639
转载 C++ push与push_back
【摘要】push与push_back是STL中常见的方法,都是向数据结构中添加元素。初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析。此外,本文还将简述push对应的stack与queue系列,常见方法的介绍,以及与push_back相对应的vector系列常见方法介绍。详见下文。list 也是使用 push_back .【正文】push_back 方法介绍vec...
2019-11-04 14:51:03
906
转载 DWAPlannerROS源码分析
1 体系结构(1)主要成员base_local_planner::LocalPlannerUtil planner_util_; 用来存储运动控制参数以及costmap2d、tf等,会被传入dp_costmap_2d::Costmap2DROS* costmap_ros_;base_local_planner::OdometryHelperRos odom_helper_; 用来辅助获取o...
2019-10-21 09:59:12
530
原创 ubuntu 脚本sh编写
常用# 查看所有环境变量 - 打印环境变量envecho $PATHexport LD_LIBRARY_PATH=$PWD #定义和取消变量var1="123"unset var1 # 打印系统信息 grep -v "U" 反向不匹配uname -a # 账号和密码 - 切换账号 - 设置账号密码su rootsu -sudo passwd root # 打开文...
2019-08-02 15:24:31
2507
转载 ubuntu下使用串口查看串口日志
ubuntu下使用串口工具工具: minicom步骤:安装。 sudo apt-get install minicom查看所有串口。 cd / ls dev/tty*连接串口线,查看正在使用的串口。 dmesg | grep tty // usb 3-4: pl2303 converter now attached to ttyUSB0,其中attach...
2019-07-26 10:21:20
3647
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人