LabHub

ブログ

ロボティクス開発 ROS 2 2026 — Nav2 / MoveIt / Gazebo / Isaac Sim / MuJoCo / LeRobot / GR00T 徹底ガイド

한국어English日本語

プロローグ — ロボティクスの「ChatGPTモーメント」は本物だった

2022年11月にChatGPTが世に出たとき、多くのロボティクス研究者が同じ問いを口にした。「私たちのChatGPTモーメントはいつ来るのか?」 LLMがテキストでやったことをロボットが物理世界でやるには、データ・シミュレーション・ハードウェア・モデルの4軸が揃う必要があった。

2026年5月現在、その整合がほぼ完了している。

そしてその上に ROS 2 が乗る。ROS 1は2025年5月にNoeticがEOLを迎えて事実上死に、ROS 2 Jazzy Jalisco(2024.05)、Kilted Kaiju(2025.05)、Lyrical Luth(2026.05予定)が年次LTSのリズムを確立した。

本稿は2026年5月時点のロボティクス開発スタックを — ROS 2からNav2・MoveIt 2・Gazebo・Isaac Sim・MuJoCo・LeRobot・GR00T・VLA・Foxgloveまで — 一息で整理する。


1章 · 2026年ロボティクスの地図 — ヒューマノイド・ブームとLLM+ロボット

まず全体像。2026年のロボティクスには4つの大きな潮流が同時に流れている。

1.1 ヒューマノイド・ブーム

2024〜2025年が「デモの年」だったとすれば、2026年は「量産の年」だ。

1.2 シミュレーション優先学習(Sim-to-Real)

ヒューマノイドの最大の問題は データ不足 だ。人間が一生で見聞きするデータはペタバイト級だが、ヒューマノイドが集めたデータはテラバイト級にとどまる。そこで登場したのが シミュレーション優先学習 である。

NVIDIAのスローガンは「3 Computers」 — 学習コンピュータ(DGX)、シミュレーションコンピュータ(Omniverse/Isaac Sim)、実行コンピュータ(Jetson Thor)。Isaac Simで毎秒数千の並列環境を回し、強化学習で方策を学習し、その方策を実機に移す(sim-to-real)。

1.3 VLA — ロボットのGPTモーメント

2023年7月のGoogle DeepMind発表 RT-2(Robotic Transformer 2) が最初のシグナルだった。VLM(PaLI-X)を持ってきてアクション・トークンを出力するように微調整したところ、「絶滅した動物を拾え」のような自然言語命令に対し、未知のオブジェクトでも汎化した。

2024年6月にはスタンフォードの OpenVLA(7B) がオープンソースで登場し、2024年10月にはPhysical Intelligenceが π0(パイ・ゼロ) — Flow Matching ベースの7B VLA — を発表して、衣類を畳む・食器を洗うといった器用さ(dexterity)のデモを見せた。NVIDIAの GR00T N1(2025) はヒューマノイド専用に学習された17Bモデルである。

1.4 データの民主化 — Hugging Face LeRobot

2024年10月にHugging Faceが LeRobot を発表し、ロボティクスMLがChatGPT以前のNLPのような「秘密の花園」からGitHub水準まで開かれた。事前学習モデル、データセット、チュートリアル、SO-100/SO-101のような200ドル台の学習用ロボットアーム・キットまで一括で提供する。

2026 ロボティクス 4スタック

[ モデル層 ]   RT-2 / OpenVLA / π0 / GR00T N1 / Helix
                       |
[ 学習層   ]   LeRobot / Open X-Embodiment / RoboHive
                       |
[ シム層   ]   Isaac Sim 5.0 / MuJoCo / Gazebo Harmonic / Webots
                       |
[ ミドル層 ]   ROS 2 Jazzy/Kilted/Lyrical + Nav2 + MoveIt 2
                       |
[ ハード層 ]   Optimus / Figure / 1X / Atlas / G1 / Apollo / Phoenix
                       |
[ 可視化   ]   Foxglove Studio / RViz2 / PlotJuggler

各層を順にみていく。


2章 · ROS 2 Jazzy → Kilted → Lyrical — 1年に一度のLTS

2.1 ROS 1からROS 2へ — なぜ移ったか

ROS 1は2007年にWillow Garageで始まり、学術・研究の事実上の標準となった。しかし限界があった。

ROS 2はこれを最初から再設計した。

2025年5月にROS 1 NoeticがEOLを迎え、ROS 1時代は公式に終わった。

2.2 ROS 2 LTSケイデンス — メーデー・リリース

ROS 2は毎年5月(Ubuntu LTSリリース直後)に新ディストリビューションを出す。偶数年は5年LTS、奇数年は2年非LTSだ。

