一.驱动程序的安装。参照:http://blog.csdn.net/jie_sky_2015/article/details/50894649
将hokuyo添加到turtlebot上
1、udev配置
(1)cd /etc/udev/rules.d目录,新建一个50-laser.rules(文件名.rules)文件,添加以下内容到该文件:KERNEL=="ttyACM[0-9]*", MODE="0777"
注意: 先 cd 文件名.rules, 添加内容时:要用这个命令:sudo gedit 文件名.rules,后保存。
(2)重启udev以使之前添加的.rules文件生效:
$sudo /etc/init.d/udev restart
(3)插入激光扫描仪,并检测设备权限:
$ ls -al /dev/ttyACM0 ,如果显示 crw-rw-- -- 1 root dialout……. //注意有没有出现ttyACM0
则输入$ 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 //catkin_make可能出现问题
(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用#符号注释掉文件末尾 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="0 0 0" /> 此处rpy和原文不一样。原文是3.1415926,表示 是旋转。理解urdf后即可理解。
<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)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
二。创建地图时出现的问题:
解决:改掉第三步注释的地方。