← Aung Kaung Myat/Walkthroughsプロジェクト解説
Project walkthroughsプロジェクト解説

How these projects actually work各プロジェクトの仕組みと計測結果

One page per project. Each opens with a visual summary and five key points; the full walkthrough — every file, every measurement, what the result does not prove — sits behind one toggle.

1プロジェクト1ページ。冒頭は図と5つの要点で、全文(全ファイル・全計測・結果から言えないこと)は1つのボタンの先にあります。

Robot learning · CPU onlyRobot learning · CPUのみ

Trained and measured on a laptop, no GPU anywhere in the stack.すべてノートPCで学習・計測。GPUは一切使っていません。

Microduck Balance and Push Recovery

microduck-rl

A balance-and-recover policy for a 25 cm, 14-servo biped, trained with PPO in CPU MuJoCo against a PD baseline. Domain randomisation was run, came out worse on held-out physics, and is reported as such.

25 cm・14サーボの二足ロボットに、CPU版MuJoCoでPPOによるバランス維持・復帰policyを学習し、PD baselineと比較。Domain randomisationはheld-out物理で悪化し、そのまま報告しています。

PPO 344.8 ± 2.9 vs PD 175.8 ± 0.2 of 500(500点満点) · 100 episodes × 5 seeds

MuJoCoPyTorch CPUPPOsystem IDsim-to-real

A C++ Environment That Matches Python to the Bit

mujoco-vecenv-cpp

The Microduck environment rewritten in C++17 on threads: 6,275 of 6,275 observations bit-identical to Python first, speed second. Same PPO loop, no difference in the trained policy.

Microduck環境をC++17・スレッド並列で再実装。まず6,275個のobservationがPythonとビット単位で一致することを示し、速度はその後。同じPPOループで、学習結果に差はありません。

1.9–2.0× the Python vector env at 8 workersPython vector env比(8 workers) · 50M steps 3.1 h vs 3.8–4.4 h · 339.4 ± 2.3 vs 348.1 ± 8.1

C++17MuJoCopybind11ASan / TSan

One Arm, Three Ways to Learn It

so-arm100-sim · -rl · -il · -vla

One MuJoCo bench for the SO-ARM100 arm (four tasks, scripted expert, held-out physics) and three policy repos on it: curriculum PPO, imitation from BC to ACT, and a language-conditioned policy. All measured at 100 episodes × 5 seeds.

SO-ARM100用の共通MuJoCoベンチ(4タスク、scripted expert、held-out physics)と、その上の3つのpolicy:curriculum PPO、BCからACTまでのimitation learning、language-conditioned policy。すべて100 episodes × 5 seedsで計測。

ACT 0.77 lift from the camera(カメラ入力でのlift成功率) vs BC 0.05 · expert 0.93 · DR fine-tune halves held-out dropDR fine-tuneでheld-out低下が半減 0.120 → 0.056

PyTorch CPUPPOBC · DAgger · ACTLeRobotDatasetMiniLM

Tabletop Clutter Detector

mujoco-clutter-detect

An anchor-free detector for overlapping tabletop objects, scored with a hand-written COCO mAP against a fitted classical pipeline, then quantised to INT8 for one CPU thread.

重なり合うテーブル上の物体を検出するanchor-free検出器。自前実装のCOCO mAPで古典パイプラインと比較し、CPU 1スレッド向けにINT8量子化。

mAP 0.911 vs classical 0.532 · INT8 1.38 ms on one thread(1スレッド) at mAP 0.910

PyTorch CPUCenterNet-stylefocal lossONNX RuntimeINT8

Earlier learning work初期の学習プロジェクト

The two projects the ones above grew out of: the PPO loop and the keypoint head are reused there.上のプロジェクトの土台になった2件です。PPOのループとkeypoint headはここから再利用しています。

PPO Against LQR

ppo-from-scratch

The same cart-pole solved by LQR and by a from-scratch PPO. Sixteen seeds, four ablations and a permutation test decide where the learned policy is genuinely better — and where it is not.

同じcart-poleをLQRとゼロから実装したPPOで解く。16 seeds、4つのablation、permutation testで、学習policyが本当に優れている点とそうでない点を判定。

16 / 16 seeds · one training run学習1回 11.4 s · LQR needs 0 samplesはサンプル不要

PyTorch CPUPPO / GAELQRMuJoCo

Sub-Millimetre Cube Pose

mujoco-cube-pose-cnn

A 27 k-parameter CNN recovers a cube's position and yaw from one image to 0.59 mm median. Two classical baselines first; the second exposed a radial bias in the first.

27 kパラメータのCNNが画像1枚から立方体の位置とyawを中央値0.59 mmで推定。先に古典的baselineを2つ作り、2つ目が1つ目の半径方向のbiasを発見。

Position error位置誤差 0.59 mm median · 27 k parameters · 0.23 ms / 1 thread

PyTorch CPUMuJoCosoft-argmaxONNX

ROS 2 · systemsシステム

Perception driving a motion-planning stack, and the infrastructure layer under a fleet.認識結果で動作計画を動かすパイプラインと、複数ロボットを支えるインフラ層です。

Panda Pick-and-Place Pipeline

moveit_pickplace_demo

A Franka Panda clears seven balls off a table with nothing hard-coded: camera → OpenCV → C++ reachability filter → MoveIt 2 → state machine. 7 of 7 placed on mock hardware.

Franka Pandaがテーブル上の7個のボールを片付けます。座標のハードコードなし:カメラ → OpenCV → C++の到達性フィルタ → MoveIt 2 → state machine。mock hardwareで7/7成功。

7 / 7 balls placed個を配置 · 11 nodes · mock hardwaremock hardware(実機不要)

ROS 2 HumbleMoveIt 2C++17OpenCVOMPL

Watching a Robot Fleet

fleet_monitoring_ws

Three simulated robots publish position; Kafka carries it to two readers — one stores every row, one raises an alert when a robot stops. The whole fleet is one YAML file, proven end to end in CI.

3台のシミュレーションロボットが位置をpublishし、Kafkaが2つの受信側へ届けます。1つは全行を保存、もう1つは停止を検知してアラート。フリート全体は1つのYAMLで定義し、CIでend-to-endに検証。

3 robots · 2 databases · CI 4 / 4 · smoke runsmoke test 369 rows / 25 s

ROS 2 HumbleApache KafkaQuestDBPostgreSQLDocker