课程试听
阶段一 python基础
展开第一章 python入门

1-1 python简介

- 01.计算机的硬件组成和软件组成 免费试学
- 02.python简介 免费试学
- 03.python的优缺点和使用场景 免费试学
1-2 python开发环境

- 04.python环境安装和第一个python程序 免费试学
- 05.pycharm的使用 免费试学
1-3 数据类型和运算符

- 06.注释和pycharm提示 免费试学
- 07.变量的定义和命名规范 免费试学
- 08.变量类型和运算符 免费试学
- 09.输出和格式化输出 免费试学
- 10.输入函数 免费试学
- 11.输入输出练习题 免费试学
- 12.运算符和运算符的优先级 免费试学
1-4 条件控制

- 13.if语句 免费试学
- 14.if嵌套 免费试学
- 15.石头剪刀布 免费试学
1-5 循环

- 01.while循环 免费试学
- 02.循环练习 免费试学
- 03.打印三角形 免费试学
- 04.break和continue 免费试学
- 05.九九乘法表和倒序九九乘法表 免费试学
- 06.for循环 免费试学
- 07.range 免费试学
- 08.练习题 免费试学
- 09.循环结合else 免费试学
- 10.密码合法判断 免费试学
第二章 Python 基础

2-1 列表与元组

- 11.列表的定义和访问
- 12.列表的增删改查和排序
- 13.登录系统练习
- 14.嵌套列表的定义和访问修改
- 15.嵌套列表练习
- 31.素数练习
- 32.用户名合法判断
- 33.元组的定义和基本操作
- 34.元组的使用场景
2-2 函数

- 35.函数的定义和文档注释
- 36.函数参数
- 37.函数返回值和四种函数
- 38.形参和实参
- 39.局部变量和全局变量
- 40.模块的定义和使用
2-3 小案例:名片管理

- 41.名片管理系统框架搭建
- 42.创建名片
- 43.显示全部名片
- 44.查询名片
- 45.查询中退出以及输入错误
- 46.名片修改和删除
2-4 pyqt图形化开发

- 47.pyqt简介和环境搭建
- 48.窗口展示和主要模块
- 49.窗口标题图标大小和气泡提示
- 50.文本和图片展示
- 51.单行和多行输入框
- 52.信号和槽绑定
- 53.信号和槽补充
- 54.水平和竖直布局
- 55.表单布局
- 56.布局嵌套
- 57.输入框
- 58.单选框和复选框
- 59.注册界面实现
- 60.注册功能实现
第三章 python常用API

3-1 集合和字符串

- 61.集合的定义和特点
- 62.集合的基本操作
- 63.列表元组和集合转换
- 64.字符串的定义和基本操作
- 65.字符串判断
- 66.字符串的查找和替换
- 67.字符串拆分连接去空白
- 68.字符串练习
- 69.字典的特点和使用场景
- 70.字典的查询和遍历
- 71.字典的练习
- 72.高级变量练习
- 73.高级数据类型内置函数和运算符
- 74.切片
- 75.高级变量练习
3-2 推导式和日期处理

- 76.列表推导式
- 77.其它推导式
- 78.字符串分隔练习
- 79.天数统计练习
- 80.日期合法判断练习
3-3 递归和文件操作

- 81.默认参数和关键字参数
- 82.可变参数args和kwargs
- 82.默认参数的使用场景
- 83.传递元组和字典给可变参数
- 84.递归
- 85.文件的打开和关闭
- 86.文件的读写
- 87.文件备份练习
- 88.代码统计
- 89.相对路径和绝对路径
- 90.编码和解码
第四章 python面向对象开发

4-1 面向对象

- 91.定义类和创建对象
- 92.属性和方法的定义
- 93.self参数
- 94.__init__方法和成员属性
- 95.__str__方法
- 96.手机案例
- 97.搬家具分析
- 98.搬家具
- 99.属性私有化
- 100.属性私有化补充和方法私有化
- 101.洗衣机基本功能
- 102.封装实现
- 103.继承
- 104.子类方法重写和属性增加
- 105.多继承
- 106.多态和鸭子模型
- 107.枚举
- 108.枪支类定义
- 109.玩家类和反恐精英流程
- 100.面向对象练习
- 101.模块的三种导入方式
- 103.__name__属性
- 104.包的导入
- 105.sys模块
- 106.time和datetime模块
- 107.math模块和random模块
4-2 异常

- 108.异常捕获
- 109.异常捕获其它语法
- 110.常见的异常
- 111.自定义异常
- 112.常见的异常案例
4-3 面向对象注册登录

- 113.pyqt面向对象提取
- 114.项目框架
- 115.登录界面的逻辑处理
- 116.登录功能实现
- 117.登录结果实现
第五章 python综合小案例

5-1 飞机大战游戏开发

- 01.pygame简介和安装
- 02.窗口展示和事件处理
- 03.标题图标以及图片展示
- 04.文字展示和音效播放
- 05.计算fps
- 06.Surface
- 07.创建游戏窗口和背景展示
- 08.我方飞机类提取和展示
- 09.飞机移动
- 10.飞机移动和越界处理
- 11.子弹发射和位置确定
- 12.子弹自动移动和回收
- 13.敌方飞机展示以及和子弹的碰撞检测
- 14.碰撞之后处理和敌方飞机越界重置
- 15.我方飞机碰撞和游戏结束
- 16.创建多个敌方飞机
5-2 贪吃蛇游戏开发

- 01.游戏框架搭建
- 02.游戏窗口退出
- 03.展示首页snake字体
- 04.确定snake文字位置
- 05.提示文字和界面跳转
- 06.游戏界面网格绘制
- 07.绘制贪吃蛇和苹果
- 08.贪吃蛇的移动
- 09.调节贪吃蛇的方向
- 10.贪吃蛇吃苹果和分数展示
- 11.游戏结束判断
- 12.游戏结束界面展示
- 13.游戏结束处理
- 14.后续课程说明
5-3 机器人绘制开发

- 01.项目简介
- 02.项目框架搭建
- 03.获取鼠标绘制路径点
- 04.界面绘制鼠标路径
- 05.清理画板
- 07.机器人绘制
阶段二 C++应用开发
展开第一章 1-基础语法

1-1 介绍与环境搭建

- 01_c++ 介绍
- 02_编译环境(一)
- 03_编译环境(二)
- 04_开发工具介绍
1-2 数据类型与变量

- 05_HelloWorld
- 06_命令行编译
- 07_注释
- 08_数据类型
- 09_变量
- 10_常量
1-3 输入与输出

- 11_输入和输出
- 12_输入输出练习
1-4 条件判断与循环

- 13_if 语句
- 14_switch 语句
- 15_逻辑&关系运算符
- 16_三元表达式
- 17_while循环
- 18_continue&break
- 19_do-while
- 20_for循环
- 21_循环练习
1-5 命名空间

- 22_命名空间(一)
- 23_命名空间(二)
第二章 2-数组与字符串

2-1 数组

- 24_数组 - 声明和初始化
- 25_数组 - 取值和修改值
- 26_数组 - 遍历数组
- 27_数组 - 数组的长度
- 28_数组 - 是一串连续的地址存放数据
- 29_数组 - 二维数组(一)
- 30_数组 - 二维数组(二)
2-2 字符串

- 01_昨日回顾
- 02_一个工程创建多个程序
- 03_作业
- 04_字符串 - C语言字符串(一)
- 05_字符串 - C语言字符串(二)
- 06_字符串 - C++字符串(一)
- 07_字符串 - C++字符串(二)
- 08_字符串 - 练习
2-3 vector

- 09_vector - 声明和初始化
- 10_vector - 访问vector
- 11_vector - 操作
- 12_vector - 二维vector(一)
- 13_vector - 二维vector (二)
第三章 3-函数

3-1 函数基础

- 14_函数 - 定义函数(一)
- 15_函数 - 定义函数(二)
- 16_函数 - 函数原型
- 17_函数 - 头文件和源文件介绍
- 18_ 函数 - 分离式编译
- 19_函数 - 头文件解释
- 20_函数 - 函数重载
3-2 函数传参

- 21_函数 - 传递参数(值拷贝)
- 22_函数 - 传递数组(一)
- 23_函数 - 传递数组(二)
- 24_函数 - 传递引用(一)
- 25_函数 - 传递引用(二)
- 26_函数 - 传递引用(练习)
3-3 内联函数与范围规则

- 01_昨日回顾
- 02_作业(一)
- 03_作业(二)
- 04_函数是如何被调用工作的
- 05_内联函数
- 06_范围规则
第四章 4-指针与引用

4-1 创建指针

- 07_指针 - 什么是指针
- 08_指针 - 声明和初始化
- 09_指针 - 指针地址和大小
- 10_指针 - 创建指针的两种方式(一)
- 11_指针?-?创建指针的两种方式(二)
- 12_指针?-?new?和?delete?细节
4-2 指针解引用

- 13_指针?-?解引用
- 14_指针?-?练习(交换数值)
- 15_指针?-?解引用(细节)
4-3 指针与数组

