自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Studying……

Studying……

原创 找工作日记—广联达软件开发笔试and面试

抱着打酱油的心态。。。真的打了酱油

2022-09-13 08:41:08 33

原创 Keil 出现No Browse information available解决方法

解决方法:选中target1,然后点击右键,选择 option for target 'target1' ,在弹出的对话框中选择output选项卡,看Browse information 选项有没有勾选,如果没有,请勾选,然后把你的工程rebuild 一次。

2022-09-13 08:40:45 18

原创 stm32的ADC通道错乱原因分析

引脚J4.2连接电位器,发现电位器到端点时,会出现调试时中断,找不到芯片的现象。后发现是给芯片的电压高于3.3V把J4.3修改成3.3V后,又偶尔会出现通道错乱的情况。后发现是电流高于芯片单个引脚所能允许的最大电流5mA后修改成以下电路,问题解决在某些项目中,发现adc通道会相反。发现和adc初始化的位置有关系。相关代码如下MAX3485_USART_

2022-09-13 08:39:31 444

原创 万集wlr718雷达测试记录和stm32h745驱动编写,数据分析

根据规格书中指示,找到对应的强度和距离数据,每一圈的数据,不是一帧发布完的,而是分成多帧,如果不获取强度,则是二帧,如果需要强度,则是强度2帧,距离二帧。最后发现是电路板上用的网卡芯片是5500,他不支持反转,万集网卡也不支持自适应反转;WLR-718可以提供270°范围的点云数据,180°的位置处于传感器的正前方,WLR-718 存在一段 90°的盲区,位于 45°-0° -315°的区间。在俯视的视角下,角度随着顺时针方向递增。以下为距离信息,略----Stm32h745驱动编写。

2022-09-09 14:06:26 90

原创 ros建图过程中给上位机发布地图信息

一种是OpenCV处理后的png图(3900平方米,300kb)加分辨率信息和左下角像素坐标信息。在cartographer建图的过程中,把地图信息转化成png格式,定时对上位机进行发布。定义在mapstream.msg文件中。一种是mapstream结构体。

2022-09-09 13:25:19 721

原创 霍夫变换绘制出图案里的直线

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) --注 cvtColor用于将图像从一个颜色空间转换到另一个颜色空间的转换;常见的颜色空间均支持;在转换的过程中能够保证转换后的图像的数据类型和位深与源图像一致;lines = cv2.HoughLines(edges,1,np.pi/180,200) HoughLines()函数可以找出采用标准霍夫变换的二值图像线条;cv2.imwrite('houghlines3.jpg',img) --图像的保存。

2022-09-09 11:54:32 751

原创 python+opencv学习之--提取角点

实现提取轮廓的功能,并且绘制出轮廓的重心

2022-09-09 11:53:25 78

原创 反光柱建图和定位总结

反光柱建图流程实际的算法测试发现,如果一边控制车走,一边程序自动建图,会出现在真实的柱子周围飞出多余的点。这个应该是累积误差引起的。需要像slam算法中,进行回环优化。因此暂时采用手动加点,到一个位置后,界面点击添加新点,才会把扫到的反光柱记录下。界面截图定位精度测试(用激光追踪仪测得的位移与我反光柱定位的位移做比较)TODO添加反光柱坐标的累计求评价功能,测试定位精度。参考自万集雷达的上位机建图过程视频反光柱使用倍加福...

2022-05-27 11:30:52 316 1

原创 Qt使用gmapping建图并用OpenCV显示且不用ros

建图效果

2022-05-26 10:02:45 107

原创 去ros所需的工作总结

1.cartographer去rosCartographer是谷歌开源的一个slam框架,他各个模块独立性很强, 代码鲁棒性非常高, 很少出现莫名崩掉的情况, 而且编写的架构很好。所以大部分做单线激光slam的公司都会用他的代码进行借鉴和修改。所以我的打算也是在cartographer基础上进行建图和定位的功能开发。Cartographer其实本身是独立的,不依赖于ros,但是数据的流转等这些功能需要有接口完成这些功能,cartographer_ros 就是cartographer和ros的一个桥梁

