About this Blog

This Blog has English posts and Japanese posts. About Mac, iOS, Objective-C, and so on.

2013年6月22日土曜日

ParrotのARDrone. ホバリングが安定しない時は

最近いじっているParrotのARDrone2.0。
どうもホバリングが安定しないな~と思っていろいろ調べていたら、こんなページを見つけました。

Indoor Flying Tips - Drone Flyers : Drone Flyers

見出しだけ意訳すると、
  1. 柔らかい素材は高度センサーの超音波を吸収しちゃうよ
  2. 床面に模様があったほうがいいよ
  3. 天上に近づきすぎると、ARDroneが吸い付くよ
  4. 室内の時は室内用ハルを着けよう
  5. アプリ設定で、挙動を控えめにしよう
とのこと。

ホバリングに関係があるのは1番と2番。
ARDroneは下向きカメラの画像をホバリング時の位置制御に使っているので、
硬質で非光沢で模様がある床の上で飛ばしたほうがよさそうです。

上の情報の裏を取ろうと思って調べたら、こんな記事も見つかりました。
ケータイゲームの世界で“ゲーム機”を再発明――セドゥCEOに聞く「AR.Drone」 - ITmedia Mobile
姿勢制御には、加速度センサーやジャイロセンサーからの情報に加え、機体底部に設けた垂直カメラの映像を活用している。
だそうです。

[メモ]Eclipseの日本語化、JRE7の導入など

自分用メモ

Eclipseの日本語化
メニューの「Help」→「Install a new software」を開き、
URLに「http://download.eclipse.org/technology/babel/update-site/R0.10.1/juno」
と入れる。
Japaneseを選んでインストール。


JRE7の導入
Eclipseを一旦終了して、 Java SE Runtime Environment 7 Downloads
から32bit・64bitに対応したjre7をダウンロードしてインストール。
ダウンロード前に「Accept License Agreement」を選択する必要がある。

Eclipseを起動し、「ウィンドウ」→「設定」を開く。
「Java」→「インストール済みのJRE」をクリック。
「追加」をクリック。
「標準VM」を選択して、「次へ」をクリック。
「JREホーム」の横の「ディレクトリ」をクリック。
JRE7をインストールした場所を選択(おそらくC:\Program Files\java\jre7)
「完了」をクリック。
「インストール済みのJRE」の欄のにjre7が追加されているはず。
jre7にチェックを入れて、「OK」をクリック。


プロジェクトのJavaコンパイラーをJRE7に切り替える方法
プロジェクト・エクスプローラーの中の「JREシステム・ライブラリー[jre6]」(または他の古いシステムラ・ライブラリー)を「ビルドパスから削除」する。
プロジェクトを右クリックして「ビルドパス」→「ビルドパスの構成」を選択。
「Javaのビルドパス」をクリック。
「ライブラリー」をクリック。
「ライブラリーの追加」をクリック。
「JREシステム・ライブラリー」を選択して「次へ」
「代替JRE」を選択して、「jre7」を選択。
プロジェクトに「JREシステム・ライブラリー[jre7]」が追加されていたらOK。

EclipseでProcessingを使う(プラグイン非使用)

必要に迫られて使うことになったProcessing。
どうせ書くなら、リッチな開発環境を使いたいものです。

Java系言語ならEclipse!
プラグインもいくつかありますが、
Eclipse Plug In - Processing
Proclipsing
最近のProcessingはバージョンがころころと変わるのでちょっと不便(この間2.0のstableが出ましたが)

というわけで、手動でアーカイブをインポートして使うことにします。

前提として、日本語化されたEclipse環境、JavaコンパイラーはJRE7です。
また、ProcessingはCドライブの直下、「C:\processing-*」にあることにします。


プロジェクトを作成
メニューの「ファイル」→「新規」から、「Javaプロジェクト」を選択します。
プロジェクト名はなんでもいいです。JREは「jre7」にしておいてください。


プロジェクトにアーカイブ(*.jar)をインポート
プロジェクト・エクスプローラーを右クリックして、インポートを選択。
「選択」のウィンドウで「一般」→「ファイルシステム」を選択して「次へ」。
「次のディレクトリーから」という所に「C:\processing-*\core\library」を入力してEnter。
・core.jar
・gluegen-rt.jar
・jogl-all.jar
の3つをチェックして、
「拡張」をクリックし、「ワークスペースにリンクを作成」にチェックをいれます。
「完了」をクリックします。
プロジェクトに*.jarファイルが3つ追加されるので、右クリックして「ビルドパス」→「ビルドパスに追加」を選択、をそれぞれ行います。
(アーカイブをリンクとしてインポートするのは、*.jarがフォルダ内にあるdllに依存して動作するためです)

Webカメラも使いたいので、同様のことを
「C:\processing-*\modes\java\libraries\video\library」にある
・gstreamer-java.jar
・jna.jar
・video.jar
についても行います。


クラスを作成し、それをProcessingのJavaアプレットにする
プロジェクト内に、ProdessingTestというクラスを新規作成します。
このようになっているはずです。
public class ProcessingTest {

}

これを、以下のように修正します。
import processing.core.*;//!!!
import processing.video.*;

public class ProcessingTest extends PApplet{//!!!
 public void setup(){
 }
 public void draw(){
 }
}//!!!
これで、Processing sketchのひな形ができました。
「実行」ボタンをクリックすれば、Javaのアプレットとして実行できます。
適宜関数などを追加してください。

Processing標準のエディタ(PDE)で開発するときとの違いは以下のとおりです。
・関数の頭にpublic(またはprivate)をつけないといけない。
・color という型が使えないので、int型を使う(color 型はint 型のtypedef。中身は一緒)
・型チェックが厳しい。float 型を使う時は0.5f というように書いたり、関数に渡すときには(float), (int)とキャストしたりすればOK.


Eclipseで書いたスケッチをPDEに持っていく時は、上記のひな形の//!!!の行を削除すれば大丈夫です。
関数につけたpublicやcolor型をintで代用している箇所などは修正しなくても動きます。
Eclipseの標準の文字コードがCP932(MS932)というあまり見ないエンコーディングなので若干注意が必要です。
画像のファイルパスも適宜修正してください。