ここでは、robot_upstart 関数パッケージを使用してブート自動起動関数を設定していますが、kinetic バージョンと Melodic バージョンの robot_upstart 関数パッケージは若干異なることに注意してください。
1. robot_upstart をインストールする
(1) ROS システムのメロディック バージョンの場合は、apt install メソッドを使用して直接インストールするだけで、個人的なテストに利用できます。
sudo apt install ros-melodic-robot-upstart
(2) ROS システムの動的バージョンの場合、apt install で直接インストールすると、エラーが報告され、一部の依存関係が欠落します。したがって、ソースコードを使用してインストールし、依存関係を手動でインストールする必要があります。
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. 自動開始タスクを追加する
(1) robot_upstart は ROS ノードであるため、起動前に roscore を有効にする必要があります。
roscore
(2) 次に、robot_upstart の help コマンドを使用して、その使用方法を表示できます。
rosrun robot_upstart install -h
(3) 起動する必要のあるすべての ROS ノードを起動ファイルに書き込みます ここでは miiboo_bringup/launch/myrobot.launch ファイルを書き込みます ファイルの内容は次のとおりです。
<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) 起動ファイルをロードする
rosrun robot_upstart
install miiboo_bringup/launch/myrobot.launch --job myrobot --interface wlan0 --logdir ~/myrobot.log
の、
--job はタスクのエイリアスを指定します
--interface はネットワーク インターフェイスを指定します。これを設定する必要があります。そうしないと、マルチマシン ROS 通信が実現できません。
--logdir はログ保存ディレクトリを指定します。
3. タスクの開始、再開、停止
(1) タスクを開始する
sudo systemctl daemon-reload && sudo systemctl start myrobot
(2) タスクを再起動する
sudo systemctl restart myrobot
(3) タスクを停止する
sudo systemctl stop myrobot
4. 自動起動タスクをアンインストールします。
(1) robot_upstart は ROS ノードであるため、起動前に roscore を有効にする必要があります。
roscore
(2) アンインストール
rosrun robot_upstart uninstall myrobot
(3) ログの削除
sudo rm -rf ~/myrobot.log
参考文献
[1] Zhang Hu、ロボット SLAM ナビゲーションのコア技術と実践 [M]、Machinery Industry Press、2022 年。