一.建图实际操作
- 下载源码测试源码,depthimage_to_laserscan,参考https://blog.csdn.net/u010925447/article/details/56494680
- 解压到你的ros工作空间路径中。
- 使用catkin_make编译功能包。
- 分析launch文件,修改使其在自己的平台上可用:参考https://www.jianshu.com/p/429e59d48322
- 运行launch文件 启动转换节点:roslaunch depthimage_to_laserscan sample_node.launch(包含主节点和深度相机启动节点)
二.利用深度相机仿激光数据创建地图
- 下载hector_slam_example:下载地址 https://github.com/chenxingzhe/hector_slam_example,编译(cmake)(无需里程计即可建图,核心节点hector_mapping订阅/scan话题)
- sudo apt-get install ros-indigo-hector-slam
- Install the dependency packages:rosdep install hector_slam_example
- 在启动之前如果你用的是kinect,那就修改一下launch文件
- 然后就是roslaunch hector_slam_example hector_openni.launch
- 只需要让移动平台移动就可以去构建地图了,当然这里面用的生成模拟激光的方法是depthimage_to_laserscan节点,但是要求KINECT要相对稳定,并且尽量水平放置。
- 在rviz中就可以看到hector_slam的效果了
三.终端操作
- 启动摄像头 : $ roslaunch freenect_launch freenect.launch
- 启动深度转scan信息:$ rosrun depthimage_to_laserscan depthimage_to_laserscan image:=/camera/depth/image_raw
- 启动自己添加的三个launch文件:$ roslaunch hector_slam_launch slam.launch
- 查看tree图:$ rosrun rqt_tf_tree rqt_tf_tree
- 接下的是我自己通过手柄控制机器人的程序
- $ rosrun joy joy_node
- $ rosrun input_js_control logitech
- $ rosrun ros_car_py base.py
- $ python 22-tcp_client_joy.py
- 利用预先准备好的bag文件运行的SLAM
- $rosbag record -o foo scan tf
- $rosbag play --clock foo.bag
- $rosbag info foo.bag
- 创建完成之后,启动地图以及查看地图
- $ rosrun map_server map_server map.yaml
- $ rosrun map_server map_server -f map
- $ roscd ~/maps
- $ rosrun map_server map_server map.yaml
来源:oschina
链接:https://my.oschina.net/u/4274903/blog/3581993