コードネームリリースEOLUbuntu備考
Foxy Fitzroy2020.062023.0622.04最初のLTS
Galactic Geochelone2021.052022.1220.04非LTS
Humble Hawksbill2022.052027.0522.04LTS、最も普及
Iron Irwini2023.052024.1222.04非LTS
Jazzy Jalisco2024.052029.0524.04LTS
Kilted Kaiju2025.052026.1224.04非LTS
Lyrical Luth2026.052031.0526.04(予想)LTS、まもなく

2026年5月現在は Jazzy(本番)Kilted(最新) が主力で、Lyrical Luthがまもなく登場する。新規プロジェクトはJazzyから始めるのが無難だ。

2.3 ROS 2のコア概念 — 5分の復習

# Python rclpy ノードの例
import rclpy
from rclpy.node import Node
from std_msgs.msg import String

class HelloPublisher(Node):
    def __init__(self):
        super().__init__('hello_publisher')
        self.publisher = self.create_publisher(String, 'greetings', 10)
        self.timer = self.create_timer(1.0, self.tick)

    def tick(self):
        msg = String()
        msg.data = 'Hello, ROS 2 Jazzy'
        self.publisher.publish(msg)
        self.get_logger().info(f'Published: {msg.data}')

def main():
    rclpy.init()
    node = HelloPublisher()
    rclpy.spin(node)
    node.destroy_node()
    rclpy.shutdown()

通信パターンは4つ。

  1. Topic — pub/sub、非同期ストリーム(センサデータ、画像)。
  2. Service — 同期RPC、短い要求/応答(パラメータ取得)。
  3. Action — 長時間処理、フィードバック・キャンセル可(ナビゲーション、ピックアップ)。
  4. Parameter — ノード設定、ランタイム変更可能。

2.4 ビルドシステム — colcon

ROS 2のビルドは colcon。ワークスペースの典型パターン。

# ワークスペース作成
mkdir -p ros2_ws/src
cd ros2_ws

# src にパッケージをクローン
cd src
git clone https://github.com/ros-planning/navigation2.git -b jazzy
cd ..

# 依存解決
rosdep install --from-paths src --ignore-src -r -y

# ビルド(並列、symlinkで開発反復を高速化)
colcon build --symlink-install --parallel-workers $(nproc)

# 環境ソース
source install/setup.bash

2.5 変更点 — Jazzy → Kilted → Lyrical 移行ノート

Jazzy以降の主な変化。


3章 · Nav2 (Steve Macenski) — ナビゲーションスタック

3.1 Nav2とは

Nav2(Navigation 2) はROS 1の move_base をROS 2向けに再設計したナビゲーションスタックだ。Samsung Research America出身の Steve Macenski がメンテナで、現在はOpen Navigation LLCを通じてコンサルティングを行う。

Nav2は次を一括で提供する。

3.2 Behavior Treeでナビゲーションを定義

Nav2の最大の特徴は Behavior Tree(BT)。ナビ全体のフローをXMLで定義する。

<!-- navigate_to_pose_w_replanning_and_recovery.xml -->
<root main_tree_to_execute="MainTree">
  <BehaviorTree ID="MainTree">
    <RecoveryNode number_of_retries="6" name="NavigateRecovery">
      <PipelineSequence name="NavigateWithReplanning">
        <RateController hz="1.0">
          <RecoveryNode number_of_retries="1" name="ComputePathToPose">
            <ComputePathToPose goal="{goal}" path="{path}" planner_id="GridBased"/>
            <ReactiveFallback name="ComputePathToPoseRecoveryFallback">
              <GoalUpdated/>
              <ClearEntireCostmap name="ClearGlobalCostmap-Context" service_name="global_costmap/clear_entirely_global_costmap"/>
            </ReactiveFallback>
          </RecoveryNode>
        </RateController>
        <RecoveryNode number_of_retries="1" name="FollowPath">
          <FollowPath path="{path}" controller_id="FollowPath"/>
          <ReactiveFallback name="FollowPathRecoveryFallback">
            <GoalUpdated/>
            <ClearEntireCostmap name="ClearLocalCostmap-Context" service_name="local_costmap/clear_entirely_local_costmap"/>
          </ReactiveFallback>
        </RecoveryNode>
      </PipelineSequence>
      <ReactiveFallback name="RecoveryFallback">
        <GoalUpdated/>
        <RoundRobin name="RecoveryActions">
          <Sequence name="RecoveryActionsSequence">
            <ClearEntireCostmap name="ClearingActions" service_name="global_costmap/clear_entirely_global_costmap"/>
            <Spin spin_dist="1.57"/>
            <Wait wait_duration="5"/>
            <BackUp backup_dist="0.30" backup_speed="0.05"/>
          </Sequence>
        </RoundRobin>
      </ReactiveFallback>
    </RecoveryNode>
  </BehaviorTree>
</root>

BTの利点はコードを変えずXMLだけで行動を再構成できること。デバッグも可視化しやすい(Grootなど)。

