上一篇中,在ROS虚拟机中成功使用rplidar运行google cartographer后,下一步试图把这些移植到实验室的turtlebot上(tk1 + kobuki base)。本篇记录一下移植过程和期间遇到的一些小问题。
tk1刷机
刷机的起因是刚开始直接在实验室turtlebot直接安装cartographer的时候出现了一些编译上的错误,看了几天实在是没有能力解决这些问题,于是做了一个艰难的决定------刷机。板子这一块不是很熟悉,具体的刷机过程参考了:http://blog.csdn.net/deyili/article/details/51011836。感谢大神的分享。
ROS的安装
这里依旧和虚拟机一样采用了易科实验室的ROS-indigo。
sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=POSIX
sudo sh -c '. /etc/lsb-release && echo "deb http://ros.exbot.net/rospackage/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-indigo-ros-base -y
sudo apt-get install python-rosdep -y
sudo rosdep init
rosdep update
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall -y
问题一
发现刷完机后的系统只可以有线上网并没有无线网,本能反应tk1的驱动问题呗。于是搜索一番解决:
sudo apt-get install git
git clone https://github.com/jetsonhacks/installGrinch.git
cd installGrinch
./installGrinch.sh
apt-get install chrony
sudo reboot
rplidar的安装
同上篇,参考官方教程即可:https://github.com/robopeak/rplidar_ros/wiki
问题二
安装完rplidar后,命令行输入ls –l /dev | grep ttyUSB 并没有发现 /dev/ttyUSB0。
这里参考了:http://blog.csdn.net/sinat_31135199/article/details/52902744?locationNum=13&fps=1 。感谢大神的分享。
再有就是,装完rplidar和kobuki底座之后因为有2个USB设备,rplidar对应的可能就不是ttyUSB0而是ttyUSB1了,这样roslaunch rplidar_ros rplidar.launch后会出现error, operation time out的错误。
此时需要remap一下USB serial port name。方法是修改rplidar.launch文件把
其中的ttyUSB0改成ttyUSB1
turtlebot的安装
参考官方教程即可:http://wiki.ros.org/Robots/TurtleBot
问题三
本以为可以手动操纵机器人载着雷达扫描,结果问题来了:输入 rosrun kobuki_ftdi create_udev_rules后/dev下并没有kobuki,输入指令roslaunch turtlebot_bringup minimal.launch和roslaunch turtlebot_teleop keyboard_teleop.launch机器人也不能键盘控制。原因是没有加入网络时间控制,tk1和kobuki无法通讯。解决办法:
安装chrony:
sudo apt-get install chrony
进行syncNTP:
sudo ntpdate ntp.ubuntu.com
其实都是很简单的问题,主要还是对这些知识掌握得不够全面不够深入。最后感谢腾哥的指导!