- 16_指针?-?指针与数组(一)
- 17_指针?-?指针与数组(二)
- 18_指针?-?指针运算
- 19_指针?-?练习(指针运算修改数组)
- 20_指针?-?堆内存存放数组
4-4 指针与常量

- 21_指针?-?指针与常量(一)
- 22_指针?-?指针与常量(二)
4-5 指针与函数

- 23_指针与函数?-?参数传递指针
- 24_指针与函数?-?函数返回指针
4-6 二级指针

- 25_二级指针(介绍)
- 26_二级指针(应用场景)
- 27_二级指针(练习)
4-7 函数指针

- 28_结构体
- 01_昨日回顾
- 02_作业 (一)
- 03_作业(二)
- 04_作业(三)
- 05_函数指针 - 简单使用
- 06_函数指针 - 传参使用
- 07_函数指针 - 应用场景(一)
- 08_函数指针 - 应用场景(二)
- 09_typedef - 介绍
- 10_typedef - 简化函数指针
4-8 引用

- 11_引用 - 介绍
- 12_引用 - 左值和右值
- 13_引用 - 左值引用
- 14_引用 - 右值引用
- 15_引用 - 练习
第五章 5-面向对象

5-1 类与对象

- 16_类和对象 - 类
- 17_类和对象 - 创建对象(两种方式)
- 18_类和对象 - 访问对象中的成员(一)
- 19_类和对象 - 访问对象中的成员(二)
- 20_类和对象 - 访问修饰符
- 21_类和对象 - c++不是特别推崇封装
- 22_类和对象 - 实现类当中成员函数(一)
- 23_类和对象 - 实现类当中成员函数(二)
5-2 特殊成员函数

- 24_类和对象 - 构造函数(一)
- 25_类和对象 - 构造函数 (二)
- 26_类和对象 - 构造函数(三)
- 27_类和对象 - 委托构造函数
- 28_类和对象 - 析构函数mp4
- 29_练习(一)
- 30_练习(二)
- 01_昨日回顾
- 02_作业 (一)
- 03_作业(二)
- 04_ 作业(三)
- 05_拷贝构造函数 - 拷贝介绍
- 06_拷贝构造函数
- 07_拷贝构造函数 - 细节
- 08_拷贝构造 - 浅拷贝引发的问题(一)
- 09_拷贝构造 - 浅拷贝引发的问题(二)
- 10_拷贝构造 - 深拷贝
- 11_拷贝出现的场景
- 12_移动构造函数 (一)
- 13_移动构造函数(二)
- 14_move函数
5-3 常函数与静态成员

- 15_this指针
- 16_常函数
- 17_常对象
- 18_静态成员变量(一)
- 19_静态成员变量(二)
- 20_静态成员函数
5-4 友元概念

- 21_结构体
- 22_友元函数
- 23_友元类
第六章 6-运算符重载

6-1 运算符重载基础

- 24_运算符重载 - 介绍
- 25_运算符重载 - 意义
- 26_运算符重载
- 01_昨日回顾
- 02_运算符重载 - 两种定义方式
- 03_运算符重载 - 重载输出运算符(一)
- 04_运算符重载 - 重载输出运算符(二)
- 05_运算符重载 - 输入运算符重载
6-2 特殊函数与运算符重载

- 06_作业 (一)
- 07_作业 (二)
- 08_运算符重载 - 拷贝赋值运算符(一)
- 09_运算符重载 - 拷贝赋值运算符(二)
- 10_运算符重载 - 移动赋值运算符(三)
- 11_总结回顾类的特殊成员函数
- 12_运算符重载 - 调用运算符
第七章 7-lambda表达式

7-1 lambda表达式

- 13_lambda表达式 - 介绍
- 14_lambda表达式 - 使用
- 15_lambda表达式 - 捕获列表
- 16_lambda表达式 - 应用场景(一)
- 17_lambda 表达式 - 应用场景(二)
- 18_lambda表达式 - 练习
第八章 8-继承与多态

8-1 继承

- 19_继承 - 介绍
- 20_继承 - 继承入门
- 21_继承 - 继承状态下的访问修饰符
- 22_继承 - 构造函数(调用顺序)
- 23_继承 - 析构函数(调用顺序)
- 24_继承 - 继承和组合状态下的(构造和析构)
- 25_继承 - 手动调用父类有参构造
- 26_继承 - 再说初始化列表(一)
- 27_继承 - 再说初始化列表(二)
- 01_昨日回顾
- 02_作业(一)
- 03_作业(二)
- 04_作业(三)
- 05_继承 - 重写父类同名函数
- 06_继承 - 多继承
- 07_继承 - 多继承(构造函数顺序)
- 08_类的前置声明
8-2 多态

- 09_多态 - 静态多态
- 10_多态 - 父类的指针接收子类对象(一)
- 11_多态 - 父类的指针接收子类对象(二)
- 12_多态 - 静态联编和动态联编
- 13_多态 - 为什么要有两种联编
- 14_多态 - 练习(一)
- 15_多态 - 练习(二)
8-3 虚函数

- 16_虚函数 - 介绍
- 17_虚函数 - 虚函数工作原理
- 18_虚函数 - 构造函数不能是虚函数
- 19_虚函数 - 析构函数可以是虚函数
8-4 关键字与纯虚函数

- 20_关键字 - override
- 21_关键字 - final
- 22_=delete & =default
- 23_纯虚函数
- 24_抽象类和接口
第九章 9-智能指针与宏

9-1 智能指针

- 25_智能指针 - 原始指针的隐患
- 26_智能指针 - 背后的原理
- 27_智能指针 - unique_ptr
- 28_智能指针 - 练习
- 01_昨日回顾
- 02_作业(一)
- 03_作业(二)
- 04_细节 - 创建子类对象不会顺带创建父类对象
- 05_细节 - 创建对象隐式转换的问题
- 06_智能指针 - shared_ptr
- 07_智能指针 - shared_ptr 遇到的问题
- 08_智能指针 - shared_ptr遇到的问题(二)
- 09_智能指针 - weak_ptr
- 10_智能指针 - 解决sharepd_ptr的问题
- 11_智能指针 - 智能指针的应用场景
9-2 动态内存

- 12_动态内存 - 内存分区
- 13_动态内存 - new 和 delete
- 14_动态内存 - malloc 和 free
9-3 宏

- 15_宏 - 宏变量
- 16_宏 - 条件宏
第十章 10-枚举与异常

10-1 枚举

- 17_枚举 - 两种定义方式
- 18_枚举 - 访问枚举量
- 19_枚举 - 练习(一)
10-2 异常

- 20_异常 - 介绍
- 21_异常 - 不使用异常机制
- 22_异常 - 抛出异常
- 23_异常 - 捕获异常
- 24_noexcept 关键字
第十一章 11-I/O

11-1 作业回顾

- 01_昨日回顾
- 02_作业 - 学生部分
- 03_作业 - 教师部分
- 04_作业 - 初始化教师和学生
- 05_作业 - 打印教师和学生
- 06_作业 - 相互包含头文件的问题
- 07_作业 - 回收释放内存
11-2 I/O

- 08_io - 基本输入输出
- 09_io - 字符串流(输入流)
- 10_io - 字符串流(练习)
- 11_io_字符串流(输出流)
- 12_io_文件输入流(一)
- 13_io - 文件输入流(二)
- 14_io - 文件输出流(一)
- 15_io - 文件输出流(二)
第十二章 12-模板编程与容器

12-1 模板编程

- 16_模板编程 - 模板编程的必要性
- 17_模板编程 - 函数模板(一)
- 18_模板编程 - 函数模板(二)
- 19_函数模板 - 背后的细节
- 20_函数模板 - 重载
- 21_函数模板 - 练习
- 22_函数模板 - 可变参数
- 01_昨日回顾
- 02_读取学生
- 03_写入学生
- 04_模板编程 - 可变参数的函数模板
- 05_模板编程 - 模板类的必要性
- 06_模板编程 - 模板类(一)
- 07_模板编程 - 模板类(二)
12-2 容器

- 08_容器 - 顺序容器(介绍)
- 09_容器 - 顺序容器(queue)
- 10_容器 - 顺序容器(deque)
- 11_容器 - 顺序容器(forward_list & list)
- 12_迭代器 - 介绍
- 13_迭代器 - 讲解(一)
- 14_迭代器 - 讲解(二)
- 15_迭代器 - 删除元素(一)
- 16_迭代器 - 删除元素(二)
- 17_关联容器 - pair
- 18_关联容器 - map
- 19_关联容器 - map
- 20_管理容器 - set
第十三章 13-函数对象

13-1 function对象

- 21_函数对象 - function对象(接收全局函数)
- 22_函数对象 - function对象(替换函数指针)
- 01_昨日回顾
- 02_作业 - 定义容器类
- 03_作业 - 读取学生
- 04_作业 - 删除学生
- 05_作业 - 写入学生
- 06_function - 接收lambda表达式
- 07_function - 接收静态成员和非静态成员函数
- 08_function - 练习
13-2 bind函数