3.3 MPPIコントローラ — 2024年の標準

Nav2のローカルコントローラは複数あるが、2024年以降事実上標準になったのが MPPI(Model Predictive Path Integral)コントローラ だ。サンプリングベースMPCで、数千の軌跡を並列にシミュレートして最低コストを選ぶ。

# nav2_params.yaml(MPPI部)
controller_server:
  ros__parameters:
    controller_plugins: ["FollowPath"]
    FollowPath:
      plugin: "nav2_mppi_controller::MPPIController"
      time_steps: 56
      model_dt: 0.05
      batch_size: 2000
      vx_std: 0.2
      vy_std: 0.2
      wz_std: 0.4
      vx_max: 0.5
      vx_min: -0.35
      vy_max: 0.5
      wz_max: 1.9
      iteration_count: 1
      prune_distance: 1.7
      transform_tolerance: 0.1
      temperature: 0.3
      gamma: 0.015
      motion_model: "DiffDrive"
      visualize: false
      critics:
        - "ConstraintCritic"
        - "ObstaclesCritic"
        - "GoalCritic"
        - "GoalAngleCritic"
        - "PathAlignCritic"
        - "PathFollowCritic"
        - "PathAngleCritic"
        - "PreferForwardCritic"

DWBやRegulated Pure Pursuitより回避・コーナリングが自然で、GPU加速でさらに高速化する。難点はチューニングパラメータが多いこと。

3.4 SLAM — Nav2と組み合わせる二択

地図のない環境ではSLAMを併走させる。

# SLAM Toolboxを非同期モードで起動(マッピング)
ros2 launch slam_toolbox online_async_launch.py \
  params_file:=./config/mapper_params_online_async.yaml \
  use_sim_time:=true

# 地図を保存
ros2 service call /slam_toolbox/save_map slam_toolbox/srv/SaveMap "{name: {data: 'my_map'}}"

4章 · MoveIt 2 — モーションプランニング

4.1 MoveItが何をするか

MoveIt はロボットアーム(マニピュレータ)向けのモーションプランニング・フレームワークだ。入力は「エンドエフェクタを (x, y, z, roll, pitch, yaw) に送れ」のような目標で、出力は衝突なしにその姿勢に到達する関節軌跡。

内部では次を行う。

  1. IK(逆運動学) — 目標姿勢から関節角を解く。
  2. 衝突チェック — 自己衝突 + 環境衝突。
  3. 軌跡計画 — OMPL / STOMP / CHOMP / Pilz などのアルゴリズム。
  4. 軌跡実行ros2_control 上のコントローラに送信。

4.2 MoveIt Setup Assistant

新しいロボットをMoveItに繋ぐ出発点は Setup Assistant のGUIだ。

ros2 launch moveit_setup_assistant setup_assistant.launch.py

URDF / Xacroを読み込むと、GUIで以下が可能。

結果として moveit_config パッケージが生成される。

4.3 MoveIt 2 コード例 — pick and place

# Python MoveIt 2 (moveit_py)
import rclpy
from moveit.planning import MoveItPy
from geometry_msgs.msg import PoseStamped

def main():
    rclpy.init()
    moveit = MoveItPy(node_name="moveit_py_demo")
    arm = moveit.get_planning_component("manipulator")

    target_pose = PoseStamped()
    target_pose.header.frame_id = "base_link"
    target_pose.pose.position.x = 0.4
    target_pose.pose.position.y = 0.1
    target_pose.pose.position.z = 0.5
    target_pose.pose.orientation.w = 1.0

    arm.set_start_state_to_current_state()
    arm.set_goal_state(pose_stamped_msg=target_pose, pose_link="tool0")
    plan_result = arm.plan()

    if plan_result:
        robot_trajectory = plan_result.trajectory
        moveit.execute(robot_trajectory, controllers=[])
    else:
        print("Planning failed")

    moveit.shutdown()
    rclpy.shutdown()

if __name__ == "__main__":
    main()

C++ APIでは MoveGroupInterface が最も一般的。どちらも同じバックエンド(OMPL)を呼ぶ。

4.4 OMPL vs STOMP vs Pilz

プランナ種類長所短所
OMPL(RRTConnect、PRM)サンプリング高次元に強い経路がガタつく、後処理必要
STOMP最適化滑らかな経路初期解が必要、遅い
CHOMP最適化滑らか局所解
Pilz Industrial Motion Planner決定論的LIN/CIRC/PTP、産業用一般動作には不向き

既定はRRTConnectで始め、産業用反復動作にはPilzを使う。

4.5 ros2_controlとの接続

MoveIt 2は計画だけを行い、実行は ros2_control が担当する。両者の標準インターフェースが JointTrajectoryController だ。

# controller_manager 設定
controller_manager:
  ros__parameters:
    update_rate: 100
    joint_trajectory_controller:
      type: joint_trajectory_controller/JointTrajectoryController

