忍者ブログ

次の記事 ≫

2016年 知能ロボコン,先端ものづくりチャレンジ

だいぶ時間が立ってしまいましたが,
2016年の知能ロボコン先端ものづくりチャレンジin習志野
にルンバで参加しました。

まず知ロボ。

間に合いませんでした。

通信周りなどなどの不具合が取り切れず,開始後数十秒で制御が落ちちゃう(´・ω・`)
車を出してくれた友人には非常に申し訳ない。

あまりにもダメダメだったので夕方には仙台観光と称してマルツ行ったりしてたところ,
最優秀ビデオ賞を受賞したことをtwitterで教えてもらうという不覚ぶり。。


それから半年後の先端ものづくりチャレンジ イン 習志野。初参加でした。
知ロボから半年たっていることもあり,ハード,ソフトともに大幅改善して挑むことができました。

ボール1つを(マシン上に)残してあとはすべて正しく仕分けることができ,結果は3位。
(知ロボだったらもはやパーフェクト前提なのでここまでの順位にはならないですね。。。)

センサ配置が悪いのか,
ボールを検知するために使用しているVL53L0の誤検知の影響でタイムロスしてます。
フィールド中央の島の角で何か見えちゃうんですよねぇ。

知ロボの時点ではVL6180Xを使用していました。測定距離が短いので誤検知は特になかったと記憶していますが,これはこれで,途中でフリーズする?問題があって曲者でした。

I2Cでデータは取れるものの,内部ステータス,距離値ともに変化しなくなるという状態です。数秒ごとにリセットかけることで回避していましたが,その間にボールに突っ込んでしまうこともしばしば。


どうしましょかね。カメラ?


ロボットの概要は下記スライドにて。
るん太郎の仕組み(2016年知能ロボコン, 先端ものづくりチャレンジ) from Kohei Hashimoto

2017年の知ロボ記事はそのうち。。

拍手

PR

Comment (0) | ▲TOP

【ルンバ:ROI】Songコマンド

ルンバでTRUTHを再生してみました。

音を出す系のコマンドではまったポイント。
「Roomba 500 Open Interface (OI) Specification」によると、
SongNumberは0~4で設定できると書いてあるが、
ルンバ770で試した所、4に設定すると再生されない。
0~3のみを使うようにして実装した。
・Matlabスクリプトでmidiファイルを読み込んで変換してます。
・和音出せないので、そういう曲だとちゃんと再生できない。

拍手

Comment (0) | ▲TOP

Cubify Designでインボリュートな歯車を描く

これをインストール。スクリプトでCubifyを操作する的な何かっぽい
http://www.wizotools.com/wizoscript
んでこのスクリプトを実行する。
http://www.britishideas.com/2013/04/25/involute-gears-in-alibre-design/

以上!

拍手

Comment (0) | ▲TOP

【ルンバ:ROI】Buttonsコマンドの使用

ルンバ770のボタン仕様について。
Buttonsで返ってくる値に癖があったのでメモ。
結果的には、状態によって立つビットが違うってこと。
普通に使う場合の表示に合わせて対応したビットが立つ。

ROIの仕様書にはこうあります。
Bit76543210
ValueClockScheduleDayHourMinuteDockSpotClean
んで、ルンバ上の表記はこう。
①初期状態
DockClockScheduleSpot
この状態でClockボタンを押すと、②の状態へ移行します。

② Clockを押す
DayHourMinuteOK
ここでOKを押すと①の状態に戻ります。
Scheduleを押した時も同様。

で、Buttonsで返ってくる値は、
①の状態では対応したビットのみが立つ。
②の状態では、何も押していない場合はClockのビットがたった状態。
 何かしらボタンを押すと、対応したビットに加えて、Clockのビットも立った値が返ってくる。
 また、OKを押した時はClockのみが立った状態。すなわち、押したことを判別できない。状態は①に戻る。
 そして、Cleanボタンを押すと0が返ってきて、状態は①に戻る。

 ClockとScheduleボタンがこんな挙動。

ルンバ770だとボタンが4つ(Clean除いて)あるのですが、Buttonsで返される値のビットとの対応は状態によって変わるわけですね。
めんどいなぁ。状態によっては読めない一番右のボタンと、Cleanボタンの扱いをどうするか。。。



2016/06/11追記
ROIの資料だと下4bitしか載ってないので調査。
76543210
OKゴミフルサインダスト検知クリーンCheck RobotDockSpotDebris
CleanボタンとバッテリLEDの表示は分かれていて、
LEDs(Opcode 139)のコマンドで送る
1バイト目の4bit目でCleanボタンのon/offを設定。
続く2バイトはクリーンボタンでなく、バッテリ表示の色と明るさの設定となる。
・・・けど、明るさは変えられないっぽい。

Scheduling LED Bitsも補完。
76543210
DAYHOURMINUTEScheduleClockAMPMColon

拍手

Comment (0) | ▲TOP

Roomba Open Interface (ROI)

例によってルンバと戯れています。

ちょっといまハマってる・気になってること
①速度司令コマンドで下2桁くらい四捨五入される?
 速度司令出した後に、速度読むと、ちょっと違う値が返ってくる
 -80で-78
 -90で-92
 -200で-199
②Cleanボタンの明るさ0にしても うっすら光る
③コマンド送信間隔どこまで早く出来る?
 受信は15msごと
 モード切り替えてすぐは指令効かないみたい。(→20ms間は効かないっぽい?(2016/03/26))
④タイヤの回転方向変えた時にエンコーダずれないかな?
 エンコーダのカウント方向はタイヤへの回転方向指令によるため
⑤音コマンド受け付けない…
 ただただプログラムミスってた
⑥miniDinコネクタのL字のやつってないかな。もしくは短いの。
⑦iRobot_Roomba_500_Open_Interface_Spec.pdfたまに間違ってる
 エンコーダのLとRが逆

拍手

Comment (0) | ▲TOP