Velodyne VLP-16 gmapping 建图
1. 测试环境
Ubuntu 16.04 x64、ROS Kinetic、Velodyne VLP-16、RoboWare Studio
2. 安装 ROS 功能包
sudo apt-get install ros-kinetic-velodyne
sudo apt-get install ros-kinetic-gmapping
sudo apt-get install ros-kinetic-laser-scan-matcher
3. 连接激光雷达
网线直连本机与激光雷达,已知 Velodyne VLP-16 的 IP 地址为 192.168.1.201,配置本机地址为 192.168.1.77,打开浏览器输入 192.168.1.201 查看激光雷达的配置文件,确保其 Host (Destination) 的 IP 地址与本机相同。
4. 创建 ROS 工程
打开 RoboWare Studio,新建工作区 catkin_ws,然后在终端执行:
cd catkin_ws/src
git clone https://github.com/ros-drivers/velodyne.git
接下来采用 catkin_make 构建整个项目,最后在 .bashrc 文件末尾添加:
source /current_path/catkin_ws/devel/setup.bash
其中,current_path 根据自身工作目录而定。
5. 把 Velodyne VLP-16.xml 转换成 VLP-16.yaml 文件
rosrun velodyne_pointcloud gen_calibration.py /current_path/VLP-16.xml
6. 创建地图
(1) 在 Ubuntu 系统中打开一个终端,输入以下命令运行 ROS 节点管理器:
roscore
(2) 在 Ubuntu 系统中打开一个终端,运行 VLP16_points.launch:
roslaunch velodyne_pointcloud VLP16_points.launch calibration:=/current_path/VLP-16.yaml
(3) 在 Ubuntu 系统中打开一个终端,输入以下命令发布 tf 变换 base_link->velodyne:
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link velodyne 0
(4) 在 Ubuntu 系统中打开一个终端,启动 slam_gmapping:
rosrun gmapping slam_gmapping
(5) 在 Ubuntu 系统中打开一个终端,启动 laser_scan_matcher_node,并指定 fixed_frame 为 odom:
rosrun laser_scan_matcher laser_scan_matcher_node _fixed_frame:=odom
上述过程中,gmapping 提供 map->odom 之间的 tf 变换,laser_scan_matcher 提供 odom->base_link 之间的 tf 变换,static_transform_publisher 提供 base_link->velodyne 之间的 tf 变换。

7. 实时显示地图创建过程
在 Ubuntu 系统中打开一个终端,执行命令:
rosrun rviz rviz
然后在 rviz 中点击 Add -> By topic,添加 Map、LaserScan 或 PointCloud2 等,实时显示获取到的结果。

本文链接:https://www.cnblogs.com/lightweh/p/10076294.html,转载请注明出处。
Velodyne VLP-16 gmapping 建图的更多相关文章
- TurtleBot3 Waffle (tx2版华夫)(9)建图-gmapping建图(A2雷达)
9.1. 说明 这一节我们来讲 Turtlebot3 的 SLAMSLAM(The Simultaneous Localization and Mapping) 同步定位与地图构建: 希望机器人从未知 ...
- 通过gmapping和伪造的odom,完成Kinect建图
传感器信息: 环境深度信息:sensor_msgs/laserScan -----> RGBD三维点云数据:通过ros功能包depthimage to laserscan完成深度相机数据转换成激 ...
- 【BZOJ-2879】美食节 最小费用最大流 + 动态建图
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1366 Solved: 737[Submit][Status] ...
- poj 3281 Dining 网络流-最大流-建图的题
题意很简单:JOHN是一个农场主养了一些奶牛,神奇的是这些个奶牛有不同的品味,只喜欢吃某些食物,喝某些饮料,傻傻的John做了很多食物和饮料,但她不知道可以最多喂饱多少牛,(喂饱当然是有吃有喝才会饱) ...
- SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图
摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障 ...
- 牛客多校第四场 J.Hash Function(线段树优化建图+拓扑排序)
题目传送门:https://www.nowcoder.com/acm/contest/142/J 题意:给一个hash table,求出字典序最小的插入序列,或者判断不合法. 分析: eg.对于序列{ ...
- 【ARC069F】Flags 2-sat+线段树优化建图+二分
Description 数轴上有 n 个旗子,第 ii 个可以插在坐标 xi或者 yi,最大化两两旗子之间的最小距离. Input 第一行一个整数 N. 接下来 N 行每行两个整数 xi, ...
- 【转】Codeforces Round #406 (Div. 1) B. Legacy 线段树建图&&最短路
B. Legacy 题目连接: http://codeforces.com/contest/786/problem/B Description Rick and his co-workers have ...
- Nowcoder Hash Function ( 拓扑排序 && 线段树优化建图 )
题目链接 题意 : 给出一个哈希表.其避免冲突的方法是线性探测再散列.现在问你给出的哈希表是否合法.如果合法则输出所有元素插入的顺序.如果有多解则输出字典序最小的那一个.如果不合法则输出 -1 分析 ...
随机推荐
- logstash常用插件解析
官方地址:https://www.elastic.co/guide/en/logstash-versioned-plugins/current/index.html 配置文件写法: # 日志导入inp ...
- Java Socket NIO详解(转)
java选择器(Selector)是用来干嘛的? 2009-01-12 22:21jsptdut | 分类:JAVA相关 | 浏览8901次 如题,不要贴api的,上面的写的我看不懂希望大家能给我个通 ...
- Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录
一. MySQL InnoDB Cluster 介绍MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, G ...
- (转)解决 TortoiseGit 诡异的 Bad file number 问题
此问题,请不要使用 rebase, 下载最新的 TortoiseGit 即可: TortoiseGit-2.3中文版与Git安装包_手册: http://download.csdn.net/detai ...
- go等待N个线程完成操作总结
第一种,基于原生带缓存的channel package main import "fmt" func main() { done := make(chan int, 10) for ...
- mcrypt加密以及解密过程
Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示 Mcrypt扩展库可以实现加密解密功能 ...
- Java基础系列——序列化(一)
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6797659.html 工作中发现,自己对Java的了解还很片面,没有深入的研究,有很多的J ...
- MySQL中间件之ProxySQL(2):初试读写分离
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.实现一个简单的读写分离 这里通过一个简单的示例实现ProxySQL ...
- hadoop小结
测试小结:1.如果只需要对数据集进行过滤,筛选则只需要编写Mapper类,不需要Reduce类,此时要执行下面一条语句:job.setNumReduceTesk(0);2.如果需要对处理的数据进行分组 ...
- [转]如何将高版本的SQL Server数据库备份到低版本的SQL Server
本文转自:https://blog.csdn.net/wang465745776/article/details/54969676 前提条件备份SQL Server服务器版本为:12.0.2000.8 ...