🐗

田畑を守る【メカ☆イノシシ】を作る!!

2021/09/11に公開4

※注意)Qiitaからの移転で、2020年12月15日に投稿した記事で、情報が古い可能性が高いです
※害獣被害については、まだまだ勉強不足で、もし誤り等あればご指摘くださいmm

目的 (やりたいこと)

実家の畑を、害獣たちから守りたい!

背景・動機

コツコツと手間ひまかけて育てた農作物を、収穫直前にことごとく食い散らかすイノシシたち。
イノシシに荒らされるの図
大切に育てたサツマイモもとうもろこしも、ほぼ全滅。
惨状
小規模とはいえ、「家族のために」と愛情込めて作った農作物を荒らされるのは、さすがにツラすぎます。

そこで、ない知識を振り絞りながら、私はIoTによる害獣対策の研究を開始しました。

作ったもの

9月にはじめた私の研究は、

  1. 監視カメラ設置 (広角・赤外線ナイトビジョン)
  2. 動体検知でLINE通知および録画
  3. 録画されたビデオ一覧をWebから整理可能
  4. SORACOM Airでどこでも持ち運び可能

と着実に進み、
研究からおよそ2ヶ月で
ある程度かたちになってきたので、ここらで軽くお披露目することにしました。

イノシシなどの害獣から、畑を守るための研究

その研究の中から生み出されたマシーン

それが・・・

メカ☆イノシシ
害獣対策用の最終決戦兵器『メカ☆イノシシ!』!!!

害獣対策最終兵器
最終とかいってますが、始まったばかりですし、兵器ですらないです。
また、メカ・イノシシというよりは、どうみても某アニメの伊之助ですが、一旦よしとします!

こいつで、まずは害獣たちを追い払う事にします。
外見
うしろ姿がとってもキュート☆

で、どの辺が「メカ」かというと、タイヤが今流行り?の「メカナムホイール」なところでしょうか…
メカナムホイール
メカナムにしたことによって、シャーシはステアリング機構のない板1枚のシンプル構造になり、ラズパイ等のモジュールを設置しやすくなっています。
IoT_RC-CAR
また、メカナムなので「向きを変えずに、前後左右斜めへ移動」でき、「その場でくるくる回転」もできます。
How a Mecanum Drive Works
自由自在

で、「どうやってイノシシたち害獣を検知し、追い払うか」ですが、

まずより広範囲の索敵を可能にするため、カメラはメカイノシシ自体ではなく、別途設ける方式に一旦しました。
より広範囲の索敵
赤外線ナイトビジョン+広角カメラを高台に設置し、動きを検知すると、害獣を追い払うようにgRPCで**メカイノシシへ指令(メッセージ)**を送ります。
※気持ちてきには、獣の呼吸-漆ノ型『空間識覚』

メッセージを受け取ったメカイノシシは、害獣たちを威嚇します。
存在をアピール!

また、畑などは自宅から離れた場所にあったりするため、自宅のWiFi接続は期待できません
そこで、監視システムはSORACOM Airでネット接続するものとし、メカ・イノシシ側は監視システムをWiFiアクセスポイントにしてネットに接続します。

以上が、「メカ☆イノシシ」の概要です。
では、さっそく庭先に一晩設置して検証してみます。

↓こちらは検証前日の映像で、
2頭のイノシシが土を掘り返してミミズを食べている様子が映っています。
検証前日の夜
そして翌日、
庭先にメカ☆イノシシを設置し、イノシシたちが現れるを待ちます。
検証中…
・・・が、

いつもなら毎晩のように来ていた害獣たちが、その晩に限っては、現れませんでした。

出来れば「メカ☆イノシシを見てビックリして、山へと逃げ帰る」ところを激写しかったところではありますが、残念ながらその映像を抑えることは出来ませんでした。

以上が、現時点での戦果です。

ぶっちゃけ何の成果も出せていませんが、まだまだ勝負はこれからです。

本当の決戦は、次の実りのタイミング「来年の秋」

これからも検証とバージョンアップを繰り返して、農作物家族の笑顔を守っていきたい所存です。

作り方

前振りが長くなりましたが、以下、作り方です。

作るデバイスは2種類。「監視システム」と「メカ☆イノシシ」です。
2台とも、RaspberryPi 4 を用いて作ります。

ハードウェアの準備

