電源が入ったらroscoreを自動で立ち上げる
やること
ロボットの電源が入ったら、roscoreやroslaunchを自動で実行
手動でログインしてコマンドをうつ必要がなくなるため、手間が省ける
ロボットを何回も再起動させる必要があるときなど便利
環境
- Ubuntu16.04
- ROS Kinetic
- Raspberry Pi 3
流れ
参考
電源を入れたときにtty1を自動ログインする設定あれこれ集.md · GitHub
ROSのsetup.bashに書いておくとちょっと便利なbashスクリプト - MyEnigma
1. 自動ログイン
以下のコマンドを実行
$ sudo systemctl edit getty@tty1
以下の内容を記述
usernameは自動ログインのユーザ名
[Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
ちゃんとできているかは/etc/systemd/system/getty@tty1.service.d/override.confなどを確認
2. bashファイルにスクリプトを記述
bashrcから読み込まれるbashファイルにroscoreを立ち上げるようにスクリプトを記述
roscore &
「roscoreが立ち上がっていなかったらroscoreを立ち上げる」というような条件を付けるなら以下を参考に
同じようにroslaunchやrosrunも実行可能
補足
bashrcはユーザがログインしたときに読み込まれる
よって自動ログインによりbashrcが読み込まれることになる
まとめ
ロボットの電源が入った時、自動でroscoreを実行できるようにした