- 09_bind - 绑定全局函数
- 10_bind - 绑定成员函数
- 11_bind - 占位符
- 12_bind - 应用场景
- 13_bind - 练习
第十四章 14-多线程

14-1 线程基础

- 14_线程 - 介绍
- 15_线程 - 让线程运行函数(一)
- 16_线程 - 让线程运行函数(二)
- 17_线程 - join & detach
- 18_线程 - 线程id 和 休眠
- 19_线程 - 结束线程
14-2 线程并发

- 20_线程 - 并发线程引发的问题
- 21_线程 - 互斥元解决并发问题
- 22_线程 - 互斥元 的细节
- 23_线程同步 - 搬运盒子(一)
- 24_线程同步 - 搬运盒子(二)
- 01_昨日回顾
- 02_作业 (一)
- 03_作业(二)
- 04_面向对象重构搬运盒子(一)
- 05_面向对象重构搬运盒子(二)
- 06_lock_guard
- 07_unique_lock
- 08_条件变量 - 介绍
- 09_条件变量 - 父亲存钱,儿子取钱(一)
- 10_条件变量 - 父亲存钱,儿子取钱(二)
- 11_async函数 - 引子
- 12_async函数 - 使用(一)
- 13_async函数 - 使用(二)
第十五章 15-设计模式

15-1 单例模式

- 14_设计模式 - 介绍
- 15_单例模式 -(懒汉式)
- 16_单例模式 -(饿汉式)
- 17_单例模式 -(多线程并发的问题)
- 18_单例模式 - (双锁检查)
- 19_单例模式 - 指令乱序
15-2 观察者模式

- 20_观察者模式 - 介绍
- 21_观察者模式 - 简单入门
- 22_观察者模式 - 进阶(一)
- 23_观察者模式 - 进阶(二)
- 24_观察者模式 - 强化练习
第十六章 16-make 与 cmake

16-1 make

- 01_make - 介绍
- 02_make - 程序编译的过程
- 03_make - makefile 介绍
- 04_make - makefile 细节
- 05_make - 编译多个文件(一)
- 06_make - 编译多个文件(二)
- 07_make - 编译多个文件(三)
- 08_make - 伪目标(清楚文件)
16-2 cmake

- 09_cmake - 介绍
- 10_cmake - 创建子项目
- 11_cmake - 变量和打印
- 12_cmake - 什么是库
- 13_cmake - 导入动态库(一)
- 14_cmake - 导入动态库(二)
- 15_cmake - 导入多个动态库(一)
- 16_cmake - 导入多个动态库(二)
- 17_cmake - find_library 查找库
- 18_cmake - foreach 查找都多个动态库mp4
- 19_cmake - 导入第三方库OpenCV(一)
- 20_cmake - 导入第三方库OpenCV(二)
- 21_cmake - 导入第三方库OpenCV(三)
阶段三 Qt图形化实战
展开第一章 QT基础入门

1-1 介绍与环境准备

- 01_qt - 介绍
- 02_qt - 安装
- 03_qt - 目录介绍&配置环境变量
1-2 基础控件

- 04_helloworld (一)
- 05_helloworld (二)
- 06_helloworld (三)
- 07_设置图标&标题
- 08_窗口和布局 - 定义窗口类
- 09_窗口和布局 - 窗口大小
- 10_窗口和布局 - 添加按钮
- 11_窗口和布局 - label&edit
1-3 布局与事件

- 12_布局 - 介绍
- 13_布局 - QBoxLayout(一)
- 14_布局 - QBoxLayout(二)
- 15_绘制 - 画线条
- 16_绘制 - 画文字&矩形&圆&多边形
- 17_按钮的点击操作(一)
- 18_按钮的点击操作(二)
第二章 Qt高级编程

2-1 信号与槽

- 01_作业 - 主窗口搭建
- 02_作业 - 登录失败
- 03_作业 - 登录成功
- 04_作业 - 关闭窗口
- 05_信号和槽 - 接收qt的信号(一)
- 06_信号和槽 - 接收qt的信号(二)
- 07_信号和槽 - 定义槽函数(一)
- 08_信号和槽 - 定义槽函数(二)
- 09_信号和槽 - 接收自定义信号(一)
- 10_信号和槽 - 接收自定义信号(二)
- 11_信号和槽 - 三个开关介绍
- 12_显示图片(一)
- 13_显示图片(二)
- 14_使用qt creator 创建项目
2-2 socket编程

- 15_socket - 介绍
- 16_socket - tcp服务端(ui搭建)
- 17_socket - tcp服务端(接收信息)
- 18_socket - tcp服务端(发送消息)
- 19_socket - tcp客户端(UI搭建)
- 20_socket - tcp客户端(实现)
- 21_socket - udp 实现
阶段四 Linux指令集
展开第一章 Linux命令

1-1 环境搭建

- 01_操作系统(介绍)
- 02_操作系统(发展历史)
- 03_安装虚拟机
- 04_安装Ubuntu
1-2 基础命令

- 05_文件目录
- 06_命令小技巧
- 07_常用命令(一)
- 08_常用命令(二)
- 09_查看系统信息
- 10_文件权限(一)
- 11_文件权限(二)
- 12_账户操作 (一)
- 12_账户操作(二)
1-3 高级命令

- 13_高级命令(一)
- 14_高级命令(链接)
- 15_高级命令(find & grep)
- 16_高级命令(tar命令)
- 17_高级命令(gzip压缩)
- 18_高级命令(bzip2 & zip)
- 19_远程拷贝 scp(一)
- 20_切换软件源&安装vmtools
- 21_远程拷贝 scp(二)
- 22_远程拷贝scp(三)
- 23_高级命令 - wget & tree
1-4 vim编辑器

- 01_vim编辑器(一)
- 02_vim编辑器(二)
第二章 Shell脚本

2-1 shell入门

- 03_虚拟机网络连接方式说明
- 04_使用xshell连接虚拟机
- 05_shell - 介绍
- 06_shell - 初体验
- 07_shell - 细节
2-2 shell脚本与定时任务

- 08_注释
- 09_本地变量(普通变量)
- 10_本地变量(命令变量)
- 11_全局变量
- 12_系统全局变量
- 13_数组
- 14_运算符 - 关系&算术运算符
- 15_运算符 - 逻辑运算符&文件运算符
- 16_条件判断(一)
- 17_条件判断(二)
- 18_循环 - for
- 19_循环 - while
- 20_函数(一)
- 21_函数(二)
- 22_键盘输出
- 23_定时任务
阶段五 编程应用高等数学
展开第一章 高数知识点复习

1-1 环境搭建

- 01_课程引言和开发环境安装
- 02_常见的初等数学的python运算
- 03_美化输出显示
- 04_代数运算的python表达
- 05_通项求和和乘积
- 06_代数方程求解
- 07_表达式的其他运算
- 08_初等函数复习
1-2 极限导数微积分

- 09_无穷和数列
- 10_极限的概念
- 11_极限的代码运算
- 12_简单的极限应用
- 13_导数的演示
- 14_导数值和函数变换趋势
- 15_基本函数和复合函数求导
- 16_微分积分和泰勒展开
- 17_微积分的应用场景
- 18_微分方程的应用
- 19_微积分作业题
1-3 行列式和矩阵

- 20_行列式和行列式性质
- 21_齐次方程和非齐次方程定义
- 22_矩阵的运算和矩阵转置
- 23_逆矩阵
1-4 排列和组合

- 01_排列和组合入门
- 02_无放回类型
- 03_分布律
- 04_扩展:有放回类型的概率
- 05_事件和事件的运算
- 06_概率作业题
- 07_贝叶斯简单概念
- 08_贝叶斯公式的运算
第二章 numpy编程实践

2-1 numpy入门

- 09_numpy入门和常见API
- 10_numpy的属性和运算api
- 11_numpy数组的简单索引
- 12_numpy数组的元素操作
- 13_二维numpy数组的切片和索引
- 14_numpy形状修改的常见API
- 15_numpy高维数据和应用场景
- 16_numpy数据统计的API
- 17_矩阵的运算
- 18_正态分布和方差
- 19_numpy打散数据
- 20_numpy的布尔过滤
- 21_numpy数组的排序操作
2-2 numpy案例

- 22_小案例:随机数计算pi
- 23_小案例:二维数组的切片
- 24_小案例:二维数组的切片
- 25_数组的拆分和合并
- 26_通过索引获取新数组
- 27_numpy的广播机制
- 28_numpy广播机制的应用
- 29_numpy的其他API
- 30_matplotlib的简单使用
阶段六 ROS核心基础
展开第一章 ROS三大通信方式

1-1 ros简介

- 01.机器人开发面临问题
- 02.ros简介
- 03.ros版本介绍
- 04.ros环境搭建
- 05.ros架构设计
- 06.hello?ros
- 07.roscpp
- 08.rospython
- 09.ros常用api
- 10.ros节点命令
- 11.ros工程配置简介
- 01.回顾
1-2 topic通信