試行錯誤しているうちにメモが混沌と化してしまった為、過不足あるかと思われますが、概ね以下のハードを取り揃えました。

ハードウェア 数量 参考URL
RaspberryPi 4 2 https://www.amazon.co.jp/dp/B07WR5W2D6
ラズパイ4用電源アダプタ 1 https://www.amazon.co.jp/dp/B07DN5V3VN
microSDカード 2 https://www.amazon.co.jp/dp/B06XSV23T1
メカナムラジコン 1 https://ja.aliexpress.com/item/4000201150331.html
※ArduinoやHAT、PSコントローラーは使わない
モータードライバ 1 https://www.amazon.co.jp/gp/product/B0792WJS5H
SORACOMキット 1 https://www.amazon.co.jp/gp/product/B01G1GSYHW
イノシシの装甲 1 https://www.amazon.co.jp/gp/product/B07ZT2PZHD
モバイルバッテリー 1 https://www.amazon.co.jp/gp/product/B084WTJK62
電池ボックス(12V) 1 https://www.amazon.co.jp/dp/B01FSDL9VC
https://www.amazon.co.jp/dp/B019XL7XAG
https://www.amazon.co.jp/dp/B00NTCH52W
Raspi用広角赤外線カメラ 1 https://www.amazon.co.jp/gp/product/B074DY544H
赤外線ライト 1 https://www.amazon.co.jp/gp/product/B072J8JR6W
赤外線ライト用電源 1 https://www.amazon.co.jp/dp/B00AJDAPM6
ポータブルバッテリー 1 https://www.amazon.co.jp/gp/bestsellers/diy/6766139051/
※ラズパイ(5V-3A)と赤外線ライト(12V-2A)の電源が取れれば、ここまでゴツくなくても良いです

以下は必要に応じて。※ケーブル類は必須ですが、特に指定はないです

電子工作関連 参考URL
ラズパイ4ケース https://www.amazon.co.jp/gp/product/B07W5TVZXT
ジャンパケーブル https://www.amazon.co.jp/dp/B06Y48V9DL
15pinフラットケーブル https://www.amazon.co.jp/gp/product/B07PXJ7BGW
PHコネクタキット
※モーター用(他のメカナム買うなら不要かも)
https://www.amazon.co.jp/gp/product/B07DPT2R3F
シリコーンワイヤー(赤黒)
※18AWGの方が良いかも
https://www.amazon.co.jp/dp/B077XBWX8V
はんだスリーブ+ホットガン
※わりと便利
https://www.amazon.co.jp/gp/product/B083FJNWHH
https://www.amazon.co.jp/gp/product/B07VNG6YCS
ペンドライバー
※個人的2020年買って良かった大賞
https://www.amazon.co.jp/gp/product/B07KSBSK4Z

監視システム (親機)

監視システム (親機)

メカ☆イノシシ (子機)

メカ☆イノシシ (子機)

ソフトウェア関連

OS入りのSDカード作成方法は、割愛します。
デバイス2台の、それぞれのセットアップ内容は、概ね以下の通りです。

  • 監視システム (親機)
    • インターネットへの接続 (SORACOM)
    • WiFiアクセスポイント化 (hostapd, dnsmasq)
    • メカ・イノシシへの指令 (Python, gRPC)
    • カメラ映像リアルタイム配信、動体検知からのアクション (motion)
  • メカ☆イノシシ (子機)
    • アクセスポイント(監視システム)へのWiFi接続
    • 指令の待ち受け (Python, gRPC)
    • 指令を受け取った際のアクション (Python, GPIO)

以下、コードサンプルをそのまま記していきます。 (2020/12/14時点)

監視システム (親機)

▼まず、インストールすべきものを入れておく。

bash
$ sudo -i
# apt update
# apt install motion hostapd dnsmasq usb-modeswitch wvdial -y
# pip3 install grpcio-tools

▼SORACOM経由でのネット接続

事前に https://console.soracom.io/ で、アカウント登録及びSIMの登録を行っておく。
SORACOM-SIMの入ったUSBドングルがRaspiに刺さっていることを確認して、以下。

bash
# curl -O http://soracom-files.s3.amazonaws.com/connect_air.sh
# chmod 755 connect_air.sh
# mv connect_air.sh /usr/local/sbin/
# connect_air.sh
# curl -s https://gist.githubusercontent.com/ie4/b6257bcee81ea9f0c99fb61cef44dd63/raw/setup_raspi_soracom_ak020.sh | bash
# reboot

