●ROS2で分散処理をしよう。

基本的に、ROS2は「何かを動かしてなんぼ」です。

そのために、基本的には「ROS2で考えた指示」を「RTOSに渡して」制御するのが通常です。

そのための最低限な構成を構築してみることにします。

 ROS2のみではだめな理由。mROS2の価値とは。

ここでは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でもいいのですが)

①-2:ラズパイ側ワークフォルダの構成とソフトウエアの作成

②MCU側(mROS2側)設定

②-1:ラズパイへのmROS2を含む開発環境の構築~ビルド(これも本質はラズパイでもPCでも構わない)

上で使ったイメージセットを用意してみた(早く言え?)

結果

以下、過去のごちゃごちゃ。上が整理出来たらそのうち消します。



チュートリアルは以上です。。。

ここから下は試行錯誤の歴史です。参考程度。



●ROSの使い方試行錯誤いろいろメモ

皆さん「わかっている」前提の「きれいな文章」が多く、素人に取って使えるチュートリアルが少なかったので泥臭いトライアルメモを残します。

RaspberryPi(RPI)にUbuntu(lubuntu)を導入する

 基本的にRaspberryPi向けだがアプリ等は共通

NetworkManagerによるネットワーク管理

●ROS2ワークスペース作成~動作の一般手順

 PC、RaspberryPi共通

ROS2チュートリアルまとめ

 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入門(ブラウザーでインタプリタ的にお試しできる)

    ゼロからのPython入門講座 – python.jp

    Colaboratory へようこそ – Colaboratory (google.com)(上述に対応したブラウザインタプリタ)

MBED向けの情報

  MBEDにMicroPython入れてPublisher(F446RE)など


●RaspberryPi OS+ROS2でMBEDと通信する。

最近、ちょっとブチ切れ気味で、やっぱ、どっちもDebian系なのにRaspberryPiにUbuntuとかおかしくね?とか、Arduinoの何がいいの?MBEDじゃね?とか思わない?とか思って調べてみた&やってみた。

RaspberryPi4 にRaspberryPi OS Bullseyeを入れる

上は、ほかのページと共用ですが、Bullseyeについても大体対応できます。

②ROS2 Humbleを入れ、チュートリアルを行う

いい感じのチュートリアルしてくれています

#1)RaspberryPiOS「BluesEye」導入からMBEDとUDP通信できる環境作成まで

MBEDは本家とSTMicroの子で確認してます


●PythonをOSにしたSBCキット

ORANGE-Python (picosoft.co.jp)

●数式解析ソフト(Maxima)

http://maxima.zuisei.net/