AI + 机器人实战教程 — 从0到1搭建具身智能Agent
2026年,具身智能(Embodied AI)全面爆发!本文手把手教你用ROS2 + LangGraph + VLM搭建具身智能机器人Agent,实现“看懂世界 + 自主行动”。包含硬件选型、完整代码、仿真环境和真实部署方案。跟着做,你就能做出自己的AI机器人!
一、2026具身智能为什么这么火?
2026年,AI从“云端对话”走向“物理世界行动”。具身智能让机器人真正理解物理规律、自主完成任务,成为机器人、工业、服务等领域核心技术。
核心趋势:
- 世界模型 + VLM(视觉语言模型)
- 多Agent协同控制
- 合成数据训练 + 真实世界微调
机会:掌握具身智能 = 抓住机器人时代红利。
二、硬件选型推荐
入门级:Raspberry Pi 5 + Hailo加速卡进阶级:NVIDIA Jetson Orin Nano / Unitree Go2开发平台专业级:全尺寸人形机器人平台(如宇树H1、智元机器人)
三、完整实战教程:AI视觉抓取机器人
目标:机器人看到物体后,自主规划路径并抓取。
Step 1:环境搭建(ROS2)
# 安装ROS2 Humble sudo apt install ros-humble-desktop # 安装必要包 pip install ultralytics langgraph opencv-pythonStep 2:核心代码(VLM + LangGraph Agent)
import cv2 from ultralytics import YOLO from langgraph.graph import StateGraph, END from langchain_openai import ChatOpenAI llm = ChatOpenAI(model="qwen-vl-max") class RobotState(dict): image: any objects: list plan: str action: str def vision_module(state): model = YOLO("yolov8n.pt") results = model(state["image"]) objects = [r.names[int(cls)] for r in results[0].boxes.cls] return {"objects": objects} def planner_agent(state): prompt = f"看到物体:{state['objects']},请规划抓取动作。" res = llm.invoke(prompt) return {"plan": res.content} def executor_agent(state): # 调用机器人控制接口 print(f"执行动作:{state['plan']}") return {"action": "抓取完成"} workflow = StateGraph(RobotState) workflow.add_node("vision", vision_module) workflow.add_node("planner", planner_agent) workflow.add_node("executor", executor_agent) workflow.set_entry_point("vision") workflow.add_edge("vision", "planner") workflow.add_edge("planner", "executor") workflow.add_edge("executor", END) app = workflow.compile() # 运行 frame = cv2.imread("scene.jpg") result = app.invoke({"image": frame})运行效果:输入摄像头画面,Agent自动识别、规划、执行。
四、ROS2仿真环境搭建(详细版)
ROS2是具身智能开发的核心框架,仿真环境可以让你在没有真实硬件的情况下快速验证算法。
1. 安装Gazebo仿真器
# Ubuntu 22.04 + ROS2 Humble sudo apt update sudo apt install ros-humble-gazebo-ros-pkgs ros-humble-gazebo-ros2-control -y # 验证安装 gazebo --version常用命令:
- 启动空世界:gazebo
- 启动带机器人的世界:ros2 launch gazebo_ros gazebo.launch.py
2. 使用MoveIt!规划机械臂
MoveIt! 是ROS2中最强大的机械臂运动规划库。
安装:
sudo apt install ros-humble-moveit ros-humble-moveit-servo -y创建机械臂项目:
# 创建工作空间 mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src ros2 pkg create --build-type ament_cmake my_robot_moveit # 使用MoveIt Setup Assistant生成配置文件 ros2 launch moveit_setup_assistant setup_assistant.launch.py核心规划代码示例(moveit_planning.py):
import rclpy from moveit_commander import MoveGroupCommander, PlanningSceneInterface from geometry_msgs.msg import Pose rclpy.init() move_group = MoveGroupCommander("arm") # 设置目标位姿 target_pose = Pose() target_pose.position.x = 0.3 target_pose.position.y = 0.2 target_pose.position.z = 0.5 target_pose.orientation.w = 1.0 move_group.set_pose_target(target_pose) success = move_group.go(wait=True) print("规划是否成功:", success) rclpy.shutdown()3. 结合NVIDIA Isaac Sim进行高保真仿真
Isaac Sim是目前最强大的机器人仿真平台,尤其适合具身智能。
安装步骤(NVIDIA官方):
- 安装Omniverse Launcher
- 下载Isaac Sim 2023.1+版本
- 安装ROS2 Bridge扩展
Isaac Sim + ROS2桥接配置:
# 启动Isaac Sim仿真 ./isaac_sim.sh # 启动ROS2 Bridge ros2 run isaac_ros_bridge isaac_ros_bridge优势:物理仿真极度真实,支持光照、碰撞、传感器模拟,可直接训练具身智能策略。
五、真实硬件部署(详细版)
1. Jetson Orin Nano上部署量化模型
# 安装TensorRT sudo apt install tensorrt # 模型量化(FP16) python3 -m torch2trt model.pth --fp16 -o model.engine # 推理加速测试 trtexec --loadEngine=model.engine --shapes=input:1x3x640x640部署YOLOv8示例:
from ultralytics import YOLO import tensorrt as trt model = YOLO("yolov8n.engine") # 使用TensorRT引擎 results = model("test_image.jpg", device="cuda")2. 使用ROS2 Bridge连接机械臂
# 安装机械臂驱动 ros2 pkg create my_robot_driver # 示例驱动节点 class ArmDriver(Node): def __init__(self): super().__init__("arm_driver") self.publisher = self.create_publisher(JointState, "joint_states", 10) def publish_joint_states(self): msg = JointState() msg.position = [0.5, 1.2, -0.8] # 示例关节角度 self.publisher.publish(msg)配置:
- 修改urdf文件描述机械臂结构
- 使用ros2_control硬件接口
3. 实现闭环控制(Vision + Planning + Execution)
# 完整闭环控制节点 class EmbodiedAgent(Node): def __init__(self): super().__init__("embodied_agent") self.vision_sub = self.create_subscription(Image, "camera/image", self.vision_callback, 10) self.arm_client = self.create_client(FollowJointTrajectory, "/arm_controller/follow_joint_trajectory") def vision_callback(self, msg): # 视觉识别 detections = self.detect_objects(msg) # 规划 plan = self.plan_grasp(detections) # 执行 self.execute_plan(plan)闭环控制流程:
- 摄像头获取图像
- VLM / YOLO识别物体
- MoveIt!规划抓取轨迹
- 执行器执行动作
- 反馈调整(闭环)