2022-04-18 17:20:58 234

原创 OdomLaserCalibraTool标定工具的使用及踩坑记录

首先欢迎扫码关注我的微信公众号【SLAM及ROS学习笔记】GitHub地址GitHub - tzhangZJU/OdomLaserCalibraTool: Extrinsic Calibration of a Odom and 2d Laser作者博客2d Laser 和 Odomter 内外参数标定工具原理及使用方法_知行合一-CSDN博客其实只是记录了一下我自己的标定过程,和错误解决方法。其实博客和GitHub中也有提及Error1这个是由于.

2021-12-26 11:15:01 630 4

原创 Qt绘制出思岚雷达扫描到的轮廓

首先欢迎扫码关注我的微信公众号【SLAM及ROS学习笔记】Qt绘制出思岚雷达的扫描轮廓1 配置思岚sdk的依赖库可以参考我的qt pro文件的内容,按照实际路径添加INCLUDEPATH += /home/kobe/QtProj/rplidar_sdk-release-v1.11.0/sdk/sdk/includeINCLUDEPATH += /home/kobe/QtProj/rplidar_sdk-release-v1.11.0/sdk/sdk/srcuni.

2021-12-10 09:22:20 1100

原创 amcl定位过程中发布机器人在地图中位姿的总结

目前要实现的应用是amcl匹配后,得到车体位姿,然后发布到外部使用起初我是采用订阅amcl发布的amcl_pose话题的方法代码如下参考ROS:订阅话题并发布(订阅amcl_pose数据并发布)_Better-ing的博客-CSDN博客class amcl_pose_sub_pub {private: ros::NodeHandle nh_; // 定义ROS句柄 ros::Publisher msgPointPub; ros::Subscriber sub;

2021-11-29 10:59:32 1038 4

原创 ros与底盘串口通讯缓存数据及解析C++

在调试底盘ros包的过程里,出现tf树更新不及时问题,以为是串口堵塞,没有及时处理底盘发送的数据,因此创建了一个串口缓冲区,用的是队列queue <unsigned char> bufferq;其中主要注意的是新来的数据写入queue,已处理的数据在queue中pop出数据的获取/********************************************************函数功能:从下位机读取数据入口参数:无出口参数:bool*********

2021-11-26 10:49:39 1052

原创 ros底盘驱动包存在scan跟不上车体运行的错误调试过程

现象描述一个和底盘通讯的代码和ros包,总是发现当控制车体运行一段距离,rviz里面scan的数据更新会过一秒才能跟着运动走,同时发现tf的base_link也是过一秒才更新调试过程起初,以为是串口堵塞,没有及时的接受和处理底盘上行发布的轮速信息导致,之后写了一个串口缓存程序,但是发现并不是串口堵塞导致,而且odom更新是实时的。之后发现map到base_footprint的tf的变换是卡顿的,起初跳动一下,之后才跳动成与odom差不多的数值。此时认为是odom的更新不正确,在odo

2021-11-26 10:41:30 298

原创 cartographer运行错误集合

播放bag的时候错误Check failed: sensor_to_tracking->translation().norm() < 1e-5 The IMU frame must be colocated with the tracking frame. Transforming linear acceleration into the tracking frame will otherwise be imprecisetracking frame不是imu的link修改lua文件中的.

2021-11-26 10:26:10 732

原创 cartographer近期调试总结

1 当底盘发布odom的时候,carto的配置中 published_frame = "odom", 说明carto发布的tf是: map -> footprint provide_odom_frame = false, 此时Carto不需要发布odom 如果为true,则tf树为map->odom->footprint当使用纯定位的时候,实际使用的就是carto到odom或者到footprint的tfTf树如同...

2021-11-26 10:22:19 306 3

原创 cartographer纯定位后机器人位姿的使用

Cartographer的纯定位,实际上是获得了map到车体的tf,如果使用机器人位姿,当用于导航的时候,只需要在move_base 里配置好对应的节点,即可导航我的move base 配置如下global如下,local同样global_costmap: global_frame: map robot_base_frame: base_footprint update_frequency: 1.0 publish_frequency: 0.5 stati

2021-11-26 10:21:07 1217

原创 剪贴板传输

PCB布线规则详解1 电源、地线的处理 既使在整个PCB板中的布线完成得都很好,但由于电源、地线的考虑不周到而引起的干扰,会使产品的性能下降,有时甚至影响到产品的成功率。所以对电、 地线的布线要认真对待,把电、地线所产生的噪音干扰降到最低限度,以保证产品的质量。对每个从事电子产品设计的工程人员来说都明白地线与电源线之间噪音所产生的原因, 现只对降低式抑制噪音作以表述: 众所周知的是在电

2021-11-17 14:55:44 61

原创 cartographer实现纯定位

实现纯定位(1)因为正常的cartographer的建图的map是由cartographer发布的;如下rostopic info /mapType: nav_msgs/OccupancyGridPublishers:* /cartographer_occupancy_grid_node因此需要把map的发布替换成<node name="map_server" pkg="map_server" type="map_server"args="/home/lx.

2021-09-29 14:37:14 2990 2

原创 cartographer调参总结

# (1)POSE_GRAPH.optimize_every_n_nodes#设置成0把后端优化去掉,相当于把前端和后端区分开来,这样如果建图有问题,说明是前端的参数需要调整,先优化前端而如果前端没有问题,再把此数值改回去,调整后端的参数# (2)cere匹配器相关参数#TRAJECTORY_BUILDER_nD.ceres_scan_matcher.translation_weight【翻译官方文档:在我们的例子中,扫描匹配器可以在不影响分数的情况下自由地前后移动匹配。我们希望..

2021-09-29 14:35:56 650

原创 Cartographer参数调整来降低延迟的策略

# 后端参数优化减少 optimize_every_n_nodes(// 插入的节点数大于optimize_every_n_nodes时执行一次优化)这样优化的频率更高了,如果出现了回环,就会立即被找到增加MAP_BUILDER.num_background_threads核心数,核心增加后,后端实时高,延迟降低减少 global_sampling_ratio降低了回环约束的采样频率,降低了后端优化的数量,降低了计算量减少 constraint_builder.s..

2021-09-29 14:34:31 306

原创 ros中bag的录制和使用bag进行建图

# 录制bag#在建图时候,除了正常的建图和底盘控制脚本外,加入录制bag的脚本rosbag record -a但是录制所有的话题,bag文件会比较大,可以只录制需要的话题rosbag record /imu /tf /scan /odom /tf_static只需要录制imu 里程计,激光雷达和tf数据即可关于/tf、/tf_static/tf:动态的位置关系将会发布到此topic,这里的动态指的是机器人描述文件中活动joint/tf_static:固定的位置关系会发布..

2021-09-29 14:33:11 760

原创 ros中move_base的使用

move_base概述move_base 包提供了一个动作的实现(参见actionlib包),给定世界上的目标,它将尝试使用移动基地来实现它。move_base 节点将全局和本地规划器链接在一起以完成其全局导航任务。它支持任何遵循在nav_core包中指定的 nav_core::BaseGlobalPlanner 接口的全局规划器和任何遵循在nav_core包中指定的 nav_core::BaseLocalPlanner 接口的本地规划器。move_base 节点还维护两个成本地图,一个用于全局规划器,

2021-09-27 16:35:52 1042

原创 ros中bag的录制和使用bag进行建图

录制bag在建图时候,除了正常的建图和底盘控制脚本外,加入录制bag的脚本rosbag record -a但是录制所有的话题,bag文件会比较大,可以只录制需要的话题rosbag record /imu /tf /scan /odom /tf_static只需要录制imu 里程计,激光雷达和tf数据即可关于/tf、/tf_static/tf:动态的位置关系将会发布到此topic,这里的动态指的是机器人描述文件中活动joint/tf_static:固定的位置关系会发布到此to.

2021-09-27 16:33:54 204

原创 robot_pose_ekf运行报错问题解决

运行的时候ekf报错原因是我在官网下载的ekf源码包不对应,虽然已经选择了对应的ros版本,依然报错因此采用不吧ekf包放到我自己工程的方法,而是把他用ros命令安装首先,删掉我在我源码包中的ekf功能包rm -r robot_pose_ekf然后用ros命令安装此功能包sudo apt-get install ros-kinetic-robot-pose-ekf同时,ekf下的launch文件进行对应的修改roscd robot_pose_ekf/ ls ge...

2021-09-10 17:49:12 355

原创 slam ros 移动机器人资料汇总

ros小车 资料底层源码和ros源码底盘的阿克曼,反阿克曼,麦克纳姆,差速 ,全向轮运动学正解逆解,stm32源码底层包括原理图 以及驱动板源码上层包括cartographer gmapping Hector karto等开源算法的全部部署,视觉slam 的orb slam2源码A*及dijkstra路径规划move_base导航局部路径规划包括teb和dwa导航ros层的镜像包括 树莓派 和 jetson nano上的镜像超声波跟随雷达跟随二维码导航...

2021-08-29 09:30:55 236 2

原创 ros移植别人的工作空间出现问题及解决方法汇总

error1 exec: /home/kobe/mbot_ws/src/navigation/costmap_2d/cfg/Costmap2D.cfg: Permission denied exec: /home/kobe/mbot_ws/src/navigation/amcl/cfg/AMCL.cfg: Permission denied exec: /home/kobe/mbot_ws/src/navigation/costmap_2d/cfg/InflationPlugin.cfg: Permissi

2021-08-28 09:19:51 496

原创 关于二轮差速小车轮速计算和里程计计算

local_costmap:global_frame: odom_combined# robot_base_frame这个通常不是/ base link就是/ base_ footprint对于TurtleBot应设为/ base_footprintrobot_base_frame: /base_footprintupdate_frequency: 3.0publish_frequency: 1.0# 这个参数和下一个参数通常会设为相反的值。全局地图通常是静态的,因此我们通常会把这个参数设为tr

2021-08-28 09:18:42 1223 1

原创 Ubuntu16.04下驱动西克雷达 LMS511及用进行slam建图

\Ubuntu16.04下驱动西克雷达 LMS511及用rviz数据显示1 硬件连接首先根据《02-LMS511操作手册》进行硬件连接其中的1 角是24+其中的3脚是GND2和 4脚只是加热作用Lms511只需要提供24v供电和网线连接即可2软件连接Windows下用SOPAS软件进行连接(注:使用串口连接无法获得实时图象) LMS5XX 的出厂 IP 一般设置为 192.168.0.1,当通过以太网连接 PC 时, PC 的 IP 段必须与LMS5XX 的 IP 段相同,

2021-08-22 09:30:31 171

原创 move_base_params.yaml参数解析

# Move base node parameters. For full documentation of the parameters in this file, please see## http://www.ros.org/wiki/move_base## 当 move_base 在不活动状态时,是否关掉 costmapshutdown_costmaps: false# 向底盘控制移动话题 cmd_vel 发送命令的频率。controller_frequency: 2.0# 在空.

2021-08-10 11:33:29 876

原创 local_costmap_params.yaml参数注释

local_costmap:global_frame: odom_combined# robot_base_frame这个通常不是/ base link就是/ base_ footprint对于TurtleBot应设为/ base_footprintrobot_base_frame: /base_footprintupdate_frequency: 3.0publish_frequency: 1.0# 这个参数和下一个参数通常会设为相反的值。全局地图通常是静态的,因此我们通常会把这个参数设为tr

2021-08-10 11:31:23 1262

原创 global_costmap_params.yaml参数解析

global_costmap:# global_frame:代价地图应该运行的坐标系, 将选择/map 坐标系。global_frame: /map# robot_base_frame:代价地图应该为机器人的基座的坐标系。 应设为 base_footprint。robot_base_frame: /base_footprint# update_frequency:决定了代价地图更新的频率。 数值越大, CPU 负担会越重。# 根据传感器数据,全局地图更新的频率,单位为赫兹。这个数值越大,你的..

2021-08-10 11:28:38 1120

原创 dwa_local_planner_params.yaml 参数解析

Abstract: VS2010 RTM has a bug. When copying code and pasting it to Word, Excel, Powerpoint, Outlook, there are one or two redundent characters following the non-ASCII characters. I wrote a tool as

2021-08-10 11:26:46 629

原创 costmap_common_params.yaml参数解析

delay函数,占用了stm32的时钟ucos需要靠stm32的时钟来调度任务用裸机得delay就剥夺了ucos的时钟,所以死机ucos ii 系统应该使用OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_HMSM_STRICT,&err)函数做延时

2021-08-10 11:24:33 861

原创 各类开源slam算法比较

Cartographer是基于图优化的方法建图算法,它与Karto都是图优化框架,但有诸多不同,例如Karto采取的是spa图优化方法,而Cartographer采用的是google的ceres构建problem优化,Karto的前后端是单线程进行,而cartographer采取的是多线程后端优化。而Cartographer也支持多传感器融合建图,可以处理来自激光雷达、IMU、里程计等传感器的数据并给予这些数据进行地图的构建。karto salm是基于图优化的方法,图优化方法利用图的均值表示地图,.

2021-05-08 14:37:05 722

原创 思岚A1与A2性能及建图测试比较

开始slam之旅吧~~~探测效果在光线均匀、扫描频率一致、测试位置相同的条件下,雷达A1比雷达A2产生的噪点更多。黑暗环境两者也是如此在对黑色吸光物体进行测量时,A1所检测到的黑色吸光物体轮廓能比A2所检测到的要多,但A1检测时也会产生较多噪点。A1雷达透过玻璃墙检测到了部分纸箱的轮廓,且在空阔环境下噪点明显增多;A2雷达没有检测到玻璃墙后的纸箱,且周围的噪点较少。建图效果Karto A2建图效果图整体轮廓比较细腻,检测到玻璃门另一侧的环境面积较小,甚至有些玻璃门另一侧的环境没.

2021-04-30 17:17:56 774 2

原创 0.39/0.5寸模拟视频及VGA视频OLED微显示屏驱动电路板及技术方案

0.39/0.5寸OLED微显示屏驱动电路采用intersil的TW8836为驱动芯片,STM32为控制芯片,实现了SONY的0.39/0.5寸微显示屏的驱动,色彩鲜艳,成像细腻。输入信号可以是CVBS模拟视频或VGA信号;输入电压为3.3-5v宽幅电压;驱动板尺寸做到28×28mm,便于光学系统设计和装配,能够满足大多数应用场景。并且具备6个I/O口和1个CMOS标准串行通信端口,可以通过按键对亮度、对比度,以及SONY 0.5寸微型显示器的亮度、对比度、显示方向及温度补偿等进行修改,同时也可以提供上

2021-01-27 14:39:10 208 1

原创 Visual Studio使用过程中,遇到error及解决方法总结 - 副本

error C2665: “std::locale::facet::operator new”: 2 个重载中没有一个可以转换所有参数类型对比正常工程 发现c/c++ ->所有选项-->附加选项 多了-Zc:strictStrings ,应该是qt转换插件自动加的,去掉就可以正常编译了。VS报错:The build tools for v140 (Platform Toolset = 'v140') cannot be found解决方法:项目--属性--...

2020-07-30 17:38:59 1046

原创 Qt使用过程中,遇到error及解决方法总结

解决QT无法调试问题-----the cdb process terminated1. 如果只在计算机上安装了VS2015,那么下图所示的MSVC2015的编译器图标会是一个黄色的感叹号,,Debuggers页面没有Windows的CDB调试器,此时可以用MSVC编译器对Qt Creator编写的程序进行编译,但是不能调试,这是因为缺少了Windows Software Development Kit(sdk)。这个SDK不会随VS2015一同安装,需要从Microsoft网站上下载。安装后...

2020-07-30 17:37:41 2342 1

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