2017年8月12日 (土)

第5回ROBO-剣結果報告

7月16日に行われた第5回ROBO-剣に出場しました。

トーナメント第三位入賞に加えて「画像処理テクニック賞」「Futaba賞」を受賞しました。

Prize20173rdplace

昨年と同じロボット、同じ制御ソフトウェアを再使用しました。

前年からの変更点としては、アームとセンサーとの間の対応付け(キャリブレーション)の改善を試みました。これは事前にロボットに様々な姿勢をとらせたうえでその各関節の角度(5自由度)とカメラから見たアーム先端の位置のサンプルを収集しておき、誤差を最小とするようパラメータを推定しておくものです。

カメラの座標系とアームの機械座標系との間での回転と並進、スケーリングだけではなく、アームの各リンクの長さや関節角度の原点のずれも自由度に加えて推定するよう試みました。ちゃんとした検証はしていませんが、何回か試した範囲では標的によく当たるようになったので恐らく意味はあったのではないかと思います。試合でも有効打を決めることができました。

| | コメント (0) | トラックバック (0)

Maker Faire Tokyo 2017に出展

Img_20170805_113612
8月5,6日に行われたMaker Faire Tokyo 2017に出展者名「山口自動機械」で出展しました。「ロボットアーム書道」と「手乗り二足歩行ロボット」の展示を行いました。

Img_20170806_024718Img_20170805_113634
「ロボットアーム書道」は昨年までと同様、直接教示により作成した動きでロボットアームを動かし、毛筆で字を書くパフォーマンスを見せるものです。今回も好評だったと思います。普通の紙と墨でも書けるのですが、今回は昨年同様、水で書いて字が浮き出る書道練習用の紙を使いました。墨が飛び散って会場や来場者の衣服等を汚すおそれがあるのと、展示期間中連続して動かせるようにするためです。
展示の性質上、書き終わった紙よりは動いているところを見たいものですので、ロボットの説明をする時以外もなるべく動かし続けるようにしました。書いたら紙を乾かすために交換して、その間に扇風機で乾かすという作業を行いました。休憩などで離席する時のため、置いたままの紙が乾くのを待ってから自動で次の字を書く、というモードも用意していました。しかしこれは2分程度間が開くことになり、あまり効果的ではなかったかもしれません。次はこの部分も機械化したいと思いますが、なかなか難しいところです。

Tiny_biped_201708Group

「手乗り二足歩行ロボット」は4月から作り始めた、4軸の二足歩行ロボットです。制御基板にArduinoを採用し、Arduino IDE開発環境を使って開発できるというものです。歩行動作のデモを行いました。デモ用に赤外線リモコンで動かすようにしました。これがそのまま「リモコン操縦による二足歩行」のサンプルプログラムともなっています。
複数ロボットが同じ信号を受信すると一斉に同じ動作をすることを利用したデモも行いました。ダンスのような動き、隊列を組んでの行進、向かい合って相撲のような遊び、等に応用できます。
今回新たな試みとして、来場者・参加者向けにこの手乗り二足歩行ロボットの販売を行いました。ロボットの制御用プログラムおよび回路図はGitHubで公開しています。
また、簡易マニュアルも作成中です。
機械部品はCNCフライスと3Dプリンタを使って作りました。電子回路は専用基板を設計・基板作成サービスに発注して生産しました。とはいえ、Arduino nanoにサーボを直接配線しただけの基板ですので、特に難しいところはないと思います。Arduino IDEと共にインストールされるServoライブラリを使って簡単に信号を生成してロボットを動かすことができます。サンプルプログラムもそうしています。
このロボットは今後もいくつかのイベントで頒布(販売)を行う予定です。

| | コメント (2) | トラックバック (0)

2017年3月21日 (火)

チロルチョコロボット大会12参加

3月11日に行われたチロルチョコロボット大会12に参加しました。年1回行われている大会で、今年で12年目になります。私は今回初めて参加しました。

Teapot

大会レギュレーションとして、チロルチョコの箱(個包装のチロルチョコを拡大した形)を模した外装を施すこと、となっています。また、脚部に使用するモーターは4個以下に制限されています。今はもうなくなってしまいましたが、ロボットフォースのRoppoや浅草ギ研のATWALKER等を用い、手軽に製作できると想定していたものと思います。今でも、市販二足歩行ロボットキットの部品を流用したり組み替えたりすることで類似の機構を作ることができます。

