水上AIロボットにおける三次元環境認識
OUXT POLARIS:岡本健太(京都工芸繊維大学)
長尾悠世 (大阪工業大学)

本日お話すること基盤モデルを活用した
ROS 2 水上・陸上物体認識システムを提案・共有＊ROS 2システム！ OSSです！
Gazebo ・実機対応！

提案システム2

本日お話すること基盤モデルを活用した
ROS 2 水上・陸上物体認識システムを提案・共有

シミュレータ (Gazebo)

実環境（水上）3

目次● 今回の目的● OUXT-Polarisについて● Maritime RobotX Challenegeについて● VRX Competitionについて● 自律ロボットの認識システム○ DeticとROS 2○ Point Painting○ Pseudo-Lidar++○ Point Pillers● まとめ4OUXT Polarisについて● Maritime RobotX Challenge(MTRX)に参加を目的とする学生主体のロボコンチーム○ 2014年6位入賞○ 2022年大会で審査員賞獲得
全国各地にメンバーが所在しており，学生主体でオンライン上での活動● 最近の主な活動○ 2022年大会○ VRX2023○ ROS勉強会開催○ 学会発表○ Open Source活動
TurtlebotでROS自律移動ハッカソン

Maritime RobotX Challengeについて

6

Maritime RobotX Challengeの概要【Maritime RobotX Challengeとは】
自律航行船を対象とする国際ロボコン（偶数年開催）
今年はシミュレーション上での競技会であるVRX Competitionに挑戦
主なタスク

移動・障害物回避・認識・投擲・精密移動

コース通過タスク

水中ドローン

RobotXのX
様々なロボットの連携
2022年より，マルチコプタのタスク
マルチコプタ船上離陸

高温，高湿度，雨などの悪天候下で，頑健に自律移動できるシステムを開発

船上着陸

7

Maritime RobotX Challengeの魅力● 陸上よりも外乱が多く動作が難しい環境● 大型かつ200kgOverな機体を完全自律で動作！

オブジェクトに対する適切なインタラクション

屋外環境に対する高いロバスト性

8Maritime RobotX Challengeの動画

9動作環境の違い

陸上走行、航行環境●●●

水対策はあまり必要としない
ある程度安定したセンサによる観測が可能
人や動物、信号機などの一般の対象物

水上● 水対策マスト！
● うねりの影響で上下に激しく揺れるためセンサによる観測が不安定● ブイ、旗、ドック、カモノハシなどの水上特有の物体

10WAM-Vの構成
ベースの舟

●

船の諸元
○ 長さ 5m○ 幅 2.5m○ 高さ 1.3m○ 重量 204kg〜

Lidar, GNSS, Cameraなどのセンサー類

計算機や電装系
推進機構

水上自律ロボットの全体アーキテクチャ
decision
moduleLocalization

control
moduleSelf position/
velocity estimation

GPSIMU

recognition
moduleresult target
position

Behavior
Behavior
planning

Planner
Generate
Local Path

resultPerception
Obstacledetection

Velocity
ControlServo
Thruster

Control motor
direction and rec

LiDAR
Camera12

水上自律ロボットの全体アーキテクチャ
decision
moduleLocalization

control
moduleSelf position/
velocity estimation

GPSIMU

resultBehavior
Behavior
planning

targetposition

Planning
Generate
Local Path

resultPerception
Obstacle
detection

recognition
moduleVelocity
ControlServo
Thruster

Control motor
direction and rec

Lidarcamera13

VRX Competitionについて

14

VRX Competition● Gazeboベースに作られた仮想環境でWAM-Vの自律航行能力を競う● 使用できるセンサ情報及び台数が決まっている
○○

実機の構成
■ 3DLiDAR(Velodyne VLP-16) 2台■ RGBカメラ 6台
VRXでの構成■ 3DLiDAR(Velodyne VLP-16) 1台■ RGBカメラ 2台

