Nanodegree key: nd113-cn
Version: 3.0.0
Locale: zh-cn
学习无人驾驶入门的基础核心知识,包括概率、C++ 、机器学习与线性代数。(新增python基础)
Content
热身 1: Python 零基础热身课:Turtle
零基础学习Python不用怕,本章节将带你在互动和探索中掌握编程思维!
-
Module 01: Turtle 和代码
-
Lesson 01: 小乌龟(turtle)和你的第一行代码
开始学习用 Python 进行编程的核心概念,并编写指令,使虚拟“turtle”机器人在屏幕上画出多彩的图形。
- Concept 01: 欢迎!
- Concept 02: 开始学习
- Concept 03: 使用 turtle 绘画
- Concept 04: 变量
- Concept 05: 练习 — 变量等
- Concept 06: 更改颜色
- Concept 07: 更改形状
- Concept 08: 查找错误
- Concept 09: 模块和方法
- Concept 10: 练习 — 绘制方形
- Concept 11: 注释
- Concept 12: 练习 — 顺序很重要
- Concept 13: 使用变量
- Concept 14: 练习 — 使用变量 (1/2)
- Concept 15: 练习 — 使用变量 (2/2)
- Concept 16: 循环
- Concept 17: 练习 — 基本循环
- Concept 18: 练习 — 将列表赋值给变量
- Concept 19: 列表和循环
- Concept 20: 练习 — 循环变量
- Concept 21: 神秘的形状
- Concept 22: 嵌套循环
- Concept 23: 练习 — Turtle 方法
- Concept 24: 练习 — 更多循环变量 (1/2)
- Concept 25: 练习 — 更多循环变量 (2/2)
- Concept 26: 练习 — 嵌套循环
- Concept 27: 考虑错误
- Concept 28: 实战演练:用代码画图
- Concept 29: 复习
-
热身 2: Python 入门
学习 Python 编程 —— 工业界应用最广泛的语言之一,尤其是人工智能领域。
-
Module 01: Juno's Python lesson
-
Lesson 01: 为什么学习Python编程
欢迎学习 Python 编程课程!我迫不及待地想要带着你学习这门精彩的语言了。
-
Lesson 02: 数据类型与运算符
在这节课,你将学习 Python 中用到的所有数据类型和运算符。
- Concept 01: 简介
- Concept 02: 算术运算符
- Concept 03: 练习:算术运算符
- Concept 04: 解决方案: 算术运算符
- Concept 05: 变量和赋值运算符
- Concept 06: 练习:变量和赋值运算符
- Concept 07: 解决方案:变量和赋值运算符
- Concept 08: 整数和浮点数
- Concept 09: 练习:整数和浮点数
- Concept 10: 布尔型运算符、比较运算符和逻辑运算符
- Concept 11: 练习:布尔型运算符、比较运算符和逻辑运算符
- Concept 12: 解决方案: 布尔型运算符、比较运算符和逻辑运算符
- Concept 13: 字符串
- Concept 14: 练习:字符串
- Concept 15: 解决方案:字符串
- Concept 16: 类型和类型转换
- Concept 17: 练习:类型和类型转换
- Concept 18: 解决方案:类型和类型转换
- Concept 19: 字符串方法
- Concept 20: 字符串方法
- Concept 21: 列表和成员运算符
- Concept 22: 练习:列表和成员运算符
- Concept 23: 解决方案:列表和成员运算符
- Concept 24: 列表方法
- Concept 25: 练习:列表方法
- Concept 26: 元组
- Concept 27: 练习:元组
- Concept 28: 集合
- Concept 29: 练习:集合
- Concept 30: 字典和恒等运算符
- Concept 31: 练习:字典和恒等运算符
- Concept 32: 解决方案:字典与恒等运算符
- Concept 33: 复合数据结构
- Concept 34: 练习:复合数据结构
- Concept 35: 解决方案:复合数据结构
- Concept 36: 总结
- Concept 37: 总结
-
Lesson 03: 控制流
在这节课,你将开始通过控制流为你的程序创建逻辑!
- Concept 01: 简介
- Concept 02: 条件语句
- Concept 03: 练习:条件语句
- Concept 04: 解决方案:条件语句
- Concept 05: 条件布尔表达式
- Concept 06: 练习:条件布尔表达式
- Concept 07: 解决方案:条件布尔表达式
- Concept 08: For 循环
- Concept 09: 练习:For 循环
- Concept 10: 解决方案:For 循环
- Concept 11: While 循环
- Concept 12: 练习:While 循环
- Concept 13: 解决方案:While 循环
- Concept 14: Break、Continue
- Concept 15: 练习:Break、Continue
- Concept 16: 解决方案:Break、Continue
- Concept 17: Zip 和 Enumerate(选学)
- Concept 18: 练习:Zip 和 Enumerate(选学)
- Concept 19: 解决方案:Zip 和 Enumerate(选学)
- Concept 20: 列表推导式(选学)
- Concept 21: 练习:列表推导式(选学)
- Concept 22: 解决方案:列表推导式(选学)
- Concept 23: 总结
-
Lesson 04: 函数
你将学习如何定义函数。还将学习如何将程序拆分为多个部分,使得代码的结构更加合理。这部分不是必学,但学习后能更好地掌握和理解实战项目。
- Concept 01: 简介
- Concept 02: 定义函数
- Concept 03: 练习:定义函数
- Concept 04: 解决方案:定义函数
- Concept 05: 变量作用域
- Concept 06: 变量作用域
- Concept 07: 解决方案:变量作用域
- Concept 08: 文档
- Concept 09: 练习:文档
- Concept 10: 解决方案:文档
- Concept 11: Lambda 表达式
- Concept 12: 练习:Lambda 表达式
- Concept 13: 解决方案:Lambda 表达式
- Concept 14: 【选修】迭代器和生成器
- Concept 15: 【选修】练习:迭代器和生成器
- Concept 16: 【选修】解决方案:迭代器和生成器
- Concept 17: 总结
- Concept 18: 拓展学习
-
Lesson 05: 脚本编写
你将学习用来开发程序的不同环境。要分享你的代码并与其他开发者合作,必须了解这些环境。
- Concept 01: 简介
- Concept 02: 安装 Python
- Concept 03: 方法 1:安装 Anaconda
- Concept 04: 方法 2:安装 Python
- Concept 05: 运行 Python 脚本
- Concept 06: 编程环境设置
- Concept 07: 修改 Python 脚本
- Concept 08: 在脚本中接受原始输入
- Concept 09: 练习:在脚本中接受原始输入
- Concept 10: 解决方案:在脚本中接受原始输入
- Concept 11: 错误和异常
- Concept 12: 练习:错误和异常
- Concept 13: 处理错误
- Concept 14: 访问错误消息
- Concept 15: 读写文件
- Concept 16: 练习:读写文件
- Concept 17: 解决方案:读写文件
- Concept 18: 导入本地脚本
- Concept 19: 练习:标准库
- Concept 20: 解决方案:标准库
- Concept 21: 导入模块技巧
- Concept 22: 练习:导入模块技巧
- Concept 23: 第三方库
- Concept 24: 在解释器中进行实验
- Concept 25: 在线资源
- Concept 26: 总结
-
-
Module 02: 项目:控制迷宫寻宝机器人
-
Lesson 01: 项目:控制迷宫寻宝机器人
在该项目中,你将使用刚刚学到的 Python 编程知识,分析模拟迷宫环境的数据,比如机器人的起点、障碍物、宝藏箱,然后控制一个机器人,在模拟环境中随机行走,最终走到终点,并找到目标宝藏。在最后,尝试使用 A* 搜索算法输出机器人的行动策略,使之能够走到终点。
-
-
Module 03: Class 类
-
Lesson 01: 面向对象编程入门
- Concept 01: 简介
- Concept 02: 面向过程编程与面向对象编程
- Concept 03: 类、对象、方法和属性
- Concept 04: OOP 语法
- Concept 05: 练习:OOP 语法练习 - 第 1 部分
- Concept 06: 关于 OOP 的几个注意事项
- Concept 07: 练习:OOP 语法练习 - 第二部分
- Concept 08: 在面向对象代码中添加注释
- Concept 09: Gaussian 类
- Concept 10: Gaussian 类的工作原理
- Concept 11: 练习:编写 Gaussian 类
- Concept 12: 魔术方法
- Concept 13: 练习:编写魔术方法
- Concept 14: 继承
- Concept 15: 练习:通过 Clothing 类继承
- Concept 16: 继承:概率分布
- Concept 17: 演示:继承概率分布
- Concept 18: 进阶 OOP 内容
-
Part 02 : 新生营
欢迎加入无人驾驶入门纳米学位! 首先,你将了解教室的情况,与我们的团队见面,并了解我们所提供的学习服务。 我们还为你准备了一项学业评估以及相关的学习资源,帮助你充分体验好整个学习过程。
-
Module 01:
欢迎学习无人驾驶入门!
-
Lesson 01: 简介
欢迎参加无人驾驶车介绍纳米学位课程!很高兴认为大家,希望你们也对这一能够改变未来的技术充满期待!
-
Lesson 02: (可选)Anaconda安装——准备python的本地环境
如果你需要本地运行Python代码,这里给你推荐了一个友好的Python环境。
-
Lesson 03: (可选)Notebook简介——准备python本地运行的编译器
带你快速浏览如何使用Anaconda的Notebook来进行Python编程。
-
-
Module 02:
准备出发
-
Lesson 01: Carla 冒险记:准备出发
和 Carla 和她的朋友一起完成预备知识评估,确保你已经准备就绪,可以开启你的无人驾驶车探险之旅了!
-
Part 03 : 贝叶斯定理
学习无人驾驶车如何了解自身和周围世界,并以无人驾驶车的视角与方式来看待周围的世界。
-
Module 01:
贝叶斯定理
-
Lesson 01: 介绍
Sebastian 简要介绍贝叶斯定理。
-
Lesson 02: 概率
学习概率的基础 - 机器人语言。本课将重点学习数学知识。在稍后的课程中,你需要在 Python 代码中应用这些知识。
- Concept 01: 驾驶中的不确定性
- Concept 02: 机器人学中的不确定性
- Concept 03: 阐释学习目标
- Concept 04: 学习目标 - 概率
- Concept 05: 概率
- Concept 06: 抛掷硬币
- Concept 07: 公平硬币
- Concept 08: 非公平硬币 1
- Concept 09: 非公平硬币 2
- Concept 10: 非公平硬币 3
- Concept 11: 互补的结果
- Concept 12: 机器人学中的概率
- Concept 13: 两次抛掷 1
- Concept 14: 两次抛掷 2
- Concept 15: 两次抛掷 3
- Concept 16: 两次抛掷 4
- Concept 17: 两次抛掷 5
- Concept 18: 两辆汽车 1-5
- Concept 19: 正面一次 1
- Concept 20: 正面一次 2
- Concept 21: 三分之一 1
- Concept 22: 三分之一 2
- Concept 23: 掷出偶数
- Concept 24: 抛掷两次骰子
- Concept 25: 概率小结
-
Lesson 03: 条件概率
要从嘈杂的传感器测量中推断出含义,无人驾驶车需要使用条件概率知识。你将跟着 Sebastian学习这部分内容,在下一课中我们会用到这些知识。
- Concept 01: 条件概率
- Concept 02: 条件概率入门
- Concept 03: 基于条件的估计
- Concept 04: 相关事件和条件概率
- Concept 05: 学习目标回顾
- Concept 06: 学习目标 - 概率
- Concept 07: 学习目标:条件概率
- Concept 08: 相关事件
- Concept 09: 符号须知
- Concept 10: 癌症案例 1
- Concept 11: 癌症例子2
- Concept 12: 癌症例子 3
- Concept 13: 癌症例子 4
- Concept 14: 癌症例子 5
- Concept 15: 癌症例子 6
- Concept 16: 癌症例子 7
- Concept 17: 癌症例子 8
- Concept 18: 全概率
- Concept 19: 两个硬币 1
- Concept 20: 两个硬币 2
- Concept 21: 两个硬币 3
- Concept 22: 两个硬币 4
- Concept 23: 条件概率小结
-
Lesson 04: 在 Python 中进行概率编程
在前面两节课中,你在应用有关概率和条件概率的知识时,学习了基本的 Python 语法。
- Concept 01: 实战学习
- Concept 02: 你的第一次编程实战!
- Concept 03: Python 变量 [示范区]
- Concept 04: 数据类型 [示范区]
- Concept 05: For 循环 [示范区]
- Concept 06: 列表和循环 [示范区]
- Concept 07: 列表解析 [示范区]
- Concept 08: Python 的随机库 [示范区]
- Concept 09: 通过演练区学习
- Concept 10: 模拟抛掷硬币 [演练区]
- Concept 11: 函数 [示范区]
- Concept 12: 模拟概率 [示范区]
- Concept 13: Python 的控制流 [演练区]
- Concept 14: 练习区
- Concept 15: 碰撞的概率 [练习区]
- Concept 16: 碰撞的概率 [参考答案]
-
Lesson 05: 贝叶斯法则
跟着 Sebastian 学习贝叶斯法则(Bayes' Rule),首先了解无人驾驶车是如何使用贝叶斯法则来了解自己在世界里的位置。
- Concept 01: 降低不确定性
- Concept 02: 贝叶斯法则和机器人学
- Concept 03: 学习传感器数据
- Concept 04: 使用传感器数据
- Concept 05: 学习目标:条件概率
- Concept 06: 学习目标 - 贝叶斯法则
- Concept 07: 贝叶斯法则
- Concept 08: 癌症检测
- Concept 09: 先验与后验
- Concept 10: 归一化 1
- Concept 11: 归一化 2
- Concept 12: 归一化 3
- Concept 13: 全概率
- Concept 14: 贝叶斯法则图表
- Concept 15: 等效线路图
- Concept 16: 癌症概率
- Concept 17: 概率给定测试
- Concept 18: 归一化
- Concept 19: 归一化概率
- Concept 20: 疾病检测 1
- Concept 21: 疾病检测 2
- Concept 22: 疾病检测 3
- Concept 23: 疾病检测 4
- Concept 24: 疾病检测 5
- Concept 25: 疾病检测 6
- Concept 26: 贝叶斯法则小结
- Concept 27: 机器人传感 1
- Concept 28: 机器人传感 2
- Concept 29: 机器人传感 3
- Concept 30: 机器人传感 4
- Concept 31: 机器人传感 5
- Concept 32: 机器人传感 6
- Concept 33: 机器人传感 7
- Concept 34: 机器人传感 8
- Concept 35: 归纳总结
- Concept 36: 练习:Sebastian 在家的概率
-
Lesson 06: 贝叶斯定理和世界呈现编程
在本课中,你有很多机会亲身实践使用 Python 进行贝叶斯概率编程,并呈现车辆定位所需的二维世界。
-
Lesson 07: 概率分布
了解机器人如何使用 概率分布 来表述对于不确定量的信息。
- Concept 01: 概率分布
- Concept 02: 概率分布入门 1
- Concept 03: 概率分布入门 2
- Concept 04: 学习目标 - 贝叶斯法则
- Concept 05: 学习目标 - 概率分布
- Concept 06: 离散与连续变量
- Concept 07: 离散概率分布
- Concept 08: 离散概率 [练习]
- Concept 09: 离散概率 [练习] 参考答案
- Concept 10: 连续变量
- Concept 11: 正确落点的概率
- Concept 12: 旋转概率
- Concept 13: 无处停止
- Concept 14: 区间概率
- Concept 15: 区间概率 2
- Concept 16: 区间概率 3
- Concept 17: 连续概率分布
- Concept 18: 密度
- Concept 19: 出生时间密度
- Concept 20: 变更密度
- Concept 21: 变更密度 2
- Concept 22: 检查密度
- Concept 23: 计算密度
- Concept 24: 密度属性
- Concept 25: 小结
-
Lesson 08: 概率分布编程
应用你在本课程中学到的知识,对概率分布进行编程和可视化。
- Concept 01: 为挑战准备就绪
- Concept 02: 概率分布编程
- Concept 03: Python 中的数学 [示范区]
- Concept 04: 均匀分布 [练习区]
- Concept 05: 均匀分布参考答案
- Concept 06: 函数改进 [练习区]
- Concept 07: 函数改进参考答案
- Concept 08: 在 Python 中绘图 [示范区]
- Concept 09: 均匀分布可视化
- Concept 10: 均匀分布可视化 [练习区]
- Concept 11: 均匀分布可视化参考答案
- Concept 12: 离散分布可视化
- Concept 13: 离散分布可视化 [练习区]
- Concept 14: 离散分布可视化参考答案
- Concept 15: 一维的车辆世界 [练习区]
- Concept 16: 一维的车辆世界参考答案
- Concept 17: 二维的车辆世界 [示范区]
- Concept 18: 二维的车辆世界 [练习区]
- Concept 19: 二维的车辆世界参考答案
-
Lesson 09: 高斯分布
在本节课中,你将学习名为“高斯分布”的特定连续概率分布。高斯分布有助于描述传感器测量和车辆位置的不确定性。
- Concept 01: 简介
- Concept 02: 连续分布
- Concept 03: 高斯分布
- Concept 04: 高斯方程
- Concept 05: 均值
- Concept 06: 标准差
- Concept 07: 在 Python 中绘制高斯图 [练习区]
- Concept 08: 在 Python 中绘制高斯图 [参考答案]
- Concept 09: 曲线下方的面积
- Concept 10: 在 Python 中计算曲线下方面积
- Concept 11: 在 Python 中计算曲线下方面积[参考答案]
- Concept 12: 中心极限定理 [选修]
- Concept 13: 中心极限定理 [选修示范]
- Concept 14: 小结
-
Lesson 10: 机器人定位
Sebastian Thrun 会带你学习一遍关于定位所需的理论知识!
- Concept 01: 关于本课程
- Concept 02: 简介
- Concept 03: 定位
- Concept 04: 总概率
- Concept 05: 均匀概率测验
- Concept 06: 均匀分布
- Concept 07: 广义均匀分布
- Concept 08: 感应后的概率
- Concept 09: 求和
- Concept 10: 分布归一化
- Concept 11: pHit 和 pMiss
- Concept 12: 概率总和
- Concept 13: 感应函数
- Concept 14: 归一化的感应函数
- Concept 15: 测试感应函数
- Concept 16: 多个测量值
- Concept 17: 精确移动
- Concept 18: 移动函数
- Concept 19: 非精确移动 1
- Concept 20: 非精确移动 2
- Concept 21: 非精确移动 3
- Concept 22: 非精确移动函数
- Concept 23: 极限分布测验
- Concept 24: 移动两次
- Concept 25: 移动 1000 次
- Concept 26: 感应和移动
- Concept 27: 感应和移动 2
- Concept 28: 定位小结
- Concept 29: 纳米学位备注
- Concept 30: 概率的正式定义 1
- Concept 31: 概率的正式定义 2
- Concept 32: 概率的正式定义 3
- Concept 33: 贝叶斯法则
- Concept 34: 癌症检测
- Concept 35: 全概率定理
- Concept 36: 抛硬币测验
- Concept 37: 双硬币测验
-
Lesson 11: Python 中的直方图滤波器
在 Python 中,为二维直方图滤波器编写
sense
和move
函数。
-
Part 04 : 使用矩阵
该部分集中聚焦于对无人驾驶工程师来说最重要的两项核心工具:面向对象编程与线性代数。
-
Module 01:
使用矩阵
-
Lesson 01: 章节概述
介绍本课中你需要学习的神奇工具和算法。
-
Lesson 02: 卡尔曼滤波器简介
学习卡尔曼滤波器(一种车辆跟踪算法)的原理,并部署你自己的一维车辆跟踪器。
- Concept 01: 简介
- Concept 02: 追踪介绍
- Concept 03: 高斯分布介绍
- Concept 04: 方差比较
- Concept 05: 首选高斯分布
- Concept 06: 评估高斯分布
- Concept 07: 最大化高斯分布
- Concept 08: 测量和移动 1
- Concept 09: 测量和移动 2
- Concept 10: 均值漂移
- Concept 11: 预测峰值
- Concept 12: 参数更新
- Concept 13: 参数更新 2
- Concept 14: 分离的高斯分布
- Concept 15: 分离的高斯分布 2
- Concept 16: 新的均值和方差
- Concept 17: 高斯移动
- Concept 18: 预测函数
- Concept 19: 卡尔曼滤波器代码
- Concept 20: 卡尔曼预测
- Concept 21: 卡尔曼滤波器后续
-
Lesson 03: 状态和面向对象编程
在本课中,学生将学习如何在编程中将汽车的状态表示为类和对象,以及在数学上表示为使用线性代数替换的向量。
- Concept 01: 定位步骤
- Concept 02: 状态介绍
- Concept 03: 运动模型
- Concept 04: 测验: 预测状态
- Concept 05: 一个不同的模型
- Concept 06: 运动学
- Concept 07: 状态定量
- Concept 08: 课程大纲
- Concept 09: 一直在移动
- Concept 10: 对象
- Concept 11: 车辆对象
- Concept 12: 与车辆对象互动
- Concept 13: 车辆类
- Concept 14: Car 类文件
- Concept 15: 查看类代码
- Concept 16: 右转
- Concept 17: 添加颜色
- Concept 18: 多辆汽车对象
- Concept 19: 颜色类
- Concept 20: 重载函数
- Concept 21: 颜色添加重载
- Concept 22: 状态向量
- Concept 23: 状态转换矩阵
- Concept 24: 矩阵乘法
- Concept 25: 一维状态向量和更多的乘法
- Concept 26: 修改预测状态
- Concept 27: 使用矩阵
-
Lesson 04: 矩阵和状态转换
线性代数是数学中的一个重要分支和有用工具。 在本课中,你将学习有关多维卡尔曼滤波器的矩阵运算。
- Concept 01: 连接到卡尔曼滤波器
- Concept 02: 卡尔曼预测
- Concept 03: 卡尔曼滤波器王国
- Concept 04: 卡尔曼滤波器预测
- Concept 05: 另一个预测
- Concept 06: 卡尔曼滤波器的更多解释
- Concept 07: 关于符号
- Concept 08: 卡尔曼滤波器设计
- Concept 09: 知识点回顾
- Concept 10: 卡尔曼滤波器方程
- Concept 11: 简化卡尔曼滤波器方程
- Concept 12: 课程其余内容
- Concept 13: 使用矩阵表示状态
- Concept 14: 卡尔曼方程参考
- Concept 15: 什么是向量?
- Concept 16: Python 中的向量
- Concept 17: 向量编程
- Concept 18: 向量编程(参考答案)
- Concept 19: 数学符号指南
- Concept 20: 使用 Python 实现矩阵
- Concept 21: 矩阵代码
- Concept 22: 矩阵代码(参考答案)
- Concept 23: 矩阵加法
- Concept 24: 矩阵加法代码
- Concept 25: 矩阵乘法
- Concept 26: 矩阵乘法代码
- Concept 27: 矩阵转置
- Concept 28: 矩阵转置代码
- Concept 29: 单位矩阵
- Concept 30: 单位矩阵代码
- Concept 31: 矩阵求逆
- Concept 32: 矩阵的逆代码
- Concept 33: 这一课你学到了什么
-
Part 05 : C++ 基础
该部分是掌握 C++ 核心技能的第一步,你将在这里了解在 Python 中的程序,和将 Python 翻译为 C++ 。
-
Module 01:
C++ 基础
-
Lesson 01: C++ 入门
C++ 和 Python 的区别,以及如何写 C++ 代码。
- Concept 01: 介绍
- Concept 02: 课程概述
- Concept 03: Elecia White
- Concept 04: 为什么选择 C++
- Concept 05: Python 和 C++ 比较
- Concept 06: 静态 vs 动态类型
- Concept 07: C++ - 静态类型语言
- Concept 08: 数据的基本类型
- Concept 09: 单精度和双精度浮点数[示范区]
- Concept 10: 双精度浮点数占用空间更大
- Concept 11: 常见错误和错误消息
- Concept 12: C++ 函数
- Concept 13: 函数剖析
- Concept 14: 多输出
- Concept 15: 两个同名函数
- Concept 16: 函数签名 1
- Concept 17: 函数签名 2
- Concept 18: If 和布尔逻辑
- Concept 19: While 和 For 循环
- Concept 20: Switch 语句
- Concept 21: 库
- Concept 22: 继续加油!
-
Lesson 02: C++ 向量
为了进行矩阵代数的程序运算和翻译 Python 代码,你将需要用到 C++ 向量。这些向量同 Python 列表相似,但其中的句法更为复杂。
-
Lesson 03: C++ 实战
学习如何在自己的计算机上编写 C++代码,并将其编译为可执行程序,同时尽量避免编译错误。
-
Lesson 04: C++ 面向对象编程
学习 C++ 面向对象编程的语法,以及该语言提供的一些额外的 OOP 特性。
- Concept 01: 介绍
- Concept 02: Python vs. C++ 高斯分布例子
- Concept 03: 为什么使用面向对象编程?
- Concept 04: Python vs. C++:类的使用
- Concept 05: 类的剖析
- Concept 06: 类文件结构
- Concept 07: 练习类的使用
- Concept 08: Include 防范
- Concept 09: 私有和公开
- Concept 10: 类变量
- Concept 11: 类函数声明
- Concept 12: 构造函数
- Concept 13: Set 和 Get 函数
- Concept 14: 矩阵函数
- Concept 15: 使用 Include 防范
- Concept 16: 实例化一个对象
- Concept 17: 在本地运行你的程序
-
Lesson 05: Python 和 C++ 的速度
本堂课上,我们会对比 C++ 和 Python 程序的运行速度。
-
Lesson 06: 将 Python 翻译为 C++
借助你的 C++ 语法知识,将第一堂课中的直方图滤波器代码翻译为 C++。
-
Part 06 : 用 C++ 进行性能编程
探索如何编写正确运行地良好代码。 我们将主要关注 C++ 的基础功能,但我们也将讨论其他最佳实践。
-
Module 01:
用 C++ 进行性能编程
-
Lesson 01: C++ 优化实战
现在,你已经知道了 C++ 程序是如何运行的。接下来,我们会学习一些具体的优化技巧,并付诸实践。学完本课,你就可以完成代码优化实战项目了。
- Concept 01: 介绍
- Concept 02: 软件开发和优化
- Concept 03: 优化技巧
- Concept 04: 无用代码
- Concept 05: 练习:删除无用代码
- Concept 06: If 语句
- Concept 07: 练习:If 语句
- Concept 08: For 循环
- Concept 09: 练习:for 循环
- Concept 10: 中间变量
- Concept 11: 练习:中间变量
- Concept 12: 向量存储
- Concept 13: 练习:向量存储
- Concept 14: 引用
- Concept 15: 练习:引用
- Concept 16: Sebastian 的故事
- Concept 17: 静态关键词
- Concept 18: 练习:静态关键词
- Concept 19: 速度挑战
-
Lesson 02: 实战项目 4 - 高性能粒子滤波器
准备好优化 C++ 代码了吗?本实战项目里,我们提供了一个功能正常的二维直方图滤波器。你的任务是让这个滤波器的代码运行速度更快!
-
Part 07 : 复杂数据结构
算法思维是你在整个职业生涯中需要完善的技能。 在该课程中,你将重点学习常用的数据结构和算法。
-
Module 01:
复杂数据结构
-
Lesson 01: 如何解决难题
在本课中,你将在 Dave Evans 的帮助下解决一个难题,学习如何解决计算机编程难题的系统方法。
- Concept 01: 课程概述
- Concept 02: 关于这节课
- Concept 03: 如何解决难题
- Concept 04: 日期之间的天数
- Concept 05: 尝试解决问题 [工作区]
- Concept 06: 第一步
- Concept 07: 理解问题
- Concept 08: 首要规则
- Concept 09: 输入什么
- Concept 10: 输入如何表现
- Concept 11: 输出什么
- Concept 12: 遵守规则
- Concept 13: 下一步
- Concept 14: 期望的输出
- Concept 15: 采取下一步
- Concept 16: 尝试一个例子
- Concept 17: 更难的例子
- Concept 18: 算法伪代码
- Concept 19: 我们应该实现它吗?
- Concept 20: 不同的方法
- Concept 21: 简单的机械算法
- Concept 22: 不要过早优化
- Concept 23: 首先应该写什么
- Concept 24: 定义简化版 nextDay
- Concept 25: 取得进展很好
- Concept 26: 接下来做什么
- Concept 27: 定义 daysBetweenDates
- Concept 28: 第一步:伪代码
- Concept 29: 第二步:Helper 方法
- Concept 30: 第三步:daysBetweenDates
- Concept 31: 测试有效输入
- Concept 32: 现实世界的问题
- Concept 33: 最佳策略
- Concept 34: 怎样解决问题
- Concept 35: 解决完成问题 [工作区]
- Concept 36: 完成 daysBetweenDates
- Concept 37: 解答步骤 I
- Concept 38: 解答步骤 II
- Concept 39: 解决步骤 III
- Concept 40: 解答步骤 IV
- Concept 41: 小结
-
Lesson 02: 数据结构
列表不是存储数据的唯一结构!在本课中,你会学到集合、词典和其他的 Python 数据结构。
- Concept 01: 课程概述
- Concept 02: 跟踪罚单
- Concept 03: 设计权衡
- Concept 04: 三种方法
- Concept 05: 表述单张罚单
- Concept 06: 字符串和列表的问题
- Concept 07: 字典介绍
- Concept 08: 字典介绍 2
- Concept 09: 键和值
- Concept 10: 添加标签
- Concept 11: 部署标签(并介绍集合)
- Concept 12: 性能考虑
- Concept 13: 列表、时间和性能
- Concept 14: 列表的原理
- Concept 15: 集合和字典的性能
- Concept 16: 集合和词典的原理
- Concept 17: 其他数据结构
- Concept 18: 选择好的数据结构
-
Lesson 03: 搜索问题
在对汽车进行编程时,你会遇到诸多问题。 其中许多和“搜索”相关。 在本课中,你将学习搜索问题以及解决这些问题的几种算法。
- Concept 01: 介绍
- Concept 02: 什么是问题
- Concept 03: 路径寻找案例
- Concept 04: 小测试:树形搜索
- Concept 05: 树形搜索续
- Concept 06: 小测试:图搜索
- Concept 07: 小测试:广度优先搜索 1
- Concept 08: 广度优先搜索 2
- Concept 09: 小测试:广度优先搜索 3
- Concept 10: 广度优先搜索 4
- Concept 11: 广度优先搜索 5
- Concept 12: 小测试:一致代价搜索
- Concept 13: 小测试:一致代价搜索 1
- Concept 14: 小测试:一致代价搜索 2
- Concept 15: 小测试:一致代价搜索 3
- Concept 16: 小测试:一致代价搜索 4
- Concept 17: 一致代价搜索 5
- Concept 18: 小测试:搜索比较
- Concept 19: 搜索比较 1
- Concept 20: 小测试:搜索比较 2
- Concept 21: 搜索比较 3
- Concept 22: 关于一致代价
- Concept 23: 小测试:A* 搜索
- Concept 24: 小测试:A* 搜索 1
- Concept 25: 小测试:A* 搜索 2
- Concept 26: 小测试:A* 搜索 3
- Concept 27: 小测试:A* 搜索 4
- Concept 28: A* 搜索 5
- Concept 29: 乐观启发式算法
- Concept 30: 小测试:滑块谜题
- Concept 31: 滑块谜题小测试 1
- Concept 32: 滑块谜题小测试 2
- Concept 33: 搜索的问题
- Concept 34: 部署注意事项
-
Part 08 : 车辆运动与控制
本课程是两个数学分支的速成课程,这些课程对无人驾驶车至关重要:微积分和三角学。 你将了解无人驾驶车是如何利用运动传感器来帮助其了解自己的行为。
在本课程结束之际,你将使用原始传感器数据(提供有关距离驱动、加速度和旋转速率的信息)来重建车辆在空间中的轨迹。
-
Module 01:
车辆运动与控制
-
Lesson 01: 里程表、速度表和导数
通过绘制点和寻找斜率,理解 导数 和基本微积分的概念。
- Concept 01: 惯性导航
- Concept 02: 课程概述
- Concept 03: 惯性导航传感器
- Concept 04: 午后驾驶
- Concept 05: 解题步骤
- Concept 06: 缩短时间间隔
- Concept 07: 绘制位置 vs. 时间图
- Concept 08: 解释位置 vs. 时间图
- Concept 09: 平均速度 vs. 瞬时速度
- Concept 10: 定义导数
- Concept 11: 理解导数
- Concept 12: 微分符号
- Concept 13: 一个“典型”的微积分问题
- Concept 14: 里程表如何工作
- Concept 15: 位置数据的速度
- Concept 16: 位置、速度和加速度
- Concept 17: 实施一个加速度计
- Concept 18: 小结
-
Lesson 02: 加速度计、速率陀螺仪和积分
了解如何运用 积分 通过查找曲线下方的面积来计算累计变化。
-
Lesson 03: 二维机器人运动与三角学
学习三角学的基础知识,以及如何将无人驾驶车的运动分解为 X 和 Y 分量。
- Concept 01: 课程介绍
- Concept 02: 绘制机器人运动(仅限直角)
- Concept 03: 绘制机器人运动 (参考答案)
- Concept 04: 以一定的角度行驶
- Concept 05: 以 53.13 度行驶
- Concept 06: 谁关心 53.13 度?
- Concept 07: 三角函数的力量
- Concept 08: 对边、邻边、斜边
- Concept 09: 三角比率
- Concept 10: 查看正弦、余弦和正切
- Concept 11: 三角法与汽车运动
- Concept 12: 求解三角比问题
- Concept 13: 跟踪车辆 x 与 y
- Concept 14: 跟踪车辆 x 与 y(参考答案)
- Concept 15: 小结
-
Lesson 04: 重建传感器数据轨迹
使用从车辆加速度计、里程表和速率陀螺仪中得到的的原始加速度、位移和角旋转数据重建车辆的 X、Y 轨迹。
-
Part 09 : 计算机视觉与机器学习
在该课程中,你将了解计算机是如何看图像的,以及如何使用机器学习来教计算机用编程方式识别图像。
-
Module 01:
计算机视觉与机器学习
-
Lesson 01: 计算机视觉和分类
你将学习如何使用计算机视觉技术,对图像分类器进行编程,包括对机器学习、颜色转换、特征提取等等的学习。
- Concept 01: 分类 Sebastian
- Concept 02: 欢迎来到计算机视觉
- Concept 03: 介绍 Tarin
- Concept 04: 计算机视觉和无人驾驶车
- Concept 05: LiDAR 数据
- Concept 06: 图像分类流程
- Concept 07: 测验:分类步骤
- Concept 08: 学会分类图像
- Concept 09: 什么是机器学习?
- Concept 10: 训练一个模型
- Concept 11: 测验:选择分层
- Concept 12: 作为网格像素的图像
- Concept 13: Notebook: 作为数字数据的图像
- Concept 14: 颜色图像
- Concept 15: 颜色或灰度?
- Concept 16: Notebook: 可视化 RGB 通道
- Concept 17: 预处理
- Concept 18: Notebook: 裁剪和调整大小
- Concept 19: 颜色遮罩
- Concept 20: 安装 OpenCV,操作说明
- Concept 21: 绿屏汽车
- Concept 22: Notebook: 绿屏背景
- Concept 23: 颜色空间和变换
- Concept 24: HSV 转换
- Concept 25: Notebook: 颜色转换
- Concept 26: 白天和夜晚分类
- Concept 27: Notebook: 加载和可视化数据
- Concept 28: 标签数据和准确性
- Concept 29: 显著特征
- Concept 30: 特征提取
- Concept 31: 特征
- Concept 32: 标准化输出
- Concept 33: Notebook:标准化白天和夜晚图像
- Concept 34: 平均亮度
- Concept 35: Notebook: 平均亮度特征提取
- Concept 36: 特征和分类
- Concept 37: 选择特征
- Concept 38: 过滤和查找边缘
- Concept 39: 高通滤波器
- Concept 40: 测验:内核
- Concept 41: Notebook:寻找边缘
- Concept 42: 无人驾驶车的卷积
- Concept 43: Notebook: 直方图和特征向量
- Concept 44: 分类
- Concept 45: Notebook: 分类
- Concept 46: 评估指标
- Concept 47: Notebook: 准确性和错误分类
- Concept 48: 祝贺你!
- Concept 49: 结束和起点
-
Lesson 02: 交通灯分类器
建立一个接收交通图像的分类流程,并输出一个标签,将图像分类为:红色、绿色或黄色交通信号灯。
-
Part 10 : 恭喜你毕业!
恭喜你毕业啦!
-
Module 01:
恭喜你毕业!
-
Lesson 01: 恭喜你毕业!
恭喜你! 你已经完成了无人驾驶入门纳米学位!
-
-
Module 02:
学习以下高阶纳米学位,100% 为你预留入学席位
-
Lesson 01: 学习以下高阶纳米学位,100% 为你预留入学席位
你可以自由选择申请其他高阶课程,例如无人驾驶工程师、机器人开发或飞行汽车纳米学位,我们 100% 保证为你预留入学名额。
-
Part 11 (Elective) : 快乐之旅
-
Module 01:
快乐之旅
-
Lesson 01: 快乐之旅
使用代码控制(模拟)车辆的快速入门。第一和第二部分会介绍如何控制油门和转向,第三部分会介绍如何通过编程让汽车成功地平行停车。
-