RobovieMaker2(5) サーボの設定


VS-RC003でのロボゼロ用サーボの設定です。
RXcontoroller系では角度の表示が0.1度単位(指定値400なら40度)だったと思うのですが、
だとするとRobovieMaker2のPWMサーボの角度も角度単位で表示できれば、
姫路ボードで使っていたモーションがある程度移行できるのではないかと思いました。




【表示角度の対応設定】

VS-RC003ではサーボの位置指定の絶対値に対して、角度表示を相対的に調整できるようになっています。

214756.jpg

RS304の適正な設定値を検索してみましたが出てきません。
そこで、サーボの回転量を目視で見つつ、割り算してみました。
私の手元では、RS304系サーボでは、「対応表示角度1度=214.756」でほぼ適切な角度を示すようになってくれました。
当然かもしれませんが、RS303でも同じ数値でだいたいOKです♪

サーボの位置が角度で表示されると、とってもわかりやすいです!




【モーション鏡像のコピー機能への対応設定】

左右のサーボの符号も調整しました。
モーションの左右反転を簡単にするため、左半身のモーションを右半身にコピー鏡像反転を実行したときに正しい方向に各関節が曲がるよう、符号を設定にしました。




【ダブルサーボリンクへの対応設定】

double.jpg

ダブルサーボの二重関節をリンクしている場合の設定について。
図は左ひざの上下ペアのサーボのうち、下側のサーボCN2-3(08)のCPU設定画面です。
画面の真ん中あたりの「出力値設定」で、x =v [8] のところを x =v [9]と改め、上側のサーボCN2-4(09)の値に追従するように設定しています。
ただしこのままだと2つのサーボの回転方向が同じになり、向かい合わせたサーボでは意図とは逆回転となってしまいます。
そこで回転方向を逆転させる必要があります。

画面下方の「出力PWM」で回転方向を逆転させることができました。
「PWM = 17989 + 15000 * x/37268 」となっていることろの15000の符号をマイナスにすればOKです。
高機能で至れり尽くせりです。




ついでにサーボの稼動範囲限界も設定しまうと、モーション作成中のサーボロックが回避しやすくなりそうです。




だんだん準備が整ってまいりました。
スポンサーサイト

テーマ : 自然科学
ジャンル : 学問・文化・芸術

RobovieMaker2(4) VS-RC003+Arduino


今日はVS-RC003の分岐用の変数をArduionoから送り込んでみたいと思います
FaceBookでミッチーさんとZakさん、Twitterでガルからヒントをいただきました。ありがとうございました!

VS-RC003シリアル通信仕様書
VS-RC003HV変数表
VS-RC003取扱説明書
Let's ロボット ロボットをシリアル通信で動かす


さすがVS-RC003です。公開資料はたっぷりあります。
VS-RC003はシリアルを受け入れることができる素敵仕様になっています。
忘れないうちに接続方法をまとめておきます。




基本的に、VS-RC003はコントロールパッドからの入力を「操作マップ」というプログラムファイルで待ち受ける仕様です。
コントローラーを接続し、セレクトを押しながらスタートを押すことではじめてサーボに電源が入りロボットの操作が可能になるという安全設計です。

「操作マップ」を使うには必ずコントロールパッドの接続が必要かというと、実はそういうわけでもないらしく、
ボード側の変数251番(セレクト+スタートの入力判断専用)を0から1に書き換えることさえ出来れば、
起動できるようです。
(ちなみに、ボード内のプログラム上で変数を書き換えてもOKでした。ただしアイドリングモーションファイル中で変数を書き換えるのはなぜかダメでした。)

ということでチャレンジしてみます。




まず、VS-RC003の設定です。
RobovieMakerで「プロジェクトの設定」→「CPUの設定」→「シリアル設定」項目のCN7を「コマンドポート」に設定します。
ロボット自体のプログラムは、パッドでコントロールするタイプの通常のものでOKです。




次に、Arduinoを準備します。
実験として、251番(2009f6)に数値1を送り続けるシリアル送信を行います。

//////////【Arduinoのスケッチ】
void setup() {
Serial.begin(115200); // 115200bpsでポートを開く
}

void loop() {
Serial.println("w 2009f6 01 00");//※
}
///////////


※の所で行っているのは、変数251番(2009f6)に数値1(リトルエンディアンの書式)で送る作業です。冒頭のリンクにこのあたりのことが詳しく書かれています♪




th_VSRCボード

最後に、VS-RC003とArduinoを接続します。

