2026年5月アーカイブ

フィジカルAi で ROS2 自立走行ロボットを動かす。

Google Ai に、質問していたら、ROS2 自作 Turtlebot3 で色々走行させて、データを取れば、
それを、フィジカルAI の 適当な model(ここは、Lerobot ACT、diffusion etc) に学習させれば、自立走行させられそう!!
フィジカルAI の学習は、エピソード単位でさせる!!
ので、基本、目的地は、1箇所。
しかし、これをベースにして、目的地を告げて、複数ヶ所へ到達させることも出来るとの事じゃ!!

ここにきて、やっと、フィジカルAi と ROS2 自立走行ロボットの勉強がつながったぞね!!
ちょっと、ROS2 Jazzy Tugbot の Gazebo で、学習data を作ってためしてみます。
開発環境:
Ubuntu Mate 24.04
ROS2: Jazzy
Gazebo
Tugbot wearhouse
Navigation2 with AMCL front rgb camera, front scan
Model:
LeRobot ACT
注) ROS2 の環境と、virtual_env で作った、torch、lerobot の環境の2 を、使い分けます。
lerobot_env: virtual_env で作ります。
lerobot_env で、
$ python -m pip install mcap mcap-ros2-support opencv-python numpy [torch] [lerobot]

1. Gazebo Tugbot wearhouse を、Navi2 で動かして、bag data を保存します。

ROS2 環境が必要なので、下記をターミナルからたたく
$ source /opt/ros/jazzy/setup.bash
$ source ~/colcon_ws-jazzy/install/local_setup.bash
$ export ROS_DOMAIN_ID=30 #TURTLEBOT3
$ export TURTLEBOT3_MODEL=waffle
$ export GZ_SIM_SYSTEM_PLUGIN_PATH=/opt/ros/jazzy/lib

下記、launch で、 Gazebo Weahouse Tugbot が Nav2 で、操作出来ると思う。
最新版を、up しているか、自信がないが!!
tosa-no-onchan/turtlebot3_navi_my/launch/tugbot_amcl_scan.launch.py
すでに、SLAM で、map が作成されていると思うので、その Map を使います。
上記、 launch.py の上部の起動手順に従って、Rviz2 で、Nav2 操作が出来る状態にします。
#  2.2 navigation
の部分。

初めてのフィジカルAi。Huggingface の LeRobot の ACT model で学ぶ。#3

LeRobot ACT model で、モーション分割 Datasets で、学習を行う!! 第2段!!
初めてのフィジカルAi。Huggingface の LeRobot の ACT model で学ぶ。#2 の続きです。

今回は、本当に、オリジナルの データ・セット lerobot/svla_so101_pickplace を、各エピソードを、複数モーションに分割して学習させてみました。

初めに、Demo にて確認します。
$ export PYTHONPATH=$PYTHONPATH:/home/your-id/local/git-download/lerobot/src <-- git clone した場所の src
$ lerobot-dataset-viz --repo-id lerobot/svla_so101_pickplace --episode-index 0

外置きのカメラが、2台あるみたい。observation.images.up と observation.images.side
なので、 class ACT は、2 images inputs にしないといけない。
この、Detasets は、FPS:30[hz] なので、これも、train.ipynb に反映させないといかん!!

1. Datsets: lerobot/svla_so101_pickplace を、3 モーションに区分けして、 3 Datasets ファイルにする。
$ make_3motions_data.py

本来のこの3分割の目的は、motion1、motion2、motion3 に分割したあと、学習が弱い部分の motion? を、新たなデータから加えて、
motion1、motion2、motion3、montion1b の様に、組み合わせて学習させるのが、本来の目的じゃ。!!

2. train
train.ipynb を、lerobot/svla_so101_pickplace に合うように、
input、output を修正して、
jupyter notebook で、train させます。
1 epoch のデータ数が、ちょっと少ないので、10 epochs 程、学習が必要です。
8 batch で、
Steps 13400 | Loss: 0.167124 | LR: 0.000003
Model saved! (Step Best Loss: 0.1671)

Loss: 0.11 辺りになれば、良いとおもいますだ!

初めてのフィジカルAi。Huggingface の LeRobot の ACT model で学ぶ。#2

