# 日報(2023-05-23) RaspberryPi 3 で ROS2 humble をビルドする
# 結論
朝おきたら「あ、止まってる」の繰り返しで4日ぐらいかかりました ^^;;;
# ポイント
やった事は build from source (opens new window) そのままなので、ここではポイントだけ
# Ubuntu 22.04.02 を使う
最初、RaspberryPiOS でビルドしようとしたのですが Ubuntu Universe repository が必要になることに気が付き諦めました
ubuntu は server os を使ったのですが、後で気がついたのですがグラフィックツールつかったり亀を動かして遊んだりするので Desktop os のほうがよかったです
# SD カードは 32GB 必要
8GB の SD カードで始めたらソースを落とした時点で空きが 1GB しか残ってなくて、ビルドはじめたらすぐに空きがゼロになりました
ちなみに build に必要なツール類をインストールするのに半日かかってるので、32GB の SD カードでも半日かけてツールをインストールするのは大変なので、素直に 8GB のイメージを dd で吸い上げて、32GB に dd で書いて、その後 gperted なりで ext4 の領域を広げる手順のほうが楽です
その作業に昔作った BackupPi (opens new window) が大活躍してくれて楽チンだったので嬉しかったです
ビルド後のストレージの使用量は 21GB でした
# SWAP は 4GB 必要
SWAP File がないと RPi3 の 1GB の RAM だと途中で colcon build
が止まってしまいます
--executor sequential
を指定してても 2GB 使い切ってしまったので 4GB 必要なみたいです。逆に 4GB あったら並列ビルドでも問題ないのかは試してないのでよくわからないです
# 感想
ROS は 10年ぐらい前に一度、RPi でビルドしようとしてエラーが取れずに挫折したはずい過去があるのですが、今は colcon のおかげなのか随分楽になってるなと思いました
ビルドに 4日もかかっているのですが、別に4日つきっきりだったわけでもないですし、クロスコンパイルのツールチェイン用意するめんどくささと比べたらこれはこれでありかも
# 追伸
で、チュートリアル始めたら simple pub-sub みたいなシンプルなパッケージのビルドに 20分 もかかるので、あんま RPi3 での開発は現実的でないかも ^^; ちなみに Python だと 1分以内 でビルドが終わりましたが起動がマジ遅くて ^^;;;;
ROS 用に Ubunto 22.04 が動く DELL のラップトップ (opens new window) とか欲しい気がしてきました
もしどなたか上記リンクに該当のマシンを捨てる予定などございましたら、小型家電リサイクル券 (opens new window)買ってまで捨てるのはもったいない話なので私に連絡していただけたら喜んで貰いに伺いますのでよろしくお願いいたします次第です\(^o^)/
# 2023.05.27 追記
パッケージのビルドに 20分もかかってたのは他のビルドとかも動いてて過負荷だったからで、他のビルドがうごいてない状態でやりなおしたら5分ぐらいでビルドできてました
貧弱みたいなこといっちゃってごめんなさい RPi3 さん
# 2023.06.01 追記
すぐに ROS2 HUMBLE を使いたいので自分でビルドしたくない、ついては ビルド済の SDカードをください とおっしゃられる方がいらっしゃいました。気兼ねなくご利用していただけるようにと思い 通販 (opens new window) を始めましたので、ご利用いただければ幸いです
# 2023.06.06 追記
SD カードを焼いて通販するのも地味に大変で面倒くさいのでビルド済の Humble の tar ball (2.5GBもあります) を payhip (opens new window) にご用意しました SDカードイメージは圧縮済でも 7GB もあって payhip の 5GB制限を超えているので置くのムリでした
# 2023.06.09 追記
7GB もあって payhip の 5GB制限を超えて置くのムリだった SDカードイメージですが、xz で圧縮しなおしたら -9 なしでも 3.7GB (opens new window) に( -9 つけたらなんと 3.4GB (opens new window)!) と制限以下になったので、それもpayhip (opens new window)におきました
RPi2 や RPi3 で ROS2 Humble が使いたいけど自分でビルドはしたくないという諸兄諸姉のお役に立つことがございましたら望外の喜びです
それにしても xz 強力ですね