• 小车launch节点开机自启动


    小车launch节点开机自启动

    搭建好小车的环境,需要考虑如何在每次开机能自动启动某些必要的节点,如各种要用的传感器驱动,底盘驱动等,而不必手动起。这里用到开源的包robot_upstart

    1、安装

    sudo apt install ros-noetic-robot-upstart 
    

    2、新建robot_bringup包

    cd ~/ros_ws/src
    catkin_create_pkg robot_bringup std_msgs rospy roscpp
    cd robot_bringup
    mkdir launch
    cd launch
    touch myrobot.launch
    cd ../../..
    catkin_make
    

    由于只需要把所有需要启动的节点放在一起,创建一个功能包后添加launch文件即可。 myrobot.launch如下:

    <launch>
      <include file="$(find bluesea2)/launch/LDS-50C-2.launch"/>
    </launch>
    

    3、基本命令

    #创建节点服务
    
    rosrun robot_upstart install robot_bringup/launch/myrobot.launch --job robot_bringup --master http://192.168.12.1:11311 --logdir ~/autostart_log/robot_bringup.log
    

    其中robot_bringup/launch/myrobot.launch中包含了启动所有自启动的节点的launch文件

    参数:
    --job 节点服务的名称
    --master 节点服务器roscore的IP及端口配置,默认的是127.0.0.1
    --logdir 存放日志文件的路径

    #启动节点服务
    sudo systemctl daemon-reload && sudo systemctl start robot_bringup
    
    #查看节点服务器状态
    sudo systemctl status robot_bringup
    
    #停止节点服务
    sudo systemctl stop robot_bringup
    
    #重启节点服务
    sudo systemctl restart robot_bringup
    
    #卸载节点服务
    rosrun robot_upstart uninstall robot_bringup
    

    4、使用过程中遗留:不能单个节点设置一个节点服务,会造成roscore多次启动问题,暂时没找到解决办法。

    5、过程中的坑:在不知道这个ros包之前,自己手动设置过rc.local文件,在开机启动时启动startup.sh脚本,但是由于sh脚本中包含图形界面的终端的打开操作,而rc.local在登陆界面前是执行不了这些带图形的脚本操作的,所以这个方法失败。后面有查阅到~/.config/autostart的.desktop文件的设置(也可通过界面来配置)实现执行启动脚本,也有一个问题,那就是必须得界面登陆后才会自动执行,而大部分情况下,我们都是用远程登陆的方式,不会登陆界面,而且这种方式也比较麻烦,所以也放弃了。

  • 相关阅读:
    编译安装
    yum history使用详解(某次为解决误卸载软件的回退实验)
    centos7了解
    码云仓库中获取单个文件的超链接
    常用软件及安装目录有链接的
    rsync备份服务器部署详情
    snmpwalk命令详解
    vmware迁移虚拟机
    ngrinder脚本请求头中添加cookie后仍报未登录或者401错误问题解决
    python多进程和多线程效率比较,ProcessPoolExecutor,ThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/havain/p/15899582.html
Copyright © 2020-2023  润新知