https://console.soracom.io/ へアクセスし、該当のSIMが**使用中(オンライン)**になっている事を確認。
該当のSIMのチェックを入れ、該当のSIMを右クリックして「オンデマンドリモートアクセス」を選択し、以降、そこで発行されたエンドポイント経由でSSH接続する。※ユーザー名は適宜変更する(デフォルトのままなら pi )
※**SORACOM経由にすると、当然費用が発生します。**月額数千円にいくような事態にはなっていませんが、ミドルウェアのインストールやライブ動画の視聴などには、一応ご注意ください

▼WiFiアクセスポイント化

SORACOM経由で作業。WiFiは不要になっているので、↓wlan0をAPとして使えるようにwpa_supplicant.confは退避してる。

bash
$ sudo -i
# mv /etc/wpa_supplicant/wpa_supplicant.conf{,.bkup}
# curl -s https://gist.githubusercontent.com/ie4/70000335c8c5d45e9e80c200d92430ef/raw/setup_raspi_ap.sh | bash
# vi /etc/hostapd/hostapd.conf
	# 最終行のWiFiパスワード部分: <PASSWORD> を適宜変更
# vi /etc/default/hostapd
	# DAEMON_CONF="/etc/hostapd/hostapd.conf"
# vi /etc/sysctl.conf
	# net.ipv4.ip_forward=1 # ←コメントアウトを外す
# vi /etc/dhcpcd.conf
	# 192.168.2.1/24 部分を既存のWiFiネットワークと被らないように調整(使ってなければそのままでOK)
# vi /etc/dnsmasq.conf
	# dhcpcd.conf の変更に合わせて dhcp-range=192.168.2.2,192.168.2.100 を変更
# 
# systemctl status hostapd
# systemctl unmask hostapd
# systemctl enable hostapd
# systemctl start hostapd
# systemctl status hostapd
# 
# vi /etc/rc.local
	# iptables-restore < /etc/iptables.ipv4.nat # ←を exit 0 の1行前に追記
# reboot

▼Motionの設定

# mv /etc/motion/motion.conf{,.bkup}
# curl https://gist.githubusercontent.com/ie4/22c6cdde7e15cc8b02d03b44a59e4beb/raw/motion.conf -o /etc/motion/motion.conf
# vi /etc/rc.local
	# motion & # ←を exit 0 の1行前に追記
# reboot

▼以下は、メカ☆イノシシが監視システムにWiFi接続できてから実行

bash
$ cat /var/lib/misc/dnsmasq.leases
	# メカ☆イノシシのIPアドレスが表示されるのでメモ
$ git clone https://github.com/ie4/ino44-grpc-sample.git /home/pi/grpc
$ cd /home/pi/grpc
$ python3 codegen.py
$ vi client.py
	# localhost 部分をメカ☆イノシシの正しいIPアドレスに書き換える

メカ☆イノシシ (子機)

bash
$ sudo -i
# apt update
# pip3 install grpcio-tools
# git clone https://github.com/ie4/ino44-grpc-sample.git /root/grpc
# cd /root/grpc
# python3 codegen.py
# iwlist wlan0 scan | grep SSID
	# 監視システムのSSID'ino44kanshi'があるのを確認する
# mv /etc/wpa_supplicant/wpa_supplicant.conf{,.bkup}
# curl https://gist.githubusercontent.com/ie4/bc1d97274d1f4f53d64197f26119832f/raw/wpa_supplicant.conf -o /etc/wpa_supplicant/wpa_supplicant.conf
# vi /etc/wpa_supplicant/wpa_supplicant.conf
	# <PASSWORD> を上記で設定したWiFiパスワードに変更
# vi /etc/rc.local
	# /usr/bin/python3 /root/grpc/server.py & # ←を exit 0 の1行前に追記
# reboot

余談

