turtlebot(hydro)学习笔记四:turtlebot上hokuyo UTM-30LX激光扫描仪的添加及导航
来源:互联网 发布:数据库的数据模型是指 编辑:程序博客网 时间:2024/06/09 19:41
一、将Hokuyo Laser添加到Turtlebot
1、udev配置
(1)进入/etc/udev/rules.d目录,新建一个50-laser.rules文件,添加以下内容到该文件:KERNEL=="ttyACM[0-9]*", MODE="0777"
(2)重启udev以使之前添加的.rules文件生效:
$sudo /etc/init.d/udev restart
(3)插入激光扫描仪,并检测设备权限:
$ ls -al /dev/ttyACM0 ,如果显示 crw-rw-- -- 1 root dialout…….
则输入$ sudo chmod a+rw /dev/ttyACM0,再查看权限应该如下:
crw-rw-rw- 1 root dialout 166……
2、新建一个catkin空间并添加turtlebot程序包
(1)回到home目录下,新建一个hydro空间:
$cd
$mkdir hydro
$cd hydro
$mkdir src
$cd src
(2)下载turtlebot程序包到src目录
$ git clone https://github.com/turtlebot/turtlebot.git
(3)编译程序包
$cd .. 回到hydro目录才能执行catkin_make
$catkin_make
$source ~/hydro/devel/setup.bash
(4)修改 .bashrc文件【.bashrc文件在home目录下】
$cd
$gedit .bashrc
用#符号注释掉文件末尾 source /opt/ros/hydro/setup.bash
并添加另一条 source ~/hydro/devel/setup.bash
修改好过后执行: $source ~/.bashrc
3、修改turtlebot_description目录下的内容
$roscd turtlebot_description
$gedit ./urdf/turtlebot_library.urdf.xacro
在文件末尾处</robot>标签前面添加以下内容:
<joint name="laser" type="fixed">
<origin xyz="-0.005 0.00 0.360" rpy="3.14159 0 0" />
<parent link="base_link" />
<child link="base_laser_link" />
</joint>
<link name="base_laser_link">
<visual>
<geometry>
<box size="0.00 0.05 0.06" />
</geometry>
<material name="Green" />
</visual>
<inertial>
<mass value="0.000001" />
<origin xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0.0" ixz="0.0"
iyy="0.0001" iyz="0.0"
izz="0.0001" />
</inertial>
</link>
4、修改turtlebot_bringup下面的launch文件
(1)3dsenser.launch中,将<arg name="scan_topic" default="scan" />修改为
<arg name="scan_topic" default="kinect_scan" />
注:经过对比实验,我们也测试过不修改这一步,实验结论:这个修改对我们第二步用laser做地图创建应该没有影响。
(2)minimal.launch中,在文件末尾</launch>标签之前添加以下内容:
<node name="laser_driver" pkg="hokuyo_node" type="hokuyo_node">
<param name="frame_id" value="base_laser_link" />
</node>
5、安装hokuyo运行节点
sudo apt-get install ros-hydro-hokuyo-node
二、利用hokuyo laser创建地图步骤
【接下来步骤跟之前的地图创建步骤一样,只是对minimal.launch文件的修改,是我们可以利用hokuyo laser来创建地图】
1、$roslaunch turtlebot_bringup minimal.launch
2、$roslaunch turtlebot_navigation gmapping_demo.launch
3、$roslaunch turtlebot_rviz_launchers view_navigation.launch
4、$roslaunch turtlebot_teleop keyboard_teleop.launch
5、地图构建完成之后保存 :
$rosrun map_server map_saver -f /tmp/my_map
注意:在地图保存完之前不要关闭gmapping.launch
三、已知地图下的自动导航
1、运行上一步中已经保存好的地图
$roslaunch turtlebot_navigation amcl_demo.launch map_file:=/tmp/my_map.ymal
2、$roslaunch turtlebot_rviz_launchers view_navigation.launch
开始的时候turtlebot 不知道他自己在地图的什么位置,所以我们要指示给他他的初始位置和面向
2.1 点击“2D Pose Estimate”按钮
2.2 点击地图上turtlebot所在的位置然后拉箭头到turtlebot面向的方向。你将看到很多绿色箭头的集合表明了turtlebot 所在的位置。绿色的激光扫描直线代表turtlebot 看到的墙。如果上诉特征没有出现请重复这一步骤。
2.3 发送目标
2.3.1 点击“2D Nav Goal”按钮
2.3.2 点击地图上任意一点你想让turtlebot 去的地方然后选择箭头的朝向来确定turtlebot的面向
如果你想在turtlebot 到达目标停止turtlebot,可以将他当前所在
的位置发送给他。
- turtlebot(hydro)学习笔记四:turtlebot上hokuyo UTM-30LX激光扫描仪的添加及导航
- turtlebot(hydro)学习笔记六:添加多个Kinect
- turtlebot(hydro)学习笔记三:Android手机控制turtlebot
- turtlebot(hydro)学习笔记五:Joystick控制turtlebot运动
- Cartographer连接激光-hokuyo UTM-30LX
- 结合hokuyo的UST-10LX激光雷达在turtlebot上建图
- 结合hokuyo的UST-10LX激光雷达在turtlebot上建图
- turtlebot(hydro)学习笔记二:桌面pc机键盘远程控制turtlebot
- turtlebot(hydro)学习笔记一:两台PC机间通信
- turtlebot(hydro)学习笔记七:ASUS Xtion pro live替换kinect
- turtlebot gmapping with Hokuyo
- ROS(hydro)下安装turtlebot出现的错误与解决办法
- TurtleBot:从Hydro到Indigo的一些变更
- 增加Hokuyo Laser到你的turtlebot注意事项
- ROS学习--(十七)turtlebot的安装
- turtlebot
- Turtlebot学习指导第一篇_开发Turtlebot的方法
- TurtleBot基于已知地图的自主导航
- java整理之集合框架
- sklearn学习笔记_1
- CoreAnimation 和 CoreGraphics
- Qt 实时读串口数据,并将读到的数据从网口发送出去
- GBD调试简介
- turtlebot(hydro)学习笔记四:turtlebot上hokuyo UTM-30LX激光扫描仪的添加及导航
- nyoj--92 图像有用区域(bfs)
- AXIS(Java WebSerivce)全攻略
- 一个bug的成本
- 7.1 Javascript:表单与验证-长度验证
- SIFT特征--方向赋值与关键点描述
- eval()'d code()報錯,清理bom頭部輸出
- C中预编译详解
- 如何正确地写出单例模式