Duckietown|让小黄鸭的车自己沿路行驶

拼装一辆视觉自动驾驶小车,在自建赛道完成循迹

把摄像头、Jetson计算板和带编码器的轮子装成Duckiebot,在黄白胶带道路上观察视觉、定位与控制怎样协作。源自MIT课程,有ICRA论文和多校教学实践。本页选择含Jetson Nano 4GB的DB21-J4 v3套件与含地垫的道路包,目标是无障碍、无路口的单车循迹。

alan000

参数信息

计算板内存
4 GB

复现文档

确认套件版本,清点零件

购买Nano 4GB DIY选项与With Tiles道路包。BOM列出两个套件的全部公开箱单内容;同一套件链接只买一次。v3更新了万向轮和底盘紧固件,收到后先对照随箱单,缺件先补齐。旧版全家福只作类别定位。

![db21-allcomponents.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/899d9fd6ba2a4a9e85347a5311e96a75.jpg)

![guide-2.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/66fc19f416784dedb6cc941e4d3e52c5.jpg)

安装摄像头与排线

去掉底盘两面的保护膜。在断电状态轻抬排线卡扣,插入摄像头排线,蓝色条背向摄像头PCB,再合上卡扣。使用4颗M2×8尼龙螺钉和4个M2螺母固定镜头板。[原版步骤1–2](https://docs.duckietown.com/ente/duckietown-manual/10-setup/03-duckiebot/assembly-instructions-duckiebot-db21j.html#camera-assembly)。

![db21-rev1-step_01.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/d78262a2954b4a86b26df77b59151a17.jpg)

![db21-rev1-step_02.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/61eab5e978984147b9f6352e566cd632.jpg)

按v3图解安装万向轮

先安装IMU,再按新版图解依次装底座螺钉、间隔柱、球体与卡扣盖,卡到位后固定到底盘。不要按旧金属轮图片购买或硬装。[展开v3全部7步图](https://docs.duckietown.com/ente/duckietown-manual/10-setup/03-duckiebot/assembly-instructions-duckiebot-db21jv3.html);完成后回主说明步骤6。

![db21jv3-omniwheel-assembly-step1-disassemble.webp](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/b0afb144d06f4eecaa9b75db34375a35.webp)

![db21jv3-omniwheel-assembly-step7-position-on-chassis-plate-1.webp](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/c3ee2fbb8b84416b9cee2bd035f5a44c.webp)

装底盘、电机、车轮与电池

沿主说明6–18完成侧板、电机支架、电机、垫片、轮子及电池隔板。左右电机方向与图一致,车轮不碰支架螺钉。安装电池前断开USB。新版底盘连接位置使用随箱尼龙件;电机等指定位置照原图选件。[逐步装配图](https://docs.duckietown.com/ente/duckietown-manual/10-setup/03-duckiebot/assembly-instructions-duckiebot-db21j.html#bottom-assembly)。

![db21-rev1-overview-step_03-18.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/36b5bd2e56e64080b09534f0afd1cd5b.jpg)

固定Jetson与散热部件

按19–27装中层板、计算板、隔柱和风扇。保持HUT的GPIO方向一致,不能错排。风扇红线接图示5V、黑线接GND;不要把屏幕3.3V接法混过来。[原图与螺钉位置](https://docs.duckietown.com/ente/duckietown-manual/10-setup/03-duckiebot/assembly-instructions-duckiebot-db21j.html#computation-unit)。

![db21-rev1-overview-step_19-27.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/3a2bbc391435460e8516ffe0f50dfce4.jpg)

![db21-rev1-1-hut_01.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/63f0d808bf38415d9d9ab087297d3d82.png)

完成后侧布线与HUT连接

按28–41布IMU、电机、电池和后保险杠线。后灯接LED-B、左电机MOT-1、右电机MOT-2、IMU接图示I2C。插上Wi-Fi适配器,检查线不压在板件之间。电池多头线必须按原版方向接,不能只凭USB形状猜。

![db21-rev1-overview-step_28-41.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/4a404e7529de4e1196d4f49cd26defdc.jpg)

![db21-rev1-schematics-block-diagram.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/c6f00b56140e4b99b745eabd35d5dac0.png)

安装前摄像头、测距与前灯

按42–50固定前部总成,将摄像头排线接到Jetson对应连接器并锁紧。安装ToF板、接对应I2C,再接LED-F。原版51步已删除,不需要补猜动作。

![db21-rev1-overview-step_42-51.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/f1cc0801d654480cb47e40c2b6f49542.jpg)

装屏幕、按钮、顶板并核对供电

按52–62接顶层:屏幕蓝SDA、黄SCL、黑GND、红3.3V。检查充电和5V供电线各自标签,不可互换。插入Jetson专用槽中的microSD卡;可选后图案与AprilTag按63–69安装,并把小鸭放上车顶。全部接线核对后再供电。

![db21-rev1-overview-step_52-62.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/a538831e6c214d6eb9b88cc36edc4ac2.jpg)

![db21-rev1-schematics-block-diagram.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/c6f00b56140e4b99b745eabd35d5dac0.png)

搭建无路口的闭环赛道

先清洁、干燥地垫。用白色实线作外边线、黄色虚线作中心线,车道净宽21cm,弯道按原图测量。用4个转弯段与必要直道组成连续闭环;本演示不设置路口、红色停线或障碍。[全部原版道路尺寸](https://docs.duckietown.com/ente/duckietown-manual/30-duckietown-city/assembly/tilemap/duckietown-smart-city-road-assembly-instructions.html)。

![straight_3_done_arrows.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/ec931750989848b7abde2695088eaacf.png)

![curved_appearance_spec.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/5abc401b0f6f4c50ba83b9d673d9bb34.png)

准备电脑、系统与同网段连接

按[Workspace说明](https://docs.duckietown.com/ente/duckietown-manual/10-setup/00-computer/setup-duckietown-workspace.html)准备环境;按[初始化说明](https://docs.duckietown.com/ente/duckietown-manual/10-setup/03-duckiebot/flashing-sd-card-duckiebot-initialization.html)核对随箱卡,避免直接覆盖可用预装系统。设置机器人名称和网络,完成[首次启动](https://docs.duckietown.com/ente/duckietown-manual/10-setup/03-duckiebot/duckiebot-first-boot.html)与仪表盘检查。

![guide-1.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/274f8c9bfa684e6da75dd32a8da0eb45.jpg)

先做相机和车轮校准

确认摄像头有画面、手动控制轮子响应正确,再完成[相机内外参校准](https://docs.duckietown.com/ente/duckietown-manual/20-operations/04-calibrations/duckiebot-camera-calibration.html)与[车轮校准](https://docs.duckietown.com/ente/duckietown-manual/20-operations/04-calibrations/duckiebot-motor-odometry-calibration.html)。使用随箱标定板,保持平整和尺寸正确。不要跳过校准后直接靠改控制参数弥补。

![processing_flow.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/98899e20d5f24c7cbae862da1ae7859d.png)

启动循迹并练习急停

把车放在右侧车道,先停掉占用相机或电机的容器。运行:`dts duckiebot demo --demo_name lane-following --duckiebot_name DUCKIEBOT_NAME --debug`。另开终端运行`dts duckiebot keyboard_control DUCKIEBOT_NAME`;替换成自己的名称。控制窗口获焦后按F启用循迹,E急停。第一次先确认停止可靠。[原版运行与排故说明](https://docs.duckietown.com/ente/duckietown-manual/40-demonstrations/lane-following-lf.html)。

![guide-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/86331d61f76d4c20b5e79651f361b9bd.jpg)

观察图像,保存一段连续成果

运行`dts duckiebot image_viewer DUCKIEBOT_NAME`查看车道检测。先解决光照、赛道与校准问题,再按原版说明调整阈值及增益。按F退出循迹,运行终端Ctrl+C结束演示。记录连续闭环录像、系统版本和失败条件;本页没有代替用户完成实物测试。

![processing_flow.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/98899e20d5f24c7cbae862da1ae7859d.png)

![guide-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/7fdbaea2-1d68-4bca-9a67-1f49f43e210a/files/image/86331d61f76d4c20b5e79651f361b9bd.jpg)