Intel Edisonで動かす - V

「V-Sido CONNECT RC」
Intel Edisonとの連係方法
アスラテック株式会社
目
次
1. はじめに
3. JavaScriptによるロボット開発入門
1-1. 本マニュアルの概要 ────────── p.3
3-1. ロボットの制御について ─────── p.18
1-2. 使用する機材など ─────────── p.4
3-2. HTML&JavaScriptの作成手順 ──── p.19
1-3. 各機器の接続イメージ ───────── p.5
3-3. 「目標角制御」のサンプルコード ─── p.20
1-4. 開発環境の概略 ──────────── p.6
3-4. 「逆運動の利用」のサンプルコード ── p.21
3-5. 「ロボットの歩行」のサンプルコード ─ p.22
2. Intel Edisonを利用する手順
2-1. Intel Edisonとパソコンを接続 ───── p.8
3-6. ロボットの操作手順 ───────── p.23
2-2. Intel Edisonのファームウェア入手 ─── p.9
3-7. さらなるプログラミングに向けて ─── p.24
2-3. Intel Edisonへのシリアル接続
──── p.10
2-4. Tera Termからアップデートを実行
2-5. Intel EdisonをWi-Fi接続する
奥付
── p.11
───── p.12
2-6. ロボット制御プログラムのインストール ─ p.13
2-7. Intel EdisonのIPアドレスを確認する ── p.14
2-8. Bluetoothのペアリング ──────── p.15
2-9. サンプルプログラムで動作を確認する ── p.16
Asratec Corp,All rights reserved.
1
1. はじめに
Asratec Corp,All rights reserved.
2
1-1. 本マニュアルの概要
このマニュアルでは、「V-Sido CONNECT RC」と「Intel Edison」
を連係させて、HPI Japan製ロボット「GR-001」を制御する手順を示
します。
Intel Edisonからシリアルコマンドを送るプログラムを作成して、ロ
ボットを制御することもできますが、ここでは、アスラテックが提供す
る「V-Sido CONNECT Web API」を使って、JavaScriptのプログラム
でロボットを制御する方法を紹介します。
V-Sido CONNECT Web APIの詳細は、V-Sido開発者支援サイト「VSido Developer」で公開しているドキュメントをご確認ください
(https://v-sido-developer.com/learning/connect/v-sido-connectweb-api/)。
※本マニュアルをお読みになる前に、必ず『「V-Sido CONNECT RC」スタートアップガイ
ド』をお読みください
Asratec Corp,All rights reserved.
3
1-2. 使用する機材など
Intel Edison
(Breakout Board Kit)
V-Sido CONNECT RC
Bluetoothアダプタ実装済
GR-001
【その他に必要な機材、ソフトウェア】
• 開発用パソコン(Windows、Mac OSなど)
• 無線LANアクセスポイント
• Micro USBケーブル×2
• Intel Edison最新版ファームウェア(入手方法は後述)
• シリアル接続ターミナルソフト(「Tera Term」など)
• テキストエディタ(「メモ帳」など)
• ロボット制御プログラム「VSidoConn4Edison」(入手方法は後述)
Asratec Corp,All rights reserved.
4
1-3. 各機器の接続イメージ
V-Sido CONNECT RC
Intel Edison
Wi-Fi
無線LAN
アクセス
ポイント
Bluetooth SPP
USBケーブル
(シリアル通信、
電源供給)
RS-485ケーブル
Wi-Fi
開発用パソコン
Asratec Corp,All rights reserved.
GR-001
5
1-4. JavaScriptによる開発環境の概略
開発用パソコン
Sample.html
Intel Edison
WebSocketの
サーバ
WebSocket
制御コマンドなど
JavaScriptなどで
ロボットの動きを
コーディング
Asratec Corp,All rights reserved.
アスラテックが公開している
「VSidoConn4Edison」を
インストール
6
2. Intel Edisonを利用する手順
Asratec Corp,All rights reserved.
7
2-1. Intel Edisonとパソコンを接続
Micro USBケーブル×2を使って、Intel Edisonを開発用パソコンに接続
します。
パソコンに接続する
パソコンとの
シリアル通信用
電源供給、
OTG&
ホスト用
Asratec Corp,All rights reserved.
8
2-2. Intel Edisonのファームウェア入手
Bluetoothを利用するため、Intel Edisonのファームウェアをアップデートします
(すでに最新のファームウェアになっている場合は、アップデートは不要です) 。
開発用パソコンで、ファームウェアを以下のリンクよりダウンロードし、解凍後、
Intel Edisonのフォルダへ入れます。
http://downloadmirror.intel.com/24698/eng/edison-image-ww05-15.zip
Intel Edison
へコピー
Intel Edisonのフォルダ
Asratec Corp,All rights reserved.
解凍したファームウェアのファイル内容
9
2-3. Intel Edisonへのシリアル接続
Intel Edisonのファームウェアのバージョンアップと、ロボットを操作するプログラ
ム(VSidoConn4Edison)をインストールするため、パソコンからIntel Edisonにシ
リアル接続します。ここでは、フリーソフトウェアの「Tera Term」を使った手順を
解説します(http://sourceforge.jp/projects/ttssh2/) 。
パソコンでTera Termを起動し、下記の画像のように設定し、接続を行います。
シリアル接続でのポートにて、Intel
Edisonが接続されているポートを選
択し、「OK」ボタンを押す
Asratec Corp,All rights reserved.
次に、メニューで[設定]-[シリアル
ポート]を選び、「ボー・レート」を
115200に設定して、「OK」ボタンを
押す
10
2-4. Tera Termからアップデートを実行
パソコンとIntel Edisonとをシリアル接続したあと、Tera Termで「Enter」キー
を押すと、ログインが促されるので、「root」と入力してログインします。ログ
イン後、「reboot ota」とコマンドを実行すると、Intel Edisonのファームウェ
アがアップデートされます。
しばらくしてアップデートが終わると、再びログインが促されるので、「root」
と入力してログインします。
Asratec Corp,All rights reserved.
11
2-5. Intel EdisonをWi-Fi接続する
Tera TermでIntel Edisonにrootユーザーでログインしたあと、Wi-Fi経由でIntel
Edisonをインターネットに接続させるために、以下のコマンドを実行します。
configure_edison --wifi
接続可能なアクセスポイントのリストが表記されるので、適切なWi-Fiに接続するよ
う、設定してください。
Wi-Fiの設定後、次のコマンドを実行して、インターネットへ接続が行えるかどうか
確認します。
ping -c 5 github.com
Asratec Corp,All rights reserved.
12
2-6. ロボット制御プログラムのインストール
Intel EdisonがWi-Fiでインターネットに接続できていることを確認したら、次にロ
ボットを制御するプログラム「VSidoConn4Edison」をIntel Edisonへインストール
します。このプログラムはアスラテックが提供しており、下記のコマンドを実行すれ
ばインストールが行われます。
wget --no-check-certificate -O - https://asratec.github.io/VSidoConn4Edison/install.sh | sh
インストールの完了後、次のコマンドを実行してIntel Edisonをシャットダウンしま
す。
poweroff
シャットダウンが完了すると、“[ OK ] Reached target Shutdown.“のメッセージが
表示されます。シャットダウンの確認後、Intel Edisonに電源を入れ直すために、
USBケーブルの抜き差しを行います。
Asratec Corp,All rights reserved.
13
2-7. Intel EdisonのIPアドレスを確認する
2-6でのUSBケーブルを抜き差しする作業で、Intel Edisonを再起動させたあと、再
び「Tera Term」でIntel Edisonにシリアル接続して、rootでログインします。ログ
イン後、Intel EdisonのIPアドレスを確認するために、下記のコマンドを実行します。
ifconfig wlan0
コマンドの実行結果で「inet addr」の項目に表示されているアドレスが、Intel
EdisonのIPアドレスになります。
この例では、IPアドレスは
192.168.11.8となります。
以降、このIPアドレスで説
明しますが、適宜、各ユー
ザーの環境のIPアドレスに
読み替えてください
Asratec Corp,All rights reserved.
14
2-8. Bluetoothのペアリング
次に、Intel EdisonとV-Sido CONNECT RCとのBluetoothペアリングを行います。
V-Sido CONNECT RC(Bluetoothアダプタセットを搭載済みのもの)を、GR-001
に接続して、GR-001の電源をONにします(GR-001とV-Sido CONNECT RCとの接
続は『「V-Sido CONNECT RC」スタートアップガイド』を参照)。
開発用パソコンのWebブラウザで「http://192.168.11.8:8089/connection」
を開き、「探す」ボタンをクリックします(なお、開発用パソコンとIntel Edisonは
同一ネットワーク内にあるものとします)。
Bluetoothデバイスが検出されるので、適切なデバイスの箇所にある「接続」ボタン
を押して、Bluetoothペアリングを実行します。「接続」ボタンを押して30秒ほど
経ってから、USBケーブルを抜き差ししてIntel Edisonの電源を入れ直してください。
以上で、Intel EdisonとV-Sido CONNECT RCを連係させる準備は完了です。
Asratec Corp,All rights reserved.
15
2-9. サンプルプログラムで動作を確認する
Intel EdisonにインストールしたV-Sido CONNECT Web APIには、サンプルプログ
ラムが用意されています。下記のURLでアクセスできるので、開発用パソコンのWeb
ブラウザでアクセスして、ロボットの動作を確認してください。
http://192.168.11.8:8088
http://192.168.11.8:8089
なお、IPアドレスは、適宜、ご自身のIntel EdisonのIPアドレスに読み替えてくださ
い。また、ポート番号も8088と8089の2種類あるので、注意してください。
Asratec Corp,All rights reserved.
16
3. JavaScriptによるロボット開発入門
Asratec Corp,All rights reserved.
17
3-1. ロボットの制御について
V-Sido CONNECT Web APIを使ったロボットの制御には次の2つを使用
します。
●HTML
ロボットを操作する
ためのUI作成
●JavaScript
ロボットを制御する
ためのコード
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=shift_jis">
<title>頭を動かす</title>
<script src="http://192.168.11.8:8088/ip2/js/vsido.web.js"></script>
<script>
var vsido = new VSidoWeb({"ip":"192.168.11.8"});
function exec(
var angle = vsido.servoAngle();
angle["cycle"]=100;
angle["servo"].push({"sid":2,"angle":60});
vsido.send(angle);
}
</script>
</head>
<body>
<button type=“button” onclick=“exec();”>実行</button>
</body>
</html>
Asratec Corp,All rights reserved.
18
3-2. HTML&JavaScriptの作成手順
① 開発用パソコン上でテキストエディタを用い、任意の.html拡張子のファイルを
作成します(たとえばindex.htmlなど)。
② ロボットを制御するためのコードを記述します。サンプルコードとして、次ペー
ジ以降に3種類の動作を用意しましたので、このいずれかの内容をコピーして、
先ほど①で作成したファイルにペーストしてください。
• 3-3. 「目標角制御」のサンプルコード
• 3-4. 「逆運動の利用」のサンプルコード
• 3-5. 「ロボットの歩行」のサンプルコード
③ ②のサンプルコードに記述されていたVSidoWebのIPアドレスを、適切なIPアド
レス(ご利用の環境でのIntel EdisonのIPアドレス。本ドキュメントの2-7で確
認したもの)に編集し、UTF-8形式で保存します。
Asratec Corp,All rights reserved.
19
3-3. 「目標角制御」のサンプルコード
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=shift_jis">
<title>頭を動かす</title>
<!– 必須:ロボットの制御をするためのライブラリ – 妥当するIPに編集してください -->
<script src="http://192.168.11.8:8088/ip2/js/vsido.web.js"></script>
<script>
var vsido = new VSidoWeb({"ip":"192.168.11.8"});
/* 妥当するIPに編集してください */
function exec(){
var angle = vsido.servoAngle();
angle["cycle"]=100;
angle["servo"].push({
"sid":2,
"angle":60
});
vsido.send(angle);
}
</script>
</head>
/* exec関数 */
/* 目標関節角度コマンドの生成 */
/* 目標関節角度までの時間の指定 100 x 10ms = 1秒 */
/* サーボIDの指定( 頭 : 2 ) */
/* 目標関節角度の指定 */
/* コマンドの実行 */
<body>
<button type=“button” onclick=“exec();”>実行</button>
/* ボタンクリックでexec関数を実行 */
</body>
</html>
Asratec Corp,All rights reserved.
20
3-4. 「逆運動の利用」のサンプルコード
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=shift_jis">
<title>右手を手前に出す</title>
<!– 必須:ロボットの制御をするためのライブラリ – 妥当するIPに編集してください -->
<script src="http://192.168.11.8:8088/ip2/js/vsido.web.js"></script>
<script>
var vsido = new VSidoWeb({"ip":"192.168.11.8"});
function exec(){
/* exec関数 */
var ik = vsido.ik();
/* IKコマンドの生成 */
ik["ikf"]["dist"]["pos"] = true;
/* 位置 */
ik["ikf"]["dist"]["rot"] = false;
/* 姿勢 */
ik["ikf"]["dist"]["torq"]= false;
/* トルク */
/*妥当するIPに編集してください */
var kdt = vsido.kdt();
/* IKコマンドパラメータの生成 */
kdt["kid"] = 2;
/* 制御するIK部位の指定(右手:2) */
kdt["kdt"]["pos"]["x"] = 0;
/* x軸での可動範囲の位置割合 */
kdt["kdt"]["pos"]["y"] = -100; /* y軸での可動範囲の位置割合 */
kdt["kdt"]["pos"]["z"] = 0;
/* z軸での可動範囲の位置割合 */
kdt["kdt"]["rot"]["Rx"] = 0;
/* x軸での姿勢 */
kdt["kdt"]["rot"]["Ry"] = 0;
/* y軸での姿勢 */
kdt["kdt"]["rot"]["Rz"] = 0;
/* z軸での姿勢 */
kdt["kdt"]["torq"]["Tx"]= 0;
/* x軸でのトルク */
kdt["kdt"]["torq"]["Ty"]= 0;
/* y軸でのトルク */
kdt["kdt"]["torq"]["Tz"]= 0;
/* z軸でのトルク */
ik["kdts"].push(kdt);
/* コマンドの実行 */
vsido.send(ik);
}
</script>
</head>
<body>
<button type="button" onclick="exec();">実行</button>
</body>
</html>
Asratec Corp,All rights reserved.
/* ボタンクリックでexec関数を実行 */
21
3-5. 「ロボットの歩行」のサンプルコード
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=shift_jis">
<title>ロボットを前へ歩かせる</title>
<!– 必須:ロボットの制御をするためのライブラリ – 妥当するIPに編集してください -->
<script src="http://192.168.11.8:8088/ip2/js/vsido.web.js"></script>
<script>
var vsido = new VSidoWeb({"ip":"192.168.11.8"});
/* 妥当するIPを指定 */
function exec(){
var motion = vsido.walk();
motion["forward"]=50;
motion["turn"]=0;
vsido.send(motion);
}
</script>
</head>
/*
/*
/*
/*
/*
exec関数 */
歩行コマンドの生成 */
歩行可能最高速度の50%で前進させる */
回転成分 */
コマンドの実行 */
<body>
<button type="button" onclick="exec();">実行</button>
</body>
</html>
Asratec Corp,All rights reserved.
/* ボタンクリックでexec関数を実行 */
22
3-6. ロボットの操作手順
① ロボットの電源をONにして、Intel EdisonとV-Sido CONNECT RCとの
Bluetoothペアリングが完了するまで待ちます(SBDBTのLED2が点灯から点
滅に変わります)。
② 3-2で作成したファイルをダブルクリックして、Webブラウザで開きます
(ダブルクリックで開かなかった場合、直接Webブラウザへドラッグ&ド
ロップします)。
③ Webブラウザ上でUIを操作し、ロボットの操作を行います。
Asratec Corp,All rights reserved.
23
3-7. さらなるプログラミングに向けて

V-Sido CONNECT Web APIの仕様書を参照するなどして、適宜、サンプル
コードをカスタマイズしたり、オリジナルのコードを作成してください
( https://v-sido-developer.com/learning/connect/v-sido-connectweb-api/)。

V-Sido CONNECT Web APIには、USBカメラ用のAPIも用意されており、
Intel EdisonにUSBカメラを接続して利用することも可能です。

開発者向けの情報は、V-Sido開発者支援サイト「V-Sido Developer」で公開
しています。フォーラムもありますので、不明点などがありましたら、そち
らもご確認ください。
https://v-sido-developer.com/
Asratec Corp,All rights reserved.
24
───────────────────────────────────────────
• 記載された社名、製品名は一般に各社の商標または登録商標です。
「V-Sido CONNECT RC」Intel Edisonとの連係方法
Ver. 0.9
〒106-0032
アスラテック株式会社
東京都港区六本木2-4-5
公開日:150309
Asratec Corp,All rights reserved.
25