ROS程序开机自启动

1.概述
写了这么多ROS的launch脚本,怎么才能开机就启动呢,本文介绍1种方法,使用ROS的 robot_upstart包,下面以pibot_bringuppackage的·bringup.launch`演示
2.robot_upstart包
2.1 安装

使用pibot_install_ros.sh一键安装工具即可安装所有pibot所需要的ROS包,如需单独安装sudo apt-get install ros-{ROS_DIST}-robot-upstart
ROS_DIST即为indigo或者kinetic
2.2 设置

rosrun robot_upstart install pibot_bringup/launch/bringup.launch
pibot@pibot-desktop:~$ rosrun robot_upstart install pibot_bringup/launch/bringup.launch
/lib/systemd/systemd
Preparing to install files to the following paths:
 /etc/ros/kinetic/pibot.d/.installed_files
 /etc/ros/kinetic/pibot.d/bringup.launch
 /etc/systemd/system/multi-user.target.wants/pibot.service
 /lib/systemd/system/pibot.service
 /usr/sbin/pibot-start
 /usr/sbin/pibot-stop
Now calling: /usr/bin/sudo /opt/ros/kinetic/lib/robot_upstart/mutate_files
Filesystem operation succeeded.
** To complete installation please run the following command:
 sudo systemctl daemon-reload && sudo systemctl start pibot

照着提示操作

sudo systemctl daemon-reload && sudo systemctl start pibot

2.3 测试

ps -aux | grep pibot_bringup

查看进程

pibot@pibot-desktop:~/pibot_ros$ ps -aux | grep pibot_bringup
pibot    15971 96.3  0.7  85620  7488 ?        Rsl  23:26   1:13 /home/pibot/pibot_ros/ros_ws/devel/lib/pibot_bringup/pibot_driver __name:=pibot_driver __log:=/tmp/0656ed38-5ba5-11e9-be9a-b827ebff3168/pibot_driver-2.log

已经可以查到该进程了

rosnode list

查看node

pibot@pibot-desktop:~$ rosnode list
/pibot_driver
/rosout

也可以看到2个node

roslaunch pibot keyboard_teleop.launch

启动键盘控制程序,也可以支持控制小车了
为了验证程序是否开启启动了,重启后再次重复2.3的测试步骤即可
2.4 停止以及取消开机启动
启动&停止

sudo service pibot start
sudo service pibot  stop

取消

rosrun robot_upstart uninstall pibot

3 robot_upstart服务名称
可以看到上面的service名称为pibot,通过查看源码可以看到
在这里插入图片描述

job_name取了包名的下划线前面的对pibot_bringup取了pibot
我们稍作修改
在这里插入图片描述

新增一个参数指定服务名称
对于上面我追加一个参数pibot_bringup

rosrun robot_upstart install pibot_bringup/launch/bringup.launch pibot_bringup
pibot@pibot-desktop:~$ rosrun robot_upstart install pibot_bringup/launch/bringup.launch pibot_bringup
/lib/systemd/systemd
Preparing to install files to the following paths:
/etc/ros/kinetic/pibot_bringup.d/.installed_files
/etc/ros/kinetic/pibot_bringup.d/bringup.launch
/etc/systemd/system/multi-user.target.wants/pibot_bringup.service
/lib/systemd/system/pibot_bringup.service
/usr/sbin/pibot_bringup-start
/usr/sbin/pibot_bringup-stop
Now calling: /usr/bin/sudo /opt/ros/kinetic/lib/robot_upstart/mutate_files
Filesystem operation succeeded.
** To complete installation please run the following command:
 sudo systemctl daemon-reload && sudo systemctl start pibot_bringup

我们就可以使用sudo service pibot_bringup start启动服务

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在树莓派中设置ROS 2程序开机自启动,可以通过以下步骤来完成: 1. 创建一个启动脚本 在树莓派中,可以使用/etc/init.d/目录下的脚本来进行开机自启动。因此,可以创建一个启动脚本,将ROS 2程序加入到其中,以便在开机时自动运行。 创建一个启动脚本,例如:/etc/init.d/ros2_startup.sh,并将以下内容添加到脚本中: ``` #!/bin/bash ### BEGIN INIT INFO # Provides: ros2_startup # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: ROS 2 Startup Script # Description: This script starts ROS 2 on boot. ### END INIT INFO # Set the path to the ROS 2 installation ROS2_INSTALL_PATH=/opt/ros/dashing # Set the path to the workspace containing your ROS 2 package WORKSPACE_PATH=/home/pi/ros2_ws # Source the ROS 2 setup script source $ROS2_INSTALL_PATH/setup.bash # Build the workspace cd $WORKSPACE_PATH && colcon build --symlink-install # Run the ROS 2 program ros2 run my_package my_node ``` 修改ROS2_INSTALL_PATH和WORKSPACE_PATH为你的实际路径,并将ros2 run my_package my_node替换为你要运行的ROS 2程序命令。最后,保存并关闭文件。 2. 使脚本可执行 使用以下命令将脚本设置为可执行: ``` sudo chmod +x /etc/init.d/ros2_startup.sh ``` 3. 添加启动脚本到启动项 使用以下命令将启动脚本添加到启动项中: ``` sudo update-rc.d ros2_startup.sh defaults ``` 现在,当树莓派启动时,ROS 2程序将自动运行。 注意:如果你需要停止ROS 2程序,请使用以下命令进行停止: ``` sudo systemctl stop ros2_startup ``` 如果你需要重新启动ROS 2程序,请使用以下命令: ``` sudo systemctl restart ros2_startup ``` 如果你需要从启动项中删除ROS 2程序,请使用以下命令: ``` sudo update-rc.d -f ros2_startup.sh remove ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值