ros2‐AIdriver環境構築4 - Hiyama1026/raspike-ros GitHub Wiki

Raspberry Pi側の環境構築

  • ホストPCと言及が無い限り,Raspberry Pi上で作業する

リモート接続環境を構築

  • ssh環境を構築

    sudo apt update
    sudo apt upgrade
    sudo apt install openssh-server
  • VNCサーバのインストール

    • view-onlyパスワードは n(不要)
    sudo apt install tigervnc-standalone-server
    vncpasswd   # パスワードの設定
  • ウィンドウシステム(xfce4)のインストール

    sudo apt install -y xfce4 xscreensaver
  • ~/.vnc/xstartupの編集

    • ~/.vncにxstartupが無い場合は作成する($ touch ~/.vnc/xstartup)
    • xstartupに下記を記述
      #!/bin/sh
      # Start up the standard system desktop
      unset SESSION_MANAGER
      unset DBUS_SESSION_BUS_ADDRESS
      /usr/bin/startxfce4
      [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
      [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
      x-window-manager &
    • 実行権限を付与
      chmod +x xstartup
  • Ubuntuのsettingsを起動し,Sharing->Remote Desktopを開く (HDMI等でRaspberry Piのディスプレイを表示して行う)

    • Remote Desktop 、Enable Legacy VNC Protocol 、Remote ControlをすべてON
  • HDMIを抜いてRaspberry Piをリブートする

  • ホストPC上でRealVNCをダウンロード

  • ホストPCからRaspberry PiにSSH接続

  • 下記を実行してVNCサーバを立ち上げる

    tigervncserver -kill :2; tigervncserver -geometry 800x600 -localhost no :2
  • ディスプレイのポート番号を確認する

    • 下記はポート番号が5902である例
    $ tigervncserver -kill :2; tigervncserver -geometry 1000x800 -localhost no :2
    Killing Xtigervnc process ID 3625... success!                               # 初回の場合はkillに失敗してよい
    New Xtigervnc server 'HOST-NAME:2 (U-NAME)' on port 5902 for display :2.    # 5902がポート番号!!
    Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/U-NAME/.vnc/passwd hailo1:2 to connect to the VNC server.
  • ホストからRealVNCでRaspberry Piに接続

    • RealVNCの画面上部の検索欄に<IPアドレス>::<port番号>を入力
    • 例) Raspberry PiのIPが192.168.11.100,ポート番号が5902の場合:192.168.11.100::5902を入力してEnter
  • スクリーンセーバの無効化 (推奨)

    • ホストPCからVNCでRaspberry PiのGUI(xfce4)を表示する
    • Application FinderからSettingsを選択する
    • Settingsの中からScreensaver(Set your screensaver ...)を起動する
      • Enable ScreensaverとEnable Lock Screenをオフにする
    • Settingsの中からScreensaver(Change screensaver ...)を起動する
      • Display ModesのModel:をDisable Screen Serverに

Raspberry Pi側各種設定

  • カメラ設定
    • /boot/firmware/config.txtの末尾に以下を追加
      [pi4]に以下を追加
      start_x=1
      gpu_mem=128
    • /boot/firmware/config.txtのcamera_auto_detectを1から0に書き換える
      camera_auto_detect=0
    • 現状のユーザーからカメラをアクセスできるようにアクセス権を付与
      sudo usermod -a -G video $USER
  • リブート

Python環境の構築

  • pipのインストール

    sudo apt install python3-pip
  • 仮想環境のインストール

    sudo apt install python3.10-venv
    python3 -m venv --system-site-packages ~/venv
    source ~/venv/bin/activate
  • 仮想環境下にライブラリをインストール

    pip install --upgrade pip
    pip install h5py==3.10
    pip install tensorflow==2.14
    pip install tensorflow_io
    pip install tflite-runtime
    pip install opencv-python==4.9.0.80
  • .bashrcに以下を追加

    source ~/venv/bin/activate
  • PYTHONPATHにpython3.1系のパスを通す

    • .bashrcに下記を追加
      export PYTHONPATH=$PYTHONPATH:/home/U-NAME/venv/lib/python3.10/site-packages
    • 以下を実行
      source ~/.bashrc
  • numpyのダウングレード

    • $ pip show numpyでバージョン確認可能
      • numpyの1.〇〇にする必要がある(デフォルトは2.〇〇だった)
    • numpyの1.〇〇にする必要がある(デフォルトは2.〇〇だった)
      pip install numpy==1.24.3

DualShock4のペアリング

  • $ bluetoothctlを実行して以下の操作を行う
    $ bluetoothctl
    [bluetooth]# power on
    [bluetooth]# scan on
    
    <Dualshock4のSHAREを押しながらPSボタンを押下しランプが白く点滅したら放す>
    <Wireless ControllerのMACアドレスを探す>
    
    [bluetooth]# pair <MACアドレスを入力>
    [Wireless Controller]# trust <MACアドレスを入力>
    [Wireless Controller]# exit
    

自動走行アプリのビルド

  • ROS 2ワークスペースを作成

    mkdir ~/ros2_ws && cd ~/ros2_ws
    mkdir src
    colcon build
  • ファイルコピー

    • 以下のファイルを~/ros2_ws/srcにコピー
      • raspike_uros_msg (raspike-ros/raspike_uros_msg)
      • ros2_ai_driver (raspike-ros/ros2-AIdriver/ros2_ai_driver)
    • 以下のファイルを~/ros2_wsにコピー
      • use_model
  • VNC経由でプログラムをビルド

    cd ~/ros2_ws
    colcon build
    . install/setup.bash
    ```# Raspberry Pi側の環境構築 (環境構築4)
  • ホストがPCと言及が無い限り,Raspberry Pi上で作業する

リモート接続環境を構築

  • ssh環境を構築

    sudo apt update
    sudo apt upgrade
    sudo apt install openssh-server
  • VNCサーバのインストール

    sudo apt install tigervnc-standalone-server
    vncpasswd   # パスワードの設定
  • ウィンドウシステム(xfce4)のインストール

    sudo apt install -y xfce4 xscreensaver
  • ~/.vnc/xstartupの編集

    • ~/.vncにxstartupが無い場合は作成する($ touch ~/.vnc/xstartup)
    • xstartupに下記を記述
      #!/bin/sh
      # Start up the standard system desktop
      unset SESSION_MANAGER
      unset DBUS_SESSION_BUS_ADDRESS
      /usr/bin/startxfce4
      [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
      [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
      x-window-manager &
    • 実行権限を付与
      chmod +x xstartup
  • Ubuntuのsettingsを起動し,Sharing->Remote Desktopを開く (GUI)

    • Remote Desktop 、Enable Legacy VNC Protocol 、Remote ControlをすべてON
  • ホストPC上でRealVNCをダウンロード

  • ホストPCからRaspberry PiにSSH接続

    • 下記を実行
    vncserver -localhost no -geometry 800x600
  • RealVNCでホストからRaspberry Piに接続

  • スクリーンセーバの無効化 (推奨)

    • VNCでRaspberry PiのGUI(xfce4)を表示する
    • Application FinderからSettingsを選択する
    • Settingsの中からScreensaver(Set your screensaver ...)を起動する
      • Enable ScreensaverとEnable Lock Screenをオフにする
    • Settingsの中からScreensaver(Change screensaver ...)を起動する
      • Display ModesのModel:をDisable Screen Serverに

Raspberry Pi側各種設定

  • カメラ設定
    • /boot/firmware/config.txtの末尾に以下を追加
      [pi4]に以下を追加
      start_x=1
      gpu_mem=128
    • /boot/firmware/config.txtのcamera_auto_detectを1から0に書き換える
      camera_auto_detect=0
    • 現状のユーザーからカメラをアクセスできるようにアクセス権を付与
      sudo usermod -a -G video $USER
  • リブート

Python環境の構築

  • pipのインストール

    sudo apt install python3-pip
  • 仮想環境のインストール

    sudo apt install python3.10-venv
    python3 -m venv --system-site-packages ~/venv
    source ~/venv/bin/activate
  • 仮想環境下にライブラリをインストール

    pip install --upgrade pip
    pip install h5py==3.10
    pip install tensorflow==2.14
    pip install tensorflow_io
    pip install tflite-runtime
    pip install opencv-python==4.9.0.80
  • .bashrcに以下を追加

    source ~/venv/bin/activate
  • PYTHONPATHにpython3.1系のパスを通す

    • .bashrcに下記を追加
      export PYTHONPATH=$PYTHONPATH:/home/U-NAME/venv/lib/python3.10/site-packages
    • 以下を実行
      source ~/.bashrc
  • numpyのダウングレード

    • $ pip show numpyでバージョン確認可能
      • numpyの1.〇〇にする必要がある(デフォルトは2.〇〇だった)
    • numpyの1.〇〇にする必要がある(デフォルトは2.〇〇だった)
      pip install numpy==1.24.3

DualShock4のペアリング

  • $ bluetoothctlを実行して以下の操作を行う
    $ bluetoothctl
    [bluetooth]# power on
    [bluetooth]# scan on
    
    <Dualshock4のSHAREを押しながらPSボタンを押下しランプが白く点滅したら放す>
    <Wireless ControllerのMACアドレスを探す>
    
    [bluetooth]# pair <MACアドレスを入力>
    [Wireless Controller]# trust <MACアドレスを入力>
    [Wireless Controller]# exit
    

自動走行アプリのビルド

  • ROS 2ワークスペースを作成

    mkdir ~/ros2_ws && cd ~/ros2_ws
    mkdir src
    colcon build
  • ファイルコピー

    • 以下のファイルを~/ros2_ws/srcにコピー
      • raspike_uros_msg
      • ros2_ai_driver
    • 以下のファイルを~/ros2_wsにコピー
      • use_model
  • VNC経由でプログラムをビルド

    cd ~/ros2_ws
    colcon build
    . install/setup.bash
⚠️ **GitHub.com Fallback** ⚠️