Ici, le package de fonctions robot_upstart est utilisé pour définir la fonction de démarrage automatique. Il convient de noter que le package de fonctions robot_upstart des versions cinétique et mélodique sera légèrement différent.
1. Installez robot_upstart
(1) S'il s'agit d'une version mélodique du système ROS, utilisez simplement la méthode d'installation apt pour l'installer directement, et elle est disponible pour des tests personnels.
sudo apt install ros-melodic-robot-upstart
(2) S'il s'agit d'une version cinétique du système ROS, si vous l'installez directement avec apt install, une erreur sera signalée et certaines dépendances seront manquantes. Vous devez donc l'installer avec le code source et installer manuellement les dépendances.
cd ~/catkin_ws/src
git clone https://github.com/clearpathrobotics
/robot_upstart.git
cd ..
#如果编译无响应,请将~/catkin_ws/build中的文件全部删除后重试
catkin_make
#用rosdep安装robot_upstart所需依赖项
rosdep install robot_upstart
2. Ajouter des tâches à démarrage automatique
(1) Étant donné que robot_upstart est un nœud ROS, roscore doit être activé avant de démarrer.
roscore
(2) Ensuite, vous pouvez utiliser la commande help de robot_upstart pour voir son utilisation.
rosrun robot_upstart install -h
(3) Écrivez tous les nœuds ROS qui doivent être démarrés dans un fichier de lancement. Ici, j'ai écrit le fichier miiboo_bringup/launch/myrobot.launch. Le contenu du fichier est le suivant.
<launch>
<!-- launch sensor -->
<include file="$(find miiboo_bringup)/launch/miiboo_all_sensor.launch"/>
<!-- launch nav -->
<include file="$(find miiboo_nav)/launch/miiboo_nav.launch" />
<!-- launch manage -->
<include file="$(find nav_manage)/launch/nav_manage.launch"/>
</launch>
(4) Charger le fichier de lancement
rosrun robot_upstart
install miiboo_bringup/launch/myrobot.launch --job myrobot --interface wlan0 --logdir ~/myrobot.log
dans,
--job spécifie l'alias de la tâche
--interface spécifie l'interface réseau, qui doit être définie, sinon la communication ROS multi-machine ne peut pas être réalisée
--logdir spécifie le répertoire de stockage des journaux
3. Démarrer, redémarrer, arrêter des tâches
(1) Démarrer la tâche
sudo systemctl daemon-reload && sudo systemctl start myrobot
(2) Redémarrez la tâche
sudo systemctl restart myrobot
(3) Arrêter la tâche
sudo systemctl stop myrobot
4. Désinstallez la tâche à démarrage automatique
(1) Étant donné que robot_upstart est un nœud ROS, roscore doit être activé avant de démarrer.
roscore
(2) Désinstaller
rosrun robot_upstart uninstall myrobot
(3) Supprimer le journal
sudo rm -rf ~/myrobot.log