RDK X3 作为高性价比入门级机器人开发套件,5TOPS 算力完美适配轻量 AI 应用开发,深度学习巡线小车是入门经典场景,但很多伙伴在开发中会遇到巡线偏差大、识别卡顿、小车跑偏等问题。本次就基于地瓜机器人官网配套资源,分享 RDK X3 深度学习巡线小车的完整开发流程,从环境搭建到真机运行,新手也能快速上手!
一、开发准备
硬件
地瓜 RDK X3 开发套件、巡线小车底盘(含电机驱动)、MIPI 摄像头(地瓜官方配套)、12V 供电电源、杜邦线
软件
地瓜 RDK Studio 集成开发环境、RDK OS(预装于 X3 板卡)、地瓜官方深度学习巡线模型、Python 3.8+
二、核心开发步骤
1. 板卡环境初始化
① 打开 RDK Studio,通过网线将 RDK X3 与电脑连接,完成板卡网络配网,确认开发环境与板卡通信正常;
② 从地瓜机器人开发者社区开源应用中心下载「深度学习巡线小车」基础工程,一键导入 RDK Studio;
③ 执行工程内环境配置脚本,自动安装巡线所需的依赖库(如 OpenCV、地平线 BPU 工具链)。
2. 摄像头与底盘硬件连接
严格参考地瓜 RDK X3 套件生态资源图进行接线,核心引脚对应:
-
MIPI 摄像头接口直接插装 RDK X3 板卡专用 MIPI 插槽,无需额外接线;
-
小车底盘电机驱动板 VCC→RDK X3 12V 供电口,GND→共地;
-
电机驱动板控制引脚 IN1/IN2/IN3/IN4 分别连接 RDK X3 GPIO18/GPIO19/GPIO20/GPIO21。
3. 巡线模型部署与代码调试
① 从工程中加载地瓜官方预训练的巡线深度学习模型(已适配 X3 的 BPU 算力),无需重新训练;
② 编写核心控制代码,实现摄像头图像采集→模型推理巡线轨迹→电机调速控制逻辑,核心代码片段:
python
运行
import cv2
import hobot_dnn as dnn
import RPi.GPIO as GPIO
import time
# 初始化GPIO(电机控制)
GPIO.setmode(GPIO.BCM)
MOTOR_PINS = [18,19,20,21]
for pin in MOTOR_PINS:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
# 加载地瓜官方巡线模型
model = dnn.load_model("line_follow_model.bin")
# 打开MIPI摄像头
cap = cv2.VideoCapture(0, cv2.CAP_V4L2)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)
# 巡线控制核心函数
def line_follow_control(frame):
# 图像预处理(匹配模型输入)
img = cv2.resize(frame, (320,240))
img = img / 255.0
img = img.transpose(2,0,1).astype(np.float32)
# 模型推理,获取巡线偏移量
output = model.predict([img])
offset = output[0][0][0] # 偏移量:左负右正,0为居中
# 根据偏移量控制电机
if offset < -0.2: # 偏左,右轮加速
left_motor(30)
right_motor(50)
elif offset > 0.2: # 偏右,左轮加速
left_motor(50)
right_motor(30)
else: # 居中,匀速前进
left_motor(40)
right_motor(40)
# 主循环
while True:
ret, frame = cap.read()
if not ret:
break
line_follow_control(frame)
time.sleep(0.01)
# 资源释放
cap.release()
GPIO.cleanup()
4. 工程编译与板卡上传
① 在 RDK Studio 中编译工程,确认无语法错误和依赖缺失;
② 点击「一键上传」,将编译后的程序和模型同步到 RDK X3 板卡,完成部署。
三、调试与问题解决
1. 调试步骤
① 将代码上传到地瓜 RDK X3 板卡,打开 RDK Studio 串口监视器,波特率设置为 9600;
② 给巡线小车供电,将小车放置在黑白巡线赛道上,启动程序,观察串口监视器是否打印摄像头采集成功、模型推理正常日志;
③ 推动小车缓慢移动,观察串口监视器打印的巡线偏移量是否随赛道轨迹变化,小车是否自主矫正行驶方向;
④ 若小车能沿巡线轨迹自主行驶,说明开发成功;若未按轨迹行驶,检查代码逻辑和硬件接线,重新调试。
2. 常见问题解决
① 巡线识别卡顿、帧率低:确认 RDK X3 已开启 BPU 硬件加速,将摄像头采集分辨率降至 320*240,关闭工程中无关的图像显示代码;
② 小车跑偏、巡线偏差大:重新校准摄像头安装角度(保持与赛道垂直),从地瓜社区下载巡线模型校准工具,根据实际赛道重新微调模型;
③ 电机无响应:检查 RDK X3 与电机驱动板的接线是否牢固,确认 GPIO 引脚配置与代码一致,测试电机驱动板单独供电是否正常;
④ 摄像头无图像采集:确认 MIPI 摄像头插装到位,在 RDK Studio 中运行官方 MIPI 相机驱动测试程序,验证摄像头硬件是否正常。
按照以上步骤,就能基于 RDK X3 快速实现深度学习巡线小车,大家还可以在此基础上添加避障融合、速度自适应功能,拓展巡线小车的智能化场景!