●ROS2で分散処理をしよう。
基本的に、ROS2は「何かを動かしてなんぼ」です。
そのために、基本的には「ROS2で考えた指示」を「RTOSに渡して」制御するのが通常です。
そのための最低限な構成を構築してみることにします。
ここではROS2+mROS2にて、ラズパイをセントラルCU、リアルタイムOSをもつマイコンをゾーンCUとした分散処理システムの簡単な作例を示します。
●ROS2-Mbed Ethernet通信の例
環境:
SBC:RaspberryPi4 + Ubuntu20.04 + ROS2 Foxy(Python)
MCU:NUCREO-F746ZG(F767ZI) + mROS2 0.5.2
※1:mROS2は「Foxy対応」という意味で旧版を使っています。himble+mROS2はまだいじってないので載せられません
※2:とりあえずここでは同一ネットワーク上で同じトピック名が存在しないことを前提にします。(DIMAIN ID=0)

※間違い発覚。192.168.11.1ではなく192.168.11.3です!
お題:青ボタンを押すと、その信号がラズパイに行き、そのままMbedに帰ってきてLEDが光る、をカスタムメッセージ(複数パラメータの同時通信)でやる。
①SBC側(ROS2側)設定
①-1:ラズパイの環境設定(といいつつ、本質はラズパイでもPCでもいいのですが)
②MCU側(mROS2側)設定
②-1:ラズパイへのmROS2を含む開発環境の構築~ビルド(これも本質はラズパイでもPCでも構わない)
③上で使ったイメージセットを用意してみた(早く言え?)
④結果
以下、過去のごちゃごちゃ。上が整理出来たらそのうち消します。
チュートリアルは以上です。。。
ここから下は試行錯誤の歴史です。参考程度。
●ROSの使い方試行錯誤いろいろメモ
皆さん「わかっている」前提の「きれいな文章」が多く、素人に取って使えるチュートリアルが少なかったので泥臭いトライアルメモを残します。
●RaspberryPi(RPI)にUbuntu(lubuntu)を導入する
基本的にRaspberryPi向けだがアプリ等は共通
PC、RaspberryPi共通
Python前提で集めた
●拾ってきたROS2のPythonコードをビルドする。
どこかで拾ってきたコードを動かすための話。はじめてROS2をいじる人がpyのコードだけ渡されて動かせるわけがない。
●ROS2の開発環境いろいろ
いろいろな入れ方を試してどれがいいかやってみながら進めています。
最終的にはDockerの勉強を避けるためにVertualBOXを使用しています。
●PC環境:Docker導入メモ(今回落選)
●PC環境:vmware(今回落選)
●PC環境:HyperV(今回落選)
●PC環境:WindowsでROS2を動かす(並行利用中)
●PC環境:VertualBOX(りこめんど)
●Micro-ROS (& RaspberryPi PICO)
PICOでROSを動かす(調査中・・・MICRO-ROS
MICRO-ROS実行環境をPCとラズパイで構築する
Raspberry Pi&Ubuntu Server&ROS2(Foxy)でmicro-ROS&Raspberry Pi Pico動作確認 (zenn.dev)
●ROS2でのUART通信の例
Ubuntu20.04(on ラズパイ4)&ROS2でLD06とBNO055を使う (zenn.dev):ラズパイのTX/RXを使ったLider他との通信
●Pythonの勉強
Pythonチュートリアルドキュメント
Python チュートリアル — Python 3.11.0b5 ドキュメント
さらに分かりやすいPython入門(ブラウザーでインタプリタ的にお試しできる)
Colaboratory へようこそ – Colaboratory (google.com)(上述に対応したブラウザインタプリタ)
MBEDにMicroPython入れてPublisher(F446RE)など
●RaspberryPi OS+ROS2でMBEDと通信する。

最近、ちょっとブチ切れ気味で、やっぱ、どっちもDebian系なのにRaspberryPiにUbuntuとかおかしくね?とか、Arduinoの何がいいの?MBEDじゃね?とか思わない?とか思って調べてみた&やってみた。
①RaspberryPi4 にRaspberryPi OS Bullseyeを入れる
上は、ほかのページと共用ですが、Bullseyeについても大体対応できます。
いい感じのチュートリアルしてくれています
③#1)RaspberryPiOS「BluesEye」導入からMBEDとUDP通信できる環境作成まで
MBEDは本家とSTMicroの子で確認してます
●PythonをOSにしたSBCキット
ORANGE-Python (picosoft.co.jp)
●数式解析ソフト(Maxima)