- 02.topic通信
- 03.topic发布者cpp实现
- 04.命令回顾
- 05.topic订阅者cpp实现
- 06.topic通信python实现
- 08.topic命令回顾
- 09.topic订阅线程补充
- 10.匿名节点
- 11.自定义msg
- 12.python使用自定义msg
- 12.使用自定义msg
- 13.其它自定义msg
- 14.其它自定义msg使用
- 15.topic总结
1-3 topic通信控制小乌龟

- 16.小乌龟简介
- 01.回顾
- 02.小乌龟界面搭建
- 03.小乌龟界面和点击事件
- 04.bind点击按钮传递局部变量数据
- 05.界面控制小乌龟
- 06.小乌龟面向对象
- 06.小乌龟面向对象控制实现
- 07.python小乌龟控制
- 08.python小乌龟控制实现
- 09.订阅小乌龟消息cpp
- 10.小乌龟订阅消息收不到解决方案一
- 11.小乌龟订阅消息收不到解决方案二
- 12.log日志
- 13.总结
- 01.回顾
- 02.python小乌龟控制
1-4 Service通信

- 03.service通信server端
- 04.service通信server总结
- 05.service通信client端
- 06.service通信client端调试
- 07.service通信server端python
- 08.service通信client端python
- 09.自定义srv
- 10.使用自定义srv
- 11.复杂的自定义srv
1-5 Service通信控制小乌龟

- 12.小乌龟服务简介
- 01.作业
- 02.小乌龟界面
- 03.清理和重置
- 04.创建和杀死小乌龟
- 06.小乌龟操作
- 07.扫地机器人简介
- 08.小乌龟移动分析
- 09.获取小乌龟当前位置
- 10.小乌龟移动
- 11.小乌龟连续移动
- 12.小乌龟连续移动面临问题
- 13.小乌龟连续移动优化方法一
- 14.小乌龟连续移动优化其它方法
- 16.界面更新问题
- 17.总结
1-6 运动控制PID算法

- 01.plot显示小车速度
- 02.控制系统
- 03.PID介绍
- 04.PID解释
- 05.KP调节
- 06.KD调节
- 07.KI调节
- 08.PID调节
- 09.角度调节
- 10.角度调节问题及解决
- 11.纵向扫地
1-7 Action通信之SimpleAction

- 12.自定义action消息
- 13.action通信server端
- 14.action通信client端
- 01.回顾
- 02.simpleaction通信流程
- 03.server响应结果
- 04.server响应结果
- 05.action任务取消
- 06.server端界面搭建和实现
- 07.server端界面布局和实现
- 08.调试server端
- 09.client端实现
- 10.client端发送目标
- 11.action通信界面调试
- 12.action通信界面结果处理
- 13.action通信python实现
- 14.simpleaction总结和缺点
1-8 Action通信之Action

- 15.复杂ction通信server端实现
- 16.复杂ction通信client端实现
- 17.client发送指令失败处理
- 18.action通信处理lost
- 19.action通信处理通过和拒绝
- 20.action通信处理进度
- 21.action通信处理取消
- 22.action总结
- 01.回顾-2020-10-12_09.11.00
- 02.action通信python实现client端
- 02.action通信python实现server端
- 03.action通信python调试
- 04.action通信python调试
- 05.action通信特点和总结
- 06.action通信特点和总结
1-9 Action通信项目实战

- 07.action通信案例界面
- 08.action通信客户端发送目标
- 08.server基本实现
- 09.服务端处理进度并返回成功状态
- 09.客户端界面处理
- 10.服务端界面展示
- 11.服务端添加任务条目
- 12.服务端界面显示异常处理
- 13.界面刷新处理
- 14.取消任务
- 15.中断任务
- 16.中断全部任务
- 17.总结
- 18.python自定义信号
- 01.回顾
第二章 ros增强

2-1 param和launch启动

- 02.param
- 03.param的api操作
- 04.param的api操作python
- 05.launch文件
- 06.launch文件属性配置
- 07.remap
- 08.param
- 09.内部args参数
- 10.外部args参数
- 11.包含launch和launch组
2-2 tf坐标转换

- 12.tf坐标转换
- 13.案例一框架搭建
- 14.案例一生成第二个小乌龟
- 14.案例一生成发送小乌龟1的位置到tf
- 15.案例一生成发送小乌龟1的位置到tf
- 16.案例一生成发送小乌龟2的位置到tf
- 01.回顾
- 02.获取tf坐标转换结果
- 03.处理转换结果
- 04.案例二
- 05.案例二三只小乌龟
- 06.回顾
- 07.案例三
- 08.tf坐标转换python项目搭建
- 09.tf坐标转换python订阅位置
- 10.tf坐标转换python订阅位置发布到tf
- 11.移动小乌龟2
2-3 rviz

- 12.rviz
- 13.launch配置rviz
- 14.ros回顾
阶段七 机器人运动学和建模
展开第一章 1-向量基础

1-1 向量定义

- 01_向量的定义
- 02_向量定义代码展示
1-2 向量加法

- 03_向量的加法
- 04_向量加法代码展示
1-3 向量缩放

- 05_向量的缩放
- 06_向量的缩放代码展示
1-4 向量点乘

- 07_向量的点乘
- 08_向量的点乘代码展示
1-5 向量叉乘

- 09_向量的叉乘
第二章 2-坐标转换

2-1 坐标系基础

- 10_自由度介绍
- 11_关节类型
- 12_坐标系理解
- 13_相对坐标系
2-2 2D平移

- 14_2d平移几何推导
- 15_2d平移向量推导
- 16_2d平移案例实现
2-3 2D旋转

- 17_2d旋转推导1
- 18_2d旋转推导2
- 19_2d旋转案例实现
- 20_2d平移案例取逆操作
- 21_2d旋转案例取逆操作
2-4 平移和旋转

- 22_旋转平移推导
- 23_平移和旋转案例
2-5 补充

- 24_anaconda使用
- 25_插件使用
2-6 坐标转换案例

- 01_单连杆问题
- 02_双连杆问题分析
- 03_双连杆实现
- 04_三连杆问题实现
2-7 3D坐标

- 05_空间坐标描述
- 06_3d旋转推导
- 07_urdf第一个文件
第三章 3-机器人建模

3-1 URDF连杆

- 08_urdf文件launch配置
- 09_urdf形状box
- 10_urdf连杆形状
- 11_urdf连杆的位置和姿态
- 12_urdf连杆material
- 13_urdf关节fixed
3-2 URDF关节

- 14_urdf关节revolute
- 15_urdf关节continuous和prismatic
- 16_urdf案例scara
3-3 URDF简单案例

- 17_urdf案例scara
- 18_xacro介绍和变量定义
3-4 xacro语法

- 19_xacro模板定义
- 01_xacro的条件判断
- 02_xacro案例scara
3-5 正解和反解

- 03_kdl库介绍
- 04_ur5的urdf文件
- 05_kdl模型加载
- 06_kdl正解
- 07_kdl反解
- 08_kdl反解带限制
- 09_kdl反解lma
阶段八 2D机器视觉
展开第一章 OPENCV基础

1-1 课程介绍

- 01_课程介绍
- 02_机器视觉概述
- 03_机器视觉面临的挑战
1-2 环境搭建

- 04_opencv编译与安装
1-3 图像基础

- 05_读取图片
- 06_路径问题
- 07_imread其它参数说明
- 08_写出图片
- 09_理解图像
- 10_图像的剪切
- 11_图像的镜像处理
- 12_图片镜像处理api
1-4 图像变换

- 13_图片的缩放
- 13_图片的位移
- 14_图像的缩放
- 15_图像的仿射变换
- 16_图像金字塔
1-5 图像特效

- 17_图像融合
- 18_图像的灰度处理
- 19_灰度图的颜色反转
- 20_彩色图的颜色反转
- 21_图像的马赛克
- 22_图像的毛玻璃效果
- 23_图像的浮雕效果
- 24_绘制文字
- 25_绘图小案例
- 26_图像亮度调整
1-6 图像美化

- 27_图像直方图
- 28_封装绘图函数
- 29_灰度图直方图均衡化
- 30_彩色图像直方图均衡化
第二章 OPENCV高级

2-1 图像二值化

- 31_图像二值化
- 32_自适应阈值
- 33_图像二值OTSU
2-2 图像HSV颜色空间

- 34_hsv颜色空间
- 35_inrange颜色分割
2-3 边缘与轮廓

- 36_图像的轮廓
- 40_获取轮廓信息
2-4 图像卷积

- 41_图像的噪声介绍
- 42_图像卷积介绍
- 43_图像的均值滤波
- 44_图像的中值滤波
- 45_高斯模糊
- 46_sobel算子
- 47_拉普拉斯算子
- 48_图像的锐化处理
- 49_canny边缘检测
- 50_双边滤波器
2-5 视频处理

- 51_人脸识别
- 52_读取视频数据
第三章 OPENCV 进阶

