ロボット レーザー ポインター砲台でロボット農業

まえおき

レーザーポインターでカラスの目を狙い撃ちすると非常に効果的にカラスを追い払える(2chの動物嫌い系スレッドでは以前から話題になっていた)。これをパソコン自動制御で24時間監視をやろうというのが目的です。レーザーポインタはカラス以外にもナメクジや様々な動物、昆虫にも使えるので害獣避けだけでなく農薬の代用にも使える。これでロボット農業が可能になる。

構成としてパソコンと3万円ぐらいの機械があれば自動で出来る(はず まだ開発途中ですので予定です)

以下、カラスの目にレーザーを当てる事に限定して話を進めるが、別にカラスじゃなくても猿、ゴキブリ、ナメクジ、アブラムシでもやる事は同じです。

用意するのもの3つ

Yazawa USBレーザーポインター LPU0061GM

Yazawa USBレーザーポインター LPU0061GM

 (2千円ぐらい)。海外から買えばもっと強力なのもあるはず。他に強力なのあったら教えてください

パンチルトカメラ

パンチルトカメラというのはこの動画のような方向がコンピュータ制御で変えれるカメラです

このカメラの場合はLinuxから使う方法やリンクなどがここにまとまってます。
防水だったり豪華で高い奴もありますが、今回は最安値の奴を使います

レーザーポインタ

パンチルトカメラのカメラの横に瞬間接着剤でレーザーポインタを接着します。

こんな感じです。

こうするとカメラと同じ方向にレーザーが発射されるようになります。厳密にカメラと同じ方向な必要はなく、だいたい同じ方向になるようすれば、あとはコンピュータ制御で自動調節できます。

レーザーポインタの発射制御

USB接続のレーザーポインタというのはUSBから電源とるだけで、オンオフをパソコンから制御できるわけじゃないです。しかし電源のオンオフを制御できるUSB HUB ELECOM 節電USB・HUB(U2H-SW4)を使えばオンオフの制御をパソコンから出来ます。

レーザーポインタのスイッチをセロテープで固定して常にオンにしておきます。
そして節電USB・HUBから電源(給電)をオンオフすればパソコンから制御できるようになります。この制御をLinuxからするプログラムがここで公開されていますので、そのまま使います

パンチルトカメラの制御

OpenCVとの連携

このパンチルトカメラはネットワークカメラなので、よく似た用途で使われるUSBカメラと少し使い方が違います。OpenCVから使う方法は以下にまとめられています。

OpenCVが使えればOpenCVの顔追跡のパッケージが使えますので、これをカラスの目を追跡するように変更するだけです。詳しい方法はこのあたりにまとまってますので、そのまま行います。カラスの目の画像を100枚ぐらい用意する必要があると思います。人間への誤射を避けるために人間の目を認識しない画像側に100枚ぐらい加えておくことをお勧めします。

レーザーポインタの当たってる場所は、このレーザーポインタでナメクジを焼き殺してる動画をみればわかりますが、カメラ画像中の輝度が一番大きい場所です。簡単にみつかります。

あとはレーザーポインタの当たってる場所とOpenCVが検出したカラスの目の場所が同じになるようにカメラの角度を調節すればいいだけです

カメラの角度(レーザーの方向)の制御

カメラの角度(レーザーの方向)をカラスの目に当たるように正確に微調節するのは大変のように思えるかもしれないですが、正確な微調節を人工知能が自動でやる仕組みは既に確立してますので実は簡単に出来ます。ネットにソースコードも落ちてるはずなのでそれをそのまま使います。検索キーワードは

です。LEGO MINDSTORMに使うとこんな感じになります。

このプログラムを使ってレーザーポインタの当たってる場所とOpenCVが検出したカラスの目の場所が一致するように制御すればいいだけです。

開発途中で公開した理由

ロボット農業開発やってます」と前から言ってました。まだ開発途中なのですが諸事情により途中経過報告しました

みたいな事を言い出す人達が出てきてしまい、レーザーポインターに規制が入る可能性が出てきました。邪魔が入らないように最後まで秘密でやるつもりだったのですが、レーザーポインターで農業が大きく変わる理由を主張しないといけなくなりました。

2013参議院選挙の出口調査の検証

ボランティアが杉並・桃井第三小の投票所で実施した出口調査の結果を報告している

