私は高専でROSの講習を昨年から行っています。それぞれ学生はRaspi4とSDカード、あとはカメラなどの講習に必要なものを渡されます。
さすがにコミュニティやバージョンの節目という状況でROS1の講習を継続は無理があると思っているので、今年度はROS2で講習を行う予定です。
昨年度はRaspberry Pi4にUbuntu20.04LTS-Serverを無理やりデスクトップ化させてそこにROS1-Noeticを入れていました。そもそもRaspberryPi-ImagerからDesktop版がインストールできなかったからです。
Ubuntu21.04はデスクトップに対応していたので、なんでーーと思いながら配布用イメージを自作していたのですが、今年リリースの22.04からその状況が改善しそうです。
なんと、Ubuntu-Desktopが対応しています。(ただし64bitでRaspi4のみです)
まだHumbleも出ていないのに今からお試し!は気が早い気もしますが、さらに使いやすくなっているUbuntu22.04の恩恵を受けるためにもRollingインストールを行ってみました。
環境
- Raspberry Pi4 (4GB)
- SDカード(TOSHIBAの速い方)
- OS: Ubuntu22.04LTS
- ROS2: ROS2-Rolling
環境構築
Raspberry Pi上にUbuntu22のインストール
以前からインストール方法はほとんど変わっていません。Imagerを用いてUbuntu22.04-Desktopを焼き、以下の記事の「パッケージの更新」まで同様の手順で行ってください。
Ubuntu22.04ではデスクトップ画面の何もないところで右クリック→Settingができません(項目自体が消えています)
Ubuntuはデフォルトでは5分で画面がロックされます。Settings->Power->Screen black
をNever
にしておきましょう。
ROS-Rollingのインストール
ROS-Rollingは最新のUbuntu-LTSで動作する常に最新のROSの機能を試せるバージョンです。これからリリースされるHumbleもRollingから枝分かれしているので、Rollingの挙動がHumbleの挙動に直結します。
ROS2-Rolling (Ubuntu22)のインストール手順は以下から
sudo apt update && sudo apt install curl gnupg lsb-release -y sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null sudo apt update sudo apt install ros-rolling-desktop
動作確認
source /opt/ros/rolling/setup.bash ros2 launch demo_nodes_cpp talker_listener.launch.py
その他画像など
Ubuntu22.04はクラゲがデスクトップ画面になっています。Ubuntu20.04よりもさらに高機能になっています(Ubuntu20.04のときも高機能!と喜んでいたころが懐かしい)
Ubuntu22ではPython3.10が採用されています。最近までPython3.7とかだった気がするけど…?
スクショ機能が大幅アップグレードしており、PrintScreenボタン一つで録画もできるようになっています。Windowsに追いついています。
Ubuntu22、スクリーンショット機能がWindows11に追いついてる📷
— Ar-Ray (@Ray255Ar) 2022年5月8日
(もしかしたら超えてるかもしれない) pic.twitter.com/P5NGgXeRdR
Rvizは結構重いです。Ubuntu20にlightdm入れていた頃のほうがまだマシかも…
TurtleSim。問題なく動作しました。
YOLOX-ROSについては、そもそもほとんどのPyPIパッケージがPython3.9までの対応のため動きません。そのうちonnxruntimeやtflite-runtimeが対応するようになれば動くと思います。
結論
初学者がUbuntu22.04+ROS2に手を出すには少し早すぎるかも!
Dockerを使わないのであれば、夏頃までは待ったほうが良さそうです。