どちらかというと競技を楽しむことを重視した小規模な大会です。複数の異なる競技の総合得点で競うことが特徴の一つで、今年は徒競走と射的競技が行われました。例年は他に途中で別のロボットからチョコレートを受け取って運ぶ競技等も行われているそうです。

参加ロボットには完全自作機の他に、KHR-3HV、JO-ZERO、Robovie-i等の市販ロボットキットを改造したものが見られました。特にRobovie-iは既に市場から姿を消した教育用の3軸ロボットで、個人的には非常に懐かしい感じがしました。

射的競技のため、ロボットに物体を発射する装置を設けることになります。とはいっても、技術的敷居を低くするため、装填および発射は何度でも人の手で行っても良いことになっています。典型的な例としては、ロボットの上部に玉を転がすレールを設けた例があります。ロボットを操縦して標的にレールを向けたのち、そこに人が球を置くことで球が遠くまで転がって標的を倒すという仕組みです。

私のロボットでは、弓のような仕組みでチロルチョコを発射する機構を使用しました。この装置には最大8個までチロルチョコを搭載し、1個ずつ次々と発射することができます。これは元々人とのインタラクションのためにチロルチョコを投げるロボットを作ろうとして昨年春ごろから作っていた部品でした。大会のルールで投擲物はチロルチョコである必要はなかったのですが、面白いので採用しました。

Cimg1680Cimg1684

なお、大会で使用される標的は紙コップの上にチロルチョコを載せたものであり、混同を避ける必要があります。そのために色で区別できる緑色のチロルチョコ(抹茶もち)を持参して使用しました。

もう一つの特徴として、無線カメラの映像を見ながら照準を行えるような操縦システムを作りました。

黄色い三角形の部品が少しだけカメラの視野に入るようにし、ちょうどこの印のあたりに投擲物が飛んでいくようにカメラの位置を調整しました。上の映像では説明のため8インチモニターに映していますが、競技中は装着型ディスプレイのVUFINE+を使用しました。Occulusのように視界全体を覆うものではなく、片目の視野の一部を使って見るものです。これによりロボットと競技場および標的を目視しつつ最終的な調整のために画面を見る、という双方をスムーズに行えるようにしました。実際うまく行ったのではないかと思います。

Cimg1697

総合順位は5位で入賞はなりませんでしたが、エレガンス賞を受賞しました。大会趣旨から「チロルチョコロボットらしい」という基準をクリアした点の他、実況で「模範的」と評された射撃機構が評価されたのではないかと思います。

Cimg1679

| | コメント (0) | トラックバック (0)

2016年9月 4日 (日)

視線操縦ロボット

ROBOT JAPAN の一発芸部門に参加したロボットです。参加時は仮の名前でDirect Eyeとして登録していました。

解説用の映像を作成しました。

1diagram2robot3console

PCとロボットの間の通信は無線LANです。外出先で運用しやすいよう、ロボットのRaspberry Piを無線LANのアクセスポイントとしてラップトップPCをそこに接続するようにしました。

このロボットは2つの機能からなっています。カメラの映像をリアルタイムで配信する受信系の機能と、視線入力をもとにモーターを動かす送信系の機能です。

受信系にはオープンソースプロジェクトのcamp をそのまま使用しました。これはRaspberry Pi上にでHTTPサーバーとして働き、クライアント側Webブラウザに表示するものです。このようなリアルタイム制御を考慮したものではないためか、フレームレートと遅延についてはベストな状態ではありませんでしたが大会直前ということで採用しました。

4consoledetail

操縦に使う視線検出センサーとしてTheEyeTribeのEye Tribe Trackerを使用しました。これが今回のプロジェクトの要です。ハードウェアを用いての視線検出部分は専用ソフトウェアが提供されています。EyeTribe Serverがセンサーからの情報を元に視線を検出、ローカルでTCPサーバーとして働き、JSON形式でデータを連続して取得することができるようになっています。その後は次のようにつながっています。

PC --[Wi-Fi/TCPIP]-- Raspbery Pi --[シリアル]-- VS-WRC003LV

Raspberry Pi自体にはDCモータードライバは備わっていないため、何らかの電子回路を拡張する必要がありました。今回はVS-WRC003LVのモータードライバ回路を利用しました。VS-WRC003LVはシリアルモードにするとUSB-シリアルポートデバイスとして稼働します。これをRaspberry PiのUSBポートに接続し、シリアル通信によって連携させました。

