コンテンツにスキップ

Ubuntu22.04でのROS2Humble環境構築(pixiによる簡略版)

aptを最新の状態にする

sudo apt update
sudo apt upgrade

開発時に良く使うものをインストールするをaptでインストールする

sudo apt -y install curl gnupg lsb-release vim openssh-server net-tools git wget cmake

(オプション)クラッシュレポートを非表示にする

開発時にROS2関連のプログラムやツールを使用していると予期せぬプログラム終了が起こることが多々ある。その際にクラッシュレポートが毎回出るのが邪魔になることがあるため、非表示オプションを記載する。

sudo sed -i 's/enabled=1/enabled=0/' /etc/default/apport

pixiのインストール

curl -fsSL https://pixi.sh/install.sh | bash
インストール後にターミナルを1度閉じて開き直してから次に進んでください。ターミナルを開き直すことで設定が読み込まれます。

pixiプロジェクトの作成

ホームディレクトリ(~/)で下記を実行し、pixi_ros2プロジェクトを作成する

cd ~/
pixi init pixi_ros2 -c robostack-staging -c conda-forge
プロジェクトを作成すると、プロジェクト名のディレクトリが作成され、pixi.tomlファイルが作成される。catコマンドで中身を確認する。
cd pixi_ros2 && cat pixi.toml
以下が出力される。
[project]
channels = ["robostack-staging", "conda-forge"]
description = "Add a short description here"
name = "pixi_ros2"
platforms = ["linux-64"]
version = "0.1.0"

[tasks]

[dependencies]

ROS2環境用にpixi.tomlファイルを編集します。[dependencies]以下を下記のように変更します。[activation.env]も忘れずに追加してください。[project][tasks]は変更する必要はありません。
テキストエディタは何を用いても良いですが、ここでは最初から入っているnanoを用いる方法を記載します。
ターミナルを開き、下記コマンドを入力し、pixi.tomlを編集します。
編集後、controlキー(CTRL)+oを押し、Enterキーで保存ができます。nanoを閉じるにはcontrolキー(CTRL)+xを入力します。

cd ~/pixi_ros2
nano pixi.toml

[project]
channels = ["robostack-staging", "conda-forge"]
description = "Add a short description here"
name = "pixi_ros2"
platforms = ["linux-64"]
version = "0.1.0"

[tasks]

[dependencies]
ros-humble-desktop = ">=0.10.0,<0.11"
ros-humble-turtlesim = ">=1.4.2,<2"
colcon-common-extensions = ">=0.3.0,<0.4"
setuptools = ">=75.6.0,<76"
ros-humble-ament-cmake-auto = ">=1.3.7,<2"
compilers = ">=1.8.0,<2"
pkg-config = ">=0.29.2,<0.30"
cmake = ">=3.28.3,<4"
ninja = ">=1.12.1,<2"
ros-humble-turtlebot3-gazebo = ">=2.2.5,<3"
ros-humble-nav2-bringup = ">=1.1.13,<2"
protobuf = "4.25.1.*"
glog = "==0.6.0"

[activation.env]
ROS_DOMAIN_ID = "2"
TURTLEBOT3_MODEL = "waffle"
GAZEBO_MODEL_PATH = "$GAZEBO_MODEL_PATH:$PIXI_PROJECT_ROOT/.pixi/envs/default/share/turtlebot3_gazebo/models"
上記の[dependencies]は以下のインストールコマンドでも追加できますが、[activation.env]はエディタで追加する必要があります。
cd ~/pixi_ros2
pixi add ros-humble-desktop ros-humble-turtlesim colcon-common-extensions setuptools ros-humble-ament-cmake-auto compilers pkg-config cmake ninja ros-humble-turtlebot3-gazebo ros-humble-nav2-bringup "protobuf=4.25.1" glog==0.6.0

動作確認

cd ~/pixi_ros2
pixi shell
初回起動時(それ以降は[dependencies]に差分がある時)にインストールが開始されます。
経験上、複数の[dependencies]を一括インストールした場合、途中で失敗するケースがあります。
その際は、もう一度pixi shellコマンドを入力してください。失敗した途中の場所からインストールが再開されます。
インストールが完了すると、ターミナルの先頭に(pixi_ros2)が表示されます。
ターミナルの先頭に(pixi_ros2)が表示されている状態は、pixiの仮想環境に入っていることを表しています。
pixiで環境構築を行なった場合には、コマンド入力前にターミナルの先頭に(pixi_ros2)が表示されている状態か確認して、コマンドを実行してください。

