SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ROSとRaspberryPiで遠隔みまもりロボットを作ろう(「Tech-Sketch」出張所/番外編)

ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(4)インターネット経由の操作環境構築編

ROSとRaspberry Piで遠隔みまもりロボットを作ろう 第4回(「Tech-Sketch」出張所/番外編)

クライアントの準備

 今回は、クラウド上のVPNサーバーに、GoPiGoとスマホをクライアントとして接続するという形式でネットワークを構成します。

 クライアントとして接続するのに必要なファイルは、それぞれ以下のとおりです。

  • GoPiGo
    • ca証明書:/usr/local/EasyRSA/pki/ca.crt
    • クライアント証明書:/usr/local/EasyRSA/pki/issued/gopigo.crt
    • クライアント秘密鍵:/usr/local/EasyRSA/pki/private/gopigo.key
  • スマホ
    • ca証明書:/usr/local/EasyRSA/pki/ca.crt
    • クライアント証明書:/usr/local/EasyRSA/pki/issued/smartphone.crt
    • クライアント秘密鍵:/usr/local/EasyRSA/pki/private/smartphone.key

 GoPiGoの場合、VPNサーバーからscpコマンドなどを用いて、端末にダウンロードしてください。

 スマホの場合は、PCにダウンロードし、PC上で作成する設定ファイルに、直接埋め込むやり方が一般的です。

 GoPiGo上では、ダウンロードしたすべてのファイルを/etc/openvpn/以下に配置してください。

GoPiGoへのインストール

 GoPiGoへインストールするOpenVPNクライアントソフトウェアは、サーバーソフトウェアと同じものです。起動の際にクライアント設定ファイルを指定することで、VPNクライアントとして起動します。

 以下のコマンドで、OpenVPNをインストールしましょう。

$ sudo apt-get install openvpn

 続いて、クライアント設定ファイルを作成します。

$ sudo cp /usr/share/doc/openvpn-2.3.12/sample/sample-config-files/client.conf /etc/openvpn/client.conf
sudo vi /etc/openvpn/client.conf

 設定ファイル中で、VPNサーバーが動いているインスタンスのパブリックIPアドレスを指定してください。サーバー認証用の証明書(ca)にはca.crtを指定してください。また、クライアント用の証明書ファイル(cert)と鍵ファイル(key)には、それぞれに、ダウンロードしてきたgopigoと名の付く.crt.keyファイルを指定してください。

 以上で準備は完了です。以下のコマンドで、OpenVPNをクライアントとして起動してみましょう。

 VPNサーバーが稼働している場合、Initialization Sequence Completedと表示されます。

$ sudo openvpn /etc/openvpn/client.conf
...
... Initialization Sequence Completed

スマホへのインストール

 スマホからOpenVPNサーバーに接続する際には、アプリを利用します。

 iOS/Androidそれぞれに公開されているので、ストアで「OpenVPN Connect 」と検索するか、iOSの場合はこちら、Androidの場合はこちらからインストールしてください。

 アプリを使って接続する場合にも、GoPiGoの手順と同様にクライアント設定ファイルを準備する必要があります。

 スマホ用の設定ファイルは、証明書や秘密鍵ファイルを指定するのではなく、クライアント設定ファイルの中に、直接書き込む必要があるという点に注意してください。

 この作業は、PC上のテキストエディタで設定ファイルを作成し、スマホに転送すると簡単です。詳しい手順は公開されているので、こちらを参考にしてください。

 準備ができたら、アプリ上でスライダーをONにしてみましょう。connectedと表示されれば接続成功です。

 スマホのブラウザから、以下のURLにアクセスし、操作してみてください。

 ただし、通信遅延があるので、操作して反応がなくても動かしすぎないよう、様子を見て動かすように注意してください。

 筆者の環境では、1~2秒程度遅延がありましたが、問題なく操作することができました。

おわりに

 今回は、GoPiGoとスマホの間にクラウドを挟むことで、遠隔地からロボットを操作する環境の構築を行いました。次回からいよいよ、「見守り」機能の開発に入っていきます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
ROSとRaspberryPiで遠隔みまもりロボットを作ろう(「Tech-Sketch」出張所/番外編)連載記事一覧

もっと読む

この記事の著者

林﨑 貴昭(TIS株式会社)(ハヤシザキ タカアキ)

TIS株式会社 AIサービス事業部AIサービス企画開発部所属。2016年度入社。現在は、小さいころからの夢だった自律移動ロボットの研究開発に従事。最近は、カメラや各種センサといったハードウェアと格闘する日々を送っている。仕事でプログラムを書く時間が激減したことに危機感を覚え、家で何かしらプログラムを...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10274 2017/07/21 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー