Skip to content

TeamSOBITS/sobit_follower

Repository files navigation

JA | EN

Contributors Forks Stargazers Issues License

SOBIT Follower

目次
  1. 概要
  2.  パッケージ構成
  3.  実行方法
  4. マイルストーン

概要

セットアップ

$ cd ~/colcon_ws/src/
$ git clone -b jazzy-devel https://github.com/TeamSOBITS/sobit_follower
$ cd sobit_follower
# sobit_followerに必要なパッケージのインストールを行う
$ bash install.sh
# インストールしたパッケージのセットアップを行った後、colcon build
$ cd ~/colcon_ws/
$ colcon build --symlink-install
$ source ~/colcon_ws/install/setup.sh

対象者識別用の追加セットアップ

$ cd sobit_follower
# 対象者識別に必要な追加パッケージのインストールを行う
$ bash install_target_identification.sh
# インストールしたパッケージのセットアップを行った後、colcon build
$ cd ~/colcon_ws/
$ colcon build --symlink-install
$ source ~/colcon_ws/install/setup.sh

パッケージ構成

01. 2D Lidar Person Detection

02. Multiple Observation Kalman Filter

  • 2つの観測値を入力とするカルマンフィルタライブラリ
  • 1つの観測値でも動作可能 - 状態方程式は等速モデル
  • Multiple Sensor Person Trackingで使用
  • 詳細はこちら

03. Multiple Sensor Person Tracking

  • 2D-LiDARセンサとパンチルト回転機構上のRGB-Dセンサを組み合わせた人物追跡
  • DR-SPAAMによる2次元点群脚検出とSSDによる画像人検出を用いた人物追跡
  • 詳細はこちら

04. Person Following Control

  • 仮想ばねモデルを用いた人間追従制御にDynamic Window Approachによる障害物回避を組み込んだ走行制御
  • 詳細はこちら

05. SOBIT Follower

  • Multiple Sensor Person TrackingとPerson Following Controlを用いた人追従走行
  • ユーザはこのパッケージのLaunchを起動することで人追従走行を動作させることが可能
  • 実験用のrosbag取得や取得したデータのplotも可能なシェルスクリプトも完備
  • 詳細はこちら

06. Target Identification Method

  • 対象者識別手法を加えた人追従走行
  • 以下に示す2つの対象者識別手法のどちらかを人追従走行ロボットシステムに追加することでロボットは対象者を識別しながら人追従走行が可能

対象者識別手法

  1. 畳み込みチャネル機能とオンラインブースティングの組み合わせ(Koide_Model)

    • 10個の特徴マップに基づくランダムな矩形の画素値和による人物特徴抽出とオンラインブースティングによる対象者分類器から構成される
    • 追加が必要なパッケージはmonocular_person_followingccf_person_identificationであり, この2つのパッケージに依存してopen_face_recognitionも追加する必要がある
    • 論文:
    • Kenji Koide, Jun Miura, and Emanuele Menegatti, “Monocular person tracking and identification with on-line deep feature selection for person following robots”,Robotics and Autonomous Systems,124: 103348,2020 [link].
  2. OSNetとリッジ回帰モデルの組み合わせ(GRR_SLT)

    • OSNetによる人物特徴抽出とリッジ回帰モデルによる対象者分類器から構成される
    • 追加が必要なパッケージはMPF_GRR_SLTである
      • MPF_GRR_SLTの元のパッケージでは人物特徴抽出手法にOSNetは用いられていないが,sobit_follwerに対象者識別機能を適用するにあたって人物特徴抽出手法としてOSNetを代わりに使用
    • OSNetのgithub: [link]
    • OSNetの論文:
    • Kaiyang Zhou,Yongxin Yang,Andrea Cavallaro and Tao Xiang,“Omni-scale feature learning for person re-identification”,Proceedings of the IEEE/CVF international conference on computer vision,pp.3702-3712,2019 [link].
    • MPF_GRR_SLT(この対象者識別手法の基盤となるパッケージ(リッジ回帰モデルによる対象者分類器はオリジナルのまま使用))の論文:
    • Hanjing Ye,Jieting Zhao,Yaling Pan,Weinan Chen and Hong Zhang,“Following Closely: A Robust Monocular Person Following System for Mobile Robot”,arXiv preprint arXiv:2204.10540,2022 [link].
  • 対象者識別実験からKoide_ModelよりGRR_SLTの方が対象者識別精度が高いことが示されている
  • 一方でKoide_Modelの方はGRR_SLTより処理量が軽いという利点があるため使用する状況に応じて2つの対象者識別手法を上手く使い分けることをおすすめする
  • 上に示す対象者識別用の追加セットアップを行うことで使用可能

実行方法

Robot Library Action Server

  • パン・チルト回転機構を制御用のロボットライブラリーアクションサーバの起動
  • Multiple Sensor Person TrackingとPerson Following Controlによる人追従走行
  • path:sobit_follower/launch/sobit_follower.launch
  • 詳細はこちら
$ ros2 launch sobit_follower sobit_follower.launch.py

Important

使用しているロボットに合わせて、sobit_follower/launch/sobit_follower.launch 内の robot_type を変更してください。

Caution

以下のエラーが発生した場合は、この Google Drive から重みファイルをダウンロードし、sobit_follower/dr_spaam_ros/weights/ に配置したうえで、パッケージを再ビルドしてください。
FileNotFoundError: [Errno 2] No such file or directory: '/home/username/colcon_ws/install/dr_spaam_ros/share/dr_spaam_ros/weights/ckpt_jrdb_ann_ft_dr_spaam_e20.pth'

Caution

body_detector:=yolo を使用する場合は、事前に YOLO の重みファイルをダウンロードし、yolo_ros/weights/ に配置してからパッケージを再ビルドしてください。
例: yolo11n.pt, yolo26n.pt

Launch構成

Parameterファイル

  • tracker_param.yaml
    • 人物追跡に関するパラメータ
    • path:sobit_follower/param/<robot_type>/tracker_param.yaml
    • パラメータの詳細はこちら
  • ssd_param.yaml
    • RGB画像ベースの人物検出器に関するパラメータ
    • path:sobit_follower/param/<robot_type>/ssd_param.yaml
    • パラメータの詳細はこちら
  • dr_spaam_param.yaml
    • 2D LiDARベースの人物検出器に関するパラメータ
    • path:sobit_follower/param/<robot_type>/dr_spaam_param.yaml
    • パラメータの詳細はこちら
  • sensor_rotator_param.yaml
    • RGB-Dセンサのパンチルト回転制御に関するパラメータ
    • path:sobit_follower/param/<robot_type>/sensor_rotator_param.yaml
  • following_control_param.yaml
    • 走行制御に関するパラメータ
    • path:sobit_follower/param/<robot_type>/following_control_param.yaml
    • パラメータの詳細はこちら
  • velocity_smoother_param.yaml
    • 速度平滑化に関するパラメータ
    • path:sobit_follower/param/<robot_type>/velocity_smoother_param.yaml
    • パラメータの詳細はこちら

マイルストーン

  • OSS
    • tf2化
    • ドキュメンテーションの充実
    • コーディングスタイルの統一

現時点のバッグや新規機能の依頼を確認するためにIssueページ をご覧ください.

(上に戻る)

About

Person-following system using LiDAR and RGB-D sensor in robots with pan-tilt mechanism.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors