1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windows11/WSL(Ubuntu20.04) - ROS2 Foxy VSCode Raspberry pi Pico micro-ROS Arduino言語

Posted at

1. WSL Ubuntu 20.04.6 LTSをインストール

Microsoft StoreからUbuntu 20.04.6 LTSを検索しインストールする。詳細は以下の通り。

2. Visual Studio Code + Remote WSL をインストール

3. ROS2 Foxyのインストール

  1. Visual Studio CodeからUbuntu20.04に接続
  2. スタートメニューのClone Git Repositoryからhttps://github.com/TriOrb-Inc/pio_microros_base.gitをクローン
  3. VSCode上部のTerminalからターミナルを起動し、https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html の手順に従いROSをインストール
  4. Python3をデフォルトにしておく:sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 0

4. Raspberry pi Pico向けにmicro-ROS(Arduino言語)をビルド

  1. venvをインストール:sudo apt install python3-venv
  2. VSCodeのExtensionsからPlatformIO IDEを検索しインストール
    • インストールが完了後Reloadを促される
  3. ビルド
    a. VSCode左側の蟻っぽいマークをクリック
    b. PlatformIOのProject TasksにBuildなどのメニューが出てくるまでしばらく待つ
    c. Buildが通ればOK
  4. Windows PCにPicoを接続する
    ※既に何らかのソフトが書き込まれている場合はBOOTSELを押しながら接続
  5. ファイルエクスプローラーから\\wsl.localhost\Ubuntu-20.04\home\<Ubuntu User Name>\pio_microros_base\.pio\build\picoを開き「firmware.uf2」をPicoへドラッグアンドドロップで書き込む
  6. PicoのLEDが1秒周期で点滅するのが確認できればOK

5. WSLからPico(USB Serial)を認識できるようにする

  • 途中再起動が必要
  • attachする際のコマンドは下記のような感じ:
usbipd wsl attach -d "Ubuntu-20.04" --busid 2-4

6. ROSトピックの受け取り

  1. Ubuntu 20.04 on WLSのターミナルに戻る
  2. 下記コマンドでDockerをインストールする
    sudo apt update
    sudo apt install -y ca-certificates curl gnupg lsb-release
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
    sudo apt update
    sudo apt install -y docker-ce docker-compose-plugin
    sudo service docker start
    sudo gpasswd -a $USER docker
    su $USER # Ubuntu user password required
    
  3. Ubuntu上でPicoが認識できているかを確認する:lsusbArduino RaspberryPi PicoがあればOK
  4. Picoのdevice pathを確認する:/dev/ttyACM0もしくは/dev/ttyUSB0のどちらか存在する方がPico
  5. docker run -it --rm -d --name micro-ros-agent -v /dev:/dev --privileged --net=host triorb/micro-ros-agent:galactic serial --dev /dev/ttyACM0 --baud 115200でmicroROS-agentを起動する。/dev/ttyACM0の箇所は適宜変更する。
    ※バックグラウンドでAgentが起動した状態になる。停止するときはdocker stop micro-ros-agent
  6. ノードが認識され、トピックが届いているか確認:
    source /opt/ros/foxy/setup.bash
    ros2 node list && ros2 topic list
    
    以下のような表示になればOK
    <username>@<hostname>:~/pio_microros_base$ ros2 node list && ros2 topic list
    /pio_uros_base_node
    /cmd_topic
    /parameter_events
    /rosout
    /test1
    /test2
    

以上。あとは良しなにPicoのソフトを作る。

参考サイト

https://ar-ray.hatenablog.com/entry/2022/04/07/121653
https://qiita.com/ousagi_sama/items/b4eb3d9c6b337cbe1b05

以下、備忘録

WSLではなくWindowsでもcolcon buildが通るように格闘しましたが、時間切れにより断念。

ROS2 Foxyのインストール

なお、大前提としてパッケージ管理ソフトChocolateyを入れる必要がある。ビジネス利用は有償だがライセンス費用は安い。

Chocolateyインストール(PowerShell管理者)

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

以降、Foxyの公式マニュアルに従う

  • DDS implementations (optional)は一旦スキップで試す(micro-ROSビルド時にエラーになるかも。その時はこの注釈を変更する)
  • python -m pip installでライブラリーをインストールする前にpythonのバージョンが3.8.3であることを確認すること:python -V
    • 公式手順に従った場合はPowerShell再起動で3.8.3が標準になる
  • python -m pip installでライブラリーをインストールする前にpip自体をupgradeしておくこと:python -m pip install --upgrade pip

micro-ROSのビルドテスト(on Windows + VisualStudioCode + PlatformIO)

メモ

  • FileExistsError:が出る場合はmicro_ros_platformioのbuildフォルダを削除する:rd /s /q .pio\libdeps\pico\micro_ros_platformio\build
  • RuntimeError: VisualStudioVersion is not set, please run within a Visual Studio Command Prompt.が出る場合は。。。これが解決できなかった
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?