https://twitter.com/Akira50/status/358965623079968768
https://twitter.com/Akira50/status/359095584591851521
https://twitter.com/Akira50/status/359093432972619776
http://velvetmorning.asablo.jp/blog/2013/07/22/6911871
http://togetter.com/li/537175
https://www.facebook.com/permalink.php?story_fbid=1395477544005440&id=100006296220307


表にまとめると以下となる。 http://www3.nhk.or.jp/senkyo/#skh_3400 にある杉並区の公式集計結果とも比較してみる

出口調査 公式発表
山本太郎 19.39% 15.2%
自民・丸川 16.67% 19.2%
民主・鈴木 15.45% 10.8%
共産・吉良 12.58% 12.4%
その他 35.91% 42.4%
サンプル数 660人

確率計算

このような得票率のズレがどのぐらいの確率で生じるかは「X2(カイ二乗)適合検定」という方法で計算できるそうだ。計算すると確率は1%以下(0.0006%)となった。

1%以下の範囲は棄却域と呼ばれる。棄却域なので公式発表は正しくないのではないかという結論になる。棄却域の解説とカイ二乗検定の原理は http://kogolab.chillout.jp/elearn/hamburger/chap3/sec0.html の説明がわかりやすかった。

計算の詳細は以下

エクセルで計算


サンプル数660人なので得票率の表を660/100倍してみる。

人数 出口調査 公式発表
山本太郎 127.974 100.32
自民・丸川 110.022 126.72
民主・鈴木 101.97 71.28
共産・吉良 83.028 81.84
その他 237.006 279.84

これにエクセルのカイ二乗検定をする関数CHITEST
http://office.microsoft.com/ja-jp/excel-help/HP005209012.aspx
を適用する

= CHITEST(B2:B6,C2:C6)
= 5.87363E-06

約 0.0006% の確率となった。

公式発表の得票率を仮定すると、この出口調査の結果になる確率は0.0006% のようだ

別解 Rで検算

Rで計算してみた。計算結果は約0.0006% の確率となった。以下は計算手順の詳細
http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tahenryou/chisqr.pdf の「例題 6.2. メンデルの遺伝の法則」の検定と同様の計算を上記の得票率でもしてみる

> o <-  c(127.974,110.022,101.97,83.028,237.006)
> prob <- c(15.2,19.2,10.8,12.4,42.4)/100
> chisq.test(o,p=prob)

	Chi-squared test for given probabilities

data:  o 
X-squared = 29.6108, df = 4, p-value = 5.874e-06
約 0.0006% の確率となった。
公式発表の得票率を仮定すると、この出口調査の結果になる確率は 0.0006% のようだ

考察:何故こんなに小さい確率なのか

自民・丸川の結果のみ検証してみると

> o <-  c(110.022,660-110.022)
> prob <-  c(19.2,100-19.2)/100
> chisq.test(o,p=prob)

	Chi-squared test for given probabilities

data:  o 
X-squared = 2.7232, df = 1, p-value = 0.0989

確率10%で、ありえない数字ではない。他の候補者についても計算するとこうなる

候補者別に見た出口調査が"正しい"確率
山本太郎 0.3%
自民・丸川 10%
民主・鈴木 0.01%
共産・吉良 90%

民主・鈴木と山本太郎がありえない確率になっている。これらが累積して0.0006% という尋常でない確率となっているようだ。
念のために実行したコードも以下に書いておく

共産・吉良のみ

> o <-  c(83.028,660-83.028)
> prob <- c(12.4,100-12.4)/100
> chisq.test(o,p=prob)

	Chi-squared test for given probabilities

data:  o 
X-squared = 0.0197, df = 1, p-value = 0.8884

で90%

山本太郎のみ

> o <-  c(127.974,660-127.974)
> prob<- c(15.2,100-15.2)/100
> chisq.test(o,p=prob)

	Chi-squared test for given probabilities

data:  o 
X-squared = 8.9894, df = 1, p-value = 0.002715

0.3%

民主・鈴木のみ

> o <-  c(101.97,660-101.97)
> prob <-  c(10.8,100-10.8)/100
> chisq.test(o,p=prob)

	Chi-squared test for given probabilities

data:  o 
X-squared = 14.8136, df = 1, p-value = 0.0001187

0.01%