上の写真は既存資料から必要なピンアサインを見やすくまとめ直してみたものです。

・IXBUSのTX、RXをArduinoのRX,TXとつなぎます。
・IXBUSのGNDとArduinoのGNDをつなぎます。
・IXBUSの+5VとArduinoの+5Vをつなぎます。

これだけで接続完了です。




ロボの電源を投入すると、ArduinoからVS-RC003にセレクト+スタートの疑似信号がシリアルで送られ、
サーボに電源が入ると思います。

テスト終了♪

仕組み自体はカンタンなのでSBDBTから直接該当のシリアルをVS-RC003用に送ってもらいたいところですが、まずは自分用ということでArduino経由で運用を試してみます。
(電源リセットだけちょっと心配です。)

テーマ : 自然科学
ジャンル : 学問・文化・芸術

RobovieMaker2(3)


ロボゼロにVS-RC003を導入すべくいろいろ設定をいぢっております。




キャプチャ

画面のスキン(背景)を作って、見た目をほぼRXcontroller化してみました。
サーボの並び順もRXcontrollerに準拠。
たとえば肩について、プラスなら前へ回転、マイナスなら後ろへ回転という風に操作感重視で設定してみました。
その場合、モーションを鏡像コピーするときに逆方向に反映されてしまう場合があるのが第1の悩み




th_P1090442.jpg

配線はかなり気持ちよくできます。
ねじ穴も2本だけですがピッタリ合います。




ロボゼロ用の設定を準備するのにちょっと時間がかかりましたが、「オートデモ」までは成功♪
動くぞというところまでは確認できて一安心です。




Xcontrollerの場合、5番Fileがスタンドアロン起動時に必ず実行されるファイルで、
その起動ファイルを編集することでコントロール関連を自由に設定することができました。
モーションファイル同士の行き来も自由にできるのが便利でした。

一方、RobovieMaker2の場合、ファイルからファイルへのジャンプはできない仕様のようです。
コントロールパッドからの操作は「操作マップ」というファイルを起動ファイルとして、その時に定義するアイドリングモーションを実行しながら入力の受付を待つ仕組みのようです。

操作マップでは変数での条件分岐も選択できるのですが、コントロールパッドを接続していないためか、このモードではいまだに起動できていません。これが第2の悩み

VS-RC003でモーションファイルからモーションファイルへのジャンプは可能でしょうか?

テーマ : 自然科学
ジャンル : 学問・文化・芸術

RobovieMaker2(2)


VS-RC003用のRobovieMaker2のマニュアルを読んでみました。
ソフトウェアの使いやすさも含め、あまりの神ボードぶりに震えています。
ゲームのるつぼ恐るべし。

ロボゼロが住みやすいようにする環境づくりをまずがんばります。




私にとっての最重要事項が、ファミコンコントローラー(つまりSBDBT)をいかに接続するかという問題です。
VS-RC003はPS2コントローラーのプロトコルをそのまま受け入れてくれるようですが、
PS2コントローラー→Arduinoのライブラリはすぐに見つかっても、Arduino→PS2コントローラーのライブラリはちょっと見当たりません。自作する実力はないので別の方法を検討します。壁にぶちあたったらよじ登る前にドアを探すのであります。




VS-RC003は、「操作マップ」というメインファイルでコントローラーからの入力を判断し、各モーションファイルに分岐を行う仕組みになっているようです。
そしてマニュアルを読んでみると、コントローラーの分岐以外にも、変数を参照して分岐できる方法がちゃんと準備されていました。さすが神ボード!

ということは、ロボサバ用に準備したWiiリモ→SBDBT→Arduinoの仕組みを使ってそこからさらに→VS-RC003とつなげば、さほど時間をかけずに無線化できるかもしれません。




ArduinoでVS-RC003の中の変数に値を入れる方法を調べたり考えたりします。
ちなみに今現在は「I2Cってなんじゃらほい?」という次元です。でもArduinoはwireとかいう命令で対応しているらしいのでなんとかなるかと楽観しています。




あとはmicono さんのコレみたいなことが出来たら最高です。

テーマ : 自然科学
ジャンル : 学問・文化・芸術

RobovieMaker2(1)


「神ボード」(byとあるベテラン)とまで呼ばれる安定的なロボットボードであるVS-RC003C。
いずれきっとお世話になるだろうと、激安販売の時に3枚ほど入手しておりました。
今後自作のロボを作りやすくするためにも、こちらを練習していきたいと思います。
(姫路ボードは私の無茶苦茶な使い方によってリセットがかかりすぎるなどの問題が多発し、ゼムネスの1コマ分のモーションの制作すらままならない状態です。)