3-1 形态学变换

- 53_形态学变换_膨胀
- 54_形态学变换_腐蚀
- 55_形态学变换_开操作
- 56_形态学变换_闭操作
- 57_形态学变换_去除干扰线
3-2 霍夫变换

- 58_霍夫直线变换
- 59_霍夫圆
3-3 透视变换

- 60_图像的透视变换
- 61_多边形拟合
3-4 图像分割

- 62_模板匹配
- 63_泛红填充
- 64_图像分水岭
- 65_背景消除
- 66_距离变换
第四章 OPENCV案例

4-1 综合案例

- 67_案例_图像修复
- 68_案例_图像的切边
- 69_案例_图像的旋转切边
- 70_案例_填空题识别
- 71_案例_零件计数
- 72_案例_证件照换背景_上
- 73_案例_证件照背景_下
- 74_案例_车道线识别
第五章 opencv-python版(赠送)

5-1 opencv概述

- 01_课程简介
- 02_机器视觉概述
- 03_面临的挑战
- 04_opencv概述
5-2 环境搭建

- 05_搭建opencv开发环境
5-3 基础案例

- 06_读取图片
- 07_图像的写入
- 08_理解图像
- 09_图像的剪切
- 10_图像的镜像处理
- 11_图像的缩放
- 12_图像金字塔
- 13_图像的位移
- 14_图像仿射变换api
- 15_图像的仿射变换_旋转
- 16_图像的仿射变换
- 17_图像的融合
- 18_图像的亮度调整
- 19_滑动条
- 20_彩图转灰度图
- 21_灰度图像的反转
- 22_彩色图像的反转
- 23_图像的马赛克效果
- 24_鼠标按键
5-4 图像特效

- 01_毛玻璃效果
- 02_图像的浮雕效果
- 03_图像绘图
5-5 图像直方图

- 04_灰度图直方图
- 05_直方图api
- 06_直方图均衡化
- 07_彩色图像直方图均衡化
5-6 视频处理

- 08_视频分解
- 09_美化摄像头数据帧
- 10_人脸识别
- 11_摄像头人脸识别
5-7 颜色识别

- 12_HSV颜色空间
- 13_识别网球
- 14_绿幕背景替换
5-8 图像二值化

- 01_图像二值化
- 02_自适应阈值
- 03_大津算法
- 04_三角阈值
5-9 图像卷积

- 05_了解噪声
- 06_图像的卷积
- 07_图像均值滤波
- 08_中值滤波
- 09_高斯模糊
- 10_Sobel算子
- 11_拉普拉斯算子
- 12_Canny边缘检测
- 13_双边滤波器
- 14_锐化处理
5-10 霍夫变换

- 15_霍夫变换
- 16_查找棋盘直线
- 17_查找棋盘中棋子
5-11 边缘提取

- 01_今天内容介绍
- 02_查找轮廓
- 03_API小细节
- 04_获取轮廓信息avi
- 05_网球提取
5-12 形态学变换

- 06_图像的膨胀
- 07_修改网球案例
- 08_开操作和闭操作
5-13 小案例

- 09_模板匹配
- 10_背景消除
5-14 提取车道线

- 11_提取车道线-上
- 12_提取车道线-中
- 13_提取车道线-下
5-15 opencv玩游戏

- 14_opencv玩bird-上
- 15_opencv玩bird-下
第六章 目标检测

6-1 直线检测

- 01_物体检测概述
- 02_直线检测流程
- 03_直线检测-FLD检测
- 04_FLD直线检测-参数及执行速度
6-2 牙膏盒检测

- 05_盒子检测-加载图片并优化
- 06_盒子检测-多边形逼近
- 07_盒子检测-有向包容盒OBB
- 08_盒子检测-拆分RGB的三个通道
- 09_盒子检测-根据余弦值确定矩形
- 10_盒子检测-多模型混合筛选
6-3 特征检测概述

- 11_模板匹配查找目标
- 12_理解特征及描述
6-4 角点及特征点检测

- 13_哈里斯角点检测原理概述
- 14_哈里斯角点检测实现
- 15_史-托马斯角点检测
- 16_特征点检测概述
6-5 特征检测

- 01_特征检测-SIFT
- 02_特征检测-SURF
- 03-特征检测-ORB概述
- 04-特征检测-ORB-FAST关键点检测
- 05_特征检测-ORB-BRIEF特征描述子检测
- 06_特征检测-ORB尺度不变性
- 07_特征检测-ORB旋转不变性
- 08_特征匹配-ORB距离度量
- 09_特征比配-流程概述
- 10_特征检测-ORB代码示例
6-6 特征匹配

- 11_特征匹配-ORB-BFMatcher野蛮匹配器
- 12_特征匹配-knnMatch原理
- 13_特征匹配-knnMatch示例
- 13_特征匹配-knnMatch示例2
- 14_特征匹配-FLANNbasedMatcher
6-7 目标检测应用

- 14_目标查找-求单应性矩阵
- 15_目标查找-进行透视变换
- 16_特征匹配恢复目标
阶段九 3D机器视觉
展开第一章 PCL点云入门

1-1 点云概述及可视化

- 01-PCL点云概述
- 02-PCL的起源与发展
- 03-PCL源码编译初始化
- 04-PCL-Demo示例
- 05-PCL数据结构-常用模块
- 06-PCL的pcl_viewer工具
- 07-可视化-CloudViewer的使用
- 08-可视化-PCLVisualizer的使用
1-2 点云输入输出

- 09-点云坐标变换
- 10-点云数据格式1
- 10-点云数据格式2
- 11-点云pcd文件的序列化与反序列化
1-3 点云拓扑结构

- 12-KD-Tree概述-树的分割
- 13-KD-Tree邻域搜索-K邻域
- 14-KD-Tree邻域搜索-半径搜索
- 01-OCTree邻域搜索
第二章 PCL点云进阶

2-1 点云滤波

- 02-点云滤波概述
- 03-直通滤波PassThrough
- 04-降采样-VoxelGrid
- 05-离群点移除-原理及时间
- 06-条件滤波-半径滤波-数据初始化
- 07-半径离群值滤波
- 08-条件滤波
- 09-滤波类的继承关系及pcl_voxel_grid使用
- 10-滤波器-高斯滤波原理
- 11-滤波器-双边滤波原理
2-2 深度图(距离影像RangeImage)

- 12-从点云创建深度图
- 13-从深度图中提取边界
2-3 关键点Keypoints提取

- 01-关键点Keypoints-NARF概述
- 02-关键点Keypoints-NARF-生成深度图
- 03-关键点Keypoints-NARF-代码示例
2-4 随机采样一致性算法RANSAC

- 06-随机采样一致性算法RANSAC-模型计算
- 05-随机采样一致性算法RANSAC-数据生成
- 04-随机采样一致性算法RANSAC概述
2-5 特征检测与描述子

- 07-特征描述与提取-需求
- 08-法向量估算的四种情况
- 09-法向量估算-方式1
- 10-法向量估算-方式2
- 11-法向量估算-方式3
- 12-法线求解原理-最小二乘法
- 13-法线求解原理-选择合适的比例
- 14-3D特征描述子-概述
- 15-PFH点特征直方图描述子
第三章 PCL点云高级

3-1 点云中的数学

- 01-点云中的数学-方差_协方差
- 02-多元正态分布数学公式
- 03-多元正态分布的可视化
- 04-协方差矩阵与缩放矩阵、旋转矩阵
- 05-特征值分解
3-2 点云配准概述及示例

- 01-点云配准的概述
- 02-点云配准的需求场景和配准方法
- 03-PCL实现的配准流程概述
- 04-ICP实现案例
- 05-NDT实现配准1
- 06-可交互式ICP-1
- 06-可交互式ICP-2
- 06-可交互式ICP-3
- 07-通过git管理项目并推送gitee
- 08-ICP交互式配准1
- 08-ICP交互式配准2
3-3 点云配准的算法原理

- 09-ICP数学原理
- 10-ICP代码实现追踪
- 11-NDT-正态分布简介
- 12-NDT算法原理1
- 12-NDT算法原理2
- 01-ndt配准的代码案例
第四章 PCL点云应用

4-1 点云应用

- 02-PFH点特征直方图回顾
- 03-使用FPFH进行刚体鲁棒姿态估计
- 04-使用RANSAC分割平面模型
- 05-使用RANSAC分割圆柱体模型
- 06-点云分割-欧式聚类提取
- 07-点云曲面重建
- 08-包容盒简介
- 09-3D物体包容盒代码实现
4-2 点云模板匹配

- 10-点云模板匹配的代码准备
- 11-封装点云法线、特征描述子类FeatureCloud
- 12-点云模板匹配代码1
阶段十 深度学习
展开第一章 机器学习与人工智能入门

1-1 机器学习基本概念

- 01_引言
- 02_什么是学习
- 03_人工智能和机器学习
- 04_机器学习的步骤
- 05_feature和label
- 06_分类和回归
- 07_案例介绍
1-2 knn算法