補足

  • 計算に間違いがあるかもしれないので(特に「その他」の扱いとか)検証できる人はしてほしい。
  • マイクロソフト エクセルのカイ二乗検定関数のマニュアルが妙なので(使用例で期待度数と観測度数が逆だったり範囲が変だったり)http://office.microsoft.com/ja-jp/excel-help/HP005209012.aspx 検算のためにRでも計算してみた。Rでもほぼ同じ値になったので、これが正解と思われる。 (しかし、ひょっとしたら= CHITEST(C2:C5,B2:B5) = 0.0017 = 0.17% が正解の可能性もあるが、どちらにしても1%以下だ)
  • 公明党など他のさらに得票率が少ない候補のデータもあるようだ。ここで示したのと同じ様にエクセルで計算すれば同じような検証ができると思われる。

他の候補もデータがあるので表にしておく。こちらはあまりマメにタイプミスのチェックしてないので参考程度に

出口調査 公式発表
山本太郎 19.39% 15.2%
自民・丸川 16.67% 19.2%
民主・鈴木 15.45% 10.8%
共産・吉良 12.58% 12.4%
自民・武見 10.15% 10.4%
維新・小倉 7.73% 7.2%
大河原 5.15% 4.9%
ローランド 4.70% 5.9%
公明・山口 3.94% 8.8%
その他 4.24% 5.2%
サンプル数 660人
> r <- c(19.39,16.67,15.45,12.58,10.15,7.73,5.15,4.70,3.94,4.24) 
> sum(r)
[1] 100
> pp <- c(15.2,19.2,10.8,12.4,10.4,7.2,4.9, 5.9,8.8,5.2)
> sum(pp)
[1] 100
> o <- r*660/100
> o
 [1] 127.974 110.022 101.970  83.028  66.990  51.018  33.990  31.020  26.004
[10]  27.984
> prob <- pp/100
> chisq.test(o,p=prob)

	Chi-squared test for given probabilities

data:  o 
X-squared = 43.931, df = 9, p-value = 1.453e-06

0.00014%の確率だそうです

公明・山口だけに注目すると

> o <- c(3.94, 100-3.94 )/100*660
> o
[1]  26.004 633.996
> prob <- c(8.8 ,100-8.8)/100
> chisq.test(o,p=prob)

	Chi-squared test for given probabilities

data:  o 
X-squared = 19.424, df = 1, p-value = 1.047e-05

0.001%という、これもあり得ない確率になりました

bitcoinで出来る事いろいろメモとリンク

匿名化

bitcoinは匿名でお金のやりとりができるので、警察の取り締まりを回避できる。その点に注目した応用。

ただし全ての操作はtorを経由して行う必要がある
  • 「クソガキどもを糾弾するページ」と類似な事も匿名性を保ったままできる

利便性

bitcoinはクレジットカード会社と契約しなくても0.1円単位の取引を自動処理するプログラムを誰でも作れる。0.1円取引なんて面倒くさくて誰もやらなかった領域が開拓される

bitcoinで児童ポルノの単純所持

匿名で借りれるネットワークドライブを使えば児童ポルノの単純所持ができる。以前は支払いにクレジットカードが必要な場所ばかりだったが、最近はbitcoinで支払いできるサービスが増えてきた。bitcoinなら匿名のままでネットワークドライブを借りることができる。bitcoinで借りれるネットワークドライブ一覧リンク集は以下

これらレンタルスペースの支払いをクレジットカードですれば身元がバレてしまうが、ビットコインで支払いするなら匿名のまま利用できる。現金とビットコインの交換を匿名でする方法は http://d.hatena.ne.jp/mytestdone/20130518/1368909405 にまとめた

レンタルサーバーやホームページスペースというのはネットワークドライブでもある。ここに暗号化して児童ポルノを置けば「単純所持」をすることができる。

必ず暗号化して置かないとサーバーの管理者に勝手にファイルを消される事がある

パスワードつきzipなどで暗号化をしておこう。
http://www.lifehacker.jp/2010/11/101101encryptiontool.html
によるとTrueCryptというドライブをまるごと暗号化する方法が評判よいようだ

なお以上の全ての操作はtorを経由して行う必要があるので注意

bitcoinを匿名のまま現金と交換

bitcoinは単なる電子データなのでtorなどを使えば匿名のままやりとりできる。匿名のまま現金と交換するには以下の工夫が必要になる

bitcoinで炉画像を販売する手順

