---
# System prepended metadata

title: Human Tracking documentation
tags: [Gigabyte]

---

---
tags: Gigabyte, Third period
title: Human Tracking documentation
---
# Human Tracking 專案使用說明
> # 開發版本:
    OpenCV : opencv3.4.1
    PCL    : PCL 1.8
    Editor : visual studio code 
    ros : [kinetic(Ubuntu 16) melodic(Ubuntu 18)]
    Voxel SDK (視相機對應SDK而定)
    
    請先安裝上述環境在開始執行下面的步驟

> # 操作說明:

* 發布點雲資料
    * 使用rosbag: 
        `rosbag play bag_name.bag`
    * 直接使用攝影機:
        `cd ~/dashgo_ws`
        `catkin_make`
        `source devel/setup.bash`
        `sudo chmod /dev/ttyUSB*`
        `roslaunch dashgo_nav t02_imu.launch`(這個指令會一起啟動imu跟輪軸)
        可使用`rosbag record錄製成bag檔直接播放`

* 啟動追蹤程式
    * `cd ~/catkin_ws`
    * `catkin_make`
    * `source devel/setup.bash`
    * `roslaunch human_tracking robot_track.launch`
    
    啟動node後會有相機深度正規化影像及display影像
    
    **附註:**
    1. 若要進行移動，需確認輪軸底盤都已經啟動了, (t02_imu有沒有都點起來)
    2. 若有更換攝影機, 需至people_detector.cpp更換相機的內部參數
    3. 目前吃的topic為point cloud (/giga_t02/points), 若有更換需要至cloud_grabber.cpp修改
    
    
> # 參數位置:

* **robot_manager.cpp**
    1. ::updateMovent()
        * initDistance: 開始追蹤的最近距離
        * minX: 開始選轉的最小x偏移量
        * RDLIMIT: 旋轉角度上限(rad/s)
        * movement: 移動距離
        * rotation: 旋轉角度

* **person_detector.app**
    1. ::PersonDetector()
        * roiSize: 人的roi size
        * bbox: display的bounding box
        * **_intrincsMatrix: 相機參數**
    3. ::setupClassifier()
        * height: 人的高度限制
        * width: 人的寬度限制
    4. ::isMutated()
        * var(0): x軸variance
        * var(2): z軸variance
    5. ::isFilled()
        * fullP: 整體填滿程度
        * downP: 下半部填滿程度
        * upperBound: 下半部切割子區塊的填滿程度限制
    6. ::compute()
        * split roiXMat: 以x來做直方圖切割的thresh
        * split zMat: 以z來做直方圖切割的thresh

* **human_tracking_app.app**
    1. ::updateTracker()
        * thresh: 候選人與追蹤器的最遠距離限制
        * heightDiff: 高度差異
        * similarity: 餘弦相似度
    3. ::updateTrackability()
        * isTrackable的距離參數, 相機穩定使用的距離範圍(不會消失或標準差過高)
    4. ::display2DImage()
        * range < ..., 與追蹤目標的距離, 可能因tof資料不穩定要增加範圍
    5. _minConfidence: **HOG-SVM**所計算出來的信心門檻, 大於才會加入tracker list
    6. _lifeTime: 初始lifeTime, 後續會隨著fps做調整
        