視線からロボットのモーターへの指令への変換はすべてPC側プログラムで処理しています。残りの2箇所のプログラムは開発効率の関係上極力単純にしました。VS-WRC003LV側のファームウェアは、シリアル通信から2つのモーターの回転方向とDuty比を受け取ってモーターに反映するだけというものです。ただし、通信切れ時の暴走を防ぐため、一定時間データが来なければ停止するようにしました。Raspbbery Pi上のプログラムはTCP(ここはUDPの方がより適していましたが)で受け取ったデータをそのままシリアルポートに送信するだけのものです。

5feedback

このロボットを作ろうと思った理由は、ロボットからのライブ映像と視線入力によって人間とロボットの機械系をひとつのフィードバックループにしたらどのような感覚が得られるだろうかという興味からです。

機械と環境で完結しているシステム、例えばライントレースロボットであれば

  1. センサーが線を感知
  2. フィードバック制御プログラムがモーターに指令
  3. ロボットの機械が動く、センサーも動く
  4. センサーが新たな線の位置を感知 (1に戻る)
という形でフィードバックループを形成します。この視線操縦ロボットの場合は
  1. カメラが景色を撮影
  2. ライブ映像を人間が目で追う
  3. ロボットの機械が動く、カメラも動く
  4. 移動により映像が変化する(1に戻る)
という形で人間が組み込まれたフィードバックループを形成するといえます。PID制御等のフィードバック制御系では各要素のゲインや遅延等が全体の安定性を決定する、ということがありますが、この場合は人間の反応の遅れに起因して発振が始まる、というようなことも起こるかもしれません、というあたりが面白そうなところです。

ただ、今のところはまだ人間以外の要因(特に映像配信)の遅延が大きいため、人間という要素はあまり影響していません。というよりは、ロボットを遅くして遅延による影響で不安定にならないように調整してあるというのが実際のところです。そのためか、まずまず自然な感じで操縦できたのではないかと思います。

ロボットの移動は視線の移動幅に対して比例するように作ってあります。これにより操縦者が映像内の物体を目で追うと、PID制御のP成分と同様の働きをします。右にあるものを見るとロボットが右を向き、映像では物体は左に移動していきます。そのため右に曲げる勢いも小さくなり、最終的にはその物体がロボット真正面付近に来た時平衡します。前後方向についても同様のことがいえます。この原理によって、「行き先を見る」だけで大体その近辺までロボットを誘導することができるのです。

次作りなおす機会があれば、まずは映像の伝送を改善して、ロボットをより高速に移動できるようにしてみたいと思います。

| | コメント (0) | トラックバック (0)

2016年8月28日 (日)

ROBOT JAPAN 2016に出場

8月21日に行われたROBOT JAPAN 12th 大会に出場しました。メインとなる人型ロボットによる格闘競技の他、ダンス、一発芸、サバイバルマラソンといった別の競技があるのが特徴の大会です。

Img_20160821_113012Img_20160821_165458

私は一発芸部門とサバイバルマラソンに出場しました。
サバイバルマラソンはトラックを周回するコースで歩行の速さを競うものです。複数のロボット時間差で同じ場所からスタートし、追い越されたロボットから順に退場していき、残ったロボットを勝者とします。前回と同じ「Spirit」で出場、決勝に進出、最終的に4位でした。
一発芸部門では、視線検出装置を使ったロボット操縦の実験(ロボット名Direct Eye)を披露しました。画面に映ったロボットカメラの映像を操縦者が見るだけでロボットを遠隔操縦でき、思い通りの場所にロボットを誘導できるというものです。当日朝に完成したばかりでしたがそれなりにうまく行き、好評でした。審査の結果、1位を獲得しました。

Img_20160822_000238Img_20160822_000443

1

このロボットの詳細は次の記事に書きたいと思います。

| | コメント (0) | トラックバック (0)

2016年8月13日 (土)

Maker Faire Tokyo 2016に出展

8月6日、7日に行われたMaker Faire Tokyo 2016に出展しました。出展物は「ロボットアーム書道」としました。「逡巡」を改造したロボットで教示再生により毛筆で字を書くパフォーマンスを行うものです。今回の展示イベントがMaker Faireであることから、「作」「創」「造」の3字を含む動作を作りました。

Img_20160806_092402Img_20160806_171203Img_20160806_170946

NT金沢に出展した時のように、今回もまた展示用ポスターを兼ねた説明資料を作成しました。Googleドライブで公開しました。 PDFファイルとしてダウンロードも可能です。

