チームリポジトリ取得と動作確認(2024年度版) - wataniguchi/EV3RT GitHub Wiki

  1. 当Wikiの「ラズパイ環境構築」の手順の最終部に従い、ラズパイにX11 forwarding付きでsshする。
    なお、X11 forwardingなしで当手順を実行すると、サンプルプログラム実行の段階でX11サーバへの接続が拒否されたという内容のエラーが発生する。この場合はsshし直してサンプルプログラムを実行する。エラーが発生しなかった事項についてはやり直しの必要はない。
    pi@peach:~/etrobo/test-opencv $ pypy3 testTraceCam01.py
    Unable to init server: Could not connect: Connection refused
    Traceback (most recent call last):
      File "/home/pi/etrobo/test-opencv/testTraceCam01.py", line 19, in <module>
        cv2.namedWindow("testTrace1")
    cv2.error: OpenCV(4.6.0) /home/pi/Library/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チームリポジトリを取得する

  1. 作業用フォルダをホームディレクトリに作成する。
    pi@peach:~ $ cd ~
    pi@peach:~ $ mkdir etrobo

  2. 作業用フォルダでGitローカルリポジトリを初期化する。
    pi@peach:~ $ cd etrobo
    pi@peach:~/etrobo $ git init

  3. リモートリポジトリを設定する。
    pi@peach:~/etrobo $ git remote add origin https://github.com/wataniguchi/EV3RT.git

  4. リモートリポジトリのブランチ最新状況を反映する。
    pi@peach:~/etrobo $ git fetch --all

  5. .gitignoreをリモートリボジトリから反映させたいので、予めローカルの.gitignoreを削除しておく。
    pi@peach:~/etrobo $ rm .gitignore

  6. チームリボジトリ未取得の状態

    pi@peach:~/etrobo $ ls -a
    .  ..  .git
    
  7. リモートリポジトリのmasterブランチの情報および更新を取得する。
    pi@peach:~/etrobo $ git pull origin master

  8. チームリボジトリ取得後の状態

    pi@peach:~/etrobo $ ls -a
    .             2023base_pri  .gitignore    msad2023_pri      test-thread
    ..            aflac2019     loganalysis   sample_cpp5       test-thread2
    2021base      aflac2020     ms2021        test-asyncio
    2022base_ent  ev3way-cpp    msad2022_ent  test-opencv
    2022base_pri  EV3way_EV3RT  msad2022_pri  test-opencv-cam3
    2023base_ent  .git          msad2023_ent  test-sensor
    

OpenCVライブラリを使うPythonサンプルプログラムを動かす

(2024/6/10追加) これらのサンプルプログラムは新しいPicamera2ライブラリを使用してラズパイカメラにアクセスしている。ただし、コマンドライン引数として「--legacy」を指定することにより(例:$ pypy3 testTraceCam01.py --legacy)従来のレガシーカメラインターフェースでも動作する。
注意:新しいカメラインターフェースと従来のレガシーインターフェースは排他であり、raspi-configコマンドで設定を行いOSブートにより反映させる必要がある。当チームが利用しているRaspberry Pi OS Bullseyeはレガシーカメラインターフェースをサポートする最後のバージョンであり、Bookwormでは既にレガシーインターフェースは廃止されている。

  1. OpenCVサンプルフォルダへ移動する。
    pi@peach:~ $ cd ~/etrobo/test-opencv

  2. サンプルプログラム"testTraceCam01"を実行する。
    pi@peach:~/etrobo/test-opencv $ pypy3 testTraceCam01.py

  3. サンプルプログラムは無限ループ構造になっている。実行を終了するには、画像またはトラックバーのウィンドウがアクティブの状態でキーボードから"q"または"Q"を入力するか、ターミナルでctrl-Cを入力する。

  4. サンプルプログラムの目的は、以下のとおり:

    1. testTraceCam01.py
      2値化に使うHSVの閾値をトラックバーで変化させながらラインの色変化や環境光の変化に強い閾値を見出すこと。
      スクリーンショット 2023-05-14 11 36 14

    2. testTraceCam02.py
      ラインのエッジの検出と追跡目標の設定プロトタイピング。丸点は検知中のラインの重心。垂線は追跡目標としたエッジの重心。
      スクリーンショット 2023-05-14 11 44 13

    3. testTraceCam03.py
      より実用的なエッジ追跡コード。青四角がROI(Region Of Interest)、黄緑がROI内のライン、赤点が追跡目標。
      2値化にはHSVではなくグレイスケールを使っている。
      スクリーンショット 2023-05-14 11 45 01

    4. testLocateTreasure01.py
      マスクの適用により最も面積の大きな赤色領域を識別すること。BGRの下限および上限閾値をトラックバーで変化させながら最適点を見つける。
      スクリーンショット 2024-06-30 14 45 28

    5. testLocateDecoy01.py
      マスクの適用により1番目と2番目に面積の大きな青色領域を識別すること。BGRの下限および上限閾値をトラックバーで変化させながら最適点を見つける。
      スクリーンショット 2024-06-30 14 46 05

    6. testIdentLine03.py
      サークル直上に配置された赤色・青色オブジェクトを識別するためのより実用的なコード。走行体が追跡してあるであろう仮想線上の赤色・青色領域のみを選択している他、ドーナツ形の領域を除外したり縦横比の制約を設けることでより正確にオブジェクトを識別しようとしている。
      スクリーンショット 2024-06-30 14 44 19

⚠️ **GitHub.com Fallback** ⚠️