跳转至

教程简介与使用指南

这不是一本只会甩命令的速查表,而是一条带你从“把狗连上”走到“自己写功能”的上手路线。

本节你将学到

  • 这本书适合谁,默认你已经会什么,不会什么
  • 整本书的章节依赖关系,为什么建议按顺序往下做
  • 跟着本书动手时最省心的节奏:先理解,再抄代码,再看现象
  • 遇到报错时先查哪里,哪些问题属于本书范围,哪些不属于
  • 怎么判断自己不是“只是把命令敲出来了”,而是真的入门了

背景与原理

这本书的素材,不是从网上东拼西凑来的教程,而是从真实开发过程里一条条沉淀出来的笔记、代码和踩坑记录整理出来的。

这件事很重要。因为机器狗开发和一般 Python 小项目不一样,你不是在跟一个安静的程序打交道,而是在跟一台会动、会摔、会因为接口层级不对而出事的实体机器人打交道。

所以本书从一开始就坚持三件事:

  1. 不只告诉你“怎么做”,还告诉你“为什么这么做”
  2. 不把中间那些容易踩坑的工程细节藏起来
  3. 先建立安全边界,再去讲功能和酷炫效果

你会发现本书很多章节都长这样:先讲背景,再画架构,再一步一步搭起来,最后再讲怎么验证和怎么排错。

这不是故意啰嗦,而是因为只给命令不解释,读者一旦遇到跟作者环境不一样的地方,基本就卡死了。

这本书默认你具备什么基础

我们默认你已经装好了 Ubuntu 22.04,愿意使用终端,也能大概看懂 Python 代码。

但我们不默认你已经做过机器人开发,也不默认你知道 DDS、TF、里程计、高层控制和低层控制这些词是什么意思。

换句话说,这本书不是“从零到会开机”的科普,也不是“面向老鸟的省略写法”。它的目标是:让第一次认真做 Go2 开发的人,能跟着走通一条完整链路。

为什么建议按顺序看

Go2 的很多能力是串起来的。

你在第 1 章搭的环境,会直接影响第 2 章能不能看到消息;第 2 章对消息接口的理解,又会影响后面控制节点、可视化、SLAM、导航到底写得顺不顺。

如果中间跳章,最常见的结果不是“学得更快”,而是“少读了三页,结果多查两小时日志”。

这本书最推荐的使用姿势

把它当成一条主线,而不是一本词典。你当然可以回头查某一章,但第一次上手时,老老实实按顺序往下走,整体阻力会小很多。

架构总览

先看整本书的大图,再决定自己现在站在哪儿:

flowchart LR
    A[开篇<br/>认识教材、硬件、环境、安全] --> B[第 1 章<br/>环境搭建]
    B --> C[第 2 章<br/>认识 Go2 消息接口]
    C --> D[第 3-6 章<br/>功能包开发]
    D --> E[第 7-9 章<br/>ROS2 通信实战]
    E --> F[第 10-13 章<br/>感知、建图、导航]
    F --> G[第 14-15 章<br/>语音与视觉]
    G --> H[第 16-17 章<br/>任务编排与未来方向]

如果你更关心“我现在先看哪几章”,可以直接看这张依赖表:

阶段 你会得到什么 建议阅读顺序
开篇 不把机器狗当黑盒,也不把它当玩具 0.1 → 0.2 → 0.3 → 0.4
基础篇 连上 Go2,跑通 ROS2,读懂消息接口 第 1 章 → 第 2 章
功能包篇 写出第一个自己的控制/桥接/可视化节点 第 3 章 → 第 6 章
通信篇 真正理解 Topic / Service / Action 的工程用法 第 7 章 → 第 9 章
感知篇 让 Go2 开始“看见”和“认识空间” 第 10 章 → 第 13 章
交互与综合篇 做出更像完整产品的系统 第 14 章之后

环境准备

开始读这本书前,先确认你手里至少有这些东西:

项目 为什么要有
Ubuntu 22.04 电脑 本书所有命令和依赖都按这个环境写
Go2 EDU 本体 基础篇默认你要连真机
扩展坞 EDU 版默认配备,是所有章节的主开发环境
网线或可靠的有线转接器 第 1 章环境搭建要先把电脑和 Go2 连起来
充好电的遥控器 实机测试时,它不是装饰品,是兜底开关
愿意留出一点时间看解释 这本书不是只让你复制命令,更是帮你减少后面返工

如果你暂时没有麦克风、外接相机等外设,不影响你开始前面的基础篇,后期再补就行。

前两章真正需要的核心组合,其实就是:一台 Ubuntu 电脑 + 一只带扩展坞、能正常开机通信的 Go2 EDU

