はじめに
ROS の初心者が、とっても簡単なROSアプリを作ってみました。(連載記事です)
【ご注意】
- 画像撮影用アプリは、永遠に撮影を続けます
- 前回の記事で稼働させた Subscriber アプリは永遠に画像を保存し続けます
- 当然、ストレージ容量は無限ではありません
- タイミングを見計らって、今回の一連記事で稼働させるアプリは停止してください
今回の記事の概要
- k8s ノード(Raspberry PI:arm) へのラベル付け
- k8s ノード(同上)上にて、画像撮影用 ROS アプリ(Publisher)を稼働させる
- k8s ノード(同上)上にて、multimaster_fkie を稼働させる
- 今回の記事に該当するソースファイルは、以下のアドレスから参照可能です
構築手順
k8sラベル付け
- k8s master に ssh
- アプリを配置する k8s ノード(今回は Raspberry PI)を確認(get nodes)
- アプリを配置する k8s ノードを制御するため、k8sノードにラベル付け(label node 'LABEL')
- 以下(↓)は具体的な手順
$ ssh -i YourKeyFile -l ubuntu YourKubeMaster
Enter passphrase for key 'YourKeyFile':
$ sudo kubectl --kubeconfig /etc/kubernetes/admin.conf get nodes
$ sudo kubectl --kubeconfig /etc/kubernetes/admin.conf label node YourRaperryNode01 node.rdbox.com/type=picam
マニフェスト(yaml)作成
- 画像撮影用 ROS アプリ(Publisher)コンテナの稼働設定
- 以下(↓)は具体的な手順
$ ./picam-app-pub-photo.sh | tee picam-app-pub-photo.yaml
#### ここにマニフェスト(yaml)が表示されます(ファイルにも保存される) ###
マニフェスト(yaml) Upload
- RDBOX(k8s)のダッシュボードに接続
- [+ CREATE] をクリックし、picam-app-pub-photo.yaml を Upload(先ほど表示された YAML データを Copy&Paste しても可)
- Pod が配備されるまで、しばらく待つ
- 蓄積画像の確認
- さらにしばらく待ち、ブラウザで http://YourRdboxKubeMasterAddress:30080 に接続し [Update] ボタンをクリック
- さらにしばらく待ち、ブラウザで http://YourRdboxKubeMasterAddress:30080 に接続し [Update] ボタンをクリック
マニフェスト(yaml)の要点
-
[template]-[spec]-[volumes] にて、デバイスファイル /dev/vchiq をコンテナから利用(mount)可能に設定
- 画像撮影用 ROS アプリ(Publisher)コンテナから、カメラを操作するため
-
画像撮影用 ROS アプリ(Publisher)コンテナにて、上記デバイスファイルをマウント
volumeMounts: - mountPath: *var_path_vchiq name: picam-dev-photo
-
画像撮影用 ROS アプリ(Publisher)コンテナにて、特権アクセス(privileged)を許可する
- デバイスファイル /dev/vchiq が使用可能となる
securityContext: privileged: true