ロボコンにおけるWSL2での開発

この記事は、学ロボAdvent Calendar 2024の12日目の記事です。

学ロボ Advent Calendar 2024 - Adventar

 

ladaです。昨年のアドカレで仮想環境の話をしていました。

lada.hatenablog.jp

あれから1年経って、結局Windows+WSL2の構成が一番手軽ではないかと考えたのでそれについて書きたいと思います。もう1年経つんですね……。

自分の環境

ホストOS:Windows 11 Home edition

CPU:AMD Ryzen 7 5825U with Radeon Graphics 2.00 GHz

RAM:16GB

ゲストOS:Ubuntu 22.04

STM32ユーザ向けおすすめ構成

CubeIDE:Windows

ROS 2:Ubuntu

WSL2の利点

よくある仮想環境と違ってPCのスペックをフルに使えるので軽いです。VMWareでCubeIDEを動かしたけど重すぎてキレてた頃を思い出します。

あと最近外部との通信もできるようになったみたいですね(大変そうだけど)。

WSL2の欠点

WSL上のUbuntuだけで完結しないこと(外部デバイスの利用や通信)が、可能ではあるもののとかく面倒です。マイコンなどの適当なUSBデバイスを使うのも後述する手間がかかるのに、カメラとかUSB-CANともなるとカーネルのビルドをしないと使えないみたいですね。

また、一部GUIの描画ができず使えない場合があります。自分はCubeIDEとDynamixel Wizardで起こりました。ライブラリ入れまくればどうにかなるのかもしれませんが、諦めてWindowsに入れることで解決(?)しています。Ubuntuへの繋ぎ変えも慣れれば大した手間ではないです。ちなみにROS 2関連はほぼ大丈夫。

実際どうするの?

WSL使えるようにしてUbuntuぶち込んだら、よくやるみたいにROS 2を導入しましょう。

普通のUSBデバイス(マイコンなど)ならこのページの通りにすれば使えます。

learn.microsoft.com

自分がSTM32を使う場合は、

  1. Windows上に入れたCubeIDEで書き込み
  2. 上のページの通りにUbuntuに繋ぎ替え
  3. Ubuntu上のROS 2で走らせたmicro-rosエージェントで使う

というふうにしています。

カメラとかは調べたらいろいろ出てくるのでその通りにすればいいんじゃないでしょうか(やってない)。

おわりに

この記事いる?

ロボコニストは全人類デュアルブート or Windows消去してる気がするので逆張りで書いてみました。来年こそはもっとまともな記事を書きたい。