joint_trajectory_controller:
  ros__parameters:
    joints:
      - shoulder_pan_joint
      - shoulder_lift_joint
      - elbow_joint
      - wrist_1_joint
      - wrist_2_joint
      - wrist_3_joint
    command_interfaces:
      - position
    state_interfaces:
      - position
      - velocity

5章 · Gazebo Harmonic — シミュレータの標準

5.1 Gazebo Classicの終焉とNew Gazeboの誕生

ROSユーザにとってお馴染みの「Gazebo」は2つの異なるソフトウェアだ。

2026年現在、新規プロジェクトは無条件で New Gazebo Harmonic(2023.09 LTS、2028までサポート) を選ぶ。

5.2 Gazebo Harmonicの特徴

5.3 SDFワールド例

<?xml version="1.0"?>
<sdf version="1.10">
  <world name="warehouse">
    <physics name="1ms" type="ignored">
      <max_step_size>0.001</max_step_size>
      <real_time_factor>1.0</real_time_factor>
    </physics>

    <plugin filename="gz-sim-physics-system" name="gz::sim::systems::Physics"/>
    <plugin filename="gz-sim-sensors-system" name="gz::sim::systems::Sensors">
      <render_engine>ogre2</render_engine>
    </plugin>
    <plugin filename="gz-sim-scene-broadcaster-system" name="gz::sim::systems::SceneBroadcaster"/>

    <include>
      <uri>https://fuel.gazebosim.org/1.0/OpenRobotics/models/Sun</uri>
    </include>
    <include>
      <uri>https://fuel.gazebosim.org/1.0/OpenRobotics/models/Ground Plane</uri>
    </include>

    <include>
      <name>turtlebot</name>
      <pose>0 0 0.1 0 0 0</pose>
      <uri>https://fuel.gazebosim.org/1.0/OpenRobotics/models/Turtlebot4</uri>
    </include>
  </world>
</sdf>

5.4 ros_gz_bridgeでROS 2トピックを連結

GazeboのトピックはGazebo Transport(別ミドルウェア)を使い、ROS 2はDDSを使う。両者を繋ぐのが ros_gz_bridge だ。

