【ROS总结】Turtlebot ROS 开机自启动设置

来源:互联网 发布:网络信息安全问题 编辑:程序博客网 时间:2024/06/05 09:24

  关于ROS自启动设置,之前查看了很多相关文章,并不是很适用,尤其是开机启动时候加载minimal.launch和amcl.launch的时候,目前开启自启动的ROS包有upstart,该包是通过创建一个服务来启动minimal.launch等基本的launch文件,要是启动多个launch文件,可以通过把多个launch文件写入到一个launch中这样的方法来启动。

  还有其他方式是利用Ubuntu自带的开机启动文件来达到多launch文件启动效果,一种是服务,方法和upstart类似,如果想要多launch文件分别启动,例如minimal.launch和amcl.launch两个launch文件,当启动完minimal.launch后,再启动amcl.launch会出现waiting for device...字样,导致的结果就是amcl.launch自动不了,还得重新启动。因此,把多个launch文件写入到一个launch启动就不会提示waiting for device...。

  另外一种是在开机启动文件rc.local文件中直接写入ros命令来达到开机启动效果,把minimal和amcl两个launch文件写成一个launch命名为auto_start.launch,然后在rc.laoch中写入如下内容:

  source /opt/ros/indigo/setup.bash  roslaunch /etc/auto_start.launch
  其中auto_start.launch文件所在位置并不重要,需要写在exit 0的前面即可,不过这个不能启动用户目录下的配置,如果启动用户目录下的launch文件,需要source ~/.bashrc。

  我用的方法是,把所有需要的配置和launch文件写到了一个脚本中,通过开机启动脚本来达到启动效果,不过经过测试,单独运行两个launch文件还是有错误,即运行完minimal后运行amcl.launch的时候,会卡在waiting for device...。目前解决方法是把minimal和amcl写到了一个文件中命名为minimal_amcl.launch。

  启动minimal_amcl.launch文件是在开机的第20秒左右,amcl.launch和minimal.launch共启动了两次,基本完全启动差不多是一到两分钟左右。目前不知道是什么原因,如果有知道的请告知,谢谢! 

  首先,在家目录下创建一个名为aotu_runing的目录,在该目录下创建脚本文件minimal,内容如下:

<pre name="code" class="plain">#!/bin/bashsource /opt/ros/indigo/setup.bashsource ~/.bashrcexport TURTLEBOT_BASE=kobukiexport TURTLEBOT_3D_SENSOR=kinectexport TURTLEBOT_MAP_FILE=<path_of_map_file>source ~/catkin_ws/devel/setup.bashexport ROS_HOSTNAME=10.42.0.1export ROS_MASTER_URI=http://10.42.0.1:11311d='data +%Y%m%d-%H:%M:%S'echo "[$d]:minimal runing" >> ~/print_log.txtroslaunch turtlebot_bringup minimal_amcl.launch

  其中首先source ros路径,然后source bashrc和用户目录下的catkin_ws,因为catkin_ws目录下包含了路径规划算法。

<pre name="code" class="plain">d='data +%Y%m%d-%H:%M:%S'echo "[$d]:minimal runing" >> ~/print_log.txt

  打印出信息到家目录下。

  然后修改/etc/rc.local文件:

#!/bin/sh -ecd ~/aotu_runing./minimal
  配置完成,当再次开机的时候,等待1到2分钟,会听到Turtlebot响声,amcl也一起启动。



0 0
原创粉丝点击