nodeに基づいてjsのARDrone制御


アプリケーション環境ubuntu 12.04 32bit 
 
1.nodeをインストールする.js+npm
    
    
Node.jsはgoogle v 8+javascriptに基づくサービス側プログラミングフレームワークである.でもjsはjsアプリケーションではないので、jsの実行プラットフォームと言うべきです.イベント駆動、非同期プログラミングを採用し、ネットワークサービスのために設定されています. 
    
    
Node.jsの性能は悪くないが、創始者のRyan Dahlによると、性能はNodeだ.jsが考慮する重要な要因は、rubyや他の仮想マシンではなくc++とv 8を選択することも性能に基づいている.Node.jsは設計上も大胆で、単一プロセス、単一スレッドモードで運行し、イベント駆動メカニズムはNodeである.jsは、内部単一スレッドによってイベントループキューを効率的に維持することによって実現され、マルチスレッドのリソース占有とコンテキスト切替がないため、大規模なhttp要求に直面することを意味する.jsはイベント駆動ですべてを解決した. 
インストール手順
    
    
まず、python、gcc、g++がシステムにインストールされていることを確認し、そうでなければインストールします.
$ sudo apt-get install python 
$ sudo apt-get install build-essential 
$ sudo apt-get install gcc 
$ sudo apt-get install g++ 
    
    
NodeJS公式サイトからhttp://nodejs.org/
最新のソースパッケージをダウンロード:node-v 0.10.26.tar.gz,
解凍、
$ tar -zxf node-v0.10.26.tar.gz 
$ cd node-v0.10.26
デフォルトのインストール
$ ./configure 
$ make 
$ sudo make install 
または、ディレクトリ方式のインストールを選択します.
$ ./configure –prefix=/usr/node 
$make-j 5#5=CPUコア数+1
$ sudo make install 
インストールが完了したら、次のコマンドでインストールのバージョンを確認できます.
$ node --version 
v0.10.26 
    
node.jsの以前のバージョンはnpm(nodeパッケージマネージャ)を持っていません.npmは別途インストールする必要がありますが、私がインストールしました.
v0.10.26直接npmを持参するので、インストールする必要はありません.npmがインストールされているかどうかを確認します.
$ npm --version
1.4.3
2.node-ar-droneのインストール
An implementation of the networking protocols used by the  Parrot AR Drone 2.0. It appears that 1.0 drones are also  compatible.
Install via Github to get the 
latest version:
$ npm install git://github.com/felixge/node-ar-drone.git
Or, if you're fine with missing some cutting edge stuff, go for npm:
$ npm install ar-drone
npmでインストールしたパッケージは、npmコマンドを実行する
現在
ディレクトリの下にあるnode_modulesフォルダには(また、ルートディレクトリの下に空のフォルダtmpが1つ増えているようです).
3.ARDrone node appの作成
    
    The best way to get started is to create a  repl.js  file like this:
var arDrone = require('ar-drone') ;
var client = arDrone.createClient() ;
client.createRepl() ;

Using this REPL, you should be able to have some fun:

$  node  repl . js
// Make the drone takeoff
drone >  takeoff ()
true
// Wait for the drone to takeoff
drone >  clockwise ( 0.5 )
0.5
// Let the drone spin for a while
drone >  land ()
true
// Wait for the drone to land

Now you could write an autonomous program that does the same:

var arDrone = require('ar-drone') ;
var client = arDrone.createClient() ;
client.takeoff() ;
client
    .after( 5000, function() { 
      this.clockwise( 0. 5)
    }) 
   .after( 3000, function() {
     this.stop() ;
     this.land()
    }) ;

Ok, but what if you want to make your drone to interact with something? Well, you could start by looking at the sensor data:

client.on('navdata', console. log) ;

Not all of this is handled by the Client library yet, but you should at the very least be able to receive droneState and  demo  data.
A good initial challenge might be to try flying to a certain altitude based on the  navdata.demo.altitudeMeters property.
Once you have manged this, you may want to try looking at the camera image. Here is a simple way to get this as PngBuffers (requires a recent ffmpeg version to be found in your  $PATH ):

var pngStream = client.getPngStream() ;
pngStream.on('data', console. log) ;
Your first challenge might be to expose these png images as a node http web server. Once you have done that, you should try feeding them into the  opencv module.

http://www.cnblogs.com/hwpayg/archive/2012/11/04/2753404.html(Ubuntu node.js )
http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html(Windows node.js )
https://github.com/felixge/node-ar-drone(node-ar-drone , )
http://nodecopter.com/hack#connect-to-access-point( node-ar-drone
https://github.com/eschnou/ardrone-autonomy( node-ar-drone , )

http://www.cnblogs.com/dolphinX/p/3474568.html(node.js , )
http://www.ibm.com/developerworks/cn/web/1107_chengfu_nodejs/(node.js )