技術的には直接教示であらかじめ作っておいたモーションを再生するだけというもので、特に新しいことはしませんでした。展示名を「書道ロボット」ではなく「ロボットアーム書道」としたのも、ロボットが書道家になるのではなく、電子工作・機械工作の基礎的な技術と人間の書道技術を組み合わせてパフォーマンスを行います、という意味合いが込められています。実際、ロボット自体は特に書道に特化したものというわけでもなく、しかも使うのに若干コツが必要なシステムになっています。

Img_20160803_224041

ハードウェアの改良として、筆を部材で挟み込んでネジで押さえて固定できるようにしました。筆がアームの中心軸上になくオフセットして付いているのは、長い筆を切断加工せずにそのまま使用できるようにしたかったためです。しかしながらこのために紙の左の方での左払いが非常に書きづらいという機構上の欠陥が動作作成中に判明しています。なんとか誤魔化して、単純な字ではこのぐらいまで書けるようになりました。

Img_20160806_004317

電子回路基板の展示などと比べると大きなロボットで動きも特徴的なため、それなりに目立っていたかもしれません。ロボットが動作中通りかかった来訪者のうち半分以上の方々が足を止めて見てくれたような印象でした。まずまずの成功だったのではないかと思います。

技術者として専門の仕事をしていると思われるような人から技術的なことはあまり知らないという人、小中学生まで幅広い多数の来訪者に見てもらうことができ、色々な話をすることができました。

次は今年の12月Ogaki Mini Maker Faireがあるとのことで、再度改良しての出展を検討しておきたいと思います。

最後に、展示の様子は自分では撮影しなかったため映像はあまり残っていなかったのですが、来訪者視点側からの動画をTwitterで公開してくださった方々がおられましたのでここに引用して紹介します。

 

| | コメント (0) | トラックバック (0)

2016年7月15日 (金)

Dynamixel XM430試用 (メカ編)

Twitterの方にも何回かに分けて投稿しましたが、ここにもまとめておきます。

Dynamixel XM430を入手しました。使用感を知るために基礎的なロボットの機構を作ってみました。アームロボットの旋回ベースや腕のひねり等で見られる構造の2軸配置です。ROBO-剣用ロボットの部品をつけたところです。右に置いた赤い球は直接は関係ありません。ROBO-剣の「面」として使われている50mmの球です。

_dxl_2axes_robot

XM430はケースに空いている止め穴が特徴的です。M2.5(2.6ではなく!)だそうです。深さは3mmです。MX-28のような以前のDynamixelシリーズはトップケースとボトムケースから張り出した「耳」が固定用に設けられていました。この耳がなくなってコンパクトに収まるようになったともいえるかもしれませんが、むしろMX-28の紹介にあるFR07-S101のように専用金具を追加する必要がなくなった、というとらえ方もできるのではないかとおもいます。いずれにせよ一体で成型されているため丈夫な印象を受けました。
_dxl_spacer

試作の旋回軸部分には、スラスト軸受けを簡易的に作りました。転がり軸受ではありませんが、滑らかに摺動して動きつつ軸への曲げ荷重を軽減します。この試作ロボットの負荷であればサーボ本体とサーボホーンだけでも支えられるのではないかと思いますが、検討用・見本用にということで作ってみました。

Xspacer

上の板金下面(サーボホーン上面と一致)とサーボ表面の間には2mmの隙間があります。この隙間を埋めるスペーサーとしてこのような形状の部品を切削により作りました。材質はPOM(ポリアセタール樹脂)、自己潤滑性があることと耐摩耗性から軸受に使われているもののためここにも採用しました。

サーボは四角いポケットにはめ込んだ上でネジで固定します。現状では回転軸から離れたところにあるケースビスで共締めしています。これは、軸に近いところで表面にねじが出っ張ってしまうと上の部品と干渉するからです。皿もみ加工をして皿ねじを使えば2mmの板の厚みにねじを隠すことができるので、トップケースの止め穴も利用できると思います。
モーター自体を見ると、ギア比は353:1、KRS-4034HVが381.2:1ですので、それと近い値です。ギア比が高いせいかもしれませんが、特にガタつきも目立たずしっかりしている感じがしました。また通信プロトコルのバージョンが従来より新しくなり、機能が追加されています(XM430 ROBOTIS e-Manual 参照)。
実際に動かしてみた様子を次回書きます。

| | コメント (0) | トラックバック (0)

2016年7月 3日 (日)

第四回ROBO-剣参加

先週6月25日に行われた第四回ROBO-剣に参加しました。

