ラベル 2 Wheel robot の投稿を表示しています。 すべての投稿を表示
ラベル 2 Wheel robot の投稿を表示しています。 すべての投稿を表示

2013年2月13日水曜日

Image recognition and Noise reduction

ロボットの原価を低減させる為に、市販の部品を使っていますが、いろいろ課題が発生します。
ロボットの目には、2,000円台のWebcamを使っていますが、高価な物に比べて不安定です。従って、画像認識において、図1のような元のイメージからピンクのボールを認識する場合、大量のノイズが発生する事が多いです。
図2は、その状態を解り易くする為に二値化した物です。大量のノイズが存在します。
このような状況で、図3の様にボールだけを認識しなければなりません。
画像処理は、奥が深いです。だから、面白いです。更に、ロボットと組み合せると、”面白い”の二乗になります。ロボットは、動いていますから、限りなく短い時間で処理をしなければなりません。その情報を元に、駆動系の制御をします。
webcamが、どのような画像を取得しているか解りません。従って、プログラムはそれを前提に作らないとなりません。いやはや、とっても面白い世界です。

しかし、結局、ロボットは、ソフトウェアが勝負ですね。また、ソフトの工数を減らす為には、高価なデバイスが必要になります。結局、高い原価構成のジレンマに陥ります。
だから、企業レベルでロボットの原価を考えると、価格は高くならざるおえません。
それを、僕は、RDCSで解決しています。

図1 元画像 
(白い格子は、画像の保存時に付加)
図2 noiseの大量発生
noiseが解り易いように二値化した画像
HSV色空間では、大量のnoiseを拾ってしまう場合がある
 図3 認識結果
noise処理を行い、ボールだけを認識する 
この処理もRaspberry Piで実行しますが、画像の保存をしなければ処理は瞬時に終わります。

peace!

2013年1月14日月曜日

A locomotion control of a 2-wheel-robot using 2 webcams


ロボットは、ソフトウェアの塊、最近つとに感じます。作っても、作っても、まだ足りない。でも、進んでいるはず。。。
そして、いろいろなアイディアが生まれてくるけど、実装の時間がない、まどろっこしさ。。。
それに、http://szeliski.org/Book/ の情報を知ってしまったが故に、試したい事は沢山ある。何故、一日は、24時間しか無いのだろうか?

農作業は、特定のルートの移動と、ルート内での作業の繰り返します。
従って、2つの移動制御が要求されます。ただし、コストをかけないので、周囲に誘導する装置もなく、ロボットに搭載した2つのカメラの情報だけで制御します。
お金がないので。。。

1)指定されたルートを、指定された速度で移動する (直進、回転)
2)指定された位置で、指定された方向で停止する

このテストロボットは、2つのWebcamから取得した画像を利用して、2 Wheels の移動制御を行います。(testing robotは、ソフト開発を目的としています。実機でのテストは大掛かりになりますが、このようなtesting robotを使うとソフト開発がどこでも可能となり開発効率が高まります。)
また、前にいる人やロボットと一定の間隔を保ち移動する事も可能です。
画像から如何に、多くの特徴を抽出して、関連づけるか。その点に苦労しています。実は、タイトルの写真も、その機能検証に使いました。
「何個のトマトが、どのように重なって、いるのか?」

このロボットには、最初に移動ルートの目安になる画像を複数与えます。ロボットはその画像を分析して、かつWebcamからの画像を使い、自分で移動しながらルートを導きだします。スマートフォンで、ルートのマークとなる所の写真を、順番に撮影しRDCSに転送する。すると、ロボットが自分で動いてルートを探します。2つのWebcamなので、必ず左回りです。3つにするか、側面カメラをサーボで回転させれば右回り、左回り両方可能となります。主にハウス内で使うので、Webcam2台仕様で十分です。
このtesting robotのビデオは、近いうちにアップします。

画像処理には、OpenCVを使っていますが、本当にOpenCVには感謝しています。

安価なWebcam2台とRaspberry Piで作ります。地形を認識しながら進むロボットより、格安で移動ロボットが作れます。

Testing 2 wheel robot
Raspberry Pi で、2つのカメラ、およびモータ制御コントローラを制御します。
Fail Safe & Recovery 以外の画像処理は、同じRDCS上にある Space Recognizing Service に画像を転送して処理を依頼し、結果を受け取り次の移動制御をします。ただ、imagingについては、少しずつRaspberry Pi上での処理を増やす予定です。
Webcamの画像取得は、fswebcamを使っています。

Testing 2 wheel robot. A Raspberry Pi under two webcams.

Raspberry Piは、カメラの台座の下に装着しています。


昨年末に届いた Raspberry Piは、ピンクのプラスチックケースに入っていました。そのケースを見て、「自分で加工してケースを作って下さい」との意図を感じるのは、僕だけではないと思います。RS版のRaspberry Piだけでしょうか?ただし、UK製ではありません。
そのケースに、上の写真のような加工をして使っています。これで、ケースを買わなくても済みます。写真はケースの裏を、上にして撮影しました。ネジでRaspberry Piをケースに止めています。内部にRaspberry Piの固定ができる様になっているので、1本で十分です。そのネジのナットより高さのあるゴムを4隅につけています。ただ、プラスチックの材質はそんなに良くないので、加工の時には注意が必要です。

でも、今の時代、オープンソースもあれば、安価で高性能な部品が沢山あります。創造力を働かせて取り組めば、少しのお金で実現する事ができると信じてます。時間は必要ですが、、、

意図する意味は少し違うけど、、、
All it needs is courage, imagination, and a little dough.                  Charles Chaplin

peace!

追加
Design Philosoph and Concept of my robots  も見てね!