- 08_knn算法的步骤
- 09_knn算法的统计
- 10_knn算法的包装
- 11_真实数据预测
- 12_超级参数的选取
- 13_拆分数据集为训练集和测试集
- 14_k值的选取测试
- 15_欧式距离
- 16_两个维度knn算法的实现
- 17_两个维度的knn实现
- 18_三个维度的knn的实现
- 19_数据归一化的实现
- 20_数据的标准化操作
- 21_数据归一化后进行knn预测
- 22_knn处理约会问题
- 23_约会数据的3d可视化
- 24_知识点复习
第二章 机器学习核心算法原理

2-1 线性回归与梯度下降

- 01_线性回归概念介绍
- 02_matplotlib绘制数据点
- 03_mse和mae介绍
- 04_mse的计算
- 05_excle展示误差数据
- 06_问题思考
- 07_梯度与斜率
- 08_利用sympy求导
- 09_excle演示梯度下降
- 10_梯度下降算法分析
- 11_使用python代码实现梯度下降
- 12_图表显示梯度下降的过程
- 13_偏导数的推导计算
- 14_excle表格实现两个参数的梯度下降
- 15_采用梯度下降求解m和b的值
- 16_ 为什么不用求解的方式获取m和b
- 17_导航定位与梯度下降
- 18_使用sk-learn进行线性回归
- 19_线性回归的几何学意义
- 20_线性回归的局限性
- 21_天猫销售额的预测值
- 22_总结
2-2 梯度下降与动态学习速率

- 01_知识点复习
- 02_矩阵运算的介绍
- 03_多维数据的解释
- 04_梯度下降的矩阵运算代码
- 05_训练过程的细节
- 06_完整的矩阵梯度下降的逻辑
- 07_可视化m和b收敛的结果
- 08_动画的展示方法
- 09_动画展示训练的m和b的变换
- 10_手动调整学习速率
- 11_学习速率的收敛分析
- 12_黑马1代学习速率优化算法
- 13_黑马2代学习速率优化算法
- 14_momentum学习速率优化算法
- 15_adagrad学习速率优化算法
- 16_rmsprop优化算法
- 17_adam算法介绍
- 18_adam算法的实现
- 19_学习速率的总结
- 20_babysitting学习速率调整算法
- 21_高纬度线性回归演示
- 22_总结
2-3 决策树

- 01_决策树入门
- 02_决策树与基尼系数
- 03_信息论
- 04_信息论和熵的计算
- 05_信息量获取
- 06_随机深林决策树预测
- 07_决策树中的过拟合和欠拟合
2-4 感知机

- 08_感知机介绍
- 09_感知机工作原理介绍
- 10_感知机直线移动的过程
- 11_感知机训练数据的加载
- 12_感知算法测试
- 13_感知机的完整实现
- 14_修正迭代的bug
- 15_感知机算法的动画展示
- 16_感知机总结和激活函数
- 17_梯度下降和感知机原理是一致的
- 18_sgd梯度下降介绍
2-5 逻辑回归原理

- 19_逻辑回归介绍和决策边界
- 20_逻辑回归的误差函数分析
- 21_交叉熵误差函数介绍
- 22_逻辑回归的梯度计算推导
- 23_总结
2-6 逻辑回归实现

- 01_逻辑回归代码实现
- 02_逻辑回归的动态学习速率
- 03_多分类问题的实现原理
- 04_softmax函数
- 05_softmax函数的实现
- 06_把三个二分类合并的原理
- 07_多分类问题矩阵运算的完整实现
第三章 tensorflow与机器学习实践

3-1 手写数字识别

- 08_图片存储分析
- 09_ 手写数字识别问题分析
- 10_手写数字的数据加载
- 11_数据收集与标注
- 12_手写数字的识别预测
- 13_手写数字模型保存和预测
- 14_手写数字的完整流程&误差评估
- 15_手写数字识别的训练_问题提出
- 16_mini_batch的梯度下降
- 17_模型的评估
- 18_mnist数据集官网
- 19_预测真实的数字
- 20_学习速率和局部最优解的关系
- 21_深度学习和神经网络入门
- 22_总结
3-2 tensorflow入门

- 01_tensorflow概念介绍
- 02_tensorflow的安装介绍
- 03_张量的维度(阶,形状)
- 04_tensorflow的变量声明
- 05_tensorflow2和1的最大区别
- 06_tensorflow的常见模块介绍
- 07_tensorflow梯度计算
- 08_利用tensorflow计算sigmoid函数的梯度
- 09_线性回归假数据的准备
- 10_用tensorflow构建模型
- 11_tensorflow梯度下降更新m和b的值
- 12_tensorflow高阶api完成线性回归
- 13_利用keras的API来实现线性回归
- 14_利用keras编写模型的套路
- 15_函数式模型的写法
- 16_tensorflow低阶API多现实回归
3-3 tensorflow搭建深度神经网络

- 17_一个神经元解决或问题
- 18_单个神经元解决不了异或问题
- 19_tensorflow的游乐场
- 20_单个神经元的手写数字预测
- 21_DNN网络训练手写数字
- 22_DNN网络参数数量的计算
- 23_函数式DNN网络的写法
- 24_自定义学习速率的优化器
- 25_loss和accuracy的关系
- 26_模型的预测
- 27_混淆矩阵与评价指标
- 28_直接计算梯度计算量太大
3-4 tensorflow案例实践

- 01_卷积神经网络
- 02_道路交通标识符识别
- 03_无人驾驶数据收集和预处理
- 04_无人驾驶训练和仿真环境测试
- 05_无人驾驶数据增强与模型训练
- 06_迁移学习与模型部署
- 附:目标侦测原理与实践01
- 附:目标侦测原理与实践02
阶段十一 项目
展开第一章 Gazebo仿真

1-1 Gazebo简介

- day01_01 Gazebo课程简介
- day01_02 Gazebo是什么
- day01_03 为什么学习Gazebo
- day01_04 Gazebo能做什么
- day01_05 Gazebo安装
- day01_06 empty world运行
1-2 Gazebo基础入门

- day01_07 server与client
- day01_08 初识world
- day01_09 SDF介绍
- day01_10 UI界面介绍
- day01_11 World选项
- day01_12 Insert选项
- day01_13 工具栏介绍
- day01_14 环境与机器人仿真
- day01_15 building editor简介
- day01_16 导入建筑图纸
- day01_17 墙体和门窗的绘制
- day01_18 墙体和门窗的属性设置
- day01_20 保存及使用
- day01_21 场景编辑扩展
1-3 仿真小车案例

- day01_22 Model Editor界面简介
- day02_01 Model小车案例介绍
- day02_02 底盘设置--中心点距离地面的高度
- day02_03 底盘设置--姿态配置
- day02_04 底盘设置--大小
- day02_05 轮子设置
- day02_06 连接轮子与底盘
- day02_07 连接轮子与底盘2
- day02_08 轮脚设置
- day02_09 轮脚关节设置
- day02_10 添加传感器
- day02_11 添加插件
- day02_12 小车案例测试
- day02_13 mode的sdf文件详解
- day02_14 基础部分小结
1-4 惯量配置与外边设置

- day02_15 HDL-32E传感器说明
- day02_16 HDL-32E配置参数
- day02_17 HDL-32Ebase部分创建
- day02_18 HDL-32Etop部分创建
- day02_19 转动惯量简介
- day02_20 转动惯量配置
- day03_01 小车转动惯量改进
- day03_02 joint设置
- day03_03 SDF文档阅读ray元素设置
- day03_04 生成sensor配置
- day03_05 sensor高度调整
- day03_06 FreeCAD加载外观文件
- day03_07 dae文件导出
- day03_08 Blender工具加载dae文件
- day03_09 方向和大小设置
- day03_10 top部分dae文件导出
- day03_11 top部分参数设置
- day03_12 关联模型与模型外观
- day03_13 模型外观问题处理
- day03_14 查看传感器数据
- day03_15 增加噪声
1-5 ROS与Gazebo整合

- day03_16 插件开发步骤
- day03_17 插件开发快速体验
- day04_01 CMakeList文件
- day04_02 插件代码阅读
- day04_03 插件编写
- day04_04 获取Joint
- day04_05 速度控制
- day04_06 通过配置文件加载速度信息
- day04_07 速度设置接口
- day04_08 订阅者创建
- day04_09 发布者编写
- day04_10 测试
- day04_11 clion整合ros与gazebo
- day04_12 引入ros
- day04_13 引出线程阻塞问题
- day04_14 解决线程阻塞问题
- day04_15 测试
1-6 Turtlebot机器人

- day05_01 empty_world.launch文件讲解
- day05_02 empty_world.launch文件使用
- day05_03 运行自定义的launch文件
- day05_04 Turtlebot3机器人简介
- day05_05 Turtlebot3环境安装
- day05_06 Turtlebot3运行测试
- day05_07 turtlebot3_empty_world.launch文件讲解
- day05_08 turtlebot3_world展示
- day05_09 turtlebot3_house展示
- day05_10 turtlebot3案例体验
- day05_11 turtlebot3地图创建
- day05_12 turtlebot3导航
1-7 机械臂配置编写