【MacのWindows環境を整える】

MacBookAirが母艦ですが、ブートキャンプでその都度再起動していたのではヤル気も持たぬということで、
再起動なしにWindowsを使えるFusion 6を導入するところからのスタートとなりました。
DL販売でFusion 6を導入後、まずはWindowsのショートカットをMacライクに再設定します。

・Fusionの「環境設定」→「キーマッピング」
 設定を全部消して、
 ・Macショートカット「コマンド」→仮想マシンショートカット「コントロール」
 ・Macショートカット「コマンド-スペース」→仮想マシンショートカット「コントロール-スペース」
 のみを設定。
 ちなみにキーボード記号の見方はこちらです。


・下記のサイトを参考に、windows内のIMEのキーボードをコントロール+スペースに変更。
 http://staku.designbits.jp/vmware-win8-ime-on-off/

これで、コピペなどのショートカットと、日本語入力切り替えがマックと同じになります。
ブートキャンプの時よりも快適です♪
(他のショートカットはよく分からないので使わないことにしておきます。)




【RobovieMaker2を導入する】

RobovieMaker2のwindows7へのインストールも問題なしのようです。
VS-RC003CのMacへのUSB接続も問題なし。
VS-RC003CをVS-RC003HV用のファームウェアに書き換えましたが、こちらも特に問題ないようです^^
ダウンロードやマニュアル関連は下記に揃っています↓
http://www.vstone.co.jp/products/vs_rc003hv/download.html




【VS-RC003CとMacBookAirでサーボを動かしてみる】

VS-RC003CをPCで接続しただけでは、サーボへの信号は出るものの、サーボへの電源供給は行われません。
そこで、サーボの電源ラインにArduinoから5Vを供給してみました。

th_P1090440.jpg

RobovieMaker2のメニューの「通信」から「オンライン」と「サーボモーターON」にチェックを入れ、該当のスライドバーを動かしたところ、無事サーボが反応してくれました♪

これでMacBookAirでのVS-RC003C開発環境がととのいました。
あとは習熟あるのみ。




th_P1090434.jpg

VS-RC003はPWM対応なので、サーボを選びません。(たぶん)
膝には強力なサーボ、まばたき動作には極小のサーボなど、適材適所の配置が可能です。
ので、たとえば昔プチロボでつくったアラクネーの製作を進めることも可能です^^(ちなみに動くところ[1][2])
ただし、このちっこい4脚は作っても何の大会にも出られない機体なので、限られた遊び時間を考えるといきなりゼムネスにVS-RC003Cを導入するような気がします。

ファミコンコントローラーで遊ぶにはSBDBTを使いたいですが、要検討です。
VS-RC003CはPS系のコントローラー信号を直接読むタイプですが、受け側の状態によってはArduino経由で分岐信号を生成するとかできるかもしれません。ちょっと調べて見ます。

テーマ : 自然科学
ジャンル : 学問・文化・芸術

ロボゼロ復活の儀


MacBookAirの修理時にデータを初期化されてしまったので、ロボゼロの環境を復旧します。
ロボゼロ関連もデータのバックアップはとってありますが、特にUSBシリアルドライバやホームポジションの復旧が必要になります。
かなり忘れてしまっていたので自分メモがてら復旧方法です。
X-controllerとMacの組み合わせを導入される方にも役に立つかもしれません。




以下、
(1)動いていたロボゼロを持っている。
(2)母艦がMac
という私の場合用の復旧方法です。




【Xcontrollerの再インストール】

下記からダウンロードして、アプリケーションフォルダに入れれば完成です。
http://micutil.com/rx/makerxcontroller.html


【USB-シリアルの変換デバイスの認識】

ロボゼロとMacの接続には秋月で売っているようなUSB-シリアル変換機を使うことになりますが、ドライバが必要です。
ドライバは変換機に使われているチップにより2種類あるようです。
下記にてチップが「PL2303」の場合を例にざっくりと説明しています。
http://operationv.blog.fc2.com/blog-entry-741.html
(※以下ターミナルを使う作業ですので、Macへの悪影響含め自己責任にておねがします。)

