YKpages

ロボット関連で勉強したことのまとめ

電源が入ったらroscoreを自動で立ち上げる

やること

ロボットの電源が入ったら、roscoreやroslaunchを自動で実行

手動でログインしてコマンドをうつ必要がなくなるため、手間が省ける

ロボットを何回も再起動させる必要があるときなど便利

環境

流れ

  1. 自動ログイン

  2. bashrcが読み込まれ、bashファイルも実行

  3. bashファイル内にroscoreを立ち上げるようにスクリプトを記述

  4. よってroscoreが自動で実行

参考

電源を入れたときにtty1を自動ログインする設定あれこれ集.md · GitHub

getty - ArchWiki

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を立ち上げるようにスクリプトを記述

今回はsetup.bashに以下のスクリプトを追加で記述

roscore &

「roscoreが立ち上がっていなかったらroscoreを立ち上げる」というような条件を付けるなら以下を参考に

myenigma.hatenablog.com

同じようにroslaunchやrosrunも実行可能

補足

bashrcはユーザがログインしたときに読み込まれる

よって自動ログインによりbashrcが読み込まれることになる

まとめ

ロボットの電源が入った時、自動でroscoreを実行できるようにした