LeRobot ACT model で、モーション分割 Datasets で、学習とシミュレーションの inference を学ぶ!!
初めてのフィジカルAi。Huggingface の LeRobot の ACT model で学ぶ。 の続きです。

今回は、オリジナルの データ・セット lerobot/aloha_sim_transfer_cube_human を、各エピソードを、複数モーションに分割して学習させてみました。
オリジナルのデータは、必ず、start - end の決まった流れで、複数エピソードを学習させています。
前回の学習済 ACT model で、シミュレーションでのテストをずっと見ていましたが、
なんとなく、キューブを見つける性能が弱い気がするし、最後の手渡しする部分も弱い気がしました。
できれば、その部分だけ、もっと学習させれば、良い気がしました。
そのためには、いつも1 エピソードを学習させるのでは無くて、部分的に強化した学習が出来ないかと考えた結果、
モーションを区切って学習させたらどうじゃろか? と思って、作ってみました。

1. まずは、2 分割のモーションで試してみます。
オリジナルの lerobot/aloha_sim_transfer_cube_human を分割する python コードを作る必要があります。
例によって、Google Ai の助け(ほとんどだが) で、なんとかできました。
make_3motions_data.py

今回は、これで、 2分割させたモーションデータを使ってみます。
分割した Datasets を、確認するのは、
$ export PYTHONPATH=$PYTHONPATH:/home/your-id/local/git-download/lerobot/src
$ lerobot-dataset-viz --repo-id local/split_dataset_0 --root outputs/split_dataset_0 --episode-index 0

train コードは、前回作成した notebook の train.ipynb を、少し修正すれば、
学習済 ACT model が出来ます。

とりあえず、5 - 6 epochs 学習させてみます。
train.ipynb
use_ex=True
で学習させます。こちらが、train 時間が少ないので...

一応、非分割のデータ・セットと同じ様に、今回の 2モーション分割の場合も、Loss が減っていって、学習できている様です。

Steps 12400 | Loss: 0.175373 | LR: 0.000003
Model saved! (Step Best Loss: 0.1754)
本当は、Loss: 0.11 辺りが良いと思う!!

初めてのフィジカルAi。Huggingface の LeRobot の ACT model で学ぶ。
ACT モデルを、使っての Train と Predict の一連の流れを試してみる。

サイトは、下記
lerobot
githubは、
@huggingface/lerobot
インストールを、下記ページに従って行います。
lerobot/installation

virtual_env を使うと良いと思う。
$ cd
$ python3 -m virtualenv lerobot_env
$ source lerobot_env/bin/activate
おんちゃんの開発環境は、
ubuntu mate 24.04
GPU: gtx 1070

先に、pytorch 2.10.0 etc をインストールしておく。
$ python -m pip install torch==2.10.0 torchvision==2.25.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cu126

lerobot のライブラリーは、最新を使うので、github 版を clone します。
あとは、git clone をして、clone したデイレクトリーへ移って、
$ cd relobot
$ python -m pip install -e .
その後、Simulations を使うので、続けて、
aloha をインストールします。
$ python -m pip install -e ".[aloha]" # or "[pusht]" for example

ROS2 自作 Turtlebot3 による 草刈りロボット開発。#17 Transformer で経路計画をする。No.2

ROS2 自作 Turtlebot3 による 草刈りロボット開発。#8 Transformer で経路計画をする。 の続きです。

同じ Transfomer model を、Pytorch で、作ってみました。
Pytorch のほうが、コードがシンプルで分かりやすいぞね!!

今回の Pytorch Transformer のモデルについて、ちょっと説明します。
ベースは、Transformer の Speech to Text の処理をベースに作っています。
詳細は、オリジナルのページを参照してください。

今回、特筆したいのは、model の outputs の取り出し方法です。
どうやら、大きく言って、2種類あるみたい。
1 は、Keras 版でも使っていた、predict 結果を、一度( 150 の位置 class) に取り出す方法と 。
2 は、最近 google ai の話だと、1個ずつ、ループして、必要分だけ取り出すほうほうです。 ここで、結構はまりました。
最終的には、onnx 変換で、1 の方しかできないので、1 の方式をメインにします。

このアーカイブについて

このページには、2026年5月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2026年4月です。

次のアーカイブは2026年6月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

月別 アーカイブ

ウェブページ

サイトナビ