ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

非科班如何入门机器人开发?从ROS 2和Gazebo仿真开始

非科班如何入门机器人开发?从ROS 2和Gazebo仿真开始 经常有读者私信问我不是机器人专业出身能转行做机器人开发吗类似的问题被问过太多次了今天就认真写一篇完整的入门路线文。先说结论能而且比很多人想象中更容易。机器人开发并不等同于“机械设计 电机控制”它其实是 Linux、编程、算法、仿真工具和工程实践的组合体。站在 2026 年这个时间点仿真平台、开源生态和在线资料已经非常成熟只要你会用工具、愿意动手跑通一个又一个小的实验完全可以不靠“机器人专业”这块招牌进入这个行业。这篇文章会围绕“非科班如何系统入门机器人”展开内容包括机器人各方向拆解、零基础技术栈清单、基于 ROS 2 Gazebo 的完整仿真入门项目、常见报错排查以及我比较推荐的自学路线。无论你是计算机、自动化、电子、机械背景还是纯粹从代码转过来都能在这篇文章里找到自己的切入方式。1. 先破除一个误区机器人开发不是单一学科很多初学者对“机器人”这个概念的第一印象来自人形机器人、四足机器人这些酷炫的产品。宇树的人形机器人、波士顿动力的 Atlas确实代表了极高的机械和控制水平。但实际走进机器人行业后你会发现真正的工程落地是大量软件工作的堆叠。一个机器人产品的研发链条通常包括需求分析与系统架构判断用哪种结构、哪些传感器、跑在什么算力平台。机器人操作系统和基础软件比如 ROS / ROS 2用来管理各个模块之间的通讯。感知算法摄像头、激光雷达、IMU 等传感器数据处理。导航与运动规划让机器人知道自己在哪、要去哪、怎么走。上层应用交互界面、业务逻辑、云端调度。机械结构与嵌入式控制这部分才和传统机械、电气强相关。换句话说“机器人专业”在高校里往往是一个交叉学科会同时涉及机械、控制、电子和计算机。但真实工作岗位早就分化得很细了。做导航算法的团队不一定需要懂机械设计做上层应用的工程师甚至可以完全不碰单片机。因此非科班出身的人完全可以选择从自己擅长的一侧切入而不是一股脑把所有科目都学一遍。这也是为什么在 2026 年“转行做机器人”这件事的难度比十年前低了很多。工具链成熟了分支也多了每个人都可以找到自己的入口。1.1 机器人方向那么多哪种更适合你先看一张我自己整理的方向分类方便你对号入座方向主要内容适合背景ROS / ROS 2 应用开发节点、话题、服务、动作、仿真调试计算机、软件工程、日常编程经验丰富的人机器人导航与运动规划SLAM、路径规划、避障、Nav2数学与算法基础较好的人工业机器人与 PLC示教器、点位编程、产线自动化自动化、电气背景现场经验重要视觉引导OpenCV、深度学习、手眼标定计算机视觉、图像处理背景嵌入式与硬件MCU、传感器驱动、电机控制电子、嵌入式背景AI 机器人大模型感知、操作决策、具身智能算法工程、模型训练背景从上面的表格能看出所有方向都是“专业技能 机器人场景”的结合。你不需要先成为机器人专家再去学编程相反先把编程和工具链练熟再代入机器人场景会更加顺利。1.2 跨专业入门的真正难点不在“专业壁垒”从我接触过的转行案例看卡住非科班同学的主要有三件事一上来就想做硬件买电机、买底盘、买开发板结果卡在接线和驱动上。过于重视理论把时间花在背公式、推导运动学模型上却迟迟没有跑通一个完整的机器人仿真。学习材料太零散今天看 Python明天看机械臂后天看四足机器人最后没有一条主线。实际上机器人入门最关键的是一件事让一个虚拟机器人动起来。只要你能在仿真环境里控制机器人移动、让它感知周围环境你就已经越过了从 0 到 1 的门槛。2. 非科班入门机器人的最小技术栈很多人被“机器人专家”的头衔吓住以为需要同时掌握 C、Python、Linux、ROS、控制理论、概率机器人学、运动规划、计算机视觉才能开始写代码。这是一个严重误区。下面这套“最小技术栈”是经过大量初学者验证的按优先级排序学完基本可以开始做仿真项目和简单硬件项目2.1 Linux 基础操作机器人开发的主流环境是 Ubuntu 这类 Linux 系统。原因很简单ROS / ROS 2 对 Ubuntu 支持最好Gazebo 等仿真器在 Linux 下运行最稳定工业级机器人软件栈也大多跑在 Linux 上。你不需要成为运维专家但下面这些能力至少要熟练使用终端执行命令理解cd、ls、cp、mv、rm等基础命令。会用sudo安装软件。会配置环境变量能把source写入~/.bashrc。能看懂基本的 Shell 报错信息。会使用 Git 进行代码版本管理。这一阶段的学习资料非常多找一套 Linux 命令行教程练习一周即可。2.2 Python 与 C 二选一推荐先学 PythonROS 2 的官方客户端库主要支持 C 和 Python两者在入门阶段选哪个都可以。我建议编程经验少的人优先学 Python因为语法简单、调试速度快适合把精力集中在 ROS 2 的概念理解上。入门阶段需要掌握的 Python 内容包括变量、列表、字典、循环、函数、类。文件读写。基本的数据处理逻辑。学会使用pip安装第三方依赖。掌握至少一种代码调试方式比如print或 VSCode 调试器。等 Python 写熟了之后再根据自己的方向补 C。需要强调一点我不建议“零基础还同时学 Python 和 C”。语言只是一个工具先把工具用熟练了再去解决机器人问题效率会高很多。2.3 ROS 2 核心概念ROS 2Robot Operating System 2并不是传统意义上的操作系统而是一套分布式通信框架。它把机器人的摄像头、激光雷达、底盘、导航、语音等功能拆成独立模块每个模块通过标准方式互相通信。入门阶段必须理解以下核心概念节点一个执行特定任务的可执行程序例如底盘控制节点。话题节点之间传递连续数据流的通道例如传感器数据。服务一问一答的同步通信方式例如控制机械臂到某个位置。动作适合耗时较长任务的通信方式例如导航到目标点。理解这些概念之后再看 ROS 2 官方教程和社区项目就不会一头雾水了。2.4 仿真平台仿真平台是非科班入门最重要的试错工具强烈建议在买任何实体硬件之前先玩熟一个仿真器。常见的开源/免费仿真平台有Gazebo与 ROS 深度集成适合差速小车、机械臂等常见机器人。Webots入门友好机器人模型库丰富。Isaac SimNVIDIA 出品适合做视觉相关实验对显卡有一定要求。从大多数人的经验来看Gazebo 是入门阶段最容易找到资料的仿真平台也是本文实战案例要用的工具。2.5 数学基础不需要“先学完再动手”机器人领域确实离不开线性代数、空间变换、概率论。但我不建议你在写代码之前先花三个月啃数学。更好的做法是先跑通一个仿真项目在过程中遇到坐标变换就去查欧拉角和四元数遇到导航定位再补概率机器人学。以实际项目驱动学习效果远比先学完所有理论再动手好。3. 2026 年机器人入门路线从仿真到硬件下面是我推荐给非科班同学的一条具体学习路线。这套路线不需要你拥有机器人专业背景只需要一台性能还行的电脑以及每天能拿出 1 到 2 小时。3.1 第一阶段跑通 Gazebo ROS 2 仿真这是整个路线中最重要的一步。目标是让一个虚拟机器人出现在仿真环境里并且能用键盘控制它移动。建议用一个学期中的两三周时间完成下面这些事情在电脑上安装 Ubuntu 系统或准备好虚拟机。安装 ROS 2。安装 Gazebo。找一套简单的差速小车 URDF 模型。在 Gazebo 中加载模型。安装键盘控制节点用键盘控制小车前进、后退、转弯。完成这个阶段后你实际上已经把机器人开发最核心的工作流体验了一遍模型描述、节点启动、话题通信、仿真验证。3.2 第二阶段给机器人装“眼睛”和“大脑”等你能用键盘控制机器人之后再给机器人加传感器。可以按下面顺序做扩展实验在仿真模型上加一个激光雷达插件让机器人能感知周围障碍物。加载一张仿真地图让机器人显示激光扫描数据。使用 SLAM 工具让机器人建图。使用 Nav2 让机器人自主导航到目标点。这一整套流程对应了工业界最常见的“自主移动机器人”方向。很多移动机器人岗位的核心工作就是这个。3.3 第三阶段结合本专业优势找切入点完成前两个阶段后你就有能力结合自己的背景选方向了。如果你是做后端的可以关注机器人云端管理、数据平台、监控告警。很多机器人公司需要后端工程师管理海量的设备状态和业务数据。如果你擅长前端或客户端可以关注机器人 Web 控制台、可视化界面、遥操作界面开发。Pico 4 遥操作宇树机器人这类项目背后需要大量上层软件人才。如果你是做 AI 算法的可以关注视觉感知、目标检测、大模型驱动的机器人操作决策。如果你是做嵌入式开发的可以关注传感器驱动、MCU 控制、实时系统。这正好呼应了标题的观点机器人入门不需要“机器人专业”因为机器人领域需要的技术是多样化的你的原有专业很可能就是你的独特优势。4. 环境准备与版本说明本文的实战部分会以 ROS 2 Gazebo 为例展开。不过在正式开始之前需要先说明版本问题。ROS 2 本身有多个发行版不同发行版对应不同的 Ubuntu 版本。我在本文中不会写死某一个发行版代号安装时请根据你实际的 Ubuntu 版本选择对应版本如果你不确定可以搜索“当前推荐安装的 ROS 2 发行版”。下面命令中的distro都代表你实际安装的发行版代号例如humble、jazzy等需要替换成真实值。4.1 操作系统建议运行 ROS 2 和 Gazebo最省心的是使用原生 Linux 系统。如果你之前一直使用 Windows建议至少准备一块独立硬盘安装 Ubuntu。如果条件暂时不允许也可以用虚拟机但仿真性能会差一些Gazebo 加载复杂场景时可能出现明显卡顿。安装完成后在终端执行lsb_release -a确认系统版本然后根据版本去安装对应的 ROS 2 发行版。4.2 安装 ROS 2 与 Gazebo这里以 apt 方式安装为例。先更新系统索引sudo apt update sudo apt upgrade然后安装桌面版 ROS 2。桌面版会包含常用的库和可视化工具适合学习阶段使用sudo apt install ros-distro-desktop接着安装 Gazebo 与 ROS 2 的桥接包sudo apt install ros-distro-gazebo-ros-pkgs为了方便后续使用把环境变量写入当前终端的配置文件中echo source /opt/ros/distro/setup.bash ~/.bashrc source ~/.bashrc安装完成后验证核心命令ros2 --version gz sim --version如果输出正常说明基础环境已经准备好了。4.3 创建工作空间ROS 2 的代码一般放在一个工作空间中。创建一个专门用于入门练习的工作空间mkdir -p ~/robot_ws/src cd ~/robot_ws colcon build如果系统中还没有安装colcon先安装sudo apt install python3-colcon-common-extensions每次都通过手动 source 来叠加环境比较麻烦可以把下面这行也写入~/.bashrcecho source ~/robot_ws/install/setup.bash ~/.bashrc source ~/.bashrc上面这些步骤看起来简单但非常重要。很多初学者遇到“找不到包”“节点启动不了”等报错根源往往就是工作空间没有 build或者环境变量没有被 source。5. 完整实战在 Gazebo 仿真中做出第一台机器人这一节是文章的核心。我会带你在 Gazebo 中启动一个差速驱动小车并用键盘控制它移动。全程不需要真实硬件。5.1 创建机器人描述包机器人描述包的作用是存放机器人的 URDF 模型文件。URDF 是 ROS 世界里的机器人模型描述格式用来定义机器人的连杆、关节、尺寸和外观。在~/robot_ws/src下创建一个描述包cd ~/robot_ws/src ros2 pkg create --build-type ament_cmake my_robot_description创建完成后在包目录下新建urdf目录mkdir -p my_robot_description/urdf接下来编写一个非常简单的差速小车模型。它包含一个底盘、两个驱动轮和一个万向轮。这里贴出完整 URDF 代码文件路径为~/robot_ws/src/my_robot_description/urdf/my_robot.urdf?xml version1.0? robot namemy_robot !-- 底盘 -- link namebase_link visual geometry box size0.4 0.3 0.1/ /geometry material nameblue color rgba0.2 0.4 0.8 1.0/ /material /visual collision geometry box size0.4 0.3 0.1/ /geometry /collision inertial mass value2.0/ inertia ixx0.05 ixy0.0 ixz0.0 iyy0.05 iyz0.0 izz0.05/ /inertial /link !-- 左轮 -- link nameleft_wheel visual geometry cylinder radius0.05 length0.04/ /geometry material namegray color rgba0.3 0.3 0.3 1.0/ /material /visual collision geometry cylinder radius0.05 length0.04/ /geometry /collision inertial mass value0.2/ inertia ixx0.0002 ixy0.0 ixz0.0 iyy0.0002 iyz0.0 izz0.0002/ /inertial /link !-- 右轮 -- link nameright_wheel visual geometry cylinder radius0.05 length0.04/ /geometry material namegray color rgba0.3 0.3 0.3 1.0/ /material /visual collision geometry cylinder radius0.05 length0.04/ /geometry /collision inertial mass value0.2/ inertia ixx0.0002 ixy0.0 ixz0.0 iyy0.0002 iyz0.0 izz0.0002/ /inertial /link !-- 万向轮 -- link namecaster_wheel visual geometry sphere radius0.03/ /geometry material namewhite color rgba0.9 0.9 0.9 1.0/ /material /visual collision geometry sphere radius0.03/ /geometry /collision inertial mass value0.1/ inertia ixx0.0001 ixy0.0 ixz0.0 iyy0.0001 iyz0.0 izz0.0001/ /inertial /link !-- 左轮关节 -- joint nameleft_wheel_joint typecontinuous parent linkbase_link/ child linkleft_wheel/ origin xyz-0.12 0.18 0.0 rpy0 1.5708 0/ axis xyz0 0 1/ /joint !-- 右轮关节 -- joint nameright_wheel_joint typecontinuous parent linkbase_link/ child linkright_wheel/ origin xyz-0.12 -0.18 0.0 rpy0 1.5708 0/ axis xyz0 0 1/ /joint !-- 万向轮关节 -- joint namecaster_wheel_joint typefixed parent linkbase_link/ child linkcaster_wheel/ origin xyz0.2 0.0 -0.05/ /joint !-- Gazebo 差速驱动插件 -- gazebo plugin namediff_drive filenamelibgazebo_ros_diff_drive.so ros namespace//namespace /ros left_jointleft_wheel_joint/left_joint right_jointright_wheel_joint/right_joint wheel_separation0.36/wheel_separation wheel_diameter0.1/wheel_diameter max_wheel_torque20/max_wheel_torque /plugin /gazebo /robot这段 URDF 的核心逻辑是base_link是底盘左右轮子通过 continuous 关节连接到底盘允许连续旋转万向轮通过 fixed 关节固定。gazebo插件部分告诉 Gazebo 使用差速驱动控制器来控制左右轮最终把速度指令转化为轮子转动。5.2 配置 CMakeLists 与 package.xml为了让 ROS 2 知道这个包里有 URDF 文件需要在构建时把它拷贝到安装目录中。修改my_robot_description/CMakeLists.txt加入 install 指令cmake_minimum_required(VERSION 3.8) project(my_robot_description) if(CMAKE_COMPILER_IS_GNUCXX) add_compile_options(-Wall -Wextra -Wpedantic) endif() find_package(ament_cmake REQUIRED) find_package(urdf REQUIRED) install(DIRECTORY urdf DESTINATION share/${PROJECT_NAME} ) ament_export_dependencies(urdf) ament_package()然后修改package.xml确保依赖声明正确?xml version1.0? ?xml-model hrefhttp://download.ros.org/schema/package_format3.xsd schematypenshttp://www.w3.org/2001/XMLSchema-instance? package format3 namemy_robot_description/name version0.0.1/version descriptionMy first robot description package for simulation/description maintainer emailyouexample.comyour_name/maintainer licenseApache-2.0/license buildtool_dependament_cmake/buildtool_depend dependurdf/depend export build_typeament_cmake/build_type /export /package5.3 创建一个启动文件把机器人放进 Gazebo为了让机器人出现在 Gazebo 中我们需要做三件事启动 Gazebo 仿真环境。启动robot_state_publisher节点读取 URDF 并发布机器人各部分的坐标变换。使用 Gazebo 提供的spawn_entity工具把 URDF 对应的机器人实体加载到仿真世界中。把这套流程写进一个 Python launch 文件会方便很多。在~/robot_ws/src下再创建一个启动包cd ~/robot_ws/src ros2 pkg create --build-type ament_python my_robot_gazebo mkdir -p my_robot_gazebo/launch修改my_robot_gazebo/launch/spawn_robot.launch.pyimport os from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource from launch_ros.actions import Node def generate_launch_description(): # 获取两个包在安装目录中的路径 gazebo_ros_share get_package_share_directory(gazebo_ros) my_robot_desc_share get_package_share_directory(my_robot_description) # gazebo_ros 自带的 gazebo.launch.py会启动 Gazebo 服务端和客户端 gazebo_launch IncludeLaunchDescription( PythonLaunchDescriptionSource( os.path.join(gazebo_ros_share, launch, gazebo.launch.py) ) ) # 读取 URDF 文件内容 urdf_path os.path.join(my_robot_desc_share, urdf, my_robot.urdf) with open(urdf_path, r) as f: robot_desc f.read() # robot_state_publisher发布 URDF 中的关节状态和坐标变换 robot_state_publisher Node( packagerobot_state_publisher, executablerobot_state_publisher, parameters[{robot_description: robot_desc}] ) # spawn_entity把机器人实体生成到 Gazebo 世界中 spawn_entity Node( packagegazebo_ros, executablespawn_entity.py, arguments[-topic, robot_description, -entity, my_robot], outputscreen ) return LaunchDescription([ gazebo_launch, robot_state_publisher, spawn_entity, ])这段代码的意图很直接先启动 Gazebo再发布机器人模型最后把一个叫作my_robot的实体放进仿真环境。看起来代码不少但它解决了一个很常见的问题每次都要手动开多个终端、输入多行命令非常容易出错。5.4 编译并启动仿真回到工作空间根目录编译刚才创建的两个包cd ~/robot_ws colcon build --symlink-install source install/setup.bash然后启动 launch 文件ros2 launch my_robot_gazebo spawn_robot.launch.py如果一切正常Gazebo 窗口会出现一个蓝色的底盘小车。如果小车还没出现可以检查终端里是否有报错并用ros2 topic list查看是否有话题发布ros2 topic list重点看一下是否存在/cmd_vel。这个话题是速度控制指令的入口。5.5 用键盘控制机器人移动在另一个终端中安装并运行键盘控制节点sudo apt install ros-distro-teleop-twist-keyboard ros2 run teleop_twist_keyboard teleop_twist_keyboard启动后终端会显示按键说明。把光标聚焦在终端窗口上按i前进按k停止按j左转按l右转。此时观察 Gazebo小车应该会开始移动。如果按键后小车没有反应先检查/cmd_vel是否真的在发布数据ros2 topic echo /cmd_vel --once如果看到类似linear: x: 0.5和angular: z: 0.0的输出说明指令已经发出问题出在 Gazebo 插件或 URDF 模型配置上。5.6 运行结果与下一步到这里你已经完成了第一个完整的机器人仿真实验从写 URDF 模型到启动 Gazebo再到用键盘控制机器人运动。这个过程涵盖了 ROS 2 的节点、话题、launch、URDF、插件等核心概念也基本复刻了企业和高校里做机器人算法验证时的日常流程。接下来你会自然想到一个问题如何让机器人自动行驶到指定地点这一步就要引入机器人导航相关技术包括 SLAM 建图、定位和路径规划。6. 从“动起来”到“能导航”移动机器人进阶路径Gazebo 里能动起来的仿真小车本质上只是验证了底层运动控制。真实场景中的移动机器人通常还需要完成自主导航任务。围绕“机器人导航”这个热词推荐按下面的顺序做进阶实验6.1 给仿真车加激光雷达在 URDF 文件中增加一个激光雷达 link并在 Gazebo 插件中加入激光雷达传感器让机器人能发射激光并感知障碍物。这一步做完后可以用rviz2可视化激光点云数据。6.2 建图使用slam_toolbox包手动控制机器人在仿真环境中移动同时让 SLAM 算法实时构建栅格地图。这个过程和很多真实扫地机器人第一次扫描房间的过程非常相似。6.3 自主导航通过 Nav2 启动导航系统给机器人设置一个目标点机器人会基于已有地图规划路径并避开障碍物。Nav2 是当前 ROS 2 中最主流的导航框架涉及全局路径规划、局部路径规划、代价地图、行为树等概念。建议实验内容ros2 launch nav2_bringup bringup_launch.py map:你建好的地图这里只是一个示例命令具体参数会因 Nav2 版本不同而变化。你需要结合版本阅读官方文档核心目的是理解“导航栈是怎么消费地图和传感器数据的”。7. 非科班入门常见问题与排查思路不少初学者在仿真入门阶段会遇到相似的问题。下面整理一份高频问题清单方便你直接对号入座。问题现象常见原因解决思路Gazebo 打开后非常卡顿虚拟机图形性能不足或仿真频率太高优先使用原生 Linux降低仿真更新频率关闭无用渲染效果ros2命令提示找不到ROS 2 环境变量没有被 source执行source /opt/ros/distro/setup.bash再写入~/.bashrc启动 launch 后找不到my_robot_description包工作空间没有编译或当前终端没有 source install/setup.bash回到工作空间执行colcon build然后重新 sourceGazebo 启动失败提示缺少插件缺少 gazebo_ros 桥接包安装ros-distro-gazebo-ros-pkgs键盘控制无反应/cmd_vel没有数据teleop 节点没有正常运行或话题名称不一致用ros2 topic list和ros2 topic echo /cmd_vel --once排查键盘有数据但 Gazebo 小车不动差速驱动插件配置错误检查 URDF 中左右轮joint名称是否与插件配置一致编译时提示缺少依赖package.xml 中依赖声明不完整使用rosdep安装依赖并在 package.xml 中补充依赖排查这类问题时一定要养成一个习惯先确认数据流通路径。键盘节点发出/cmd_vel指令Gazebo 插件订阅该指令并驱动轮子运动如果中间某一环节断了就从断点开始查。这个思路比盲目重装环境可靠得多。8. 给非科班同学的最佳实践与学习建议最后这部分我想分享几条比较实用的学习建议尤其是给那些没有“机器人专业”背景、靠自己摸索的同学。8.1 先仿真后硬件仿真环境是学习成本最低的试错场。你可以在 Gazebo、Webots、Isaac Sim 里免费做大量实验不需要担心硬件损坏、电池耗尽、场地受限。很多人在仿真阶段积累了足够的系统思维后再上手真实机器人反而非常快。8.2 先复制后修改再创造不要一上来就自己写 URDF、自己写导航算法。正确的顺序是先运行官方教程示例把流程跑通然后修改参数观察变化最后再从零搭一个小项目。对非科班同学来说“能用”永远比“完全原创”更重要。8.3 建立自己的 Demo 仓库每完成一个实验就把代码整理到 Git 仓库里配上 README记录你遇到的问题和解决方案。这不仅是复习资料也是你未来求职时最有力的作品集。很多非科班转行成功的同学靠的正是一系列可复现的实验项目。8.4 80% 时间动手20% 时间补理论理论学习永远没有尽头但动手实验能让你快速建立信心。如果你每天只有 1 小时建议 45 分钟写代码、调试、跑仿真15 分钟翻资料补充对应理论。当你遇到不懂的名词再去看解释记忆会更深刻。8.5 结合原专业放大优势如果你是后端开发可以研究机器人云端数据平台如果你是前端可以做可视化遥操作界面如果你是测试可以专注机器人仿真测试框架。机器人行业不是只有算法岗它还缺非常多的工程化人才这正是非科班同学的机会。9. 总结这篇文章从观念、技术栈、路线、代码实战到排错经验完整梳理了一条非“机器人专业”背景入行机器人的路径。核心可以概括成三条第一机器人开发不是单一学科而是多种工程能力的组合每个人都能找到自己的切入点。第二入门阶段不需要盲目啃理论也不需要马上买硬件把 ROS 2 和 Gazebo 这一套仿真工具链用熟练就已经完成了从 0 到 1 的跨越。第三真正稀缺的从来不是“机器人专业”这个头衔而是动手跑通项目、解决实际问题的能力。如果这篇文章对你有帮助建议先收藏然后照着第 5 节的实战案例动手试一次。代码报错不要紧卡住的时候再回来看排查清单。等你亲手让仿真小车在 Gazebo 里动起来的那一刻你会明白机器人入门真的不需要“机器人专业”。
返回列表