今回はあまり準備時間が取れなかったので、機械の部分的な変更と修理、新しくなった競技規定への対処をしての出場としました。ただ、プログラムの内部動作を変えたところがうまく働いておらず以前より良い動きができませんでした。
試合結果は1回戦敗退でしたが、デモとプレゼンが評価されて「画像処理テクニック賞」を受賞しました。深度画像センサーを活用して対象を認識し、幾何学的計算に基づいて竹刀を振る軌道を毎回生成している点を評価されました。

_prize

なお、賞の名前についている画像処理というのはここでは画像認識、と言った方が実態に近いかもしれません。画像処理と画像認識いう用語は一般にはあまり区別されていませんが、前者は画像の変形、拡大縮小やぼかし+鮮鋭化等、画像を別の画像にすることを意味します。後者は画像から実世界の記述(ここでは相手のロボットの姿勢や有効打突部位の位置など)を作り上げる、ということを意味します。
認識というと一般には「これは猫です」というようなものの種類の認識が有名でよく報じられているのではないかと思いますが、他の例として「前方30mの真正面に障害物があります」というような物体の位置の「認識」もこの範疇に入る、というわけです。

| | コメント (0) | トラックバック (0)

2016年5月29日 (日)

WiiのゲームをPCから操作するための装置

Nintendo WiiのゲームにPCから操作信号を送るための装置を作りました。これはdenizkoekden/arduino-wiimote としてGitHubで公開されているプロジェクトをそのまま利用したものです。Arduino基板を使ってWiiリモコンの端子につなぐ拡張コントローラーのふりをさせるというものです。
Cimg1175_cimg1188_2

Wiiリモコンの拡張コネクタ(ケーブル側)が単体では手に入らなかったため、PlaystationのコントローラーをWiiで使うための変換アダプタを購入して分解、部品を取り出して使用しました。

Img_20160514_154130_img_20160514_155203

 

これは最初に作ったものです。元の電子回路基板が入っていたケースに穴をあけてマイコン基板を格納、線は半田付けしました。ArduinoはArduino nano互換基板を使用し、また不要なコネクタを除いてケースにすっきり納まるようにしました。

_img_20160515_143408_cimg1212

これは2番目に作ったものです。専用ケースを3DCADで設計し、3Dプリンタで製作しました。
ケースはWiiリモコン側のケーブルに付いていた蛇腹状の部品に合わせてきっちり嵌まるようにしてあります。ケースの蓋は、ねじで止めるようになっています。
ちなみに、このようなケーブルがケースから出るところに付けられている蛇腹状の部品には、ケーブルの断線を防ぐ役割があります。人間がこのような電子機器を使用する際、ケーブルの根元にはてこの原理で大きな力が容易にかかります。その際にこれがないと、ケーブルの根元のケースと接する部分の1点だけが強く大きく曲げられることとなります。それを繰り返すうちに中の導線が金属疲労で断線するというわけです。この部品によってケーブルは緩やかな半径で曲がって外力を往なすようになります。
USBケーブル、電源ケーブル等、コンピューター・電化製品のあらゆるケーブルに見られます。安価なUSB機器などでは格好だけ真似ていてもこの蛇腹部分が全く変形しない粗悪なものがありますが、そのようなものはいつか蛇腹の端で断線することになります。

| | コメント (0) | トラックバック (0)

2016年2月25日 (木)

第28回ROBO-ONE自律賞

第28回ROBO-ONEの結果続報です。予選結果 は242.1cmで112台中78位、予選通過はしませんでしたが自律賞を受賞しました。

_201602roboone_prize

予選の試技内容は当日書いた通り、4.5mのコースを半分程度進んだところで転倒・転落で続行不能により終了、ゴール時間ではなく到達距離が記録となったというものでした。それでも完全自律型ロボットとして課題をわかりやすく遂行していたことが評価されたのではないかと思います。

なお、競技は異なりますがROBO-ONE決勝トーナメントの格闘競技で優勝したロボット「ガーゴイルキッド」も対戦相手を検知して自動的に攻撃する機能を備えていたそうです。DARPA Robotics Challengeのような遠隔操縦ほどでないにせよ、目視の距離でもなかなか対戦相手との位置関係に合わせて操縦するのは容易ではないということで、たとえ操縦タイプのロボットであってもこのように自律性を高めるのが有効なのではないかと思います。

| | コメント (0) | トラックバック (0)

«ROBO-ONE予選競技用自律プログラムの概略(画像認識を中心に)