RasPike‐ROS環境構築1 - Hiyama1026/raspike-ros GitHub Wiki

Raspberry Pi用OSのインストールとROS 2のインストール


A:Ubuntu22.04LTSを使用する場合

  1. Ubuntu22.04のイメージファイルを入手し,RaspberryPI OS Imager等を使用してSDカードに焼く

  2. ROS 2公式サイト,もしくは付録の「Ubuntu PCにROS 2 Humbleをインストールする方法」に従い,ROS 2 Humbleをインストール

  3. GPIOの接続を有効にする

    • これは下記ETロボコンの環境構築方法と同様に32番,33番ピンを使用する方法である

    • 下記のコマンドで設定ファイルを開く

      sudo nano /boot/firmware/config.txt
      
    • config.txtの最後に下記を追加

      enable_uart=6
      dtoverlay=uart5
      
    • リブートする

      sudo reboot
      
  4. ROS 2ワークスペースの作成とパッケージのビルド

    • ROS 2用のワークスペースを作成する

      mkdir ros2_ws
      cd ros2_ws
      mkdir src
      
    • ROS 2パッケージをワークスペースに置く

      • ros2_ws/srcに以下のファイルを置く
        • raspike_uros_msg
        • ros2_raspike_rt (ROS2 APIを直接扱って開発を行う場合は不要)
        • linetrace_sample(サンプルのためどちらでも良い)
    • ROS 2パッケージをビルドする

      colcon build
      . install/setup.bash
      
  5. Cパッケージのビルド時にエラーになる場合の解決方法

    • Cパッケージ(raspike_uros_msg)のビルドでエラーになる事がある
    • その場合は/opt/ros/humble/optにあるlibcurl_vendorフォルダを削除する
      cd /opt/ros/humble/opt
      sudo rm -rf libcurl_vendor
      cd ~/ros2_ws
      colcon build
      

B:Raspberry Pi OSを使用する場合

  1. Raspberry Pi OS (64bit)をインストール

    • インストラーをインストール
    • インストラーでRaspberry Pi OS(64bit)のイメージをSDに作成
      • ROSを動かすために64bit版を使用する
      • 2023-05-03リリース版を使用する事を推奨(動作確認済み)
        • ここの2023-05-03-raspios-bullseye-arm64.img.xzなど
  2. GPIOの接続を有効にする

    • これは下記ETロボコンの環境構築方法と同様に32番,33番ピンを使用する方法である

    • 下記のコマンドで設定ファイルを開く

      sudo nano /boot/config.txt
      
    • config.txtの最後に下記を追加

      enable_uart=6
      dtoverlay=uart5
      
    • リブートする

      sudo reboot
      
    • シリアル通信のケーブルをRaspberry Piに接続する

  3. ROS 2のインストール

    • アップデート

      sudo apt update
      sudo apt -y upgrade 
      
    • ROS 2パッケージをインストールする

      wget https://s3.ap-northeast-1.wasabisys.com/download-raw/dpkg/ros2-desktop/debian/bullseye/ros-humble-desktop-0.3.1_arm64.deb
      sudo apt install -y ./ros-humble-desktop-0.3.1_arm64.deb
      source /opt/ros/humble/setup.bash
      
    • ビルドツールのインストール

      sudo pip install vcstool colcon-common-extensions
      
    • ROS環境の自動読み込み設定

      echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
      source ~/.bashrc
      
    • 動作確認

      ros2 launch demo_nodes_cpp talker_listener.launch.py
      
      • 下記のように出力されれば成功
      [INFO] [launch]: All log files can be found below /home/hiyama/.ros/log/2023-07-04-14-52-42-067659-raspi-1582
      [INFO] [launch]: Default logging verbosity is set to INFO
      [INFO] [talker-1]: process started with pid [1583]
      [INFO] [listener-2]: process started with pid [1585]
      [talker-1] [INFO] [1688449964.564641073] [talker]: Publishing: 'Hello World: 1'
      [listener-2] [INFO] [1688449964.565626925] [listener]: I heard: [Hello World: 1]
      [talker-1] [INFO] [1688449965.564647258] [talker]: Publishing: 'Hello World: 2'
      [listener-2] [INFO] [1688449965.565234628] [listener]: I heard: [Hello World: 2]
      ...
      
    • ROS 2用のワークスペースを作成する

      mkdir ros2_ws
      cd ros2_ws
      mkdir src
      
    • ROS 2パッケージをワークスペースに置く

      • ros2_ws/srcに以下のファイルを置く
        • raspike_uros_msg
        • ros2_raspike_rt (ROS2 APIを直接扱って開発を行う場合は不要)
        • linetrace_sample(サンプルのためどちらでも良い)
    • ROS 2パッケージをビルドする

      colcon build
      . install/setup.bash
      
  4. Cパッケージのビルド時にエラーになる場合の解決方法

    • Cパッケージ(raspike_uros_msg)のビルドでエラーになる事がある
    • その場合は/opt/ros/humble/optにあるlibcurl_vendorフォルダを削除する
      cd /opt/ros/humble/opt
      sudo rm -rf libcurl_vendor
      cd ~/ros2_ws
      colcon build