Upload
yukiko-tamiya
View
2.335
Download
1
Embed Size (px)
Citation preview
NODE.JS + DRONE = SKYHACK!!
JS OJISAN #6 DEC.15
WHO ARE YOU?
TAMI TAMIYA YUKIKO
▸ iOS Engineer (Android/WebView/WebFront)
▸ geechs co. (ここ)
▸ セブから生まれました
▸ Milkcocoa Girls
▸ オッサン女子:beers::beers:
▸ 趣味: 空を飛ぶ!!
? QUESTION
SKY HACK
IS
SO EASY!!
NODE.JS で SKYHACK!!
INDEX
▸WHY DRONE?
▸NodeCopter 3MIN HACKING!!
▸つくってみた話SELFIEEEEE DRONE
▸WHY DRONE ?
WHY DRONE?
DRONE 7つの活用法▸1. 災害救助
▸2. 地球上のあらゆる自然環境のリサーチ
▸3. ジャーナリズムへの活用
▸4. アクロバットなスポーツの撮影
▸5. 短時間でのモノの配達
▸6. 3次元の空間を自由に使った広告
▸7. ドローンを用いたレースやバトル
http://blog.btrax.com/jp/2014/11/24/drone/ビートラックスさんのブログより
WHY DRONE?
DRONE 7つの活用法▸1. 災害救助
▸2. 地球上のあらゆる自然環境のリサーチ
▸3. ジャーナリズムへの活用
▸4. アクロバットなスポーツの撮影
▸5. 短時間でのモノの配達
▸6. 3次元の空間を自由に使った広告
▸7. ドローンを用いたレースやバトル
http://blog.btrax.com/jp/2014/11/24/drone/ビートラックスさんのブログより
空の”産業”革命
BUT
もっと身近な存在にも なるんじゃないか?
WHY DRONE?
B TO C ? 一家に一台?? 身近な存在に…▸1. 安価になった (¥10,000位のものが普通に)
▸2. 安全性/安定性の向上
▸3. 小型化
▸4. オープンソースによるプラットフォーム化
▸5. スタートアップの参入 (米国では既に117社!)
セコムが家庭防犯用のドローンを月額5000円 (工事費80万 笑) で出すらしいよ!http://www.borg.media/secom-drone-start/
200グラム以下の機体は対象外!
WHY DRONE?
WHY DRONE?
政府:3年以内にドローン宅配を実現させる計画!規制緩和の動きも
今のうちから HACK しようよ!!
今のうちから HACK しておこうよ!!
JSオジサンにくる
みなさんにだからこそ
伝えたい!!
▸ + ARDrone3MIN HACKING!!
NODECOPTER 3MIN HACKING!!
AR DRONE 2.0▸ 発売元 Parrot (フランス)
▸ 発売日: 2010/9/18 (1.0) OLD!
▸ 定価: ¥58,000 (Amazon)
中古 ¥12,000くらいで購入
▸ SDK公開 開発者に人気
▸ SPECWifi1 Ghz CPU, 125 MB Memory HD Front camera,Low res bottom cameraLinux (BusyBox)
NODECOPTER 3MIN HACKING!!
RECENT DRONESBEBOP DRONE
MINI DRONE
Phantom3 : DJI(中国)
プログラミング不可
自律制御
Hubsan X4 HDHoly Stone
Phenox2 : 東大ベンチャー(日本)
自律制御システム研究所 (日本)
MicroDrone (ロンドン)
Crazy file(スウェーデン)
Parrot (フランス)
NODECOPTER 3MIN HACKING!!
HTTP://WWW.NODECOPTER.COM/
NODECOPTER 3MIN HACKING!!
▸ 世界中から集まる Node.js Drone Developer のチーム
▸ 独自イベント、JSConf
NODECOPTER 3MIN HACKING!!
HOW TO HACKING?
3 MIN
NODECOPTER 3MIN HACKING!!
HOW TO HACKING?
$ npm install ar-drone
NODECOPTER.JS 3MIN HACKING!!
HOW TO HACKING?
connect to “ardrone2” wifi
Turn on the powerGreen light OK!→
NODECOPTER 3MIN HACKING!!
HOW TO HACKING?
var arDrone = require('ar-drone'); var client = arDrone.createClient();
client.takeoff(); //とべ!!
client.after(5000, function() { //5秒後に
this.land(); // 着陸
});
test.js
NODECOPTER 3MIN HACKING!!
HOW TO HACKING?$ node test.js
SKY HACK
IS
SO EASY!!
NODECOPTER.JS 3MIN HACKING!!
以上。ありがとうございましたー!
NODECOPTER.JS 3MIN HACKING!!
HOW TO HACKING?
ではやっぱり寂しいので・・・
NODECOPTER.JS 3MIN HACKING!!
HOW TO HACKING?client.takeoff(callback) //離陸client.land(callback) //着陸client.up(speed) / client.down(speed) //上昇・下降client.clockwise(speed) / client.counterClockwise(speed)//回転 (speedは0~1で設定)
client.front(speed) / client.back(speed) //前・後ろに進むclient.left(speed) / client.right(speed) //左・右に進むclient.stop() //止まる
https://github.com/felixge/node-ar-dronenode-ar-drone GITHUBに全部かいてあるよ!▼
NODECOPTER.JS 3MIN HACKING!!
HOW TO HACKING?REPLでも実行可能repl.jsvar arDrone = require('ar-drone');
var client = arDrone.createClient();
client.createRepl();$ node repl.js
> takeoff();
> land();
https://github.com/felixge/node-ar-dronenode-ar-drone GITHUBに全部かいてあるよ!▼
▸何かつくってみた話
BOCCHITHON
SELFIEEEEE DRONE
新しいSELFIEのカタチ
SELFIEEEEE DRONE
SELFIEEEEE DRONE
とりあえず
1枚撮ってみましょう!
client.getPngStream();
localhost:1337;pngStream専用
socket.on(‘startSelfee’, function(data) { dTakeoff();});
SELFIEEEEE DRONE
ブラウザ上
emit
カウントダウン0になったら・・
socket.on(‘getPng’, function(data) { dland(); stopper = true;});
emit
localhost:3000;アクション処理、fs
開発してみて・・▸初飛行はめちゃめちゃ感動する・・!!
▸家で飛ばすにはうるさいのと風圧すごいのと家具破壊注意(ARDroneの場合で、Minidroneはもっと安定してる)
▸途中でエラー吐くと止められなくなったりするので対策を!
▸node.js の知識あるなら速攻で開発可能!
▸資料本当に少ない(特に日本語)。ARDroneはまだ豊富。Parrot製品ならDeveloperのコミュニティサイトあり(英語)
▸Minidrone でおうちハックしたいがnode.jsでできることは少ない> <http://developer.parrot.com/
SELFIEEEEE DRONE
BOCCHITHON
未来のSELFIE NIXIEhttp://flynixie.com/
BOCCHITHON
client.on('navdata', function (d) { console.log(d); });
BOCCHITHON yc: [ 0, 0, 0, 0 ],
width: [ 0, 0, 0, 0 ],
height: [ 0, 0, 0, 0 ],
dist: [ 0, 0, 0, 0 ],
orientationAngle: [ 0, 0, 0, 0 ],
rotation: [ [Object], [Object], [Object], [Object] ],
translation: [ [Object], [Object], [Object], [Object] ],
cameraSource: [ 0, 0, 0, 0 ] },
magneto:
{ mx: 32,
my: 64,
mz: -116,
raw: { x: -220.5, y: -110.625, z: 414.609375 },
rectified: { x: -385.6456298828125, y: -84.2813949584961, z: 414.609375 },
offset: { x: 165.14564514160156, y: -26.343603134155273, z: 0 },
heading:
{ unwrapped: 0,
gyroUnwrapped: 0,
fusionUnwrapped: 60.48354721069336 },
ok: 1,
state: 513,
radius: -0.005611538887023926,
error: { mean: -43741.26171875, variance: -5.452909717115553e+31 } },
wifi: { linkQuality: 1 } }
ultrasonicSensorDeaf: 0,
cutoutDetected: 0,
picVersionNumberOk: 1,
atCodecThreadOn: 1,
navdataThreadOn: 1,
videoThreadOn: 1,
acquisitionThreadOn: 1,
controlWatchdogDelay: 0,
adcWatchdogDelay: 0,
comWatchdogProblem: 0,
emergencyLanding: 0 },
sequenceNumber: 52938,
visionFlag: 0,
demo:
{ controlState: 'CTRL_LANDED',
flyState: 'FLYING_OK',
batteryPercentage: 74,
rotation:
{ frontBack: 0.538,
pitch: 0.538,
theta: 0.538,
y: 0.538,
leftRight: -1.232,
roll: -1.232,
phi: -1.232,
x: -1.232,
clockwise: 60.483,
yaw: 60.483,
psi: 60.483,
z: 60.483 },
frontBackDegrees: 0.538,
leftRightDegrees: -1.232,
clockwiseDegrees: 60.483,
altitude: 0,
altitudeMeters: 0,
velocity: { x: 0, y: 0, z: 0 },
xVelocity: 0,
yVelocity: 0,
zVelocity: 0,
frameIndex: 0,
detection: { camera: [Object], tagIndex: 0 },
drone: { camera: [Object] } },
visionDetect:
{ nbDetected: 0,
type: [ 0, 0, 0, 0 ],
xc: [ 0, 0, 0, 0 ],
{ header: 1432778632,
droneState:
{ flying: 0,
videoEnabled: 0,
visionEnabled: 0,
controlAlgorithm: 0,
altitudeControlAlgorithm: 1,
startButtonState: 0,
controlCommandAck: 0,
cameraReady: 1,
travellingEnabled: 0,
usbReady: 0,
navdataDemo: 1,
navdataBootstrap: 0,
motorProblem: 0,
communicationLost: 0,
softwareFault: 0,
lowBattery: 0,
userEmergencyLanding: 0,
timerElapsed: 0,
MagnometerNeedsCalibration: 0,
anglesOutOfRange: 0,
tooMuchWind: 0,
BOCCHITHON
// web flight画面
▸ 声で操作▸ OpenCVで画像認識
BOCCHITHON
〆
SKY HACK
IS
SO EASY!!
みんなも
しよう!!ありがとうございましたm(__)m
SKY HACK