- day05_13 机械臂简介
- day05_14 URDF简介
- day05_15 robot节点
- day05_16 link节点
- day05_17 joint节点
- day05_18 URDF小车案例展示
- day05_19 编写底盘和左轮
- day05_20 joint编写
- day05_21 颜色配置错误查找
- day05_22 右轮设置
- day05_23 后轮设置
- day06_01 xacro建模简介
- day06_02 变量的定义及使用
- day06_03 数学计算
- day06_04 宏定义及使用
- day06_05 文件包含
- day06_06 系统案例查看
1-8 六轴机械臂

- day06_07 六轴机械臂案例——baselink
- day06_08 六轴机械臂案例——link1
- day06_09 六轴机械臂案例——joint1
- day06_10 六轴机械臂案例——显示问题修改
- day06_11 六轴机械臂案例——link2与joint2
- day06_12 六轴机械臂案例——link2惯性矩阵配置
- day06_13 六轴机械臂案例——common link
- day06_14 六轴机械臂案例——common link完善
- day06_15 六轴机械臂案例——common link调用
- day06_16 六轴机械臂案例——common joint
- day06_17 六轴机械臂案例——link3和joint3
- day06_18 六轴机械臂案例
- day07_01 六轴机械臂——palm
- day07_02 六轴机械臂——left finger
- day07_03 六轴机械臂——left finger位置调整
- day07_04 六轴机械臂——box惯性矩阵提取
- day07_05 六轴机械臂——prismatic配置
- day07_06 六轴机械臂——right finger
- day07_07 xacro中block的定义及使用
- day07_08 Solidworks完成自定义机械臂外观设计(扩展)
- day07_09 ur机械臂仿真加载
- day07_10 ur机械臂配置阅读
- day07_11 ur机械臂连接bhand机械手
1-9 Gazebo展示

- day07_12 gazebo展示--material处理
- day07_13 gazebo展示--joint处理
- day07_14 gazebo展示--sacro处理
- day07_15 gazebo展示--问题处理
第二章 智能仓储开发

2-1 了解MoveIt!与Gazebo联动课程内容

- 01 RViz与Gazebo的区别
- 02 说明
- 03 回顾
2-2 了解ros control

- 04 ros_control介绍
2-3 了解传动装置配置

- 05 Transmissions配置
- 06 Transmissions相关源码查看
- 07 Transmissions相关源码查看
2-4 建立UR3机械臂模型

- 08 ur3机械臂展示
2-5 建立UR4机械臂模型

- 09 ur3机械臂展示
2-6 机械臂和夹爪的transmission配置

- 10 ur3机械臂添加transmission配置信息
- 11 eg2夹爪添加transmission配置信息
- 12 eg2夹爪添加transmission配置信息
2-7 完成机械臂和夹爪的gazebo配置

- 13 机械臂和夹爪的gazebo配置
- 14 机械臂和夹爪的gazebo配置
2-8 完成gazebo_ros_controler插件配置

- 01 gazebo_ros_controler插件介绍
- 02 gazebo_ros_controler插件核心代码阅读
- 03 gazebo_ros_controler配置
2-9 完成机械臂关节控制器使用

- 04 ros_control概述
- 05 ros_control简介
- 06 一个关节的controller配置
- 07 控制一个关节
- 08 控制一组关节
2-10 完成joint state控制器使用

- 09 joint_state_controller配置
- 10 joint_state_controller数据发布
2-11 完成Moveit和Gazebo的联动

- 11 moveit中的轨迹控制器配置
- 12 moveit中的轨迹控制器加载
- 13 gazebo 2 moveit
- 14 轨迹控制器配置
- 15 moveit 2 gazebo
- 01 控制器约束添加
- 02 脚本调试
2-12 完成Revolute和Prismatic关节的夹爪配置和路径规划

- 03 项目结构图
- 04 机械臂与夹爪的组装
- 05 RViz中调试机械臂
- 06 Gazebo中调试机械臂
- 07 生成robot_moveit_config
- 08 完善robot_gazebo配置
- 09 gripper路径规划调试
- 10 panda_gripper加载
- 11 panda_gripper与ur3组装
- 12 effort类型的controller配置注意事项
- 13 Stopping trajectory异常的处理
- 14 机械臂关节的PID异常处理
2-13 完成项目创建

- 01 智能仓储项目简介
- 02 项目创建
2-14 完成滑轨操作

- 03 载物机台属性设置
- 04 stage base link配置
- 05 stage slide link配置
- 06 gazebo中调试载物机台
- 07 模型优化
- 08 机械臂拼装
- 09 机械臂moveit配置
- 10 调整机械臂默认关节旋转参数
- 11 滑轨路径规划执行测试
- 12 滑轨PID参数调试
- 13 三个规划组轨迹规划调试
2-15 完成blender安装

- 14 blender安装
- 15 blender汉化
- 16 blender默认用户界面设置
- 17 blender插件安装
2-16 完成物料架模型制作

- 01 添加栅格
- 02 物料架草图绘制
- 03 物料架整体挤出
- 04 物料架参数设置及导出
- 05 blender扩展
2-17 完成物料架摆放

- 06 摆放物料坐标获取
- 07 模型文件制作
- 08 物料架添加
2-18 完成物料添加

- 09 物料摆放位置配置
- 10 物料配置
- 11 物料添加的步骤
- 12 load_materiel配置文件编写
- 13 物料位置加载脚本编写
- 14 配置文件路径拼装
- 15 获取坐标数组的index信息
- 16 获取指定的坐标信息
- 01 生成物料添加参数
- 02 物料添加
- 03 断点调试
2-19 了解物料抓取

- 04 物料抓取步骤
- 05 基础代码编写
2-20 完成物料架添加

- 06 物料架位姿设置
- 07 物料架dae文件转换
2-21 完成添加物料

- 08 物料添加的测试坐标设置
- 09 从params中获取到存储的坐标信息
- 10 物料添加
- 11 删除添加的物体
2-22 完成物体抓取规划

- 12 物体抓取规划说明
- 13 滑轨移动规划
- 14 滑轨移动规划测试
- 01 在pick_place_materiel中统一测试管理
- 02 Gazebo中执行滑轨规划路径
- 03 物料抓取回顾
- 04 夹爪控制
- 05 夹爪姿态信息获取
- 06 夹爪位姿信息设置
- 07 夹爪接近物体的数据设置
- 08 抬起物料配置
- 09 更换运动学插件TRAC-IK
- 10 attach操作检查
- 11 调整RViz配置
- 12 Gazebo中执行规划轨迹
2-23 使用Gazebo抓取插件

- 13 Gazebo grasp fix plugin介绍
- 14 Gazebo grasp fix plugin配置介绍
- 15 Gazebo grasp fix plugin测试
- 16 参数微调方法
2-24 完善物料抓取

- 01 手动建立机械臂与物料的attach关系
- 02 抬起物料
- 03 放置物料流程
2-25 完成物料移出物料架

- 04 笛卡尔路径规划
- 05 笛卡尔路径规划重试机制
- 06 解决初始状态异常问题
- 07 Gazebo中执行笛卡尔路径规划
2-26 制作传送带并添加

- 08 传送带倒角制作
- 09 传送带制作
- 10 Gazebo中添加传送带
- 11 Gazebo中添加传送带异常处理
- 12 RViz中添加传送带
2-27 移动机械臂到传送带

- 13 移动到传送带
2-28 完成夹爪优化

- 14 夹爪优化简介
- 15 mimic参数配置
- 16 mimic效果RViz测试
- 17 添加mimic插件
- 18 mimic关联配置信息修改
- 19 Gazebo中测试优化后的夹爪
2-29 完成物料放置

- 20 物料放置
- 21 物料放置RViz中测试
- 22 物料放置Gazebo中测试
2-30 Gazebo中移动物料

- 23 Gazebo中移动物料
2-31 了解Gazebo下手眼结合物体抓取

- 01 Gazebo下手眼结合物体抓取的课程内容
- 02 注意Gazebo版本问题
2-32 Rviz中查看Kinect插件发布的数据

- 03 Kinect模型介绍
- 04 Kinect插件配置介绍
- 05 Rviz中查看Kinect插件发布的数据
2-33 完成相机数据的订阅和展示

- 06 相机的内参和外参介绍
- 07 相机的内参处理思路和工作步骤
- 08 环境编辑(桌子和相机)
- 09 添加OpenCV库
- 10 展示相机抓取数据
- 11 测试图片展示
2-34 完成相机数据中的桌面特征提取

- 12 canny算法查找轮廓
- 13 轮廓提取方法说明
- 14 轮廓提取不同参数的效果
- 15 矩形中心点计算
- 16 扩展_利用矩来计算矩形的中心点
- 01 绘制矩形和中心点
- 02 计算物体的y和z坐标
2-35 完成深度图像数据提取

