![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据预处理
该专栏用于记录数据预处理的算法模块,比如时空同步、点云去畸变、坐标变换相关知识
什么都会一点儿的自动驾驶工程狮
积跬步,至千里的小白攻城狮
展开
-
采用ros同步机制 message::filter将自定义消息在类中的实现时间同步
【代码】采用ros同步机制 message::filter将自定义消息在类中的实现时间同步。原创 2022-12-12 18:00:00 · 615 阅读 · 1 评论 -
关于WGS80经纬度坐标选定原点转UTM平面坐标的几种测试
gps原创 2022-10-13 16:09:56 · 1148 阅读 · 0 评论 -
数据处理:修改rosbag topic的frame_id
1.安装srv_tools工具git clone https://github.com/srv/srv_tools.git将其作为功能包放到ros工作空间下编译即可。2.使用示例rosrun bag_tools change_frame_id.py -t /blrobot/drivers/lidar_front/velodyne_points -f /laser -i 2021-08-17-11-00-18.bag -o new.bag解释:rosrun bag_tools change_fram原创 2021-09-17 13:45:18 · 2311 阅读 · 0 评论 -
数据预处理(18)_将单线激光雷达的LaserScan数据从极坐标下转到笛卡尔坐标系并存储
void AutoGetLine::TransScanToPoints(const sensor_msgs::LaserScan& scan_in,std::vector<Eigen::Vector3d>& Points){ size_t pts_num=scan_in.ranges.size(); Eigen::ArrayXXd ranges_d(pts_num,2);//pt_num行,2列 Eigen::ArrayXXd output_xy(pts原创 2020-07-24 15:07:44 · 2085 阅读 · 3 评论 -
数据预处理(17)_对cartographer或gmapping生成的.pgm地图作分割
一般来说,gmapping是一种增量式的建图方法,一般用于小场景的地图构建,而大场景的地图构建方法一般选择基于图优化的方法,代表有cartographer,通过开源的算法得到地图后,但是对于移动机器人在大场景下的定位有一个问题:启动定位,一次性加载地图并完成代价计算相当耗时,这时就需要作地图分割,根据里程计推算或者GPS的定位完成分块加载地图。1.将.pgm地图转为.png格式这里用了Ubuntu下的KolourPaint软件进行转换,理想的方式还是需要自己用代码实现。这里先展示一下由.pgm转换后的.原创 2020-07-12 22:44:19 · 1752 阅读 · 3 评论 -
数据预处理(8)_ubuntu16.0.4系统下运行velodyneHDL 32E激光雷达流程
1.安装驱动sudo apt-get install ros-kinetic-velodyne结果:lzy@lzy-Lenovo-ideapad-Y700-17ISK:~$ sudo apt-get install ros-kinetic-velodyne[sudo] password for lzy:Reading package lists... DoneBuilding dependency tree Reading state information... DoneTh原创 2020-07-04 12:50:33 · 790 阅读 · 0 评论 -
数据预处理(17)_坐标转换,tf::StampedTransform =」 Eigen::Matrix4f
在开发的过程中,通常会遇到坐标转换的问题,比如从传感器坐标系src,到车体坐标系ref。通常可以分为3步:第一步:监听TFbool getTF(const ros::Time&query_time,const std::string& ref,const std::string& src,tf::StampedTransform& transform){ try { tf::TransformListener* tf_=new t原创 2020-07-02 09:14:48 · 4106 阅读 · 0 评论 -
数据预处理(16)_基于点云数据的传感器感知区域栅格化
对于低速的无人驾驶感知系统来说,我们要想办法去描述感知区域,这里提出一种栅格化的表示方法。这里我们要求以激光雷达为中心,感知半径30m内的区域。这里用60*60的二维数组来表示该区域。const float STD_MAX = std::numeric_limits<float>::max();float min_z[60][60];//60*60 //初始化 f...原创 2020-07-05 13:55:08 · 1382 阅读 · 0 评论 -
数据预处理(15)_解析GPS数据并作为里程计信息发布
利用GPS发布里程计信息“/nmea_sentence"为从GPS接收string Sentence的topic核心代码://function:输入gps的“/nmea_sentence",经过此函数,转为x,y,yaw通过里程计”/mbot/odometry“发布出去#include&lt;iostream&gt;#include&lt;ros/ros.h&gt;#include&a原创 2020-07-04 12:55:26 · 1397 阅读 · 4 评论