ターミナルの使い方がいまいちわからない方もいると思いますので補足します。
・ファインダの検索窓で「ターミナル」と打ち込み、ターミナルを選択して起動します。
・ターミナルは文字でコマンドを入力してリターンキーで実行するタイプのものです。
・cd と打ち込んだ後、DL&解凍したファイル(osx-pl2303.kext)を
 ウィンドウにドラッグします。
 するとそのファイルの場所が文字入力されます。
 ファイル名とその手前のスラッシュを削除します。
 (cd はチェンジディレクトリの略で、これはコマンドを実行する階層を
  選択する作業になります。)
・あとは英語ページの指示通りです。
 下記のコマンドをターミナルに1行ずつ打ち込んではリターンで実行していきます。
 sudo cp -R osx-pl2303.kext /System/Library/Extensions/
 cd /System/Library/Extensions
 sudo chmod -R 755 osx-pl2303.kext
 sudo chown -R root:wheel osx-pl2303.kext
 cd /System/Library/Extensions
 sudo kextload ./osx-pl2303.kext
 sudo kextcache -system-cache


・最後はexitと打ち込めばターミナルを終了できます。


【X-controllerでのポート確認】

前述のUSB-シリアル変換機のドライバのインストールに成功していると、
X-controllerの「X-controller」→「セットアップ」で開く小ウィンドウの左側に、
「PL2303-002011FD」などのポートが表示されます。それを選択して閉じます。


【X-controllerとロボゼロの接続】

X-contorollerを立ち上げ、ロボゼロと有線で接続します。
ロボゼロのディップスイッチはすべて基盤と反対側。信号ケーブルの接続は白い線がスイッチ側です。
ロボゼロの電源を入れ、「X-contoroller」→「ポーズエディター」→「オンライン」で、
ウィンドウ右上のUSBアイコンが赤からグリーンになったら接続成功。
「ホーム」ボタンでロボゼロのサーボに反応があるはずです。


【ホームポジションの再読み込み】

ロボゼロのホームポジションの格納場所はなぜか2箇所あります。(私を含め初心者が混乱する箇所です。)

1カ所目:RX-controllerやX-controllerのPCソフト内
2カ所目:ロボゼロ本体のSDカード内

ロボゼロ単体で立ち上げた時のホームポジション(つまりSDカード内のホームポジション)がOKであれば、
そのホームポジションをPC側のホームポジションにも使うことができます。

まず、X-controllerのプログラムウィンドウに以下のプログラムを入力し実行します。

