Jetson NanoでRealSense D435iとT265を使ったプログラムを自動起動させる方法
Jetson Nanoは値段が安くてそこそこ性能が良いので、ロボットの頭として便利に使えます。画像処理も得意なのでいろいろなセンサーを搭載して、ロボットの起動と同時に、それらセンサーを使ったプログラムが自動で起動するようにしたいことが結構あります。
「Ubuntu」「自動起動」などで検索してやり方を調べてみると、rc.localを使った方法やsystemdを使った方法などが見つかります。しかし、これらはX-Windowが立ち上がる前に呼ばれてしまうので、X-Windowを使用するプログラムを正しく起動することが難しいです。
またteratermなどからログインしてプログラムを起動しようとしても、xwindowを使うプログラムは画面のポートフォワーディングを設定しておかないとすんなり立ち上がってくれません。
そこで、xwindowが立ち上がってからプログラムを起動するように設定したいと思います。
~/.config/autostartを使う
Gnomeデスクトップの準備ができてからプログラムを起動するためには、ユーザのホームディレクトリに隠されている.configディレクトリの下に、autostartというディレクトリを用意して、その中に.desktop拡張子をもったファイルを置くことで行います[1]。
準備
autostartディレクトリが無い場合は自分で作ります。
> cd ~/.config
> mkdir autostart
> cd autostart
> nano realsense.desktop // なんでもいい適当なファイル名.desktop
realsense.desktopの中身は書式[2]に従って
[Desktop Entry]
Exec=何か実行したいプログラム
Type=Application
と書きます。
実行失敗したときにエラーメッセージが読めないと困るので、gnome-terminalを立ち上げてから、起動用のシェルプログラムを呼びます。
[Desktop Entry]
Exec=gnome-terminal -- bash -c "bash /home/cvl/workspace/openFrameworks/apps/myApps/myRealsenseMulti/autostart.sh; bash"
Type=Application
プログラムが終了したときに窓が消えてしまわないように、;bashを最後におまじない的に入れておきます。
autostart.shの中身は好きに書いてもらえばいいのですが、こんな感じで使っています。
sleep 5;
cd ~/workspace/openFrameworks/apps/myApps/myRealsenseMulti
make RunRelease
スーパーユーザー権限が必要な時の対処法
Dynamixelのモータとか、ルート権限が必要なデバイスを起動したいときはsudoを付けて起動しますが、通常パスワードをインタラクティブに入力しなければなりません。sudoに-Sオプションを付けると、標準入力からパスワードを読んでくれるようになりますのでこれを利用します。
autostart.shをこんな感じに変えます。
PASSWORD=password
echo PASSWORD | sudo -S ./bulk_read_write
参考文献
[1] Ubuntu起動と同時に自動でターミナルを開く - Qiita
[2] Autostart - LXDE.org
今日の本文
Jetson Nanoは本体は安いけれど、オプションに結構お金がかかるのが難点です。自分が使っているものを備忘録として、記載しておきます。
NVIDIA Jetson Nano開発者キットケース用の新しい到着アクリルケースボックス(ジャストボックス)
- 出版社/メーカー: heartbeeps
- メディア: エレクトロニクス
- この商品を含むブログを見る
Noctua NF-A4x20 5V PWM 40mm 静音 ファン 5000rpm
- 出版社/メーカー: Noctua
- メディア: Personal Computers
- この商品を含むブログを見る
- メディア:
- この商品を含むブログを見る
SUCCUL ACアダプター 5V 4A 大手メーカーOEM社製品 センタープラス スイッチング式 最大出力20W 出力プラグ外径5.5mm(内径2.1mm)PSE取得品
- 出版社/メーカー: サクル株式会社
- メディア: エレクトロニクス
- この商品を含むブログを見る
- 出版社/メーカー: Hommy
- メディア:
- この商品を含むブログを見る
microSDXC 128GB SanDisk サンディスク Extreme UHS-1 U3 V30 4K Ultra HD A2対応 SDアダプター付 [並行輸入品]
- 出版社/メーカー: サンディスク
- メディア: エレクトロニクス
- この商品を含むブログを見る
高性能3dBi 2.4GHz/5GHz 無線LANカード WIFI/Wimax/Bluetoothモジュール用アンテナ 2本セット (MHF4 Cable=240mm)
- 出版社/メーカー: LTDparts
- メディア: エレクトロニクス
- この商品を含むブログを見る
ファンの取り付けのために、3mmのタップが立てられると便利です。
- 出版社/メーカー: ライト精機
- メディア: Tools & Hardware
- この商品を含むブログを見る