# TagSLAM 利用方法 ## インストール 1. Ubuntu18.04をインストール(私は英語環境で利用しました) 2. ROSメロディックをインストール ``` $ sudo apt update $ sudo apt upgrade $ sudo apt install ros-melodic-desktop-full ``` 3. TagSLAMをgitリポジトリからインストール https://github.com/berndpfrommer/tagslam https://berndpfrommer.github.io/tagslam_web/getting_started/ 4. ROSのuvcカメラモジュールをインストール http://wiki.ros.org/uvc_camera ``` $ sudo apt install ros-melodic-uvc-camera // 新しいモジュールにlibuvc_cameraがありますが、こちらはTagSLAMにデータを渡すことができませんでした。 http://wiki.ros.org/libuvc_camera ``` 5. Pythonはデフォルトを利用しています(2.7.17) 6. 起動スクリプトなどをインストール ``` tagslam_helper.zipをホームディレクトリにアップロードします。  $ unzip tagslam_helper.zip $ cd tagslam_helper $ make install $ pip install -r requirements.txt ``` ## 起動手順 1. roscoreを起動 ``` $ roscore & ``` 2. tagslamを起動 ``` $ cd tagslam_helper $ bash main.sh ``` ## キャリブレーション ### カメラ単体のキャリプレーション ROSの機能を使ってカメラ単体のキャリブレーションを行います。 http://wiki.ros.org/camera_calibration 1. インストール ``` $ sudo apt install ros-melodic-camera-calibration ``` 2. キャリブレーション用のA4用紙を印刷して木などに貼り付ける   http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=get&target=check-108.pdf 3. キャリブレーション ``` $ roscore & $ rosrun uvc_camera uvc_camera_node & $ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/image_raw // GUIを利用するのでモニタを接続して行います。 ``` 4. ost.yamlというファイルが書き出されるので一部の値をコピーしてcameras.yamlに転記 ``` 利用する値に関してはTagSLAMのページに説明があります。 https://berndpfrommer.github.io/tagslam_web/intrinsic_calibration/ ``` 以上の手順をカメラ毎に行います。 ### カメラ連携のキャリブレーション 1. 部屋にタグを散りばめます 2. cameras.yamlを空にしてtagslamを起動 3. 位置が安定したら、以下のコマンドでカメラの位置を書き出す ``` rosservice call /tagslam/dump ``` 4. cameras.yamlが書き出されるので、以降は起動時にこのファイルを読みだす 参考 https://berndpfrommer.github.io/tagslam_web/output/ ## 通信 ### RaspberryPi (送信側) 1. 通信先のIPアドレスを設定 ``` config.iniを開く IpAddrに送りたいPCのIPアドレスを指定 ``` 2. tagslamを起動 ### PC (受信側) 1. Unity(2021.3.21f1)をインストール 2. Unityを立ち上げる 3. 新しく3Dアプリを作成 4. tagslam_osc_receiverパッケージをインポート ``` Assets -> Inport Package -> Custom Packagと選択してファイルを指定します。 ``` 5. UnityEditorをRun ``` 受信できると仮想カメラデバイスの位置が更新されて、位置情報のログが表示されます。 ``` ## 機材 ### カメラ - カメラはこちらを使っています。 https://www.amazon.co.jp/【2011年モデル】ELECOM-4インチCMOSセンサ-ガラスレンズ搭載-イヤホンマイク付-UCAM-DLA200HBK/dp/B004DRB186?th=1 ## 備考 - RaspberryPi4よりCPUの処理速度が速いデバイスを使うと複数カメラでも安定する可能性があります。 - 別のカメラを使う場合、ROSのカメラモジュールとの相性があるため、動作しないことがあります。