:HOMESET
V00=1
V01=63
V02=64
V03=0
SDREAD
V00=24
V01=133
V02=457
;
:HSETLOOP
(V02 = (V01
V01=V01+1
V02=V02+1
V00=V00-1
JUMPIF(V00,>,0,HSETLOOP)
HOMEPOS
WAIT(100)


すると、 ロボゼロはSDカード内に記憶してあるホームポジションになるはずです。
このホームポジションをPC側に反映します。

・ポーズエディターの画面で、「読み取り」を押します。
・左上あたりの「教示」(もしくはトルク、微調節、ホーム)となっている文字をクリックし、
 「ホーム調整プリセット」を選択します。
・フロッピーアイコンの「保存」をクリックします。

これで、SDカードのホームポジションと、PC側のホームポジションが同じ数値になるはずです。




あとは、バックアップしておいたX-controllerのプログラムをコピペやインポートで戻せば、ロボゼロのプログラミング環境は元に戻るはずです。

電波のまとめ


ロボサバはそれぞれが作ったロボットが複数台、しかもビデオ装置も使うので、混線して大変です。
BluetoothとZigbeeの違いとか、ラジコンのバンドの種類とか、知らないことも多かったの、分かる範囲で表にまとめてみました。




~1.6MHzまで:AMラジオ
25MHz帯:京商ミニッツADバンド(1~20ch)※1・KONDOのプロポ(ADバンド1~3ch)
27MHz帯:ラジコン地上・水上用12バンド
40MHz帯:ラジコン地上・水上用8バンド
40MHz帯:ラジコン上空用5バンド
72MHz帯:ラジコン上空用10バンド
76MHz~:FMラジオやVHFテレビ
470MHz~:UHFカメラ(UHFテレビ)
1.2GHz帯:アナログカメラ(最大8ch。1080,1120,1160,1200,1010,1040,1240,1280MHz※2)
2.4GHz帯:※4無線LAN(b/g)、VS-C1コントローラ、ラジコン用コントローラ、
       トイラジ用コントローラー、Bluetooth、Zigbee、USBカメラ
2.5GHz帯:無線LAN(b/g)
5GHz帯:無線LAN(a/n)※3

※1 ミニッツ(京商のラジコン)の送受信は、ADバンド以外にも
   AM 27MHz、FM 27MHz BETバンド、ASF 2.4GHzがある。
※2 1.2GHzのアナログカメラでチャンネルが固定のものは、たぶん1200MHz。
※3 IEEE 802.11aは5GHzのみ。802.11nは2.4GHz&GHzのミックス(なのでロボサバでは干渉するかも)
※4 Bluetoothと2.4GHz帯の無線LANで干渉が起こることがある。
   Bluetoothは使用する周波数を小刻みに変更してノイズ耐性を増す周波数ホッピングを行う。
※5 2.4GHz帯の代表例
・VS-C1:Vistonのコントローラー。周波数自動切替方式。(周波数ホッピング?)
・Wiiリモコン:Bluetoothを使用。
・PS3リモコン:Bluetoothを使用。




特に2.4GHz帯はトイラジやUSB遠隔カメラなどでも使用される人気の周波数帯で、IEEEに準拠したものと、そうでない独自規格のものが混在するのでかなり厄介です。
仮に使用機材がすべて全部IEEEに準拠していたとしても、IEEE802.11gの映像転送とBluetoothはガッツリと干渉することが分かっています↓
参考)http://repo.lib.nitech.ac.jp/bitstream/123456789/8148/1/J91-B_321.pdf




おまけ。 IEEEなんちゃらについて。

IEEE 802.11 b/g/n:無線LAN、Wi-Fi(2.4~2.5GHz帯)
IEEE 802.11 a/n:無線LAN、Wi-Fi(5GHz帯)
IEEE 802.15.1:Bluetooth(2.4GHz帯)
IEEE 802.15.2:IEEE 802.11との共存性。
IEEE 802.15.3a:UWB(高速、位置検出可。日本では3.4~4.8GHz、7.25~10.25GHz、22GHz~29GHz)
IEEE 802.15.4:Zigbee、Xbee

IEEE同士で干渉するなら規格を制定していえる価値半減!て思います。




現状の結論として、混線の原因は主に2.4GHz帯であり、その干渉から逃れるには、
(1)純粋な5GHz帯であるIEEE 802.11 aか、IEEE802.11 acで無線を構築する。
   (IEEE 802.11 nは5GHzと2.4GHzを混ぜて使うのでダメ)
(2)ラジコン用バンド+UHFカメラの組み合わせで構築する。
のどちらかが、手堅い方法のようです。

MacBookAir壊れる


Mac Book Air の電源が入らなくなりました。
正確には、たまーに入ったり、入らなくなったり。
この症状はかなり希らしく、検索でも同症状はなかなか出てきません。
SMCリセットで改善された!という例ばかりで参考になりません。




ジーニアスバー1回目。
店頭で偶然電源が入り、故障なしとの判断。その時は直ったと大喜びでしたが、家に帰ったら電源入らず。




ジーニアスバー2度目。
ちゃんと店頭で症状が再現されるように調整していきましたが、なんと直前に電源が入り、その後もいい調子に。
内容を説明したところ、OSのブラックアウトの可能性ありとのことで、OSのリインストールとなりました。
リインストールでも電源が入らない症状が出れば、ハードウェアの問題と特定できるとのこと。




リインストール後、無事?電源が入らない症状が再現され、入院となりました。
ボード交換で33000円+税。




日々レトロ修理で遊んでいる身としては、この感じは、十中八九コンデンサだろうなとは思います。
でも最近のものはパーツが小さすぎて素人修理はムリでしょうし、仕事で使う道具なのでより確実にということで我慢しました。




MacBookAirがないとロボットが先に進められないのが、とっても問題です。
MBAの退院からロボ調整に間に合うかわかりませんが、わんだほーに見切りエントリしてみます。
プロフィール

二名川(ニナガワ)

Author:二名川(ニナガワ)
ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。
子供が夢を見ている時間帯に稼働します。

宣伝:電子出版しました。
「コンソロイド ガイドブック」
46107_CONSOLOID_GUID_FACE_200.jpg





■作成中の機体
汎用ヒト型決戦遊具 ~RX計画~
RX-7.5 ゼロタンク
RRf-0.6 ゼニィ
RXM-7.9 ゼムネス
RX-7.5R 量産型ゼロタンク
RX-7.5Fp ファミタンク仮設1号
RX-7.7 ゼロキャノン
RX-7.8 ゼログレイ
SMS-0.1 ゼロライナー
以下続く

ブログ内検索
最近の記事
最近のコメント
カテゴリ
月別アーカイブ
リンク