15Virtual RobotX(VRX)とは● ROS 2を用いて開発されているため、Rviz2やrqtといった基本的なアプリケーションの使用が可能● 実機で使用しているソフトウェアの適用が可能

16

The Virtual RobotX

17

WAM-Vのセンサ配置

Velodyne LiDAR
VLP-16● カメラとLiDARで前方を計測できるように配置● カメラは大会指定のカメラ○ 1280×720(W×H)● LiDARはVelodyne社のVLP-16を採用● GPS,IMUを設置して船の自己位置や船速を推定

18実機とVRXの比較

実機の映像

VRXの映像19

目指すもの：海上、陸上、シミュレーション
全ての環境に適応可能かつ頑健な3次元環境認識システムを提案

20

自律ロボットの認識システム

21

提案する3次元環境認識システム

Detic+CLIP

PsueduLiDAR++

●●●●
●

Point
Painting

画像+点群処理

点群処理

画像処理

Occupancy
Grid

走行可能領域取得

Point
Pillers

物体の姿勢を取得

カメラとLiDARを合わせた構成
物体検出にDeticを採用
密な点群情報取得のためにPsuedu LiDAR++を採用
カメラLiDARフュージョンにPoint Paintingを採用
物体の姿勢を取得するためにPoint Pillersを採用
22

Detic(物体検出)
Detic+
CLIP

PsueduLiDAR++

Point
Painting

Occupancy
Grid

走行可能領域取得

Point
Pillers

物体の姿勢を取得

23

DeticとROS2-Detic(物体検出)● 2万クラスの物体検出およびインスタンスセグメンテーションが可能● 画像分類のデータセットを用いて学習が可能● プロンプトの与え方により検出ターゲットの変更が可能のため、再学習の必要がない○ paper, coffe, headphone,
webcam

Deticの出力結果[1][1] https://github.com/facebookresearch/Detic24

旧3次元環境認識システム
点群処理

YOLOXNano

Outlier
Removal

Byte
TrackCluster
ImageFusion

Cluster
Detection

Points
Projection

画像処理

画像+点群処理

Costmap
Calculator● カメラとLiDARを合わせた構成● 物体検出にYOLOX-Nanoを採用

25

旧3次元環境認識システム-YOLOX-Nano● YOLOX-NanoはYOLO系の物体検出● 処理が軽量かつ通常の環境下では強力な検出器であるが、学習素材が集めづらいRobotXには不向き

学習パラメータ・epoch 300
・350 images

26

YOLOX-NanoとDeticの比較
YOLOX-Nano

Detic

27

DeticとROS 2-ROS 2● Deticによる推論結果を船の自律航行に活用するた
め、ROS 2 Wrapperを作成● OSSとして公開○

https://github.com/OUXT-Polaris/detic_onnx_ros228

DeticとROS2-ONNX● ONNXモデルはailia-models[2]からダウンロード● 推論の高速化のためにonnxruntime-gpuを使用● ROS ParameterでCPU/GPUの切り替えが可能● 今後はonnx2tfやTensorRTによる更なる高速化を検討中

推論時間

onnxruntime

onnxruntime-gpu

2.0【sec】

0.15【sec】
CPU:Intel i5 第10世代
GPU:RTX 4070

[2]https://github.com/axinc-ai/ailia-models/tree/aa79d01f0650ca456acc89
76d843613a634b0218/object_detection/detic

29

DeticとROS2-ONNX● ONNXモデルはプロンプトが制限されてしまうためプロンプトチューニングによる柔軟な検出ターゲットの変更が不可● Deticの後段に基盤モデルであるCLIPを挟むことで柔軟な検出ターゲットの変更を可能にする
object detection

classification

Detic

CLIP

detection result30Point Painting(3次元情報に変換)
Detic

PsueduLiDAR++

PointPainting

Occupancy
Grid

走行可能領域取得

PointPillers

物体の姿勢を取得

31

