Ver.
ROSでロボット開発中
~センサーデータ収集編~
Copyright © 2018 OPTiM Co. All Rights Reserved. 1
2018/08/29 けーすた!CASESTUDY! LIGHTNING TALK
自己紹介
2Copyright © 2018 OPTiM Co. All Rights Reserved
プロフィール
坂井 雄斗(@YutoSakai6)
ROSCon行きます!
FGOの脱出ゲーム行ってきました!
経歴
Pythonで時系列データ解析
Robotシステム構築
問題
3Copyright © 2018 OPTiM Co. All Rights Reserved
OPTiMで開発している
ロボットはどこで活用される?
問題
4Copyright © 2018 OPTiM Co. All Rights Reserved
260.6
209.7
192.2
181.6
平成22度 平成27度 平成28度 平成29度
人口[万人]
人口の推移
農林水産省: http://www.maff.go.jp/j/tokei/sihyo/data/08.html
ヒント1.
問題
5Copyright © 2018 OPTiM Co. All Rights Reserved
西日本豪雨被害総額
約1197億円
産経ニュース:https://www.sankei.com/affairs/news/180722/afr1807220006-n1.html
ヒント2.
問題
6Copyright © 2018 OPTiM Co. All Rights Reserved
品目 労働時間(h) 時給換算(円/h)
575 591
1095 1223
1757 961
947 1298
1488 1364
1162 981
2983 489
時給換算表
ぱずーの農業日記:http://xn--98jxbh17co03s7oeww0eymj.jp/yasai-2-1159
ヒント3.
問題
7Copyright © 2018 OPTiM Co. All Rights Reserved
品目 労働時間(h) 時給換算(円/h)
青ネギ 575 591
きゅうり 1095 1223
なす 1757 961
大玉トマト 947 1298
ミニトマト 1488 1364
ピーマン 1162 981
ししとう 2983 489
ぱずーの農業日記:http://xn--98jxbh17co03s7oeww0eymj.jp/yasai-2-1159
ヒント4. 時給換算表
問題
8Copyright © 2018 OPTiM Co. All Rights Reserved
農業
答え.
問題
9Copyright © 2018 OPTiM Co. All Rights Reserved
農業
答え.
AI・IoT・Roboticsを活用
農業で活用するAI・IoT・ロボティクス
10Copyright © 2018 OPTiM Co. All Rights Reserved
農業
データ収集 遠隔支援 農作業記録
IoT
農業で活用するAI・IoT・ロボティクス
11Copyright © 2018 OPTiM Co. All Rights Reserved
農業
収穫時期予測 収穫量予測 害虫検知
AI
農業で活用するAI・IoT・ロボティクス
12Copyright © 2018 OPTiM Co. All Rights Reserved
農業
Robot
見回り 農薬散布 収穫
農業で活用するAI・IoT・ロボティクス
13Copyright © 2018 OPTiM Co. All Rights Reserved
スマート農業
https://smartagri-jp.com/
©1
©1: https://www.optim.co.jp/agriculture/
農業で活用するAI・IoT・ロボティクス
14Copyright © 2018 OPTiM Co. All Rights Reserved
©2
©2: https://www.optim.co.jp/news-detail/24220
本題
15Copyright © 2018 OPTiM Co. All Rights Reserved
ROSでロボット開発中
~センサーデータ収集編~
本題
16Copyright © 2018 OPTiM Co. All Rights Reserved
農業
Robot
見回り 農薬散布 収穫
本題
17Copyright © 2018 OPTiM Co. All Rights Reserved
ROSでロボット開発中
~センサーデータ収集編~
ROS?
ザックリROSとは
18Copyright © 2018 OPTiM Co. All Rights Reserved
Robot Operating System
センサデータの
扱いが上手い!
オープンソース!
ザックリROSとは
19Copyright © 2018 OPTiM Co. All Rights Reserved
Robot Operating System
Ubuntu
Mac Windows
ザックリROSとは
20Copyright © 2018 OPTiM Co. All Rights Reserved
コードの中身は?
©1
©1: https://www.optim.co.jp/agriculture/
ザックリROSとは
21Copyright © 2018 OPTiM Co. All Rights Reserved
Publisher Subscriber
Node
この2つを
用意する
ザックリROSとは
22Copyright © 2018 OPTiM Co. All Rights Reserved
Publisher
𝒚
𝒙
ロボットの
位置情報を
送信したい
ザックリROSとは
23Copyright © 2018 OPTiM Co. All Rights Reserved
Publisher
geometry_msgs/Pose2D
float64 x
float64 y
float64 theta
𝒚
𝒙
ロボットの
位置情報を
送信したい
メッセージタイプ
ザックリROSとは
24Copyright © 2018 OPTiM Co. All Rights Reserved
Publisher
geometry_msgs/Pose2D
float64 x
float64 y
float64 theta
値を代入
値を代入
値を代入
𝒚
𝒙
ロボットの
位置情報を
送信したい
メッセージタイプ
ザックリROSとは
25Copyright © 2018 OPTiM Co. All Rights Reserved
Publisher
Master
名前を付けて
マスターに登録
ザックリROSとは
26Copyright © 2018 OPTiM Co. All Rights Reserved
Publisher
Master
名前を付けて
マスターに登録
/agri_crawler/robot_2Dpose
ザックリROSとは
27Copyright © 2018 OPTiM Co. All Rights Reserved
Publisher
Master
名前を付けて
マスターに登録
/agri_crawler/robot_2Dpose
ザックリROSとは
28Copyright © 2018 OPTiM Co. All Rights Reserved
Subscriber
ロボットの
位置情報が
欲しい
Master
/agri_crawler/robot_2Dpose
ザックリROSとは
29Copyright © 2018 OPTiM Co. All Rights Reserved
Subscriber
ロボットの
位置情報が
欲しい
/agri_crawler/robot_2Dpose
ください
Master
/agri_crawler/robot_2Dpose
ザックリROSとは
30Copyright © 2018 OPTiM Co. All Rights Reserved
Subscriber
ロボットの
位置情報が
欲しい
/agri_crawler/robot_2Dpose
ください
Master
/agri_crawler/robot_2Dpose
ザックリROSとは
31Copyright © 2018 OPTiM Co. All Rights Reserved
/encoder
/imu
/agri_crawler/encoder
/agri_crawler/imu
/calc_odom
/agri_crawler/robot_2Dpose
組み合わせることでシステムを構築
センサーデータを収集して障害物検知
32Copyright © 2018 OPTiM Co. All Rights Reserved
ROSでロボット開発中
~センサーデータ収集編~
センサーデータを収集して障害物検知
33Copyright © 2018 OPTiM Co. All Rights Reserved
©3: RobotShop: https://www.robotshop.com/jp/ja/rplidar-a2m8-360-laser-scanner.html
©3
RPLiDAR A2M8
測距センサ
360度
スキャン
測定範囲
0.15 – 12m
センサーデータを収集して障害物検知
34Copyright © 2018 OPTiM Co. All Rights Reserved
LiDAR周辺の障害物検知
センサーデータを収集して障害物検知
35Copyright © 2018 OPTiM Co. All Rights Reserved
rvizでLiDARのセンサデータを表示
点群データ
センサーデータを収集して障害物検知
36Copyright © 2018 OPTiM Co. All Rights Reserved
ROSでLiDARのセンサデータをecho
配列内に
大量のデータ
センサーデータを収集して障害物検知
37Copyright © 2018 OPTiM Co. All Rights Reserved
ROSでLiDARのセンサデータをecho
だいたい10/secの
勢いで流れてくる
センサーデータを収集して障害物検知
38Copyright © 2018 OPTiM Co. All Rights Reserved
速すぎて
追えない…
©1
©1: https://www.optim.co.jp/agriculture/
センサーデータを収集して障害物検知
39Copyright © 2018 OPTiM Co. All Rights Reserved
配列内に入っているデータとセンサの関係
[359]
[89] [269]
[179]
センサーデータを収集して障害物検知
40Copyright © 2018 OPTiM Co. All Rights Reserved
配列内に入っているデータとセンサの関係
[359]
[89] [269]
[179]
右側の
データが…
センサーデータを収集して障害物検知
41Copyright © 2018 OPTiM Co. All Rights Reserved
配列だと
全然わからない
©1
©1: https://www.optim.co.jp/agriculture/
センサーデータを収集して障害物検知
42Copyright © 2018 OPTiM Co. All Rights Reserved
理解できる
形にしよう!
©1
©1: https://www.optim.co.jp/agriculture/
センサーデータを収集して障害物検知
43Copyright © 2018 OPTiM Co. All Rights Reserved
配列内に入っているデータとセンサの関係
[359]
[89] [269]
[179]
とりあえず
Θ欲しい
センサーデータを収集して障害物検知
44Copyright © 2018 OPTiM Co. All Rights Reserved
LiDARのセンサ情報を座標系で扱いたい
Θと𝒍の関係
X
Y
θ
𝒍
𝒊番目
センサーデータを収集して障害物検知
45Copyright © 2018 OPTiM Co. All Rights Reserved
Θはどうやってだす?
開始角度
角度の増加量
何番目のデータか
[i]
センサーデータを収集して障害物検知
46Copyright © 2018 OPTiM Co. All Rights Reserved
Θはどうやってだす?
開始角度
角度の増加量
+
何番目のデータか
[i]
×
センサーデータを収集して障害物検知
47Copyright © 2018 OPTiM Co. All Rights Reserved
LiDARのセンサ情報を座標系で扱いたい
𝒊番目のΘと𝒍
X
Y
θ
𝒍
𝒊番目
センサーデータを収集して障害物検知
48Copyright © 2018 OPTiM Co. All Rights Reserved
あとは高校数学&物理
たぶん
センサーデータを収集して障害物検知
49Copyright © 2018 OPTiM Co. All Rights Reserved
XY座標系に変換
𝑿 = 𝒍 × cos 𝜽
X
Y
θ
𝒍
𝒊番目
𝒀 = 𝒍 × sin 𝜽
左後 𝑿, 𝒀 = (+, −)
左前 𝑿, 𝒀 = (−, −) 右前 𝑿, 𝒀 = (−, +)
右後 𝑿, 𝒀 = (+, +)
センサーデータを収集して障害物検知
50Copyright © 2018 OPTiM Co. All Rights Reserved
X
Y
センサーデータを収集して障害物検知
51Copyright © 2018 OPTiM Co. All Rights Reserved
とてもわかる
©1
©1: https://www.optim.co.jp/agriculture/
右後 𝑿, 𝒀 = (+, +)
センサーデータを収集して障害物検知
52Copyright © 2018 OPTiM Co. All Rights Reserved
右後ろの障害物について考える
X
Y
センサーデータを収集して障害物検知
53Copyright © 2018 OPTiM Co. All Rights Reserved
X
Y
点群を直線に
センサーデータを収集して障害物検知
54Copyright © 2018 OPTiM Co. All Rights Reserved
X
Y
𝒀 = 𝒂 ∗ 𝑿 + 𝒄を求める
点群を直線に
センサーデータを収集して障害物検知
55Copyright © 2018 OPTiM Co. All Rights Reserved
X
Y
𝒀 = 𝒂 ∗ 𝑿 + 𝒄を求める
最小二乗法
𝒂 =
𝒊=𝟏
𝒏
𝒙𝒊 − 𝒙 𝒚𝒊 − 𝒚
𝒊=𝟏
𝒏
𝒙𝒊 − 𝒙 𝟐
𝒄 = 𝒚 − 𝒂 𝒙
点群を直線に
センサーデータを収集して障害物検知
56Copyright © 2018 OPTiM Co. All Rights Reserved
LiDARから直線までの距離
X
Y
𝑑
障害物までの
距離が欲しい
センサーデータを収集して障害物検知
57Copyright © 2018 OPTiM Co. All Rights Reserved
LiDARから直線までの距離
X
Y
𝑑
点と直線の距離
𝒀 = 𝒂 ∗ 𝑿 + 𝒄
直線: 𝒂 ∗ 𝑿 + 𝟏 ∗ 𝒀 + 𝒄 = 𝟎
変換
点:原点 𝟎, 𝟎
𝒅 =
𝒂 ∗ 𝟎 + 𝟏 ∗ 𝟎 + 𝒄
𝒂 𝟐 + 𝟏 𝟐
センサーデータを収集して障害物検知
58Copyright © 2018 OPTiM Co. All Rights Reserved
X
Y
𝑑
計算の結果
障害物の
直線:𝒀 = 𝒂 ∗ 𝑿 + 𝒄
距離:𝒅
θ傾き:𝜽 = tan−𝟏
𝒂
座標: 𝒙, 𝒚 = 𝒅 sin 90 − 𝜽 , 𝒅 cos 90 − 𝜽
センサーデータを収集して障害物検知
59Copyright © 2018 OPTiM Co. All Rights Reserved
障害物の情報をパブリッシュ
Publisher
geometry_msgs/Pose2D
float64 x
float64 y
float64 theta
メッセージタイプ
座標を代入
傾きを代入
Master
センサーデータを収集して障害物検知
60Copyright © 2018 OPTiM Co. All Rights Reserved
/rplidarNode /findObject
/scan /r_object
システム構成
センサーデータを収集して障害物検知
61Copyright © 2018 OPTiM Co. All Rights Reserved
障害物の
検知が可能に
目的
62Copyright © 2018 OPTiM Co. All Rights Reserved
障害物検知
ロボットの位置情報
&
目的
63Copyright © 2018 OPTiM Co. All Rights Reserved
自律走行
目的
64Copyright © 2018 OPTiM Co. All Rights Reserved
農業
Robot
見回り 農薬散布 収穫
進捗
65Copyright © 2018 OPTiM Co. All Rights Reserved
シミュレーションv1
進捗
66Copyright © 2018 OPTiM Co. All Rights Reserved
シミュレーションv1
ここで制御
システム構成
進捗
67Copyright © 2018 OPTiM Co. All Rights Reserved
自動走行テスト中。。
進捗
68Copyright © 2018 OPTiM Co. All Rights Reserved
ギリギリで停止
進捗
69Copyright © 2018 OPTiM Co. All Rights Reserved
昨日できた
まだVer1
まとめ
70Copyright © 2018 OPTiM Co. All Rights Reserved
Robot 見回り
©2: https://www.optim.co.jp/news-detail/24220
©4: https://www.kidsplates.jp
©5: https://www.youtube.com/watch?v=9wUbiGVJ0nM
©4
©5
まとめ
71Copyright © 2018 OPTiM Co. All Rights Reserved
Robot 見回り
AI・IoT
©2: https://www.optim.co.jp/news-detail/24220
©4: https://www.kidsplates.jp
©5: https://www.youtube.com/watch?v=9wUbiGVJ0nM
©4
©5
©2
まとめ
72Copyright © 2018 OPTiM Co. All Rights Reserved
Robot 見回り
AI・IoT 予測
害虫
検知
©2: https://www.optim.co.jp/news-detail/24220
©4: https://www.kidsplates.jp
©5: https://www.youtube.com/watch?v=9wUbiGVJ0nM
©4
©5
©2
まとめ
73Copyright © 2018 OPTiM Co. All Rights Reserved
Robot 見回り
AI・IoT 予測
害虫
検知
農薬
散布
©2: https://www.optim.co.jp/news-detail/24220
©4: https://www.kidsplates.jp
©5: https://www.youtube.com/watch?v=9wUbiGVJ0nM
©4
©5
©2
まとめ
74Copyright © 2018 OPTiM Co. All Rights Reserved
品目 労働時間(h) 時給換算(円/h)
青ネギ 575 591
きゅうり 1095 1223
なす 1757 961
大玉トマト 947 1298
ミニトマト 1488 1364
ピーマン 1162 981
ししとう 2983 489
時給換算表
ぱずーの農業日記:http://xn--98jxbh17co03s7oeww0eymj.jp/yasai-2-1159
削減
終わり
75Copyright © 2018 OPTiM Co. All Rights Reserved
スマート農業
https://smartagri-jp.com/
©1
©1: https://www.optim.co.jp/agriculture/
www.optim.co.jp
質問タイム
Copyright © 2018 OPTiM Co. All Rights
Reserved.
けーすた!CASESTUDY! LIGHTNING TALK

ROSでロボット開発中