ROS2本体および必要なパッケージのインストール手順とコンパイル方法について簡単に説明します。

ROS2のバージョン

ROSはバージョンによって対応しているOSが異なっています。
Dashing Diademata (May 31st, 2019 – May 2021) Ubuntu 18.04 (Bionic)
Eloquent Elusor (November 22nd, 2019 – November 2020) Ubuntu 18.04 (Bionic)
Foxy Fitzroy (June 5th, 2020 – May 2023) Ubuntu 20.04 (Focal)
Galactic Geochelone (May 23rd, 2021 – November 2022) Ubuntu 20.04 (Focal)
Humble Hawksbill (May 23rd, 2022 – May 2027) Ubuntu 22.04 (Jammy)
Iron Irwini (May 23rd, 2023 – November 2024) Ubuntu 22.04 (Jammy)
https://docs.ros.org/en/foxy/
https://docs.ros.org/en/humble/
https://docs.ros.org/en/iron/
https://ubuntu.com/

ROS2のインストール手順

ここでは、Ubuntu Jammy(22.04)に、Humble Hawksbill をインストールする。
ubuntu 22.04の英語版を使用する。
ROS2のインストール手順はこちらの公式ページ通り。
https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html フル版をインストール
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
注意)ros2のインストールエラーがでるときは、ubuntu22.04.x の最下位のバージョンxが、少し前のものを使う。
rosdep のインストール
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
プログラムのコンパイルに必要なcolconのインストール
sudo apt install python3-colcon-common-extensions
コマンド補完ができると便利なのでpython3-argcompleteのインストール
sudo apt install python3-argcomplete
以下をubuntuのターミナルの設定ファイル.bashrcに追加する。()内のコメントは説明のためで、実際は不要。(パスはプロジェクトに合わせて修正する、例、ワークスペース名 hajimecart_ws)
source /opt/ros/humble/setup.bash (ROS2の設定)
source /usr/share/gazebo/setup.sh (GAZEBOの設定)
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash(colconの設定)
source ${HOME}/hajimecart_ws/install/setup.bash (ワークスペースの設定)
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:${HOME}/hajimecart_ws/src/hajimecart_gazebo/models (ワークスペース内のGAZEBOの設定)
export GAZEBO_RESOURCE_PATH=$GAZEBO_RESOURCE_PATH:${HOME}/hajimecart_ws/src/hajimecart_gazebo/worlds (ワークスペース内のGAZEBOの設定)
export ROS_DOMAIN_ID=0 (同じ値にしておくと、ネットワーク上でROS2がつながる)
ワークスペースの作成と、ソースディレクトリの作成を行う。(例、ワークスペース名 hajimecart_ws)
mkdir –p hajimecart_ws/src
作成するファイル(パッケージ)はsrc以下に置く。
cd ~/hajimecart_ws
コンパイルに必要なパッケージを自動でインストールする(すでにファイルを作成済みのとき)。
cd ~/hajimecart_ws
rosdep install --from-paths src --ignore-src
手動でパッケージをインストールする。
sudo apt install ros-humble-teleop-twist-keyboard
コンパイル 自分のワークスペースに移動
cd ~/hajimecart_ws
colcon build --symlink-install (シンボリックリンク用のオプション)
コンパイル後に環境設定
source ~/hajimecart_ws/install/setup.bash
USBデバイスの権限を変更(USB接続後にttyUSB0が現れる)
sudo chmod 666 /dev/ttyUSB0
ユーザー(例sakamoto)をdialoutグループに加えます。
sudo usermod -a -G dialout sakamoto
SSHサーバーのインストール(他のPCとsshで接続するときに必要)
sudo apt install openssh-server
PCで複数のUSBを使い分けるときは、USBの種類ごとに別名をつける。例えば、USBシリアル変換器の/dev/ttyUSB0を/dev/usbserialにする。
bash create_udev_rules.sh
create_udev_rules.sh
#!/bin/bash
sudo cp 99-serial.rules  /etc/udev/rules.d
sudo service udev reload
sudo service udev restart
99-serial.rules
KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666", SYMLINK+="usbserial"
(例)同様にLiDARのUSBに別名をつける。
bash create_udev_rules.sh