pixi環境でのROS2動作確認

ROS2のチュートリアルでよく使われるturtlesimノードを起動して動作確認を行います。

cd ~/pixi_ros2
pixi shell
ros2 run turtlesim turtlesim_node

上記コマンドを実行し下記のような青いウインドウが出てくれば成功です。ただし、初回起動時は、表示されるまで1分ほど時間がかかりますので、気長にお待ちください。

turtlesim_node.png

表示されたら、上記のターミナルは残したまま、新しいターミナルを開き下記コマンドを実行します。

cd ~/pixi_ros2
pixi shell
ros2 run turtlesim turtlesim_node

コマンドを入力し以下のように出れば成功です。

cmd_turtle_teleop_key2.png

キーボード入力は、実行中のターミナルが選択されている状態で、
矢印キー(↑↓→←)で入力し、↑↓キーで前後に進み、→←でその場で回転します。
Qキーを押すことでノードが終了します。
また、起動後ターミナル上に記載されている通り、G|B|V|C|D|E|R|Tキーを押すことで、Fキーを中心とした角度方向に亀が回転します。
回転中にFキーを押すことで途中でキャンセルができます。

キーボード入力を行うと以下のように亀が動き、軌跡が描画されます。

turtlesim_node2.png

プログラムを終了する場合には、controlキー(CTRL)+cを押すと停止します。
pixi環境から抜けるには、controlキー(CTRL)+dを用います。

本資料では、その他のGUIとしてrviz2gazeboを用います。こちらも初回起動に時間がかかるため、動作確認として表示してみましょう。
下記の画像のようなウインドウが開かない場合には、controlキー(CTRL)+cを押してプログラムを停止し、再度コマンドを実行してください。

cd ~/pixi_ros2
pixi shell
rviz2

rviz.png

cd ~/pixi_ros2
pixi shell
gazebo
gazebo.png

以上のように表示できれば環境構築完了です。
動作確認したコマンドやプログラム、ツールの詳細なチュートリアルは、補足資料にまとめています。
講習では時間の都合上全てを説明できないため、SLAMに関連する項目のみ取り扱いますのでご了承ください。

開発を便利にする機能やショートカットキー

開発を便利にする機能やショートカットキーついて紹介します。

標準ターミナル操作関連ショートカットキー

ROS2の開発では、ターミナルを大量に開きます。マウス操作は非常に時間がかかるため、キーボードショートカットを覚えましょう。

  • controlキー(CTRL)+Altキー+t: 新しいウインドウでターミナルを開きます
  • controlキー(CTRL)+Shift+t: 新しいタブでターミナルを開きます(画面上のスペースを取らないので便利です)
  • controlキー(CTRL)+d : ターミナルウインドウを閉じたり、仮想環境ターミナルを抜けることが可能です。終了コマンドであるexitと同様の機能があります。
  • controlキー(CTRL)+c : コピー&ペーストのコピーのショートカットキーとして有名ですが、ターミナル上で実行することでプログラムを停止できます。
  • 矢印キー(上下): 前回入力したコマンドを再入力してくれます。
  • controlキー(CTRL)+Shift+c: ターミナル上でのコピーキーです。
  • controlキー(CTRL)+Shift+v: ターミナル上でのペーストキーです。

標準ターミナルよりも便利なターミナルアプリはたくさんあります。ネット上に色々紹介されているので自分に合ったものを探してみてください。

ウインドウ画面配置の操作

キーボードにWindowsキーがある場合、矢印キー(左右)と組み合わせることで、画面配置を変更することができます。
下記のようにGazeboとRvizを同時に見たい場合などは非常に便利です。

gazebo_rviz.png

visual studio codeのインストール

便利なコードエディタの紹介です。
下記ページ(ブラウザで「vscode」と検索でもよい)から.debファイルをダウンロードし保存する。その後ソフトウェアのインストールから実行しインストールする
visual studio codeのインストール

sudo dpkg -i debファイル名

使い方は、ターミナルで開きたいフォルダまでcdコマンドで移動し、下記コマンドでフォルダごと開くことが可能です。

code .