1.安装Ubuntu
官网下载镜像,这里选择长期维护版本14.04,官方下载地址:
https://www.ubuntu.com/download/alternative-downloads
用软碟通ISO做一个Ubuntu镜像,软碟通中国网址:
https://cn.ultraiso.net/
制作Ubuntu镜像的步骤百度经验有参考,网址:
https://jingyan.baidu.com/article/d5c4b52be79960da560dc59f.html
安装完成后,可以做一下Ubuntu系统简化处理,安装输入法以及卸载不常用的软件,让系统更简洁。参考网址:
https://blog.csdn.net/batman_0331/article/details/43638813
2.安装ROS
这里选择indigo版本,ROS indigo和 Ubuntu 14.04 都是LTS(长期维护版本),并且ROS indigo是专门为 Ubuntu14.04 量身定做。并且dashgo的软件包也是推荐这俩版本的结合。
在dash搜索里面搜索software updater配置Ubuntu软件仓库以及选择速度快的服务器。
配置 ROS 的 apt 源
ROS的apt源有官方源、国内 USTC 源或新加坡源可供选择, 选择其一就可以了,建议使用国内 USTC 源或新加坡源,安装速度会快很多。
方式一:官方源
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116
$ sudo apt-get update
方式二:国内 USTC 源 URL :http://mirrors.ustc.edu.cn/ros/
$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116
$ sudo apt-get update
安装ROS软件包
$ sudo apt-get install ros-indigo-desktop-full
$ sudo apt-get install python-rosinstall
配置环境变量
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
测试ROS安装是否成功
在终端输入 roscore ,输出如下所示,表示环境配置成功,ros正常运行。
Ubuntu@Ubuntu:~$ roscore
... logging to /home/opt/ros/log/45d93ed8-a23a-11e6-99b1-4437e63de0fc/roslaunch-ubuntu-3460.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ubuntu:35377/
ros_comm version 1.11.20
SUMMARY
========
PARAMETERS
* /rosdistro: indigo
* /rosversion: 1.11.20
NODES
auto-starting new master
process[master]: started with pid [3472]
ROS_MASTER_URI=http://eaibot:11311/
setting /run_id to 45d93ed8-a23a-11e6-99b1-4437e63de0fc
process[rosout-1]: started with pid [3485]
started core service [/rosout]
3.安装DASHGO软件包
因为底盘是选择的EAI底盘,可以参考创客智造里面的安装方式,但是我们的激光选择不同,参考网址:
https://www.ncnynl.com/archives/201709/1968.html
安装ROS依赖包
$ sudo apt-get install ros-indigo-serial ros-indigo-turtlebot-rviz-launchers ros-indigo-move-base-msgs libghc-sdl-image-dev libsdl-image1.2-dev ros-indigo-navigation ros-indigo-slam-gmapping ros-indigo-teb-local-planner
创建文件夹
$ mkdir -p ~/dashgo_ws/src
$ cd ~/dashgo_ws/src
下载 Dashgo SLAM 版本
$ git clone https://github.com/EAIBOT/dashgo.git
$ cd dashgo
$ git checkout slam_02
注意这里是切换到slam_02分支,对应的是他们自带的F4激光,对LMS100激光也可以用。
4.下载LMS100激光驱动(网口版本)
deb包安装
sudo apt-get install ros-indigo-lms1xx
源码安装
$ mkdir -p ~/dashgo_ws/src
$ cd ~/dashgo_ws/src
$ git clone https://github.com/ncnynl/LMS1xx.git
修改激光IP
在激光配置软件(SICK官方有提供)上查询激光IP,将笔记本IP和激光改成同一网段,参考网址:
http://blog.csdn.net/u013453604/article/details/50725833
Ubuntu的IP
在Ubuntu下“编辑连接”——“以太网”——“添加”创建一个名为lmsxxx的有线连接。
手动设定子网掩码为255.255.255.0,手动设定IP为:192.168.0.2~192.168.0.254都行。
这样此IP与LMSxxx设备IP就处于同一网段了。
编译:
$ cd ~/turtlebot_ws
$ catkin_make
另外,在建图之前应确保底盘编码器输出(Odom),激光扫描图像,TF关系调试。
编码器输出(Odom)可在底盘进行精度测试的时候确定即可,直线校正与360度原地转弯矫正,具体矫正方式在底盘使用说明上有,这里不再赘述。
激光调试,激光雷达通过网线连接到ubuntu电脑,新终端,执行
$ roscore
新终端,执行
$ rosrun lms1xx LMS1xx_node _host:=192.168.0.1
新终端,执行
$ rosrun rviz rviz
左击ADD-->by topic-->选择LaserScan
这时会发现status error,再将FixedFrame后面的值改为laser即可,效果:
参考:https://www.ncnynl.com/archives/201703/1432.html
TF调试可以通过rqt工具调整:
分析你的TF tree结构应保持一致。
5.代码
因为激光驱动是移植到dashgo软件包里面的所以注意frame_ID要保持一致,将laser修改为laser_frame这些细节要注意。
将bring_nav 文件夹里面的launch文件里面的原激光启动文件屏蔽,添加LMS1xx节点下的launch文件,注意LMS100激光的IP地址。
修改TF在RIVZ里面打开TF可以看到laser的变换修改括号里面的五个值使他们符合自己激光的安装位置。
6.执行
可执行里面的gmapping launch文件,打开rviz以及开启键盘控制即可。
$ roslaunch dashgo_nav gmapping_demo.launch
$ roslaunch turtlebot_rviz_launchers view_navigation.launch
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
7.地图保存
$ roscd dashgo_nav/maps
$ rosrun map_server map_saver -f my_map
附建图图像:
第一次写博客,如有问题请联系我:ribuluodeqishi@outlook.com,谢谢~