質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

1回答

274閲覧

エラーの修正 raspberry pi2とnode.jsを用いてARDrone2.0を操作するプログラムについて

takeza

総合スコア6

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

1クリップ

投稿2018/01/18 08:48

###前提・実現したいこと
raspberry pi2を用いて、node.jsを使ってARDrone2.0の操作をしようとしています。> https://github.com/senyoltw/ardrone-raspberry-pi
このページを参考にして、3つのセンサーで操作するプログラムを書いたのですがエラーが発生してしまいました。
どのように修正すればいいのかを教えてください。

###発生している問題・エラーメッセージ
エラーが出ているのですが原因と修正方法がわかりません。
下記がエラーメッセージになります

node.js

1/home/pi/sink/drone_usonic2.js:8 2var sensor1 = usonic. sensor (24,23); 3 ^ 4TypeError; Object #<objects> has no method ‘sensor’ 5at Object.<anonymous> (/home/pi/sink/drone_usonic2.js:8:22) 6at Module._compile (module.js:456:26) 7at Object.Module._extensions..js(module.js:474:10) 8at Module.load (module.js:356:32) 9at Function.Module._load (module.js:312:12) 10at Function.Module.runMain (module.js:497:10) 11at startup (node.js: 119:16) 12at node.js:902:3 13

###該当のソースコード

node.js

1var arDrone = require('ar-drone'); 2var client = arDrone.createClient(); 3 4var http = require("http"); 5var stream = require("dronestream"); 6 7var usonic = require('r-pi-usonic'); 8var sensor1 = usonic.sensor(24,23); 9var sensor2 = usonic.sensor(15,14); 10var sensor3 = usonic.sensor(27,17); 11 12var server = http.createServer(function(req,res){ 13 require("fs").createReadStream(_dirname + "/index.html").pipe(res); 14}); 15 16stream.listen(server); 17server.listen(3000); 18 19client.stop(); 20client.calibrate(0); 21client.disableEmergency(); 22 23client.takeoff(); 24 25var control = function(){ 26 var distance1 = sensor1(); 27 var distance2 = sensor2(); 28 var distance3 = sensor3(); 29 var distance_far1; 30 var distance_far2; 31 var distance_far3; 32 33if(distance1 < 40)distance_far1 = false; 34else distance_far1 = true; 35 36if(distance_far1){ 37 client.front(0.03); 38 39} 40else{ 41 client.clockwise(0.3); 42} 43setTimeout(function(){ 44 client.stop(); 45 control(); 46},100); 47} 48 49if(distance2 < 60) distance_far2 = false; 50else distance_far2 = true; 51if(distance_far2){ 52 client.front(0.03); 53} 54else{ 55 client.left(0.1); 56} 57setTimeout(function(){ 58 client.stop(); 59 control(); 60},100); 61 62if(distance3 < 60) distance_far3 = false; 63else distance_far3 = true; 64if(distance_far3){ 65 client.front(0.03); 66} 67else{ 68 client.raight(0.1); 69} 70setTimeout(function(){ 71 client.stop(); 72 control(); 73},100); 74 75 76setTimeout(function(){ 77control(); 78},2000); 79 80client.after(60000,function(){ 81 client.stop(); 82 client.land(); 83}); 84 85###試したこと 86何をすればいいのか見当もつかず、自分では解決できないと判断しました。回答をお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

NOTE:
以下の回答は検証していません.


エラーの内容から察するにusonic.sensorメソッドが存在しないと考えられます. usonic.createSensorの間違いではないでしょうか?
追記:
その後のエラーの内容から察するにusonic.initメソッドを最初に実行するのではないのでしょうか?

JavaScript

1var usonic = require('r-pi-usonic'); 2usonic.init(); 3var sensor1 = usonic.createSensor(24,23); 4var sensor2 = usonic.createSensor(15,14); 5var sensor3 = usonic.createSensor(27,17);

参考
https://www.npmjs.com/package/r-pi-usonic

投稿2018/01/19 00:01

編集2018/01/20 17:57
defghi1977

総合スコア4756

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takeza

2018/01/20 17:11

解答ありがとうございます。 var sensor1 = usonic.createSensor(24,23); var sensor2 = usonic.createSensor(15,14); var sensor3 = usonic.createSensor(27,17); というように修正してみました。そうすると今度は /home/pi/sink/node_modules/r-pi-usonic/lib/usonic.js:57 throw new Error('please call `usonic.init()` first'); ^ Error: please call `usonic.init()` first at Object.createSensor (/home/pi/sink/node_modules/r-pi-usonic/lib/usonic.js:57:15) at Object.<anonymous> (/home/pi/sink/drone_usonic.js:10:21) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:902:3 というエラーが出てしまいました。重ね重ねすみません。
defghi1977

2018/01/20 17:59

簡単なエラーメッセージくらい自分で解決できんとこの後しんどいと思うよ.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問