自主导航小车实践(四)

2.6自启动脚本问题

首先我们延续之前的教程,我们将启动所有ROS节点的命令放在一个自启动脚本中,让Ubuntu开机自动运行,在Ubuntu中有两种方式可以实现自启动脚本的功能。

第一种是通过Ubuntu中的rc.local 这个脚本文件,这里我们需要预先将启动的代码编写到一个xxx.sh 文件里面(当然,如果命令少的话你也可以将所有的命令直接卸载rc.local 中),然后打开rc.local文件在 “exit 0 前面添加自启动的命令” 如:

"terminal -x /home/crp/xxx.sh
echo  123456| sudo -S  
gnome-terminal -t "terminal-name" -X bash -c "sh ./xxx.sh"; exec bash; "

这段命令是说,新建一个terminal终端,然后运行在 /home/crp/xxx.sh 目录下的 xxx.sh 文件, 同时切换为超级用户(密码为123456),之后再新建一个终端运行另外一个xxx.sh文件。

第二种方式是将启动脚本安装为Ubuntu的启动服务:
1> 将启动脚本 “my_autorun.sh” 复制到 /etc/init.d/ 目录下
2> 接下来修改这个脚本的权限

sudo chmod 755 /etc/init.d/my_autorun.sh

3> 安装脚本服务

cd /etc/init.d
sudo update-rc.d my_autorun.sh default 95   #其中95是启动顺序

4> 卸载脚本服务(安装时候不需要操作)

 cd /etc/init.d
 sudo update-rc.d -f my_autorun.sh remove   #其中95是启动顺序

接下来我们新建一下名为“car_launch.sh”的文件,并添加以下内容:

3 小结

通过前面三篇的博客,梳理了自主导航小车的硬件框架,建图的算法框架以及导航的算法框架。所有的代码我都放在了这个github上。

在硬件篇中,由于我们使用的是标准平台,不涉及自己制作小车底盘,因此没有提及到底盘制作的步骤,后续将搭建一个自制的ROS底盘,一般来讲ROS底盘需要接收线速度和角度指令,底盘由单片机与ROS节点通讯,单片机负责电机的闭环控制,以及底盘的运动学模型转换。此外底盘上还需要有超声波和电源管理系统等额外传感模块。
【1】https://blog.csdn.net/huaweijian0324/article/details/81142610
【2】 https://www.ncnynl.com/category/ros-car/
【3】https://www.ncnynl.com/archives/201703/1415.html

在建图的过程中我们只是用了gmapping建图方式,gmapping只适用于2D的激光雷达,对于3D激光和RGB-D相机没法建图,因此后续计划学习google的cartography已经使用ORB-SLAM建立3D点云地图。
【4】https://blog.csdn.net/Nksjc/article/details/77359952
【5】https://blog.csdn.net/x_r_su/article/details/52927564
在运动规划过程中,我们只是浅显的理解了move_base的运行参数,由于其参数比较多,因此计划在后续过程中更加深入的理解move_base的运行参数

上一篇 : 自主导航小车实践(三)

对于运行有问题的小伙伴欢迎邮件或留言讨论[email protected]

你可能感兴趣的:(自主导航小车)