Skip to content

Commit d1904e1

Browse files
committed
img: adjust the display width of img
1 parent 776ca84 commit d1904e1

7 files changed

Lines changed: 312 additions & 20 deletions

docs/10.lidar_2d_slam.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ roslaunch tianracer_rviz view_mapping.launch
7979
2. 观察 Rviz 界面,白色的区域是路,黑色的线条是墙。
8080
3. **关键点**:速度要慢,转弯要稳,让激光雷达有足够的时间“看清”环境。
8181

82-
![建图过程](assets/10/2d_lidar_slam.png)
82+
![width:600px](assets/10/2d_lidar_slam.png)
8383

8484
---
8585

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
---
2+
marp: true
3+
theme: TsinghuaPPT
4+
paginate: true
5+
---
6+
7+
<style>
8+
img {
9+
width: 60%;
10+
height: auto;
11+
display: block;
12+
margin: 0 auto;
13+
}
14+
</style>
15+
16+
<!-- backgroundImage: url("../images/title.png") -->
17+
18+
# Formula Mini (Tianracer) 实战指南
19+
20+
**目标**:掌握赛车启动、调试、建图与导航
21+
22+
**设备**:Tianracer (Formula Mini)
23+
**环境**:ROS 2 (Robot Operating System)
24+
25+
---
26+
27+
## 📋 本节目录
28+
29+
1. 启动机器人 (Interfacing)
30+
2. 可视化调试 (RViz)
31+
3. 激光建图 (SLAM)
32+
4. 反应式运动 (Reactive)
33+
5. 自动导航 (Navigation)
34+
35+
---
36+
37+
# 1️⃣ 启动机器人 (Interfacing)
38+
39+
## 一键启动 vs 分布启动 🚀
40+
41+
要让机器人动起来,我们有两种方式:
42+
43+
1. **一键启动 (All at once)**:就像打开总开关,启动所有设备。
44+
2. **单独启动 (Separately)**:像检查零件一样,单独开启某个传感器。
45+
46+
### ✅ 推荐:一键启动
47+
48+
```bash
49+
ros2 launch tianracer_bringup tianracer_bringup.launch.py
50+
```
51+
52+
---
53+
54+
## 🔧 单独启动硬件
55+
56+
如果你只想测试某个特定部件,可以使用以下命令:
57+
58+
### 核心底盘与雷达
59+
60+
```bash
61+
# 启动底盘(车轮、电机控制)
62+
ros2 launch tianracer_core tianracer_core.launch.py
63+
64+
# 启动激光雷达(机器人的眼睛)
65+
ros2 launch tianracer_bringup lidar.launch.py
66+
```
67+
68+
---
69+
70+
## 📷 启动相机与定位 (选配)
71+
72+
根据你的小车配置,选择启动以下设备:
73+
74+
```bash
75+
# 启动 RGBD 深度相机
76+
ros2 launch tianracer_bringup rgbd_camera.launch.py
77+
78+
# 启动普通 USB 摄像头
79+
ros2 launch tianracer_bringup usb_cam.launch.py
80+
81+
# 启动 GPS 定位模块
82+
ros2 launch tianracer_bringup gps.launch.py
83+
```
84+
85+
---
86+
87+
# 2️⃣ 可视化调试 (RViz) 🔍
88+
89+
## 什么是 RViz?
90+
91+
**RViz** 是 ROS 的可视化工具。
92+
它能把机器人看到的数字信号(雷达点云、坐标)变成我们要看懂的图像。
93+
94+
> **💡 提示**:下面的命令需要在电脑端的终端运行,不是在小车上!
95+
96+
---
97+
98+
## 查看传感器数据 (1/2)
99+
100+
```bash
101+
# 1. 查看激光雷达 (Lidar)
102+
# 看到周围环境的轮廓点
103+
ros2 launch tianracer_rviz view_lidar.launch.py
104+
105+
# 2. 查看惯性测量单元 (IMU)
106+
# 看到小车的姿态(是不是歪了)
107+
ros2 launch tianracer_rviz view_imu.launch.py
108+
109+
# 3. 查看里程计 (Odom)
110+
# 看到小车走过的轨迹
111+
ros2 launch tianracer_rviz view_odom.launch.py
112+
```
113+
114+
---
115+
116+
## 查看传感器数据 (2/2)
117+
118+
```bash
119+
# 4. 查看摄像头图像
120+
# 就像看监控画面
121+
ros2 launch tianracer_rviz view_image.launch.py
122+
123+
# 5. 查看机器人模型 (URDF/TF)
124+
# 检查机器人的关节和坐标系是否正常
125+
ros2 launch tianracer_rviz view_robot.launch.py
126+
```
127+
128+
---
129+
130+
# 3️⃣ 激光建图 (Mapping) 🗺️
131+
132+
## 绘制地图 (SLAM)
133+
134+
启动机器人后,我们需要让它在一个陌生环境中走一圈,把地图画出来。我们提供三种算法:
135+
136+
```bash
137+
# 方式 1: GMapping (经典算法,最常用)
138+
ros2 launch tianracer_slam gmapping.launch.py
139+
140+
# 方式 2: SLAM Toolbox (功能更强大)
141+
ros2 launch tianracer_slam slam_toolbox.launch.py
142+
143+
# 方式 3: Cartographer (Google 开发,精度高)
144+
ros2 launch tianracer_slam cartographer.launch.py
145+
```
146+
147+
---
148+
149+
## 查看与保存地图 💾
150+
151+
### 实时查看建图过程
152+
153+
```bash
154+
ros2 launch tianracer_rviz view_mapping.launch.py
155+
```
156+
157+
### 保存地图 (重要!)
158+
159+
建图完成后,必须保存才能在导航中使用。
160+
地图默认保存在 `tianracer_slam/maps/` 目录下,文件名为 `tianbot_office`
161+
162+
```bash
163+
ros2 launch tianracer_slam map_save.launch.py
164+
```
165+
166+
---
167+
168+
# 4️⃣ 反应式运动 (Reactive) ⚡
169+
170+
## 什么是反应式运动?
171+
172+
不需要地图,机器人直接根据传感器数据做出反应。就像人的**条件反射**
173+
174+
```bash
175+
# 1. 沿墙走 (Wall Following)
176+
# 贴着墙壁自动行驶
177+
ros2 launch tianracer_navigation wall_following.launch.py
178+
179+
# 2. 竞速模式 1 (NPU Battle Fast 1)
180+
ros2 launch tianracer_navigation npu_battle_fast1.launch.py
181+
182+
# 3. 竞速模式 2 (NPU Battle Fast 2)
183+
ros2 launch tianracer_navigation npu_battle_fast2.launch.py
184+
```
185+
186+
---
187+
188+
# 5️⃣ 自动导航 (Navigation) 🧭
189+
190+
## 导航的核心组合
191+
192+
导航 = **规划器 (Planner)** + **控制器 (Controller)**
193+
194+
* **Planner**: 大脑,规划从 A 到 B 的路线。
195+
* **Controller**: 手脚,控制油门和方向盘去执行路线。
196+
197+
> **注意**:运行以下命令前,请确保已经保存了地图,并修改命令中的 `use_map` 参数为你实际的地图名。
198+
199+
---
200+
201+
## 经典导航组合
202+
203+
最常用的两种配置:
204+
205+
```bash
206+
# 组合 1: NavFn (规划) + DWB (控制)
207+
# 最标准的 ROS2 导航配置
208+
ros2 launch tianracer_navigation2 nav2.launch.py \
209+
use_map:=tianbotoffice_603 use_planner:=navfn_dwb
210+
```
211+
212+
```bash
213+
# 组合 2: NavFn (规划) + TEB (控制)
214+
# TEB 算法对动态避障效果更好
215+
ros2 launch tianracer_navigation2 nav2.launch.py \
216+
use_map:=tianbotoffice_603 use_planner:=navfn_teb
217+
```
218+
219+
---
220+
221+
## 进阶算法组合 (1/2) 🧠
222+
223+
适合复杂场景或高速赛车:
224+
225+
```bash
226+
# 组合 3: SMAC + Graceful
227+
# SMAC 适合非全向移动机器人
228+
ros2 launch tianracer_navigation2 nav2.launch.py \
229+
use_map:=tianbotoffice_603 use_planner:=smac_graceful
230+
```
231+
232+
```bash
233+
# 组合 4: Theta* + MPPI
234+
# MPPI 是基于模型的预测控制,非常先进
235+
ros2 launch tianracer_navigation2 nav2.launch.py \
236+
use_map:=tianbotoffice_603 use_planner:=theta_star_mppi
237+
```
238+
239+
---
240+
241+
## 进阶算法组合 (2/2) 🏎️
242+
243+
```bash
244+
# 组合 5: Theta* + Regulated Pure Pursuit (纯追踪)
245+
# 纯追踪算法适合高速循迹
246+
ros2 launch tianracer_navigation2 nav2.launch.py \
247+
use_map:=tianbotoffice_603 use_planner:=theta_star_rpp
248+
```
249+
250+
```bash
251+
# 组合 6: Theta* + Vector Pursuit (向量追踪)
252+
# 改进版的追踪算法
253+
ros2 launch tianracer_navigation2 nav2.launch.py \
254+
use_map:=tianbotoffice_603 use_planner:=theta_star_vector_pur
255+
256+
```
257+
258+
---
259+
260+
## 📚 本节总结
261+
262+
| 步骤 | 关键命令 (简化) | 作用 |
263+
| --- | --- | --- |
264+
| 1. 启动 | `ros2 launch tianracer_bringup bringup.launch.py` | 唤醒机器人 |
265+
| 2. 调试 | `ros2 launch tianracer_rviz view_lidar.launch.py` | 检查传感器 |
266+
| 3. 建图 | `ros2 launch tianracer_slam gmapping.launch.py` | 绘制环境 |
267+
| 4. 保存 | `ros2 launch tianracer_slam map_save.launch.py` | 留下地图 |
268+
| 5. 导航 | `ros2 launch tianracer_navigation2 nav2.launch.py` | 自动驾驶 |
269+
270+
---
271+
272+
# 实战演练 🎮
273+
274+
**课堂任务**
275+
276+
1. [ ] 使用 GMapping 算法构建教室的地图
277+
2. [ ] 成功保存地图文件
278+
3. [ ] 使用 NavFn + DWB 组合,让小车自动从门口走到讲台
279+
280+
**遇到问题?**
281+
如果导航时小车原地打转,请检查是否正确设置了初始位置 (Initial Pose)。
282+
283+
<!-- _footer: ■ tianbot -->
284+
285+
---
286+
![bg](../images/thanks.png)