# /cmd_vel を双方向にマップ
ros2 run ros_gz_bridge parameter_bridge \
  /cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist \
  /odom@nav_msgs/msg/Odometry[gz.msgs.Odometry \
  /scan@sensor_msgs/msg/LaserScan[gz.msgs.LaserScan

5.5 限界 — なぜIsaac Simが同時に登場したか

Gazebo Harmonicは優秀だが、限界がある。

ここをNVIDIA Isaac Simが埋める。


6章 · Isaac Sim 5.0 (NVIDIA Omniverse) + Isaac ROS

6.1 Isaac Simの何が違うか

NVIDIA Isaac Sim はOmniverse上に作られたロボットシミュレータだ。2026年1月に Isaac Sim 5.0 がリリースされ、コア特徴は次の通り。

6.2 Isaac Lab強化学習コード(簡易例)

# Isaac LabでCartpole RL環境を作る(概念コード)
from omni.isaac.lab.envs import ManagerBasedRLEnv
from omni.isaac.lab.scene import InteractiveSceneCfg
from omni.isaac.lab.assets import ArticulationCfg
from omni.isaac.lab.terrains import TerrainImporterCfg

class CartpoleSceneCfg(InteractiveSceneCfg):
    cartpole = ArticulationCfg(
        prim_path="/World/envs/env_.*/Cartpole",
        usd_path="omniverse://localhost/NVIDIA/Assets/Robots/Cartpole/cartpole.usd",
    )

env_cfg = ManagerBasedRLEnvCfg(
    scene=CartpoleSceneCfg(num_envs=4096, env_spacing=4.0),
    sim={"dt": 1/120, "device": "cuda:0"},
)

env = ManagerBasedRLEnv(cfg=env_cfg)

# PPOで学習
from skrl.agents.torch.ppo import PPO
agent = PPO(models=..., memory=..., cfg={"learning_epochs": 8})
agent.train(env, timesteps=1_000_000)

4096個の並列環境をRTX 4090一枚で回せば、数日で方策が収束する。同じことをGazeboでやるには数十台のCPUサーバが必要だ。

6.3 Isaac ROS — NVIDIAのROS 2アクセラレータ

Isaac ROS はIsaac Simとは別に、NVIDIAがROS 2パッケージをCUDA加速したコレクションである。

パッケージ機能加速
isaac_ros_visual_slamRGB-DビジュアルSLAMGPU
isaac_ros_nvblox3D再構成・占有グリッドGPU
isaac_ros_apriltagAprilTag検出GPU
isaac_ros_centerpose6DOF姿勢推定TensorRT
isaac_ros_dnn_image_encoderカメラ→ML前処理GPU

Jetson Orin・Thorボードに最適化されており、同じ知覚パイプラインがCPU比10〜30倍高速。

6.4 OpenUSDがロボティクスに入ってきた

OpenUSD(Universal Scene Description) はピクサーが作り、2023年にAOUSD(Alliance for OpenUSD)として標準化されたシーン記述フォーマットだ。映画・ゲーム発祥だが、NVIDIAがロボティクスの標準として推進している。

URDF / SDFはロボット1台を定義するには十分だが、工場や都市のような大規模環境を表現するには弱い。USDがそれを代替する可能性が高い。


7章 · MuJoCo (DeepMind) — 物理シミュレーション

7.1 MuJoCoの歴史 — Roboti LLC → DeepMind買収 → オープンソース化

MuJoCo(Multi-Joint dynamics with Contact) はEmo Todorovが2010年代初頭に作った物理エンジンだ。当初は有料の商用ソフトウェア(Roboti LLC)で、OpenAI Gymの一部環境(Humanoid、HalfCheetah)がMuJoCo上で動いていた。学生ライセンスはあったが商用は高価だった。

2021年10月、Google DeepMindがMuJoCoを買収し、完全無料/オープンソース(Apache 2.0) にした。これが強化学習・ロボティクス研究の参入障壁を大きく下げた。

7.2 MuJoCoの強み

7.3 MJCFの例(humanoid)

<mujoco model="humanoid">
  <option timestep="0.005" gravity="0 0 -9.81"/>

  <default>
    <joint armature="1" damping="1" limited="true"/>
    <geom contype="0" conaffinity="0" friction="1 0.1 0.1" rgba="0.7 0.5 0.3 1"/>
  </default>

  <worldbody>
    <light pos="0 0 3" dir="0 0 -1" diffuse="0.7 0.7 0.7"/>
    <geom name="floor" pos="0 0 0" size="10 10 0.1" type="plane" rgba="0.9 0.9 0.9 1"/>

    <body name="torso" pos="0 0 1.4">
      <joint name="root" type="free"/>
      <geom name="torso_geom" type="capsule" fromto="0 -.07 0 0 .07 0" size=".07"/>

      <body name="head" pos="0 0 .19">
        <geom name="head_geom" type="sphere" size=".09"/>
      </body>

      <body name="right_thigh" pos="0 -.1 -.04">
        <joint name="right_hip" type="ball"/>
        <geom name="right_thigh_geom" type="capsule" fromto="0 0 0 0 .01 -.34" size=".06"/>

        <body name="right_shin" pos="0 .01 -.403">
          <joint name="right_knee" type="hinge" axis="0 -1 0" range="-160 -2"/>
          <geom name="right_shin_geom" type="capsule" fromto="0 0 0 0 0 -.3" size=".049"/>
        </body>
      </body>
      <!-- 左側も同様 -->
    </body>
  </worldbody>

  <actuator>
    <motor name="right_knee" joint="right_knee" gear="200"/>
  </actuator>
</mujoco>

7.4 MJX — JAXバックエンドでGPU加速

2024年に登場した MJX はJAXベースのMuJoCoで、GPU/TPU上で数万の環境を同時にシミュレートできる。Brax(Google)やIsaacGymと同カテゴリ。

import jax
import mujoco
from mujoco import mjx

mj_model = mujoco.MjModel.from_xml_path("humanoid.xml")
mjx_model = mjx.put_model(mj_model)

# 4096個の環境を並列シミュレーション
batch_size = 4096
keys = jax.random.split(jax.random.PRNGKey(0), batch_size)

@jax.jit
@jax.vmap
def reset(key):
    data = mjx.make_data(mjx_model)
    return data

@jax.jit
@jax.vmap
def step(data, action):
    data = data.replace(ctrl=action)
    data = mjx.step(mjx_model, data)
    return data

batch_data = reset(keys)
actions = jax.numpy.zeros((batch_size, mj_model.nu))

for _ in range(1000):
    batch_data = step(batch_data, actions)

7.5 MuJoCo Menagerie — 公式ロボット集

DeepMindがメンテする MuJoCo Menagerie リポには産業用ロボットの検証済みMJCFがある。

これをそのまま強化学習や模倣学習のシミュレーションに投入できる。


8章 · Webots (Cyberbotics) — 軽量な選択肢

8.1 Webotsの位置

Webots はスイスのCyberbotics社が1996年から開発してきたロボットシミュレータ。2018年にApache 2.0でオープンソース化された。

Gazebo・Isaac Sim・MuJoCoがあるのに、なぜWebotsを使うのか。

8.2 Webotsコントローラの例

# Webots Python コントローラ
from controller import Robot

TIME_STEP = 32
MAX_SPEED = 6.28

robot = Robot()
left_motor = robot.getDevice("left wheel motor")
right_motor = robot.getDevice("right wheel motor")
left_motor.setPosition(float('inf'))
right_motor.setPosition(float('inf'))

ds_left = robot.getDevice("ds_left")
ds_right = robot.getDevice("ds_right")
ds_left.enable(TIME_STEP)
ds_right.enable(TIME_STEP)

while robot.step(TIME_STEP) != -1:
    left = ds_left.getValue()
    right = ds_right.getValue()
    if left < 100:
        left_motor.setVelocity(-MAX_SPEED * 0.5)
        right_motor.setVelocity(MAX_SPEED * 0.5)
    elif right < 100:
        left_motor.setVelocity(MAX_SPEED * 0.5)
        right_motor.setVelocity(-MAX_SPEED * 0.5)
    else:
        left_motor.setVelocity(MAX_SPEED)
        right_motor.setVelocity(MAX_SPEED)

8.3 どこで何を使うか

用途おすすめ
学習・チュートリアル・教育Webots
産業用モバイルロボット(ROS 2統合)Gazebo Harmonic
強化学習・ヒューマノイド・合成データIsaac Sim 5.0
マニピュレーション・器用さ・接触多めの作業MuJoCo
高速並列RLMJX または Isaac Lab
マルチロボット・ドローン群Gazebo + Zenoh

9章 · Hugging Face LeRobot (2024.10) — ロボティクスMLの民主化

9.1 LeRobot登場の背景

2024年10月、Hugging Faceが LeRobot を発表した。キャッチフレーズは「Robotics for everyone」。コアは次を一括で提供することだ。

ポイントは PyTorch + Hugging Faceエコシステムとの完全統合。NLPでTransformersがやったことを、ロボティクスでやろうとしている。

9.2 LeRobotデータパイプライン

# LeRobotデータセットの読み込み
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

dataset = LeRobotDataset("lerobot/aloha_static_coffee")
print(dataset.meta.info)

# エピソードを1つ取得
episode = dataset[0]
print(episode["observation.image.cam_high"].shape)
print(episode["action"].shape)

9.3 ACT模倣学習

ACT(Action Chunking Transformer)はStanford Mobile Alohaチームが作った模倣学習ベースライン。LeRobot内でそのまま学習可能。

# SO-100アームでデータ収集
python lerobot/scripts/control_robot.py record \
  --robot.type=so100 \
  --control.type=record \
  --control.fps=30 \
  --control.repo_id=youngju/so100_pick_and_place \
  --control.num_episodes=50 \
  --control.warmup_time_s=5 \
  --control.episode_time_s=30 \
  --control.push_to_hub=true

# ACT 方策を学習
python lerobot/scripts/train.py \
  policy=act \
  dataset_repo_id=youngju/so100_pick_and_place \
  env=so100 \
  training.offline_steps=80_000 \
  training.batch_size=32 \
  training.lr=1e-4

# 実機で評価
python lerobot/scripts/eval.py \
  -p youngju/so100_pick_and_place_act \
  eval.n_episodes=10

9.4 SO-100 — 200ドル台で始めるロボット学習

SO-100(オリジナル設計はThe Robot Studio)は5DOFのデスクトップアームで、部品コストは200〜300ドル台。3Dプリント可能な部品 + Dynamixel(Robotis)またはFeetechサーボで構成される。LeRobotにSO-100/101のドライバが標準搭載されており、データ収集→学習→実行のサイクルを家庭で回せる。

これがLeRobotの真のインパクト。NLPがChatGPT API以前は高価で難解だったように、ロボティクスも5万ドルの産業用アームの上でしか研究できなかった。それが今や300ドルに下がった。


10章 · NVIDIA GR00T — ヒューマノイド・ファウンデーションモデル

10.1 Project GR00Tの始まり

2024年3月のGTCでJensen Huangが発表した Project GR00T(Generalist Robot 00 Technology) は、NVIDIAのヒューマノイド・ファウンデーションモデル・プロジェクトだ。一言で言えば「ヒューマノイドのGPT」。

このプロジェクトは3つを束ねる。

  1. GR00T N1(2025.03) — 17BパラメータVLA、初の公開重みモデル。
  2. Isaac Lab + Cosmos — シミュレーション・合成データ生成。
  3. Jetson Thor — ヒューマノイド搭載用推論SoC、2025年出荷。

10.2 GR00T N1アーキテクチャ

GR00T N1のコアは System 1 / System 2 デュアルモード(カーネマンの概念を直接借用)。

両者はトークン・クロスアテンションで接続される。人間がボールをキャッチする際の「ボールが落ちる → 手を伸ばす」という遅い計画(System 2)と、指の微調整(System 1)が同時に動くのと同じ構造。

10.3 GR00Tデータ・ピラミッド

NVIDIAのデータ戦略。

        実機デモ(数十〜数百時間)
            up   (最少、最高コスト)
            |
        テレオペ(Apple Vision ProのようなVR)
            |
        シミュレーション(Isaac Sim並列環境)
            |
        Cosmos合成動画(数百万時間)
            |   (最多、最低コスト)
        インターネット動画・ドキュメント

上から下へ進むほど量が増え、品質は下がる。GR00Tはインターネット動画で事前学習し、Cosmosで合成データを増強し、Isaac SimでRL微調整し、最後に実機デモでfinetuneする。

10.4 GR00T推論コード(概念)

# GR00T推論(概念的インターフェース)
from gr00t import GR00TPolicy

policy = GR00TPolicy.from_pretrained("nvidia/gr00t-n1")

observation = {
    "video.image_left": ...,    # 左カメラ
    "video.image_right": ...,   # 右カメラ
    "state.joint_pos": ...,     # 28 DOFヒューマノイド
    "language.instruction": "Pick up the red block and place it on the shelf"
}

# System 2が5Hzで計画、System 1が50Hzでアクション
for t in range(simulation_steps):
    action = policy.predict(observation)  # 28次元アクションベクトル
    new_observation = robot.step(action)
    observation = new_observation

10.5 他のヒューマノイド・ファウンデーションモデル


11章 · VLAモデル — RT-2、OpenVLA、π0

11.1 VLAとは

VLA(Vision-Language-Action) モデルは、入力に画像(V)+ 言語命令(L)を受け取り、出力にアクション(A)トークンを返すモデルだ。LLMのnext-token predictionパターンをそのままアクションに適用したもの。

[ 画像フレーム ] -> vision encoder ----+
[ "Pick up apple" ] -> tokenizer ------+-> Transformer -> [ アクション・トークン ]
[ ロボット状態 ] -> projector ---------+                          |
                                                                  v
                                                  [ dx, dy, dz, gripper ]

11.2 RT-2(2023.07) — 最初のシグナル

Google DeepMindの RT-2 はVLM(PaLI-X 55B、PaLM-E 12B)にRT-1のロボットデータを追加学習したもの。コツはアクションをトークン化してLLMの語彙に追加することだった。

衝撃的だったのは、初見のオブジェクト(絶滅動物カード)・初見の命令(「子犬の絵を移動せよ」)にも汎化したことだ。

11.3 OpenVLA(2024.06) — 初のオープンソースVLA

Stanford・UC Berkeley・Toyota Researchが OpenVLA(7B) を発表。Prismatic VLMベース。

from transformers import AutoModelForVision2Seq, AutoProcessor
from PIL import Image
import torch

processor = AutoProcessor.from_pretrained("openvla/openvla-7b", trust_remote_code=True)
vla = AutoModelForVision2Seq.from_pretrained(
    "openvla/openvla-7b",
    attn_implementation="flash_attention_2",
    torch_dtype=torch.bfloat16,
    trust_remote_code=True
).to("cuda:0")

image = Image.open("camera_view.png")
prompt = "In: What action should the robot take to pick up the cup?\nOut:"
inputs = processor(prompt, image).to("cuda:0", dtype=torch.bfloat16)

action = vla.predict_action(**inputs, unnorm_key="bridge_orig", do_sample=False)
print(action)  # [dx, dy, dz, droll, dpitch, dyaw, gripper]

11.4 π0(Physical Intelligence、2024.10)

Physical Intelligence(PI) はSergey Levine・Chelsea Finnらが創業したスタートアップ。π0(pi-zero) は7BパラメータのFlow Matchingベース VLA。

核心的革新は action chunking + flow matching

# π0 推論の擬似コード
from openpi.models.pi0 import Pi0Policy

policy = Pi0Policy.from_checkpoint("pi0_base")
action_chunk = policy.sample_action(
    images={"primary": img1, "wrist": img2},
    instruction="Fold the blue shirt",
    state=robot_state,
)
# action_chunk: shape [50, action_dim]
for action in action_chunk:
    robot.execute(action)

2025年4月にPIはπ0.5とπ1を公開し、一部の重みはHugging Faceに置かれている。

11.5 VLAモデル比較

モデル開発元パラメータデータオープン
RT-2Google DeepMind55B(PaLI-X)RT-1 + Web非公開
OpenVLAStanford / Berkeley7BOXE 97万完全公開
π0Physical Intelligence7BOXE + 独自部分公開
GR00T N1NVIDIA17B合成 + 実データ重み公開
Figure HelixFigure AI非公開独自非公開
Tesla OptimusTesla非公開独自非公開

11.6 限界と次の一手

VLAがすべてを解くわけではない。2026年現在の限界は次の通り。

  1. 長期ホライズン作業 — 30秒を超える作業は難しい。計画(System 2)が弱い。
  2. データ効率 — 新規タスクに数十〜数百デモが必要。one-shotには遠い。
  3. 安全保証 — ニューラル方策の安全性を形式的に保証するのが難しい。
  4. ハードウェアとソフトウェアの結合 — 同じモデルが別ロボットでうまく動かない。

12章 · Foxglove Studio — データ可視化

12.1 RViz2の限界、Foxgloveの登場

ROS 2の基本可視化ツールは RViz2 だ。十分強力だが限界がある。

Foxglove Studio は2021年にCruise出身者が創業した会社が作ったマルチプロトコル可視化ツールだ。

12.2 MCAP — 新しいログ標準

MCAP(Message Capture) はFoxgloveが作ったログ・コンテナフォーマット。ROS 2 Jazzy以降、rosbag2 のデフォルト保存形式がMCAPに変わった。

特徴。

# rosbag2をMCAPで録画(Jazzyの既定)
ros2 bag record -a -s mcap -o my_session

# MCAPの情報を表示
mcap info my_session/my_session_0.mcap

# 変換
mcap convert old.bag new.mcap

12.3 Foxgloveでデータを見る

# デスクトップアプリでライブROS 2トピックを見る
# - Foxglove Studio起動
# - + Add connection -> ROS 2 -> 自動検出

# またはWebアプリにMCAPファイルをドラッグアンドドロップ
# https://app.foxglove.dev

共同作業に強い点は、チームメンバーが同じMCAPを開いて、同じタイムスタンプの同じパネルレイアウトを見られること。プルリクに「このバグは t=23.4s で発生」とリンクを貼れる。

12.4 PlotJuggler — 信号分析

数値データ(センサ・コントローラ出力)の時系列分析には PlotJuggler が最も便利だ。

sudo apt install ros-jazzy-plotjuggler-ros
ros2 run plotjuggler plotjuggler

CSV・rosbag2・MCAP・ライブトピックすべてをドラッグアンドドロップでプロットでき、数式で新規チャネル作成やフィルタリングが簡単。


13章 · 韓国・日本のロボティクス — 産業強国からヒューマノイドへ

13.1 韓国 — 現代自動車のBoston Dynamicsへの賭け

2021年12月、現代自動車グループがSoftBank Groupから Boston Dynamics を11億ドルで買収した。当時は高すぎるとの評価が多かったが、ヒューマノイド・ブームと共にその意味が明確になった。

韓国の他のプレイヤー。

13.2 日本 — 産業用ロボットの長年の強国

日本は1980年代から産業用ロボット世界1位だ。2026年もその座は変わらない。

産業用ロボット四天王(2026)。

サービス・ヒューマノイド側

13.3 二国のロボティクスの違う質感

韓国日本
強みヒューマノイド(BD)、cobot(Doosan)、モーター(Robotis)産業用アーム(FANUC、Yaskawa)、精密モーター、自動車
弱み産業用標準市場への参入遅れヒューマノイド・AI統合が遅い
R&D政府主導、大企業中心企業主導、職人文化
AI統合早い(LLM・VLAを素早く採用)保守的

2026年の興味深い動向 — 現代-Boston Dynamics-Hyundai Mobis-Hyundai Wia のラインが、米国ビッグテック(Tesla、Figure)と正面から競争できるほぼ唯一の非米陣営になったこと。日本は産業用では依然として強いが、ヒューマノイド・VLA競争では追う立場だ。

13.4 学習リソース


14章 · 参考 / References

ROS 2公式 / Nav2 / MoveIt

シミュレーション

VLA / ファウンデーションモデル

可視化 / データ

ヒューマノイド・プラットフォーム

韓国 / 日本


終わりに — ロボティクスは本当に変わりつつある

2020年のロボティクス開発は「ROS 1 + Gazebo Classic + 手書きコントローラ + 博士号」だった。参入障壁が博士号だった。

2026年のロボティクス開発は「ROS 2 Jazzy + Isaac Sim / MuJoCo + LeRobotから持ってきたVLA + 300ドルのSO-100」だ。参入障壁はノートPCと好奇心だ。

この変化を推進する3つの力。

  1. シミュレーションの成熟 — Isaac Sim・MuJoCo・Gazebo Harmonicが産業グレードの品質を無料で提供。
  2. VLAの登場 — 手で書いていた認識・計画・制御を単一モデルに統合。
  3. 民主化 — LeRobotがデータ・モデル・ハードウェアを一つのオープンパッケージで提供。

これが本当にヒューマノイドを家庭に届けるのか、それとも「5年で自動運転」のような過大宣伝の再演になるのかは、2027〜2028年が答えを示すだろう。しかし一つは確かだ — 2026年は、1年前と比べものにならない道具の山を抱えて、その答えを待つ。

ROS 2を入れ、MuJoCoで一度シミュレーションを回し、LeRobotのACTチュートリアルを一度なぞってみよう。それが2026年ロボティクスに足を踏み入れる最も軽い方法だ。

コメント

まだコメントはありません。

ログインするとコメントできます