- 03 深度图片数据
- 04 深度图片数据处理步骤
- 05 深度图片数据处理
- 06 调试深度图片数据处理
2-36 完成相机外参的获取

- 07 利用旋转矩阵计算坐标
- 08 建立相机与机械臂之间的关联
- 09 监听相机与机械臂坐标系变换矩阵
- 10 计算桌子坐标
2-37 完成抓取目标物添加

- 11 service添加模型介绍
- 12 service添加请求编写
- 13 读取模型URDF文件
2-38 了解两种定位目标方法

- 01 提取抓取目标的方法
2-39 完成HSV目标提取定位

- 02 HSV颜色模型介绍
- 03 过滤整个物体
- 04 动态调整HSV颜色模型的参数值
- 05 计算目标物的像素位置信息
- 06 计算目标物的位置信息
2-40 完成pcl点云数据目标提取定位

- 07 PCL点云处理方式介绍
- 08 PCL点云展示准备工作
- 09 PCL点云展示
- 10 使用pcl_visualizer工具展示PCL点云
- 11 滤波功能介绍
- 12 直通滤波
- 13 降采样
- 01 包容盒的处理思路
- 02 AABB包容盒的绘制
2-41 了解案例并完成准备工作

- 03 抓取案例业务逻辑
- 04 案例准备工作
- 05 案例运行
- 06 节点划分
2-42 完成像素坐标系下桌子中心点定位

- 07 创建table_2d节点
- 08 转动机械臂
- 09 MoveitUtil实例创建时间错误的异常演示
- 10 计算桌子中心点坐标
- 11 计算桌子轮廓
- 12 计算结果测试
- 13 lanch文件编写和run脚本改造
2-43 完成桌子定位

- 14 l计算桌子中心点坐标(相机坐标系)
- 15 l计算桌子中上表面深度信息
- 01 桌子中心点到世界坐标系转化
- 02 桌子中心点到世界坐标系转化测试
- 03 moveit场景中添加桌子
- 04 测试及容错机制优化
2-44 完成目标物体添加、定位、抓放、循环处理

- 05 目标物管理工作内容
- 06 目标物管理节点划分
- 07 Gazebo中添加目标物
- 08 随机坐标生成
- 09 测试目标物添加
- 10 直通滤波
- 11 降采样与包容盒
- 12 定位目标点测试
- 13 计算目标物中心点坐标
- 01 计算目标物中心点世界坐标
- 02 计算目标物中心点世界坐标测试
- 03 moveit场景中添加目标物及测试
- 04 机械臂go home操作
- 05 抓取参数配置
- 06 抓取测试
- 07 放置物体
- 08 测试放置
- 09 循环处理流程
- 10 循环处理
- 11 删除模型
- 12 监听gazebo中模型信息
- 13 循环抓取物体测试
第三章 Webots虚拟仿真开发

3-1 webots简介

- 01 webots简介
- 02 webots可以做什么
- 03 webots如何使用
3-2 webots安装

- 04 webots安装
- 05 webots帮助文档使用
3-3 webots常用操作

- 06 webots窗口简介
- 07 webots常用菜单
- 08 webots常用操作
- 09 练习-添加光源和物体
- 10 练习-proto简介
- 11 重力体验
3-4 案例一开发

- 12 案例一_项目目录详解
- 13 案例一_world文件详解
- 13 案例一_场景搭建
- 01 回顾
- 02 webots控制器简介
- 03 webots开放工具
- 04 第三方IDE
- 05 内置开放工具编写helloworld代码
- 06 前进控制器编写
- 07 速度控制
- 08 第三方IDE配置
- 09 第三方IDE使用
3-5 复合对象

- 10 复合对象组装
- 11 DEF使用
3-6 案例二开发

- 12 小车案例_小车结构拆分
- 13 小车案例_添加车身与轮子
- 14 小车案例_jointParameters配置
- 15 小车案例_添加旋转马达
- 16 小车案例_添加距离传感器
- 17 小车案例_控制小车前进
- 18 小车案例_距离传感器使用
- 19 小车案例_简单避障
- 20 小车案例_利用两个传感器躲避障碍物
- 21 小车案例_简单的Proto文件定义
- 22 小车案例_proto扩展
3-7 UR机械臂配置

- 01 回顾
- 02 Ur机械臂的整体结构
- 03 IndexFaceSet简介
- 04 base_link配置
- 05 base_link碰撞检测配置
- 06 shoulder_link配置
- 07 shoulder_link碰撞检测配置
- 08 shoulder_link关节参数配置
- 09 upper_arm_link配置
- 10 forarm_link配置
- 11 腕关节配置
3-8 UR机械臂控制

- 12 Ur3机械臂控制器编写
3-9 仿真外壳数据获取

- 13 IndexedFaceSet信息的获取
- 14 urdf2webots工具使用
3-10 夹爪仿真

- 01 回顾
- 02 夹爪仿真
- 03 夹爪控制
3-11 使用机械臂与夹爪完成物体抓取

- 04 物体抓取案例_场景搭建
- 05 物体抓取案例_场景搭建问题处理
- 06 物体抓取案例_等待物体靠近
- 07 物体抓取案例_物体抓取
- 08 物体抓取案例_机械臂运动
- 09 物体抓取案例_放置物体
- 10 物体抓取案例_回到初始位置
- 11 物体抓取案例_机械臂运行速度控制
3-12 webots与ros联动

- 12 webots_ros运行案例简介
- 13 ros控制器代码简介
- 14 ros控制器使用hello_world
- 15 ros中控制小车
- 16 ros中小车控制项目创建
- 17 webots与moveit联动
3-13 赛事仿真

- 01 回顾
- 02 汽车仿真简介
- 03 汽车仿真配置说明
- 04 车轮配置
- 05 阿克曼配置
- 06 Car(proto)模型配置
- 07 控制器编写
- 08 汽车仿真设备使用
- 09 赛事仿真
第四章 可口可乐智慧工厂

4-1 项目简介

- 01 智能工厂项目简介
4-2 webots提供的仿真元素及改进简介

- 02 webots提供的仿真元素及改进内容
4-3 webots中机械臂改进

- 03 机械臂基座改进
- 04 机械臂夹爪改进
- 05 机械臂设备名称改进
- 06 机械臂设备名称改进后测试
4-4 webots中夹爪改进

- 07 夹爪设备名称改进及测试
4-5 webots中传送带改进

- 08 传送带的大小和位置设置
- 09 去掉传送带边框
- 10 传送带样式问题处理
- 11 Track节点简介
- 12 传送带运动配置
- 13 完善传送带运动配置
4-6 webots中多可乐制作

- 01 产品仿真简介
- 02 输入信息校验
- 03 产生一箱可乐
- 03 产生一组可乐
- 04 多可乐的碰撞检测
- 05 多可乐的物理属性设置
4-7 webots中整箱可乐配置

- 06 产生一箱可乐
- 07 箱可乐物理属性配置
4-8 webots中相机配置

- 08 相机配置
- 09 相机使用测试
4-9 webots内置ROS机械臂控制器简介

- 10 webots内置ROS机械臂控制器简介
4-10 机械臂URDF模型制作

- 11 创建机械臂URDF模型
- 12 URDF模型调整
4-11 机械臂moveit配置

- 13 机械臂moveit配置
- 14 机械臂moveit配置细节
4-12 机械臂控制

- 01 机械臂仿真package创建
- 02 webots中机械臂路径规划执行
- 03 机械臂控制器代码调整
4-13 夹爪仿真制作

- 04 webots中夹爪调整
- 05 夹爪组件外观定义
- 06 夹爪URDF制作
- 07 ROS中启动夹爪仿真
4-14 夹爪控制

- 08 夹爪控制器编写
- 09 夹爪轨迹规划
- 10 夹爪控制器问题处理
4-15 webots中组装机械臂和夹爪

- 11 webots中组装机械臂和夹爪
4-16 moveit中机械臂与夹爪组装

- 01 moveit中机械臂与夹爪组装
4-17 组装后的路径规划

- 02 组装后的moveit配置
- 03 组装后的路径规划
4-18 仿真工厂

- 04 整合智能工厂仿真与路径规划工作成果
4-19 webots中Camera的物体识别

- 05 webots中Camera的物体识别
- 06 获取识别物体数据
- 07 计算物体世界坐标系中坐标
- 08 多物体识别处理
4-20 运动物体抓取的处理流程

- 01 运动物体抓取的处理流程
4-21 静态物体抓取

- 02 moveit初始化
- 03 躲避相机
- 04 目标物添加
- 05 坐标系旋转
- 06 添加传送带
- 07 机械臂运行到物体正上方
- 08 夹爪管理
- 09 沿z轴接近物体
- 10 抓取物体时的碰撞检测处理
- 01 移动目标物
- 02 打开夹爪
- 03 远离目标物
- 04 规划容错
4-22 动态物体抓取

- 05 预留时间判断
- 06 预设目标添加
- 07 物体是否在夹爪内的判断
- 08 单个物体的码放
- 09 多物体托盘码放