docs/2.quick_usage.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,15 @@ img {
5454
- **无需拆卸**:您可以直接连接车身上的充电接口。
5555
- **专用设备**:请务必使用原厂配套的平衡充,保护锂电池寿命。
5656

57-
![充电连接图](assets/2/charge-display.png)
57+
---
58+
59+
![width:600px](assets/2/charge-display.png)
5860

5961
---
6062

61-
![充电状态展示图](assets/2/charge-state.png)
63+
![width:600px](assets/2/charge-state.png)
6264

65+
---
6366
## 🕹️ 无线遥控模式
6467

6568
Formula Mini 支持多种遥控器,让你像玩遥控赛车一样控制它。
@@ -68,7 +71,7 @@ Formula Mini 支持多种遥控器,让你像玩遥控赛车一样控制它。
6871
- **开启**:长按电源键。
6972
- **优势**:极低的延迟,专业级的遥控距离。
7073

71-
![遥控器示意](assets/2/joystick-t8s-control.png)
74+
![width:600px](assets/2/joystick-t8s-control.png)
7275

7376
---
7477

docs/3-1.reconnect_and_software_env_config.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,8 @@ ssh sunrise@192.168.0.72
296296

297297
# 5 文件传输:数据的小卡车
298298

299+
---
300+
299301
## 5.1 打开传输功能
300302

301303
在远程窗口顶部找到"文件传输"图标。

0 commit comments

Comments
 (0)