ビットコインで 「炉画像」ダウンロード販売を試しにやってみた

http://www.coinuploads.com/downloads/b31e849d-e186-4b30-ace1-8bd4b2a920da/BUDz3tgkNcUlIkjj716kLwrS

(おそらく1円ぐらいの金額に設定してあるはず?)

手順は以下。2分もかからない。

手順

ビットコインの口座開設

一番簡単な方法は http://bitcoin.co.jp/faq/faq.html の先頭にある

にあるように https://blockchain.info/ja/wallet/ビットコインの口座を作る方法

Loginして画面左下にあるバーコード画像と一緒に表示されている

の長い英数字が口座番号になります

アップローダーにファイルをアップ

次にビットコインでファイルのダウンロード販売ができるアップローダ
http://www.coinuploads.com/
にファイルをアップします

普通のアップローダーですが、アップロードの時にビットコインの口座番号の「長い英数字」を入力しましょう。この時にダウンロード販売の値段も設定できます。

ユーザー登録などはいりません

以上で手順は終了

なおこのアップロードしたファイルは30日で消えるそうです

補足

1つのSNSアカウントを複数人で共有して匿名化

mixitwitterなどのSNSアカウントを3人ぐらいで共有して使うと2chと同様の匿名掲示板としてSNSを使うことができる。具体的には次のようなやりとりが可能となる

  • 「このアカウントはサヨクだから」 → 「アカウント共有者にサヨクな人もいるみたいですね」
  • えみてぃん「おまえ何処の誰か特定した」 → 「このアカウントは複数人の共有なんですが」
  • 「売名目的だろ」 → 「共有アカウントの名前売っても自分に何かいいことあるのかなあ」

以下では過去にmixiで実際に共有匿名アカウントを運用して得られた知見を述べる。
mixi VIPコミュ(通称MIP)で3年ぐらい前にメルセゲルという共有アカウントで暴れてましたので、もし具体的に何をやってたのか興味ありましたらmixiの過去ログをみてみてください)

実際の運用方法はこんな感じ

誰とアカウントの共有をするか

アカウントパスワードを2chに公開してしまう方法

過去にmixiアカウントのパスワードを2chなどに公開して誰でも使えるようにしたことがあった。最初の1か月ぐらいは匿名アカウントとしてうまく機能していたが、しばらくすると匿名で批判された誰かがアカウントを乗っ取りして消してしまうという事が頻発するようになった。
今ではmixiのアカウントは携帯電話を新規に購入しないと作成できなくなっていて、この方法は使えなくなっている。しかしtwitterなどのいくらでもアカウントの量産ができるSNSは今もこの方法が使えると思われる。

対立してる人より関係ない人

誰でも書き込めるパスワード公開のアカウントが厳しい場合は共有者を厳選することになる。その共有者を選ぶ基準としては関係ない人と喧嘩している人か共通の相手と喧嘩している人が望ましい。

匿名で好きな事を言うには他の共有者もある程度は沢山書いてくれないと、なかなか隠れ蓑として共有アカウントは使えない。そんな時に非常に役立つのがネットで痴話喧嘩してるカップルや出会い目的の人や自治厨の人達だ。特定の誰かの悪口を言いたいが自分のアカウントでは言えないが匿名なら言える人という人をみつけてみよう。ここで自分と利害の対立する人を選んでしまうとアカウントを消されてしまう。

  • 関係ない人と喧嘩している人
  • 共通の相手と喧嘩している人

をみつけると非常にうまく機能する.

運用方法

  • アカウントの共有者が何か気に入らない事があるとアカウントを消してしまうことがよくある。アカウントはいつ消えてもいいようにマイミクをブラウザブックマークに保存するなどしておこう
  • アカウントが共有であることを公言すると運営がアカウントを消してしまうことがある。共有である雰囲気は演出だけにして共有していることの証拠になる発言は最後の手段にとっておこう。
  • 共有者が勝手にアカウント消してしまっても悪意がないなら再度、共有者として誘ってみることを提案したい。なかなか利害の一致する人を再度探すのは大変。
  • twitterの場合は頻繁にアカウントを消される可能性のあるこの方法は有用でないよう見えますが、togetterを主戦場にするならmixiと同じなので有効です。そもそもフォロワー数を気にしてたら匿名で好きな事言えないし関係ないでしょうが