ブログの説明
パソコンやアンドロイドなどの情報を収集しまとめているブログです。

記事内に張られている画像はクリックすると見やすいサイズの画像が表示されるようになっています。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
アクセスカウンター
検索フォーム
カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ルンバのROIを使っての制御

関連記事
ロボット掃除機のルンバ770を買ってみました。
ルンバにはRoomba Open Interface(ROI)というインターフェースがあり、外部からシリアル通信(UART通信)でコマンドを送れば外部からコントロールできる機能が付いています。
これを使ってなにか面白いことをしようと思って買ってみました。


【追記】
この記事で使用したマイコンプログラムを別記事に載せました。

【パッケージ】
ルンバのパッケージはこんな感じ。


【付属品】
中はこんな感じに配置されていました。
ルンバはモデルによって付属品が異なっていますが、770は
・自動で電源が入るバーチャルウォールが二つとその電池
・フィルタが3セット(2セットは交換用の予備)
・充電ステーション
・ACアダプタ
・掃除用器具
・リモコン
が付いていました。


【充電中】
充電しているときはこんな感じで上部のLEDが点灯しています。

【Roomba Open Interface1】
Roomba Open Interface1ですが、コネクタはminiDINの7Pinのものになっています。
500シリーズでは天板を外さないとポートにアクセスできなかった様ですが、700シリーズからはハンドルの下にコネクタが配置され、簡単にアクセスできるようになっています。


【自作ケーブル】
パソコンと通信するケーブルは日本では販売されていなく、アメリカから取り寄せるか、自作するかだそうです。
僕はコネクタがminiDinで簡単に手に入るものだったため、自作しました。
ピンの配置ですがROIのマニュアル(インターネットで検索するとヒットするPDF)に書いてあります。
miniDinの反対側がピンヘッダになっているのはArduinoと接続する為です。


【Arduinoとルンバ】
なぜ、Arduinoを使うかというと、ルンバには車輪に回転角センサ(エンコーダー)が入っていて、車輪がどれだけ回転したか取得できるようになっています。
車輪の回転角なんか何に使うかというと、短い時間で車輪の回転角度から得られるルンバの移動量を積分して、自己位置の計算に使います(オドメトリ)。
さらに、一定間隔で取得すれば、時間と移動量が分かるため、速度まで計算可能です。
しかし、この機能もデータをくれと言ったときにくれるだけで、定期的にくれるわけではないです。
Windowsから一定間隔でデータをくれという方法もあるわけですが、Windowsのプログラムはリアルタイム性が低いので(WindowsがリアルタイムOSでない為)、リアルタイム性が高いマイコン(Arduino)を使用することにしました。


【パソコンからルンバを操作してみる】 Processing(グラフィックに特化した言語)を使用してルンバを移動させてみました。

COMMENT

EDIT COMMENT

非公開コメント

最新トラックバック
ブロとも申請フォーム
QLOOKアクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。