課題と今後

  • メカナムホイール、実はメカ・イノシシに向いてない問題
    • 実は、庭先などの芝生が生い茂っているような場所では、メカナムはタイヤが空回りする事が多く、期待しているような走行をしてくれません・・・(それを今言うのかよ、という感じですが…)
    • 当面は、踏み固められた砂利道か、舗装路での利用(パトロール)を進めようと考えています
    • また、キャタピラや多脚系のロボットも検討中です
  • なんと言ってもやっぱAIを使った物体認識を取り入れたい
    • motionの動体検知は、何気にチューニングが難しいところがある (仕方ないけど、害獣以外の検知が多い)
    • 害獣のみを検知し、アクションを実行できるようにしたい
  • メカ☆イノシシがまだまだLv.1状態
    • かの有名な「スーパーモンスターウルフ」くらい圧倒的なインパクトを獲得したい
    • メカ☆イノシシにもっと盛りだくさんなパワーアップアイテムを装備させて、光らせたり、叫んだり、害獣を追いかけまわしたりさせたい
    • 複数台のメカ☆イノシシを連なって走行させてみたい

害獣について

参考URL

Discussion

ie4ie4

移転前に頂いた応援コメント

ぜひ、その後のレポートもお願いいたします。

はい。ボチボチと頑張って行きます!
あまりTechな話にはならないかもなので、twitterとかで発信していくかもしれません。

イラストとても上手で、読んでて楽しかったです♪
私も、その後が気になります。

ありがとうございます!
地味な活動になると思いますが、引き続きご声援頂けますと幸いです☆

ie4ie4

移転前に頂いたアドバイスコメント

わな猟免許取得してこのシステムと連動するIoT罠の開発、とか続編期待してます><
ちなみに以下の場合は免許いらないらしいです。

・狩猟期間中で、塀や囲いがある住宅の敷地内で狩猟鳥獣を捕獲する場合
・狩猟期間内で、農林事業者が事業への被害防止を目的とする場合であって、自身の所有する農林事業敷地内に設置した囲い罠を使用して狩猟鳥獣を捕獲する場合

レス遅くなって、すみません!><
罠猟免許、ちょっと本気で考え始めてます。
捕まえたい訳ではないのですが、「ITを使った効果的な罠の仕掛け方」みたいなものを検証するにあたり、免許は必要だろうな、と考えている感じです。

以下の場合は免許いらないらしいです

なるほどですね。
事業ではないので後者には該当しなさそうですが、前者であれば、条件を満たせるかもしれません。
有益な情報、ありがとうございます!

チャアーハンチャアーハン

これは素晴らしい取り組みですね!
猟師が減っていると聞いたので、IT技術を使って害獣駆除をサポート出来るようなものができれば、非常に社会の役に立つと感じました。

いつもなら毎晩のように来ていた害獣たちが、その晩に限っては、現れませんでした。

罠猟で定番っぽい話なのですが(とっくにご存知でしょうが)、イノシシとシカは罠の金属臭に非常に敏感だと言う話を聞いたことがあります。設置した機器の何らかの匂いで忌避感で来なかったのかなとちらと思いました。
https://seikodo2.blog.ss-blog.jp/2010-11-26-3

高度な検出システムじゃなくても、とりあえず金属臭振りまきながら、一定区間を徘徊する無能ロボでも割と効果あるのかも?と思いました。

ie4ie4

ありがとうございます!

イノシシとシカは罠の金属臭に非常に敏感だと言う話を聞いたことがあります

嗅覚がすごいのは知ってましたが、そうか、金属臭は自然界にはあまり無さそうだから、「金属臭」=「人間が何か策を講じた臭い」と察知されてもおかしくないですね。

高度な検出システムじゃなくても、とりあえず金属臭振りまきながら、一定区間を徘徊する無能ロボでも割と効果あるのかも?と思いました。

これ、すごく面白いですね☆
ちょうど似たようなコンセプト(ただ徘徊するだけ)のマシンは作ろうとしていたので、是非試してみようと思います。

あと、紹介してもらった記事も拝見しました。
面白いですねぇ。まさにイノシシとの騙しあいですよね。

雨が降るとイノシシも良く出歩く。

特に、これには「おお!」と思いました。やっぱそうなのだなぁ、と。
ここ数か月、複数台の監視カメラで畑を監視してきましたが、雨上がりに現れる確率が非常に高かったんですよね。他のヒントも凄く参考になりました。何度か読み返すことになりそうな記事ですねぇ。

自分も「うちの近所のイノシシ」の特徴にはなりますが、いくつか傾向が掴めているので、個人ブログかどこかに今後まとめていけたらと思っています。
貴重な情報ありがとうございました!