チームリポジトリ取得と動作確認(2023年度版) - wataniguchi/EV3RT GitHub Wiki
-
当Wikiの「RasPikeリポジトリ取得と動作確認」の手順に従い、ラズパイにRasPikeリポジトリを取得済みであることを仮定する。
-
当Wikiの「ラズパイ環境構築」の手順の最終部に従い、ラズパイにX11 forwarding付きでsshする。なお、X11 forwardingなしで当手順を実行すると、サンプルプログラム実行の段階でX11サーバへの接続が拒否されたという内容のエラーが発生する。この場合はsshし直してサンプルプログラムを実行する。エラーが発生しなかった事項についてはやり直しの必要はない。
pi@peach:~/etrobo/RasPike/sdk/workspace/test-opencv $ ./testTraceCam01 Unable to init server: Could not connect: Connection refused terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4.6.0) /home/pi/Library/opencv4/opencv-4.6.0/modules/highgui/src/window_gtk.cpp:635: error: (-2:Unspecified error) Can't initialize GTK backend in function 'cvInitSystem'
MSADモード2チームリポジトリを取得する
-
workspaceフォルダへ移動する。
pi@peach:~ $ cd ~/etrobo/RasPike/sdk/workspace/
-
Gitローカルリポジトリを初期化する。
pi@peach:~/etrobo/RasPike/sdk/workspace $ git init
-
リモートリポジトリを設定する。
pi@peach:~/etrobo/RasPike/sdk/workspace $ git remote add origin https://github.com/wataniguchi/EV3RT.git
-
リモートリポジトリのブランチ最新状況を反映する。
pi@peach:~/etrobo/RasPike/sdk/workspace $ git fetch --all
-
.gitignoreをリモートリボジトリから反映させたいので、予めローカルの.gitignoreを削除しておく。
pi@peach:~/etrobo/RasPike/sdk/workspace $ rm .gitignore
-
チームリボジトリ未取得の状態
pi@peach:~/etrobo/RasPike/sdk/workspace $ ls -a . .. .git Makefile sample_c5
-
リモートリポジトリのmasterブランチの情報および更新を取得する。
pi@peach:~/etrobo/RasPike/sdk/workspace $ git pull origin master
-
チームリボジトリ取得後の状態
pi@peach:~/etrobo/RasPike/sdk/workspace $ ls -a . 2023base_pri .git msad2022_ent test-sensor .. aflac2019 .gitignore msad2022_pri test-thread 2021base aflac2020 loganalysis sample_c5 test-thread2 2022base_ent ev3way-cpp Makefile sample_cpp5 2022base_pri EV3way_EV3RT ms2021 test-opencv
OpenCVライブラリを使うPythonサンプルプログラムを動かす
-
OpenCVサンプルフォルダへ移動する。
pi@peach:~ $ cd ~/etrobo/RasPike/sdk/workspace/test-opencv
-
サンプルプログラム"testTraceCam01"を実行する。
pi@peach:~/etrobo/RasPike/sdk/workspace/test-opencv $ python testTraceCam01.py
-
サンプルプログラムは無限ループ構造になっている。実行を終了するには、画像またはトラックバーのウィンドウがアクティブの状態でキーボードから"q"または"Q"を入力するか、ターミナルでctrl-Cを入力する。
-
サンプルプログラムの目的は、以下のとおり:
-
testTraceCam012値化に使うHSVの閾値をトラックバーで変化させながらラインの色変化や環境光の変化に強い閾値を見出すこと。
-
testTraceCam02ラインのエッジの検出と追跡目標の設定プロトタイピング。丸点は検知中のラインの重心。垂線は追跡目標としたエッジの重心。
-
testTraceCam03より実用的なエッジ追跡コード。青四角がROI(Region Of Interest)、黄緑がROI内のライン、赤点が追跡目標。2値化にはHSVではなくグレイスケールを使っている。
-
OpenCVライブラリを使うC++サンプルプログラムを動かす
-
OpenCVサンプルフォルダへ移動する。
pi@peach:~ $ cd ~/etrobo/RasPike/sdk/workspace/test-opencv
-
サンプルプログラム"testTraceCam01"をコンパイル&リンクする。
pi@peach:~/etrobo/RasPike/sdk/workspace/test-opencv $ g++ testTraceCam01.cpp -std=gnu++14 `pkg-config --cflags --libs opencv4` -I../2023base_pri -o testTraceCam01
-
サンプルプログラム"testTraceCam01"を実行する。
pi@peach:~/etrobo/RasPike/sdk/workspace/test-opencv $ ./testTraceCam01
-
C++のサンプルプログラムは、Pythonと同一のロジックを表現している。
TOPPERS/ASP3ユーザプログラムからLinuxスレッドを生成するサンプルプログラムを動かす
-
workspaceフォルダへ移動する。
pi@peach:~ $ cd ~/etrobo/RasPike/sdk/workspace/
-
サンプルプログラム"test-thread"をコンパイル&リンクする。
pi@peach:~/etrobo/RasPike/sdk/workspace $ make img=test-thread
-
コンパイル&リンクしたプログラムを"make start"コマンドにより実行する。
pi@peach:~/etrobo/RasPike/sdk/workspace $ make start sudo env LD_PRELOAD=../common/setjmp/libssetjmp.so ./asp -d ../common/device_config.txt vdev initializer called initialize vdev DEVICE_CONFIG_VDEV_COM = SERIAL VDEV_SERIAL_DEV_NAME not found. Use default device name VDEV serial name=/dev/ttyAMA1 Serial Opened fd=3 DEVICE_CONFIG_VDEV_PROTOCOL = RASPIKE DEVICE_CONFIG_RESET_AREA_OFFSET=36 DEVICE_CONFIG_RESET_AREA_SIZE=20 TOPPERS/ASP3 Kernel Release 3.2.0 for RasPi (May 14 2023, 12:14:42) Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory Toyohashi Univ. of Technology, JAPAN Copyright (C) 2004-2017 by Embedded and Real-Time Systems Laboratory Graduate School of Information Science, Nagoya Univ., JAPAN brick_dri initialized. _____ ______ ___ ______ / __/ | / /_ // _ \/_ __/ / _/ | |/ //_ </ , _/ / / /___/ |___/____/_/|_| /_/ ====================>Beta 7<= Powered by TOPPERS/ASP3 RTOS of Hakoniwa Initialization is completed.. System logging task is started. vdev initializer called creating thread(s)... finished creating thread(s)! joining thread(s)... 35::8:9:28:14:22:16:29:1:6:12:15:13:30:2:23:420::25:11:7:17:27:10:26:19:24:21:18: exiting...
-
TOPPERS/ASP3を終了するにはターミナルでctrl-Cを入力する。