后面所有动手章节,也都默认你已经能 SSH 进扩展坞,并把它当成主要运行环境。

这本书不打算解决什么问题

如果你用的是别的 Ubuntu 版本、别的 ROS2 版本,或者打算用 WSL、虚拟机、奇怪的网络桥接方式强行跑通,那么你遇到的一部分问题就不一定在本书的处理范围内了。

实现步骤

步骤一:先把开篇四节读完,再去敲第 1 章的命令

很多人一看到“环境搭建”四个字就条件反射地打开终端,结果是命令敲得飞快,脑子里一片空白。

开篇四节的存在,就是为了让你在真正动手前先知道三件事:

  • 你面对的硬件到底有哪些部分
  • 电脑上的环境栈到底是怎么一层层叠起来的
  • 哪些接口今天可以碰,哪些接口现在碰了大概率出事

步骤二:每一章都按“先懂目标,再抄步骤,再看结果”的节奏走

建议你每章都按下面这个顺序:

  1. 先读完“本章你将学到”和“架构总览”
  2. 再开始跟着实现步骤操作
  3. 每做完一小步,就停下来做一次结果验证
  4. 出现异常,先看本章的“常见问题”,再去翻终端日志

这个节奏看起来慢一点,但总耗时反而更短。

因为真正费时间的,从来不是多看两页解释,而是误把一条错误链路当成对的,后面整章都在歪着跑。

步骤三:别跳过“结果验证”和“常见问题”

初学者最容易忽略的,就是这两节。

可惜它们恰恰最值钱。因为机器人开发里的“没报错”不等于“真的对了”,你必须能从现象上确认:

  • 消息是不是确实在流
  • 节点是不是确实连上了
  • 机器人是不是按你想的那条链路在响应

步骤四:把自己的问题归类

当你卡住时,先问自己这属于哪一类:

问题类型 最应该先查什么
完全连不上 Go2 网络配置、网卡、环境脚本是否加载
能连上但看不到消息 DDS 配置、话题名、消息类型
代码能跑但狗不动 指令接口层级、动作条件、实机状态
数据在跳、在乱飞 坐标系、时间戳、QoS、传感器链路

很多问题表面长得像“代码错了”,根上其实是环境或者接口层级没搞对。

编译与运行

这一节还不会让你真正编译任何代码,但你现在就可以先养成一个正确习惯:每开始一章,都先问“这一章的成功现象是什么”

以第 1 章和第 2 章为例,你真正要追的成功现象不是“命令执行完了”,而是:

  • 你能看到 Go2 的状态话题
  • 你能编译出自己的第一个包
  • 你能写出一个最小节点,读到 /lf/sportmodestate

如果你从第一章开始就带着这种“现象导向”的思路,后面做 SLAM、导航、语音、视觉时会轻松很多。

结果验证

读完本节后,你可以用下面三个问题检查自己有没有进入正确状态:

  1. 你能不能说清楚这本书不是“查 API 手册”,而是一条逐章推进的开发路线?
  2. 你知不知道为什么建议按顺序学,而不是一上来就跳去看导航和视觉?
  3. 你能不能接受:遇到问题时,先查章节里的验证和常见问题,而不是立刻怀疑“是不是 Go2 有毒”?

如果这三个问题你都能回答得比较稳,说明这本书的打开方式已经对了。

常见问题

我可以直接跳过开篇去看代码吗?

可以,但不建议。

前面省下来的十分钟,通常会在后面变成更多时间花在“这玩意儿到底是高层接口还是低层接口”“为什么它会突然抖”“我现在到底该查 topic 还是查 TF”这种问题上。

我没学过机器人学,会不会看不懂?

不用把自己吓住。

本书会讲必要的背景,但只讲你马上要用上的那部分。你需要的是愿意跟着做,而不是先把整本机器人教材啃完。

我是不是一定得把每段代码全背下来?

不用。

你真正应该背下来的,是链路和判断方法:这个节点在收什么、发什么、依赖谁、成功时应该看到什么现象。

本节小结

这一节的目标,不是教你任何具体命令,而是把整本书的打开方式先摆正。

从现在开始,你应该把这本书看成一条逐步展开的开发主线:先认识硬件和安全边界,再搭环境,再理解接口,再写功能,最后再做更复杂的感知和交互。

只要这个顺序不乱,后面每一章都会顺很多。

下一步

下一节我们先不碰代码,先把你手里的这只 Go2 拆成几个开发者最该认识的部分:机身、关节、传感器、供电和扩展坞。

继续阅读:Go2 硬件一图看懂