Point Painting(3次元情報に変換)● セグメンテーション情報を元に点群にクラスや確率情報を付与⇨コストマップやナビゲーションなどに利用
1. deticによるSegmentation情報の取得
2. 対応する点群に付加情報を付与● Deticからセグメント画像(sensor_msg/Image)を受け取っているので輪郭の座標値(geometry_msg/Polygon)取得に変更
segmentation情報の付与

segmentationpointpainting
transformation32

Point Painting

33

Psuedu LiDAR++(点群情報の補間)
DeticPsueduLiDAR++

PointPainting

Occupancy
Grid走行可能領域取得

PointPillers

物体の姿勢を取得

34

Psuedo LiDAR++(点群情報の補間)● スパースな点群のままでは、Point Pillersには不十分であることから点群データ+ステレオカメラを用いて点群密度を上げるニューラルネットワーク● 学習及び推論に時間がかかってしまう○

学習期間■ Nvidia A100
■ 5日●
●LiDAR点群
Psudo LiDAR++

Psuedo LiDAR++[3][3]https://openaccess.thecvf.com/content_CVPR_2019/papers/Wang_P
seudo-LiDAR_From_Visual_Depth_Estimation_Bridging_the_Gap_in_3
D_CVPR_2019_paper.pdf

35

Point Pillers(3次元物体姿勢推定)
DeticPsuedu
LiDAR++

Point
Painting

Occupancy
Grid

走行可能領域取得

PointPillers

物体の姿勢を取得

36

Point Pillers(3次元物体姿勢推定)● 点群データを用いた3次元物体検出モデル● 推論時間が62Hzと高速となっている○○

CPU：Intel i7
GPU：Geforce 1080ti

Point Pillers[4][4]https://openaccess.thecvf.com/content_CVPR_2019/papers/Lang_Po
intPillars_Fast_Encoders_for_Object_Detection_From_Point_Clouds_C
VPR_2019_paper.pdf

37

まとめ(今後の展望)● 物体認識アーキテクチャの各レイヤーでの動作確
認やROS 2 Wrapperの作成及び統合● PointPainting側の高速化● Psuedu LiDAR++はEdgeデバイス上での動作に難ありのため代わりとなるアルゴリズムの導入を検討

38

メンバー募集
OUXT Polarisでは自律航行をやってみたい人を募集しています！
●●●●

ハードウェア設計
電子回路設計ファームウェア実装(HSIカメラ,音響系）
自己位置推定系の実装(発音体の位置推定）● 船の行動計画系の実装(BehaviorTree)● 物体認識系の実装● 運営（スポンサーとのやりとりなど）
上の内容等に興味のある方は @OUXT_Polarisまで！

39スポンサー募集
Gold Sponsors
対象：￥1,000,000以上
あなたの会社のロゴを下記に掲載させていただきます！
●
●
●
●
●

船体Webサイト（スポンサーページ）
チームユニホーム
オープンソースのシミュレーション上の船の3Dモデル上
私たちのGitHubのすべてのREADME.mdファイル上

Silver Sponsors
対象：￥500,000以上
あなたの会社のロゴを下記に掲載させていただきます！
●
●
●

船体
Webサイト（スポンサーページ）
チームユニホーム40

ご清聴いただきありがとうございました。
ご質問ある方がおられましたらよろしくお願い致します。

41

The Virtual RobotXのルール
GazeboとROS 2は、VRXのデフォルトの前提条件

ROS2とGazeboを使っていることを書く
ジョイススティックでも動きますよ
VRXとMaritimeRobotXの違い制限● Fog● Wind● Wave
● Ambient Light43

質問対応箱● VRXのバグでLiDAR情報が水面反射して水面の情報が帰ってきてしまっているが、Deticの推論では水を検出しないので問題ない● 本来はPointPillersの中にPointpaintingが含まれてコード実装や論文投稿がされているが、実装の都合上分離している。occupancy grid map生成にはPointpaintingで得られるセグメントされた点群のみが欲しいのであえて分けています。

44