课程试听
阶段一 Python基础
展开第一章 1-Python基础

1-1 工业机器人和协作机器人

- 01.常见的机器人 免费试学
- 02.工业机器人四大家族 免费试学
- 03.工业机器人缺点 免费试学
- 04.协作机器人和工业机器人的区别 免费试学
1-2 机器人组成部分

- 05.机器人组成部分 免费试学
- 06.机械臂和坐标系 免费试学
- 07.仿真模拟器简介 免费试学
- 08.机器人仿真器操作 免费试学
- 09.工程导入讲解 免费试学
1-3 基础语法

- 10.计算机的硬件组成和软件组成 免费试学
- 11.python简介 免费试学
- 12.第一个python项目以及pycharm配置 免费试学
- 13.注释和pycharm的提示 免费试学
- 14.变量以及变量练习 免费试学
- 15.变量补充 免费试学
- 16.变量类型 免费试学
- 17.绘制三角形 免费试学
- 18.机器人三种移动方式 免费试学
- 01.回顾 免费试学
- 02.作业 免费试学
- 03.输出函数 免费试学
- 04.格式化输出练习 免费试学
- 05.占位输出 免费试学
- 06.输入函数 免费试学
- 07.输入和输出练习 免费试学
- 08.常见的运算符 免费试学
1-4 流程控制语句

- 09.if使用多个条件 免费试学
- 10.if elif 免费试学
- 11.if嵌套 免费试学
- 12.石头剪刀布 免费试学
- 13.while循环和死循环 免费试学
- 14.while循环 免费试学
- 15.回文数练习 免费试学
- 16.打印三角形 免费试学
- 17.循环嵌套 免费试学
- 18.乘法口诀 免费试学
- 19.快捷键和倒序九九乘法表 免费试学
1-5 列表和元组

- 20.列表的定义 免费试学
- 21.列表的获取增加删除 免费试学
- 22.列表的修改和查询 免费试学
- 23.通过修改列表绘制正方形 免费试学
- 24.登录验证判断 免费试学
- 25.in和not in 免费试学
- 01.作业 免费试学
- 02.continue和break 免费试学
- 03.range区间 免费试学
- 04.机器人迎宾 免费试学
- 05.循环结合else语句 免费试学
- 06.for结合else的练习 免费试学
- 07.分配物品到盒子中练习 免费试学
- 08.素数练习 免费试学
- 09.元组定义和获取元素 免费试学
- 10.元组的使用场景 免费试学
1-6 函数

- 11.函数的定义和调用 免费试学
- 12.函数的文档注释 免费试学
- 13.函数的参数和返回值 免费试学
- 14.函数多返回值和函数类型 免费试学
- 15.局部变量和全局变量 免费试学
- 16.模块 免费试学
1-7 机器人任务理系统

- 17.机器人任务管理系统简介 免费试学
- 01.for循环练习 免费试学
- 02.用户名判断 免费试学
- 03.机器人任务管理系统菜单处理 免费试学
- 04.机器人任务管理系统任务类型处理 免费试学
- 05.添加任务 免费试学
- 06.id解释 免费试学
- 07.显示所有的功能 免费试学
- 08.查询任务 免费试学
- 09.处理任务逻辑搭建 免费试学
- 10.修改任务 免费试学
- 11.总结 免费试学
- 12.问题解答 免费试学
1-8 PyQt界面开发

- 13.pyqt环境搭建 免费试学
- 14.窗口图标和标题处理 免费试学
- 15.创建PyQt窗口模板代码 免费试学
- 16.文本和图片的展示 免费试学
- 17.单行和多行输入框 免费试学
- 18.信号和槽简介 免费试学
- 19.信号和槽 免费试学
- 20.水平和竖直布局 免费试学
- 21.示教器第一部分开发 免费试学
- 22.作业 免费试学
- 01.示教器第一部分 免费试学
- 02.示教器其它部分讲解 免费试学
- 03.网格布局 免费试学
- 04.计算器布局分析 免费试学
- 05.计算器上部文本处理 免费试学
- 06.添加所有的按钮 免费试学
- 07.计算器按钮处理 免费试学
- 08.按钮点击处理 免费试学
- 09.计算器实现 免费试学
阶段二 Python核心编程
展开第一章 1-Python核心

1-1 集合字符串和字典

- 10.集合的定义和特点
- 11.set list tuple转换
- 12.字母和数字判断
- 13.开头和结尾
- 14.查找和替换
- 15.拆分和去空白
- 16.用户名和密码判断
- 17.字典的定义和特点
- 18.字典的查找和遍历
- 19.字典的使用场景
- 20.分配球
1-2 高级变量公共语法

- 01.作业
- 02.高级变量类型公共运算符
- 03.切片
- 04.索引的正序和倒序
- 05.切片步长为负
- 06.高级变量类型练习第一部分
- 07.高级变量练习第二部分统计字符
- 08.第二种统计方法
- 09.列表推导式
- 10.列表推导式练习
- 11.其它推导式
- 12.高级变量练习1-字符串分割
- 13.天数统计
- 14.作业题分析
1-3 特殊函数和参数

- 15.默认参数
- 16.默认参数的作用
- 17.关键字参数
- 18.可变参数
- 19.typora工具使用
- 01.作业
- 02.kwargs可变参数
- 03.传递元组和字典给可变参数
- 04.递归
1-4 文件I/O

- 05.文件的打开和关闭
- 06.文件的写入
- 07.文件的读取
- 08.文件拷贝
- 09.大文件的复制
- 10.代码统计
- 11.相对路径和绝对路径
- 12.编码和解码
1-5 面向对象

- 13.面向对象思想
- 14.方法定义
- 15.成员属性的定义
- 16.作业讲解
- 01.斐波那契数列练习
- 02.面向对象练习
- 03.self参数
- 04.__init__和__str__方法
- 05.手机案例
- 06.搬家具1
- 07.搬家具2
- 08.属性和方法的私有化
- 09.属性区别
1-6 面向对象三大特征

- 10.封装简介
- 11.洗衣机1
- 12.洗衣机2
- 13.封装总结
- 14.继承
- 15.继承方法和属性修改
- 16.子类不能访问父类的私有属性和私有方法
- 17.多继承方法和属性
- 18.多态和鸭子模型
- 01.枚举
- 02.反恐精英分析
- 03.反恐精英
1-7 模块和包

- 04.模块的导入和冲突解决
- 05.模块的__name__属性
- 06.包的导入和冲突
- 07.time模块
- 08.其它模块
1-8 异常处理

- 09.异常捕获
- 10.异常捕获关键字
- 11.常见的异常
- 12.自定义异常
1-9 机器人绘制

- 13.pyqt面向对象
- 14.上午回顾
- 15.pyqt自定义控件绘制流程
- 16.自定义控件绘制
- 17.鼠标事件处理
- 18.机器人绘制界面整体搭建
- 19.机器人绘制界面处理
- 20.清理
- 21.机器人绘制
- 22.作业讲解
第二章 2-飞机大战

2-1 PyGame游戏框架使用

- 01.作业
- 02.项目简介
- 03.pygame窗口展示
- 04.退出窗口
- 05.pygame窗口图标和标题设置
- 06.图片展示
- 07.文本展示
- 08.事件处理和飞机移动
- 09.音效播放
- 10.fps求取
- 11.surface控件
- 12.上午回顾
2-2 飞机大战

- 13.游戏窗口处理
- 14.游戏背景展示
- 15.我方飞机面向对象抽取
- 16.飞机移动
- 17.飞机按压键盘移动
- 18.飞机越界处理
- 19.子弹发射
- 20.子弹的位置确定
- 21.子弹的自动移动
- 22.子弹越界销毁
- 23.敌方飞机展示
- 24.敌方飞机自动移动
- 25.子弹和敌方飞机碰撞检测
- 26.敌方飞机扩容
- 27.我方飞机和敌方飞机碰撞
- 28.游戏结束
第三章 3-贪吃蛇

3-1 贪吃蛇

- 01.游戏窗口创建以及游戏分界面逻辑
- 02.游戏首界面展示
- 03.跳转到游戏界面
- 04.网格绘制
- 05.贪吃蛇绘制
- 06.贪吃蛇移动
- 07.控制帧数
- 08.贪吃蛇方向移动
- 09.苹果绘制
- 10.贪吃蛇吃苹果
- 11.分数显示
- 12.游戏结束
- 13.游戏结束界面显示
- 14.游戏结束
- 15.贪吃蛇面向对象简介
- 16.通过面向对象展示首页
- 17.界面展示和事件传递
- 18.界面切换
阶段三 高等数学
展开第一章 微积分和高等数学

1-1 初等数学

- 01_课程简介&开发环境搭建
- 02_有理数无理数的表示
- 03_代数符号运算
- 04_展开和化简
- 05_求和和乘积运算
- 06_一元方程和二元方程的求解
- 07_多元函数的代数表达式运算
- 08_把字符串转换成代数表达式
1-2 函数和数列

- 09_什么是函数
- 10_函数的连续性
- 11_无穷数列作业题
1-3 微积分

- 12_微积分概念热身
- 13_木棍滑到的应用案例
- 14_函数的极限&左极限和右极限
- 15_连续函数和非连续函数的极限
- 16_左极限和右极限的编程求解
- 17_通过小车位移和时间的关系来理解切换和导数
- 18_导数和变化率之间的关系
- 19_基本函数的导数&导数的一些应用场景
- 20_高阶导数的应用
- 21_复合函数的导数
- 22_泰勒公式简单入门
- 23_积分简介和应用场景
- 24_定积分和不定积分的编程实现
- 25_微分方程简单求解
第二章 线性代数和numpy

2-1 可视化数据

- 01_表格绘制入门
- 02_子表格的绘制
2-2 numpy运算

- 03_numpy简介
- 04_numpy的常见操作
- 05_numpy数组的属性和数据类型
- 06_numpy的四则运算
- 07_python数组和numpy数组的异同
- 08_numpy二维数组和下标
- 09_numpy数组的切片和拆分
- 10_数组的转置和形状改变
- 11_numpy数据维度的应用场景
- 12_偏差和方差概念入门
- 13_玛雅数字表示法
2-3 矩阵运算与行列式

- 14_矩阵预算简单入门
- 15_矩阵的运算
- 16_矩阵运算求解鸡兔同笼问题
- 17_逆矩阵的特点
- 18_numpy生成随机数api
- 19_正态分布数据的特点
- 20_numpy其他常用api
- 21_数据的排序操作
- 22_行向量和列向量
- 23_通过概率计算pi的值
- 24_numpy切片练习
- 25_numpy数组的拆分和合并
- 26_numpy用索引去索引数组
- 27_numpy矩阵的广播机制
- 28_numpy矩阵广播的应用
- 29_作业要求
阶段四 Python高级编程
展开第一章 网络编程

1-1 网络通信基础

- 01_课程介绍&学习目标
- 02_网络通信概述
- 03_IP地址
- 04_常用的网络相关命令(IP地址)
- 05_端口port介绍
- 06_端口的分类及查看命令
- 07_网络传输方式
- 08_socket套接字使用步骤
1-2 UDP收发数据

- 09_使用udp发送数据
- 10_使用udp发送并接收数据
- 11_Python编码encode&解码decode
- 12_编解码错误处理
- 13_udp发送端端口绑定
- 14_udp接收端端口绑定
- 15_udp广播的发送
- 16_udp聊天器
1-3 TCP客户端与服务器

- 01_课程回顾&今日目标
- 02_TCP简介
- 02_TCP客户端-收发数据
- 03_TCP服务器-收发数据
- 04_TCP服务器-优化
- 05_TCP文件下载器
- 06_上午回顾
- 07_tcp的3次握手和4次挥手
- 08_域名DN&域名解析服务DNS
1-4 HTTP协议与服务器

- 09_HTTP协议概述
- 10_查看浏览器HTTP协议
- 11_HTTP请求报文格式
- 12_HTTP响应报文格式
- 13_长连接和短连接
- 01_课程回顾&今日目标
- 02_模拟浏览器_发送GET请求
- 03_模拟浏览器_获取并解析响应
- 04_服务器-返回固定数据
- 05_服务器-返回固定页面
- 06_服务器-返回指定页面
- 07_服务器-处理问题
- 08_服务器-面向对象封装
1-5 WSGI实现动态Web开发框架

- 09_服务器-基础框架构建1
- 10_服务器-基础框架构建2
- 11_命令行带参数启动服务器
- 12_命令行启动网游服务器
- 13_服务器-基础框架构建3
- 14_服务器-动态资源请求
- 15_mini_frame框架开发
- 16_回调函数回顾
第二章 多任务编程

2-1 多线程开发

- 00_知识回顾&今日目标
- 01_多任务概念及需求
- 02_线程的基本使用
- 03_线程个数&线程名称
- 04_线程的参数及顺序
- 05_守护线程
- 07_并发和并行
- 08_自定义线程类
- 09_多线程共享全局变量_问题
- 10_同步和异步
- 11_互斥锁
- 12_死锁&解决死锁
- 13_UDP聊天器_多任务版本
- 14_TCP服务器_多线程版本
- 15_Event事件
- 16_GIL全局解释器锁
- 17_递归锁RLock
- 18_ThreadLocal本地变量
- 19_Condition条件锁
- 20_Timer定时器
- 21_线程池ThreadPoolExecutor
2-2 多进程开发

- 01_知识回顾&今日目标
- 02_进程及状态
- 03_进程的基本使用
- 04_进程的pid&ppid
- 05_进程的参数&全局变量共享问题
- 06_守护进程
- 07_进程&线程对比
- 08_消息队列的基本使用
- 09_消息队列的常见判断
- 10_Queue实现进程间通信
- 11_进程池概述
- 12_进程池的同步&异步执行
- 13_进程池中的Queue
- 14_文件夹Copy器
- 15_Lock互斥锁
- 16_Pipe管道
- 17_fork进程
2-3 协程开发

- 01_知识回顾&今日目标
- 02_可迭代对象以及判断
- 03_可迭代对象的本质iter
- 04_迭代器
- 05_自定义迭代器
- 06_迭代器-斐波那契数列
- 07_迭代器-迭代展示斐波那契数列前num个数
- 08_生成器-两种创建方式
- 09_生成器-斐波那契数列
- 10_生成器-注意事项
- 11_协程-使用yield关键字实现协程
- 12_协程-使用greenlet实现
- 13_协程-使用gevent实现
- 14_协程-猴子补丁
- 15_进程、线程、协程对比
- 16_协程实现并发下载器
第三章 机器人-正则表达式

3-1 课程概述与环境搭建

- 00-课程介绍
- 01-正则表达式概述
- 02-工具使用
3-2 正则表达式的语法

- 03-re模块的基本使用
- 04-匹配单个字符任意和中括号列举
- 05-匹配单个字符-下
- 06-匹配多个字符
- 07-匹配多个字符练习
- 08-匹配开头和结尾
- 09-正则分组-上
- 10-正则分组-练习
- 11-正则分组-下
- 12-上午内容回顾
3-3 正则表达式高级用法

- 13-re模块其它
- 14-sub函数的用法
- 15-r的作用
- 16-贪婪和非贪婪
- 17-演示字符串截取的问题
- 18-演示字符串贪婪和非贪婪
3-4 正则表达式实战-爬虫

- 19-网站介绍
- 20-urllib简单使用
- 21-电影爬虫-上
- 22-电影爬虫-中
- 23-电影爬虫-下
3-5 正则表达式实战-斗鱼

- 01-json格式的介绍
- 02-找到斗鱼接口
- 03-斗鱼爬虫小案例
3-6 正则表达式实战-在线翻译

- 04-QQ翻译翻译小案例
- 05-urlib发送get请求
- 06-urllib携带请求头
- 07-urllib发送post请求方式
- 08-QQ翻译案例
第四章 数据库编程

4-1 数据库概述

- 09-数据库的概念
- 10-为什么要学习数据库
- 11-了解常见的数据库
4-2 环境搭建

- 12-mysql的卸载
- 13-mysql的安装
4-3 DDL操作

- 14-SQL分类的介绍
- 15-数据库的增删改查
- 16-上午内容回顾
- 17-创建表
- 18-修改表
- 19-删除数据库和表
- 20-表的约束
- 21-补充唯一性约束
4-4 DML操作

- 22-auto_increment的使用
- 23-解决中文乱码问题
- 24-修改和删除
4-5 DQL操作

- 25-简单查询
- 26-where条件查询
- 27-模糊查询
- 28-排序查询
- 29-聚合运算
- 30-分组查询
- 31-分页查询
4-6 初级阶段小结

- 32-图形化工具使用
- 33-回顾
4-7 课程回顾

- 01-QQ翻译补充
- 02-上次课内容回顾
- 03-count问题
4-8 建表原则

- 04-外键约束介绍
- 05-一对多建表原则
- 06-多对多建表原则
- 07-一对一的建表原则
4-9 商城案例实战分析

- 08-商城案例分析
- 09-建表原则小结
4-10 多表查询练习

- 10-多表查询案例-数据准备
- 11-笛卡尔积介绍
- 12-内连接查询
- 13-外连接查询
- 14-连接查询案例
- 15-查询1号订单信息的练习
4-11 子查询练习

- 16-子查询概述
- 17-单行子查询
- 18-多行子查询
- 19-select后面接子查询
- 20-查询语句执行顺序
- 21-exists的用法
- 22-from后面接子查询
- 23-having后面接子查询
- 24-查询平均工资练习
- 25-四张表连接查询
- 26-今日内容回顾
4-12 视图

- 01-视图概述
- 02-视图的使用
- 03-视图应用场景
4-13 事务

- 04-事务的概述
- 05-手工开启事务
- 06-关闭自动提交
- 07-上节课疑问
- 08-事务特性
- 09-事务的隔离级别介绍
- 10-脏读演示
- 11-不可重复读演示
- 12-串行化演示
4-14 索引

- 13-索引的概述
- 14-准备数据
- 15-创建索引-显著提高效率
- 16-索引的原理
- 17-索引的优缺点
- 18-如何找出耗时的SQL
- 19-索引内容小结
- 20-索引补充内容
4-15 数据库设计范式

- 21-第一范式
- 22-第二范式
- 23-第三范式
4-16 账户管理

- 24-为什么要学习账号管理
- 25-创建用户概述
- 26-创建用户和授权-上
- 27-查看权限和删除权限
4-17 小案例

- 28-用户管理小案例
- 29-修改密码
- 30-找回密码
- 小结
4-18 数据库编程概述

- 01-回顾与今日课程安排
- 02-数据库编程概述
- 03-数据库编程的流程
4-19 python操作数据库

- 04-建立连接
- 05-创建数据库
- 06-创建表
- 07-插入100条记录
- 08-查询数据
- 09-对查询数据进行封装
4-20 登陆小案例

- 10-登录小案例-代码实现
- 11-演示SQL注入问题
- 12-解决SQL注入的问题
4-21 学生管理系统

- 13-学生系统-主窗口搭建
- 14-学生系统-注册页面
- 15-学生系统-登录页面和自定义信号
- 16-学生系统-首页页面
- 17-学生系统-初始化数据库
- 18-学生系统-注册功能
- 19-学生系统-登录功能
- 20-项目中存在的问题
- 21-使用md5加密密码
- 22-了解qt中数据库操作
- 23-QT中数据库查询操作
- 24-QT中显示数据
4-22 扩展-SQLAlchemy

- 25-文档介绍
- 26-了解什么ORM
- 27-sqlalchemy入门
- 28-查询数据库
- 29-关系映射
- 30-自动生成代码
第五章 机器人-HTML与CSS

5-1 html概述

- 01-了解软件架构
- 02-了解什么是HTML
- 03-html入门小案例
5-2 环境搭建

- 04-pycharm工具使用
- 05-安装LiveEdit插件
5-3 网站信息案例

- 06-入门标签
- 07-网站信息案例
5-4 网站图片案例

- 08-图片标签使用
- 09-图片路径注意
- 10-家电排行榜案例
5-5 友情链接案例

- 11-列表标签
- 12-友情链接案例-超链接标签
- 13-友情链接案例-代码实现
5-6 小说排行榜案例

- 14-小说排行榜案例-表格标签
- 15-小说排行榜案例-合并单元格
- 16-小说排行榜-其它表格标签
- 17-小说排行榜的案例
5-7 综合小案例

- 18-综合案例-上
- 19-综合案例-下
5-8 表单标签

- 20-input标签相关内容
- 21-input一些其它属性
- 22-下拉框和文本域
- 23-注册案例-代码实现
- 24-form标签使用
5-9 CSS概述

- 25-table布局的弊端
- 25-什么是层叠样式表
- 27-div和span标签
- 28-css入门案例
5-10 CSS常用选择器

- 29-基础选择器
- 30-选择器优先级的问题
- 31-扩展选择器-后代和子元素
- 32-扩展选择器-属性+并集+伪类
- 33-选择器小结
5-11 CSS常用属性

- 31-常用的属性
- 32-盒子模型-边框-内边距-外边距
- 33-将div做成按钮
- 34-浮动元素介绍
- 35-流式布局-清除浮动
5-12 CSS百度首页

- 36-高仿百度页面-上
- 37-高仿百度页面-下
- 38-css三种引入方式
第六章 网络爬虫

6-1 今日内容概述

- 01-今天课程介绍
- 02-抓取网页流程
- 03-robots
- 04-爬虫相关的概念
6-2 电影爬虫案例实战

- 05-电影天堂爬取案例-分析
- 06-requests发送get请求
- 07-获取qtv和qtk
- 08-requests发送post请求
- 09-postman的使用
- 10-电影天堂爬虫案例-上
- 11-电影天堂爬虫案例-管道概念
- 12-将数据保存到数据库中
- 13-增加多线程优化项目
- 14-增加超时限制
- 15-Scrapy结构流程
- 16-Scrapy框架故事
- 17-构建scrapy工程
- 18-scrapy步骤-明确目标
- 19-scrapy步骤-制作爬虫-上
- 20-scrapy步骤-获取电影详情链接
- 21-scrapy步骤-解析单个电影
- 22-输出命令-到文件
- 23-保存数据完成
- 24-引入wsgi服务器
- 25-将页面数据展现出来
- 26-最终演示效果
- 27.小结
第七章 Linux系统&命令

7-1 Linux系统入门

- 01-操作系统简介
- 02-不同领域的主流OS
- 03-unix-history
- 04-linux-history
- 05-Linux内核及发行版
- 06-Linux的应用领域
- 07-Linux文件和目录
7-2 Linux命令

- 08-命令入门
- 09-查看帮助手册
- 10-查看文件信息-ls
- 11-Linux常用命令
- 12-用户权限-字母法修改
- 13-文件权限-数字发修改
- 14-老鼠和毒药-二进制
- 15-用户账户操作
- 16-find&grep查找操作
- 17-文件压缩解压
- 01_查找命令&find&grep
- 02-高级命令
- 03-其他好用命令awk&xargs&sed等
- 04-软件安装与卸载
第八章 Vim&Shell

8-1 Vim编辑器

- 05-vim模式及切换
8-2 Shell脚本及定时任务

- 06-什么是Shell
- 07-Shell初体验
- 08-Shell变量-本地变量&全局变量
- 09-Shell变量-内置变量-变量默认值
- 10-Shell数组
- 11-Shell运算符
- 12-Shell文件&字符串运算符
- 13-流程控制-条件语句
- 14-流程控制-case条件
- 15-流程控制-循环语句
- 16-复杂流程控制-函数定义及调用
- 17-案例
- 18-案例-备份
- 19-Linux定时任务
- 20-三方软件介绍
阶段五 C++高级实战
展开第一章 -基础语法

1-1 工具介绍

- 01_C++介绍
- 02_C++版本&优缺点
- 03_C++与python比较
- 04_C++ 编译环境介绍
- 05_C++ 编译环境安装(一)
- 06_C++ 编译环境安装(二)
- 07_C++ 开发工具安装
1-2 注释和变量

- 08_HelloWorld
- 09_main函数解释
- 10_main带参数的写法
- 11_命令行编译
- 12_注释
- 13_数据类型
- 14_变量 - 声明变量
- 15_变量 - 初始化
- 16_变量 - 命名规则
- 17_常量&变量占用大小
- 18_常见的编码错误
1-3 输入和输出

- 19_输入输出- 输出
- 20_输入输出 - 输入
- 21_输入输出 - 判断三条边是否满足三角形
1-4 条件判断和循环

- 22_条件判断 - if语句
- 23_条件判断 - switch语句
- 24_关系运算符&逻辑运算符
- 26_循环操作 - while循环
- 27_循环操作 - continue&break
- 28_循环操作 - do-while
- 29_循环操作 - for循环
1-5 命名空间

- 30_命名空间 - 自定义命名空间
- 31_命名空间 - 使用using指令
第二章 数组与字符串

2-1 数组

- 01_作业回顾
- 02_clion - 创建子项目
- 03_数组 - 声明和初始化
- 04_数组 - 访问数组
- 05_数组 - 数组元素在内存中的体现
- 06_数组 - 小细节
- 07_数组 - 二维数组(一)
- 08_数组 - 二维数组(二)
2-2 字符串

- 09_字符串 - C语言字符串(一)
- 10_字符串 - C语言字符串(二)
- 11_字符串 - C语言字符串(三)
- 12_字符串 - C++字符串(一)
- 13_字符串 - C++字符串(二)
- 14_字符串 - 练习
2-3 vector

- 15_vector - 声明和初始化
- 16_vector - 基本操作
- 17_vector - 二维vector
第三章 -函数

3-1 函数(一)

- 18_函数 - 声明和访问函数
- 19_函数 - 四种写法
- 20_函数 - 函数原型
- 21_函数 - 头文件(一)
- 22_函数 - 头文件(二)
- 23_函数 - 分离式写法(头文件和源文件)
3-2 函数(二)

- day02回顾
- day02作业 - 学生成绩
- day02作业 - 计算器函数
- day02作业 - 删除字符串
- 01_函数重载
- 02_参数传递 - 值传递
- 03_参数传递 - 传递数组
- 04_参数传递 - 传递引用(一)
- 05_参数传递 - 传递引用(二)
- 06_函数是如何被调用工作的
- 07_内联函数
- 08_范围规则
第四章 指针与引用

4-1 指针(一)

- 10_指针 - 什么是指针
- 11_指针 - 声明和初始化
- 12_指针 - 指针地址和大小
- 13_指针 - 解引用
- 14_指针 - 交换两个变量值
- 15_指针 - 指针的细节
4-2 动态内存

- 16_动态内存 - 介绍
- 17_动态内存 - new申请内存
- 18_动态内存 - delete内存
- 19_动态内存 - new[]和delete[]
- 20_动态内存 - 关于动态内存的思考
- 21_指针与数组的关系
- 22_结构体 - 介绍
- 23_结构体 - vector存储结构体
4-3 指针(二)

- day03回顾
- day03作业 - 准备架子
- day03作业 - 初始化成绩(一)
- day03作业 - 初始化成绩(二)
- day03作业 - 更新&打印成绩
- 01_指针运算 - 介绍
- 02_指针运算 - 自增&自减
- 03_指针运算 - 练习
- 04_指针与常量
- 05_指针与函数 - 参数传递指针
- 06_指针与函数 - 函数返回指针(一)
- 07_指针与函数 - 函数返回指针(二)
- 08_指针与函数 - 二级指针(一)
- 09_指针与函数 - 二级指针(二)
- 10_指针与函数 - 二级指针(细节)
- 11_指针与函数 - 二级指针(练习)
- 12_函数指针 - 简单示例
- 13_函数指针 - 简单示例(二)
- 14_函数指针 - 参数传递函数指针
- 15_函数指针 - 函数指针的应用
- 16_typedef - 介绍
- 17_typedef - 简化函数指针
4-4 引用

- 18_引用 - 介绍
- 19_引用 - 左值和右值
- 20_引用 - 左值引用
- 21_引用 - 右值引用
- 22_作业 - 题干解释
- 22_作业-左值变右值(非常重要!!!)
第五章 -面向对象

5-1 面向对象(一)

- day04回顾
- 作业 - 01_计算器
- 作业 - 02_ 引用
- 作业 - 03_01_初始化容器
- 作业 - 03_02_初始化学生成绩
- 作业 - 03_03 - 打印成绩
- 作业 - 03_03 - 更新成绩
- 01_类和对象
- 02_访问对象中成员的两种方式
- 03_类和对象 - 访问修饰符
- 04_类和对象 - 实现类中成员函数(一)
- 05_类和对象 - 实现类中成员函数(二)
- 06_类和对象 - 练习
- 07_类和对象 - 构造函数(一)
- 08_类和对象 - 构造函数(初始化列表 一)
- 09_类和对象 - 构造函数(初始化列表 二)
- 10_类和对象 - 委托构造函数
- 11_类和对象 - 析构函数
- 12_类和对象 - 初始化列表(练习)
- 13_类和对象 - 拷贝的概念
- 14_类和对象 - 拷贝构造函数(一)
- 15_类和对象 - 拷贝构造函数(二)
- 16_类和对象 - 浅拷贝的问题(一)
- 17_类和对象 - 浅拷贝的问题(二)
- 18_类和对象 - 深拷贝(一)
- 19_类和对象 - 深拷贝(二)
- 20_类和对象 - 触发拷贝的场景
- 21_作业 - 题目解释
5-2 面向对象(二)

- day05回顾
- day04作业 - 准备学生
- day04作业 - 学生类实现
- day04作业 - 更新和打印学生
- day04作业 - 构造函数(委托)
- 01_再说函数的返回值
- 02_移动构造函数 - 移动介绍
- 03_移动构造函数 - 拷贝&移动的对比
- 04_移动构造函数 - 移动构造
- 05_移动构造函数 - move函数
- 06_移动构造函数 - 练习
- 07_this指针
- 08_常函数
- 09_常对象
- 10_静态成员变量
- 11_静态成员函数
- 12_结构体和类
- 13_友元 - 概念解释
- 14_友元 - 友元函数
- 15_友元 - 友元类
- 16_练习
第六章 运算符重载

6-1 运算符重载(一)

- 17_运算符重载 - 介绍
- 18_运算符重载 -背后其实是函数调用
- 19_运算符重载 - 成员的方式已定义
- 20_运算符重载 - 全局的方式定义
- 21_运算符重载 - 全局函数定义(二)
6-2 运算符重载(二)

- day06回顾
- 01_作业 - 运算符重载
- 02_作业 - 定义学生类
- 03_作业 - 初始化学生信息
- 04_作业 - 更新学生信息
- 05_作业 - 打印学生信息(一)
- 06_作业 - 打印学生信息(二)
- 07_作业 - 删除学生信息
- 08_运算符重载 - 输出运算符重载
- 09_运算符重载 - 输入运算符重载
- 10_运算符重载 - 拷贝赋值运算符(一)
- 11_运算符重载 - 拷贝赋值运算符(二)
- 12_运算符重载 - 移动赋值运算符
- 13_运算符重载 - 调用运算符
第七章 lambda表达式

7-1 lambda表达式

- 14_lambda表达式 - 语法介绍
- 15_lambda表达式 - 调用
- 16_lambda表达式 - 捕获列表
- 17_lambda表达式 - 应用场景
- 18_lambda表达式 - 练习
第八章 继承与多态

8-1 继承(一)

- 19_继承- 概念介绍
- 20_继承 - 简单继承
- 21_继承 - 访问修饰符_
- 22_继承 - 构造函数
- 23_继承 - 析构函数
- 24_继承 - 组合下的构造和析构
- 25_继承 - 子类调用父类有参构造函数
8-2 继承(二)

- day07回顾
- 01_作业 - 比较两个学生大小
- 02_作业 - 定义学生和教师类
- 03_作业 - 初始化教师
- 04_作业 - 初始化学生
- 05_作业 - 更新和打印学生
- 06_作业 - debug查找错误
- 07_作业 - 完成
- 08_再说初始化列表(一)
- 09_再说初始化列表(二)
- 10_再说初始化列表(三)
- 11_子类重写父类同名函数
- 12_多继承
- 13_类的前置声明
8-3 多态

- 14_多态 - 静态多态
- 15_多态 - 动态多态
- 16_多态 - 父类引用&指针指向子类对象
- 17_多态 - 静态类型和动态类型
- 18_多态 - 访问同名函数
- 19_多态 - 静态联编和动态联编
- 20_多态 - 为什么要提供两种联编
- 21_多态 - 练习(重要!!!)
- 22_多态 - 虚函数介绍
- 23_多态 - 虚函数工作原理
- 24_多态 - 构造函数不能是虚函数
- 25_多态 - 析构函数必须写成虚函数
- 26_多态 - override关键字
- 27_多态 - final关键字
- 28_关键字 - =delete
- 29_关键字 - =default
- 30_纯虚函数
- 31_抽象类和接口
- 32_智能指针 - 指针潜在的问题
第九章 智能指针

9-1 智能指针

- day08回顾
- 01_作业1
- 02_作业2
- 03_智能指针 - unique_ptr(声明和初始化)
- 04_unique_ptr - 取值
- 05_unique_ptr - 销毁
- 06_shared_ptr - 基本用法
- 07_shared_ptr - 潜在的问题
- 08_shared_ptr - 潜在的问题(二)
- 09_weak_ptr - 解决shared_ptr的问题
9-2 动态内存

- 10_动态内存 - 内存区域划分
- 动态内存 - new 和 delete
- 12_多态内存 - malloc_free
9-3 宏

- 13_宏 - 宏变量
- 14_宏 - 条件宏
第十章 枚举、异常、i/o

10-1 枚举和异常

- 15_枚举 - 限定作用域
- 16_枚举 - 不限定作用域
- 17_枚举 - 枚举的使用。
- 18_枚举 - 练习(统计男生女生总数)
- 19_异常 - 捕获异常(try-catch)
- 20_异常 - 不抛出异常,给出提示代码。
- 21_异常 - 抛出异常
- 22_异常 - noexcept 关键字
- 23_io - 基本输出(一)
10-2 i/o

- day09回顾
- 01_作业 - human类和学生类定义
- 02_作业 - 导入头文件嵌套的问题
- 03_作业 - 教师类定义
- 04_作业 - 准备教师数据
- 05_作业 - 打印信息
- 06_io - 基本输入输出
- 07_io - 字符串输入流
- 08_io - 字符串输出流
- 09_io - 文件操作
- 10_io - 文件读取(一)
- 11_io - 文件读取(二)
- 12_io - 文件读取 (二维vector)
- 13_io - 文件读取(二维vector)
- 14_io - 文件写入(一)
- 15_io - 文件写入(二)
第十一章 模板编程和容器

11-1 模板编程

- 16_模板编程 - 模板编程的意义
- 17_模板编程 - 函数模板(一)
- 18_模板编程 - 函数模板(二)
- 19_模板编程 - 模板函数重载
- 20_可变参数 - 省略号的方式
- 21_可变参数 - initializer_list
- 22_可变参数 - 可变参数模板(定义)
- 23_可变参数 - 递归
- 24_可变参数 - 使用递归拆包
- 25_可变参数 - 使用initializer_list实现(建议使用)
- 26_类模板 - 定义容器类
- 27_类模板 - 重构容器类
11-2 容器

- day10回顾
- 01_作业 - 定义容器
- 02_作业 - 读取文件
- 03_作业 - 写入文件
- 04_顺序容器 - 介绍
- 05_顺序容器 - 队列(deque & queue)
- 06_顺序容器 - 链表(forward_list & list)
- 07_迭代器 - 介绍
- 08_迭代器 - 背后的细节(一)
- 09_迭代器 - 背后的细节(二)
- 10_关联容器 - map(pair介绍)
- 11_关联容器 - map的使用(一)
- 12_关联容器 - map的使用(二)
- 关联容器 - set
第十二章 函数对象

12-1 function & bind

- 13_function对象(一)
- 14function对象 - 接收全局和lambda函数
- 16_function - 接收静态成员和普通成员函数
- 17_function - 练习
- 18_bind - 介绍
- 19_bind - 绑定全局函数
- 20_bind - 绑定成员函数
- 21_bind - placeholder占位符
第十三章 线程

13-1 线程(一)

- 22_线程 - 介绍
- 23_线程 - 创建线程
- 24_线程 - join & detach
- 25_线程 - 线程ID 和 休眠
- 26_线程 - 停止线程
- 27_线程 - 并发的问题
- 28_线程 - 使用mutex来解决线程并发
13-2 线程(二)

- day11回顾
- 01_作业 - 基本实现
- 02_作业 - 细节处理(一)
- 03_作业 - 细节处理(二)
- 04_线程同步 - 介绍
- 05_线程同步 - 使用mutex来处理
- 06_线程同步 - 使用面向对象包装
- 07_线程同步 - lock_guard
- 08_线程同步 - unique_lock
- 09_条件变量 - 为什么需要条件变量
- 10_条件变量 - 简单使用
- 11_条件变量 - 普通休眠解决搬运盒子
- 12_条件变量 - 条件变量解决搬运盒子
- 13_条件变量 - 面向对象和条件变量 搬运盒子
- 14_线程 - 如何获取线程函数的运行结果
- 15_线程 - async (一)
- 16_线程 - async(二)
第十四章 设计模式

14-1 单例模式

- 17_设计模式 - 介绍
- 18_单例模式 - 懒汉式 (二)
- 19_单例模式 - 懒汉式 (二)
- 20_单例模式 - 饿汉式
- 21_单例模式 - 懒汉式面临的问题(一)
- 22_单例模式 - 懒汉式面临的问题(二)
- 23_单例模式 - 懒汉式面临的问题(三)
14-2 观察者模式

- day12回顾
- 01_作业 - 工作台实现
- 02_作业 - 左手&右手实现
- 03_观察者模式 - 介绍
- 04_观察者模式 - 简单使用
- 05_观察者模式 - 观察者和目标对象互相绑定
- 06_观察者模式 - 多个观察者观察目标对象
- 07_观察者模式 - 综合演练(一)
- 08_观察者模式 - 综合演练(二)
第十五章 make&cmake

15-1 make

- 09_make - 介绍
- 10_make - 程序编译的背后
- 11_make - 语法介绍
- 12_make-只想编译文件
- 13_make - 多个源文件编译
- 14_make - 多个源文件编译(二)
- 15_make - 简化写法
- 16_make - 清除缓存文件
15-2 cmake

- 17_cmake - cmake&cmakelist关系
- 18_cmake - cmakelist.txt 介绍
- 19_cmake - 创建子工程
- 20_cmake - 定义变量和定义宏
- 21_cmake - 配置文件
- 22_cmake - 动态库和静态库区别
- 23_cmake - 项目引入自己打包的动态库
- 24_cmake - 打包多个动态库
- 25_cmake - 导入多个动态库
- 26_cmake - 使用变量简化设置
- 27_cmake - 使用find_library查找动态库
- 28_cmake - 使用foreach 查找多个库
- 29_cmake - find_package的使用
- 30_cmake - 导入opencv(一)
- 31_cmake - 导入opencv(二)
阶段六 Qt图形化编程
展开第一章 Qt图形化编程

1-1 环境准备

- 01_qt - 介绍
- 02_qt - 下载qt
- 03_qt - 安装qt
- 04_qt - 配置环境变量
- 05_qt - 导入Qt(一)
- 06_qt - 导入Qt(二)
- 07_qt - 导入Qt(三)
1-2 基础控件

- 08_qt - HelloWorld
- 09_qt - 自定义窗口
- 10_qt - 设置窗口图标和标题
- 11_qt - 设置窗口大小和位置
- 12_qt - 添加控件(按钮)
- 13_qt - 对象树模型
- 14_qt - 基本UI
- 15_qt - 布局分类
- 16_qt - QBoxLayout(一)
- 17_qt - QBoxLayout(二)
- 18_qt - QGridLayout
- 19_qt - QToolBox
1-3 自定义控件

- 20_qt - 自定义ui
- 21_qt - 黑马时钟 - 画刻度
- 22_qt - 黑马时钟 - 画刻度(重铸版)
- 23_qt - 秒针
- 24_qt - 绘画秒针(二)
- 25_qt - 让秒针走起来
- 26_qt - 画分针
- 27_qt - 画时针
1-4 信号和槽

- 01_表格ui
- 02_信号和槽 - 介绍
- 03_信号和槽 - 使用lambda接收系统信号
- 04_信号和槽 - 使用全局函数接收信号
- 05_信号和槽 - 成员函数接收信号(一)
- 06_信号和槽 - 成员函数接收信号(二)
- 07_信号和槽 - 使用槽函数接收信号(一)
- 08_信号和槽 - 使用槽函数接收信号(二)
- 09_信号和槽 - 使用槽函数接收信号(三)
- 10_信号和槽 - 自定义信号
1-5 图片和ui文件

- 11_显示图片(一)
- 12_显示图片(二)
- 13_ui文件 介绍
1-6 socket通讯

- 14_socket通信 - 介绍
- 15_socket通讯 - TCP(服务器端UI)
- 16_socket通讯 - UI搭建
- 17_socket通讯 - 服务端(接收消息)
- 18_socket通讯 - 服务端(发送消息)
- 19_socket通讯 - 客户端(接收消息)
- 20_socket通讯 - 客户端(发送消息)
- 21_socket通讯 - 测试通过
- 22_socket通讯 - udp连接
1-7 综合案例

- 23_综合案例qq - 展示
- 24_综合案例qq - 搭建主窗体(一)
- 25_主列表页面
- 26_给列表绑定点击事件
- 27_聊天窗口显示
- 28_发送消息
- 29_接收消息
- 30_小细节(一)
- 31_小细节(二)
阶段七 机器人操作系统(ROS)
展开第一章 1-ROS核心基础

1-1 ROS介绍

- 01机器人介绍概述
- 02ros介绍
- 03ros产品介绍
1-2 ROS系统结构

- 04ros环境搭建注意事项
- 05ros架构设计
- 06ros文件系统
1-3 集成开发环境

- 07ros的workspace和package创建
- 08clion集成ros环境
- 09helloworld环境构建
- 10翻墙更新rosdep
- 11ros的ide启动注意
- 12ros的python环境搭建
1-4 节点相关API和工具

- 13ros cpp常规api使用
- 14ros py常规api使用
- 15rosnode命令行使用
- 16_package配置介绍
第二章 2-Topic通信

2-1 Topic核心基础

- 17_topic通讯介绍
- 18_cpp publisher的创建
- 19_publisher调试
- 20cppsubscriber的创建
- 21_subscriber调试
- 01_回顾小结
- 02_py publisher的实现
- 03_py_subscriber实现
- 04_topic的特点说明
- 05_匿名节点
2-2 自定义Topic消息

- 06_自定义消息的生成
- 07_c++使用自定的消息
- 08_c++使用自定义消息2
- 09_python_使用自定义消息
- 10_使用自定义obj消息
- 11_自定义消息包含标准库内容
- 12_自定义消息包含三方库
- 13_自定义使用
- 14_使用数组消息c++
- 15_使用数组python
第三章 3-ROS整合Qt

3-1 小乌龟Topic通信介绍

- 16_小乌龟介绍
- 17_小乌龟界面特性
- 18_ROS的qt环境构建
- 19_Demo的Gui实现
- 20_小乌龟publisher创建
- 21_小乌龟控制实现
3-2 ROS面向对象集成Qt

- 22_面向对象搭建Qt环境
- 23_节点传递
- 24_python Qt环境搭建
- 02_source配置问题
- 03_python 面向对象实现小乌龟移动
- 04_当前小乌龟pose的GUI实现
- 05_小乌龟pose的订阅
- 06_解决小乌龟subscriber订阅问题1
- 07_解决小乌龟ubscriber订阅问题2
- 08_小乌龟subscriber的python实现
第四章 4-ROS日志系统

4-1 日志使用

- 09_Ros 日志介绍
- 10_Ros_日志gui操作
- 11_模板配置
第五章 5-Service通信

5-1 Service核心基础

- 12_service通讯介绍
- 13_c++的service通讯server端实现
- 14_c++的service通讯client端实现
- 15_pyton的service通讯server端实现
- 16_python的service通讯client的实现
- 17_md5值不同的问题
- 18_srv命令的介绍
5-2 自定义Service消息

- 19_srv自定义消息流程
- 20_使用自定义消息
- 21_srv自定义消息客户端实现
- 22_srv自定义消息python使用
- 02_srv消息生成步骤
- 03_srv消息使用c++
- 04_srv消息使用python
- 05_srv_自定义消息c++使用
- 06_srv_自定义消息python使用
5-3 小乌龟Service通信案例

- 07_小乌龟service命令的介绍
- 08_小乌龟qt环境搭建
- 09_Gui实现清理功能
- 10_reset实现和创建小乌龟UI实现
- 11_spawn功能的实现
- 12_kill功能实现
- 13_set_pen功能的实现
- 14_绝对位置UI的实现
- 15_相对位置UI的实现
- 16_小乌龟python qt环境准备
- 17_python小乌龟控制GUI实现
- 18_python小乌龟控制功能的实现
5-4 Qt与Service作业

- 19_作业-自定义消息
- 20_作业-publisher的实现
- 21_作业-subscriber的实现
- 22_作业-窗体创建
- 23_作业-数量显示Gui实现
- 24_作业-table的gui显示
- 01_作业-计算器-qt环境构建
- 02_作业-计算器-UI实现
- 03_作业-计算器-事件捕获
- 04_作业-计算器-数字输入的实现
- 05_作业-计算器-计算操作的实现
- 06_作业-计算器-细节处理1
- 07_作业-计算器-细节处理2
- 08_作业-计算器-正负功能实现
- 09_作业-业务分析
- 10_作业-server端和client对接实现
第六章 6-PID控制

6-1 速度距离控制

- 11_小乌龟模拟扫地机器人介绍
- 12_扫地机器人-分析路线
- 13_扫地机器人-基础环境搭建
- 14_扫地机器人-UI创建
- 15_扫地机器人-小乌龟移动的基本控制
- 16_扫地机器人-小乌龟当前位置的获得
- 17_扫地机器人-小乌龟目标距离计算
- 18_扫地机器人-小乌龟速度频率的控制
- 19_扫地机器人-小乌龟时间控制和线程问题
6-2 可视化数据

- 20_扫地机器人-plot的bug修复
- 21_扫地机器人-plot的使用介绍
- 22_扫地机器人-显示速度变化
- 23_扫地机器人-小乌龟速度计算新策略
6-3 PID控制

- 01_回顾pid
- 02_开环和闭环系统
- 03_PID控制算法介绍,P算法
- 04_PID控制的I算法
- 05_PID控制的D算法
- 06_扫地机器人-小乌龟P算法的实现
- 07_扫地机器人-小乌龟Kp值调试
- 08_扫地机器人-小乌龟ki值调试
- 09_扫地机器人-小乌龟kd值调试
- 10_扫地机器人-小乌龟角度旋转分析
- 11_扫地机器人-小乌龟角速度计算和问题
- 12_扫地机器人-小乌龟时间片的设置
- 13_扫地机器人-小乌龟乱转问题分析
- 14_扫地机器人-小乌龟bug修复
- 15_扫地机器人-小乌龟路点的确定
- 16_扫地机器人-小乌龟纵向扫地的实现
第七章 7-Action通信

7-1 SimpleAction核心基础与状态控制

- 17_Action通讯简单介绍
- 18_Action通讯模型介绍
- 19_Action通讯案例介绍
- 20_自定义Action消息的流程
- 21_SimpleActionServer的创建
- 22_SimpleActionServer的简单实现
- 01_作业_py扫地机器人环境搭建
- 02_作业_py扫地机器人业务代码修改
- 03_Action通信simpleclient
- 04_Action通信SimpleServer业务逻辑实现
- 05_Action通信SimpleClient回调函数创建
- 06_Action通信SimpleClient回调数据的获得
- 07_Aciont通信SimpleClientUI环境构建
- 08_Action通信SimpleClient面向对象创建
- 09_Action通信SimpleClientGui展示进度和结果
- 10_Action通信SimpleAction取消功能的实现
- 11_Action通信SimpleServerGui构建
- 12_Action通信SimpleServer代码移植
- 13_Action通信SimpleServer终止逻辑的实现
- 14_Aciton通信逻辑梳理
- 15_Action通信Py SimpleServer初始构建
- 16_Action通信Py SimpleServer逻辑实现
- 17_Action通信Py SimpleClientUI构建
- 18_Action通信py SimpleClient功能实现
7-2 ActionServer开发流程与状态控制

- 19_Acion通信Action Server的创建
- 01_action回顾
- 02_AcionServer简易实现
- 03_ActionClient创建的一些问题
- 04_ActionClient简易的创建
- 05_ActionServer逻辑简易实现
- 06_ActionServer状态的介绍
- 07_ActionServer取消功能的实现
- 08_ActionClient状态结果的判断
- 09_GUIActionServer初始化
- 10_GUIActionServer的Goal回调基本实现
- 11_GUIActionClient的初始化
- 13_GUIActionclient状态处理操作
- 14_GUIAction 取消的实现
- 15_GUIAction 终止操作简易实现
- 16_GUIActionServer 任务的显示
- 17_GUIAction 单个任务的中断操作
- 18_GUI Action Server Qt子线程更新UI
- 20_Action Server python基本功能实现
- 21_Action Client Python基本功能实现
- 22_Action client Py 状态结果的处理
- 23_Action server 表格ui实现
- 24_Python Qt 子线程和主线程通信处理
- 25_Action Server中断操作的实现
- 26_Action Python 取消功能实现
第八章 8-配置文件

8-1 rosparam参数

- 02_rosparam基本功能介绍
- 03_rosparam的API(cpp)
- 04_rosparam的API(python)
8-2 roslaunch基本操作

- 05_roslaunch的基本使用
- 06_launch-节点的重启配置
- 07_launch-日志配置
- 08_launch-名称空间
- 09_launch-remap映射
- 10_launch-node内param设置
- 11_launch-args参数理解
- 12_launch_全局args的设置和获取
- 13_launch_include嵌套启动节点
- 14_launch_group
第九章 9-TF坐标转换

9-1 tf坐标转换基本原理与开发流程

- 15_TF坐标转换
- 16_TF坐标系理解
- 17_姿态描述方式
- 18_TF工具的工作原理
9-2 tf实现坐标转换案例

- 19_跟随案例-分析与初始化
- 20_跟随案例-小乌龟显示
- 20_跟随案例-小乌龟运动控制
- 21_跟随案例_分析坐标关系的表达
- 22_跟随案例_小乌龟1实时位置的获得
- 23_跟随案例_小乌龟1集成TF功能
- 24_跟随案例_小乌龟2获取位置和tf数据上传
- 25_跟随案例_小乌龟2查看相对位置信息
- 26_跟随案例_小乌龟2速度计算与发布
- 01_内容介绍
- 02_rviz工具使用介绍
- 03_rviz调试小乌龟
- 04_rviz启动配置
- 05_rviz背后实现原理
- 06_跟随py_turtle1位置发布实现
- 07_跟随py_turtle2实现
- 08_护航案例_分析
- 09_护航案例_实现
- 10_护航案例_多只小乌龟护航
- 11_圆周运动案例实现
- 12_四元数转欧拉角
- 13_作业说明
第十章 10-向量基础

10-1 向量基本定义

- 14_向量的定义
10-2 向量加法和缩放

- 15_向量的加法和缩放
10-3 向量点乘与叉乘

- 16_向量的点乘和叉乘
第十一章 11-坐标转换

11-1 自由度介绍

- 17_自由度的介绍
11-2 2D平移和旋转

- 18_2d平移转换几何
- 19_2d平移转换向量
- 20_2d旋转推导
- 02_平移案例-正向
- 03_平移案例-逆矩阵
11-3 2D旋转平移变换案例

- 04_旋转案例-正向
- 05_旋转案例-逆向
- 06_平移和旋转综合介绍
- 07_案例旋转和平移
- 08_案例单连杆问题
- 09_案例双连杆问题
- 10_案例三连杆问题分析
- 11_案例三连杆代码实现
11-4 3D平移旋转矩阵

- 12_3D旋转绕Z轴转动的推导
- 13_3D旋转矩阵综合
第十二章 12-机器人建模

12-1 urdf基本模型介绍

- 14_URDF的hello world
- 15_urdf-link-box形状
- 16_urdf_link其他形状的配置
- 17_urdf_纹理样式配置
- 18_urdf_link_位置和姿态设置
12-2 关节类型

- 01_joint介绍
- 02_joint_gui显示初始化
- 03_joint_revoluate转动方向
- 04_joint_无限转动和平移效果
- 05_scara案例-第一个joint实现
- 06_scrara案例-第二个转动轴实现
- 07_scrara案例-第三个轴平移实现
- 08_UR5建模
12-3 正解和反解库

- 09_kdl库的安装
- 10_设备的说明
- 11_dh参数查看
- 12_kdl构建模型一
- 13_kdl构建模型二
- 14_kdl正解代码逻辑
- 15_kdl正解-模型bug修复
- 16_反解逻辑
- 17_kdl反解方式二
12-4 xacro模型

- 01_xacro定义变量
- 02_xacro背后的原理
- 03_xacro运算功能
- 04_xacro宏定义
- 05_xacro简单案例
- 06_xacro条件判断
- 07_xacro案例:scara01
- 08_xacro案例:scara02
- 09_xacro案例:scara03
12-5 写字案例

- 10_模拟器-movej的使用
- 11_模拟器-movel的使用
- 12_模拟器-movel画三角形
- 13_模拟器-movep使用
- 14_模拟器-movec
- 14_模拟器-movet和movecart
- 15_写字案例-分析
- 16_写字案例-基本UI创建
- 17_ 写字案例-鼠标事件捕获
- 18_写字案例-鼠标写字逻辑分析和数据获得
- 19_写字案例-鼠标事件数据的封装
- 20_写字案例-qt绘制api
- 21_写字案例-绘制逻辑实现
- 22_写字案例-清理功能的实现
- 23_写字胆量-绘制逻辑问题分析
- 24_写字案例-绘制操作
- 25_写字案例-绘制bug的调试
阶段八 2D机器视觉实战
展开第一章 opencv初级

1-1 机器视觉概述

- 01_课程介绍
- 02_opencv一些场景
- 03_机器视觉面临的一些挑战
- 04_opencv安装
1-2 图像的基本操作

- 05_读取图片
- 06_写入图片
- 07_理解像素
- 08_获取图片信息
- 09_图像的剪切
- 10_图像的镜像处理
1-3 图像的几何变换

- 11_最近邻域插值法
- 12_了解双线性插值法
- 13_图片的平移
- 14_图片的平移api
- 15_图像的旋转
- 16_图像的仿射变换
- 17_补充-矩阵推导
- 18_图像金字塔
- 19_图像的融合
1-4 图像特效

- 20_图像灰度处理
- 21_灰度图的颜色反转
- 22_彩色图的颜色反转
- 23_马赛克效果
- 01_浮雕效果
- 02_绘制形状
- 03_绘制文字
- 04_贴图处理
- 05_图像增量
- 06_滑动条的使用
1-5 图像直方图

- 07_代码方式统计颜色直方图
- 08_灰度图的直方图
- 09_灰度图直方图均衡化
- 10_直方图均衡化API
- 11_彩色图直方图
- 12_彩色直方图均衡化
1-6 视频帧提取

- 13_打开摄像头
- 14_拆解视频
第二章 opencv进阶

2-1 人脸检测

- 15_人脸识别介绍
- 16_人脸识别代码实现
- 17_检测人的眼睛
2-2 颜色过滤

- 18_HSV颜色空间
- 19_inRange的使用
- 01_抠出网球
2-3 绿幕处理

- 02_一种便捷的python处理方式
- 03_替换绿幕背景图像
2-4 图像二值化

- 04_threshold介绍
- 05_图像的阈值处理
- 06_thresholdAPI
- 07_自适应阈值处理
- 08_大津算法介绍
- 09_补充_三角阈值
- 10_阈值小结
2-5 图像卷积

- 11_了解什么是图像的噪声
- 12_了解卷积的概念
- 13_卷积的原理
- 14_中值滤波概述
- 15_滤波的一些小细节
- 16_中值滤波
- 17_高斯模糊
- 18_Sobel算子
- 19_Sobel算子api使用
- 20_Sobel算子修正函数Scharr
- 21_拉普拉斯算子
- 22_Canny边缘检测算法
- 22_补充-锐化滤波
- 23_双边滤波器-磨皮美颜
2-6 霍夫变换

- 24_平面坐标转极坐标
- 25_示例代码——绘制霍夫直线
- 26_霍夫直线查找棋盘上的直线
- 01_霍夫圆概述
- 02_霍夫圆API
- 03_查找棋盘上的棋子
2-7 图像的边缘轮廓

- 04_轮廓查找
- 05_查找轮廓剔除小的轮廓
- 06_绘制外切矩形
- 07_网球小案例
- 08_获取轮廓信息
第三章 cpp版opencv

3-1 cpp版opencv基本操作

- 09_搭建C++开发环境
- 10_直方图匹配概述
- 11_灰度图的直方图匹配
- 12_彩色直方图匹配
- 13_获取图片信息
- 14_创建图像
- 15_图像的剪切
3-2 cpp版直方图均衡化与匹配

- 16_绘制图像的直方图
- 17_封装直方图显示工具函数
- 18_直方图均衡化
- 19_直方图匹配
3-3 cpp版图像卷积

- 01_filter2d的使用
- 02_Sobel和Scharr函数
- 03_拉普拉斯算法
3-4 模板匹配

- 04_模板匹配
3-5 图像变换

- 05_形态学变换
- 06_透视变换
3-6 图像变换小案例

- 07_补充——修正案里-上
- 08_补充_矫正案例下
3-7 多边形拟合

- 01_多边形拟合原理介绍
- 02_补充-多边形拟合
第四章 2D图像处理实战

4-1 泛洪填充案例

- 03_泛洪填充的案例
4-2 图像分水岭案例

- 04_图像分水岭
- 05_图像分水岭切割碗的案例
4-3 图像距离变换案例

- 06_距离变换
- 07_距离变换_代码
- 08_案例_物品统计数量
4-4 图像修复案例

- 10_inpaint修复图像
4-5 图像旋转与切边案例

- 11_切边
- 12_案例_旋转和切边
4-6 填空题直线提取案例

- 13_案例_提取直线
4-7 kmeans算法与背景替换案例

- 15_kmeans聚类算法
- 16_kmeans处理图像
- 17_案例_替换背景颜色
阶段九 3D机器视觉实战
展开第一章 相机标定&目标检测

1-1 相机入门

- 00_课程简介
- 01_相机基础概述
- 02_传感器&彩色相机原理
- 03_3D相机及分类
- 04_相机模型
- 05_二维坐标系旋转及推导
- 06_三维坐标转换及作用
- 07_相机坐标系到图像坐标系
- 08_图像坐标系到像素坐标系—综合转换
- 09_根据相机镜头参数估算相机内参
- 10_畸变参数_径向畸变
- 11_畸变参数_切向畸变
- 12_标定与去畸变原理
1-2 相机标定&去畸变

- 13_标定板
- 01_回顾与预习
- 02_标定板及生成
- 03_棋盘格标定准备
- 04_标定-角点查找
- 05_标定-创建物体3d坐标
- 06_标定-执行相机标定&保存结果到文件
- 07_连接摄像头实时采集标定角点
- 08_摄像头采集图片进行标定_棋盘格
- 09_摄像头采集图片进行标定_圆网格
- 10_摄像头采集图片进行标定_非对称圆网格
- 11_封装标定工具命令行参数
- 12_使用remap去畸变
- 13_使用undistort去畸变
- 14_三维重建-坐标系
- 15_三维重建-立方体
1-3 目标检测

- 01_回顾与预习
- 02_物体检测概述
- 03_霍夫直线检测
- 04_直线检测_FLD
- 05_盒子检测需求
- 06_盒子检测
- 07_多边形检测
- 08_快速搜索文件技巧
- 09_模板匹配
- 10_特征检测及描述
- 11_使用SIFT_SURF_ORB实现特征检测和描述
- 12_特征匹配
- 13_通过特征匹配查找目标
- 14_通过特征匹配恢复目标
第二章 3D视觉

2-1 3D视觉入门

- 00-Kinect2相机驱动
- 00-PCL点云库安装
- 00-课程预热
- 01-PCL概述
- 02-加载并展示一个点云
- 03-pcl_viewer工具使用
- 04-CloudViewer使用
- 05-PCLVisualizer使用
- 06-点云的矩阵变换
- 07-点云数据文件的格式
- 08-点云的反序列化和序列化
- 09-随机数生成规则
- 10-kd_tree原理及使用
- 11-octree八叉树
- 12-PassThrough直通滤波
- 13-DownSample降采样
- 14-其他方法移除离群点
2-2 点云关键点提取与特征描述

- 00-知识点回顾
- 01-从点云图创建深度图
- 02-从深度图提取边界
- 03-关键点Keypoints
- 04-RANSAC采样一致性算法概述
- 05-RANSAC拟合平面和球体
- 06-特征描述与提取概述
- 07-估算点云表面法线
- 08-法向量评估参数
- 09-PFH点特征直方图
2-3 3D视觉高级

- 01-点云配准需求场景
- 02-PCL实现的配准算法
- 03-点云配准代码实现
- 04-点云分割-平面模型分割
- 05-点云分割-圆柱体模型分割
- 06-点云分割-欧式聚类提取
第三章 2D&3D融合

3-1 目标提取及定位

- 01-3D物体包容盒
- 02-模板匹配-点云特征初始化
- 03--模板匹配-处理目标点云以减少后期计算量
- 04-模板匹配-执行匹配-展示结果
3-2 手眼标定&目标抓取

- 05-手眼标定-眼在手上
- 06-手眼标定-眼在手外
- 06-手眼标定-眼在手外-补充
- 07-手眼标定的操作步骤
- 08-手眼标定-代码输入输出
- 09-手眼标定-代码实现
- 10-解决AX=XB源码及论文
- 11-通过Kinect2相机获取RGB和深度图
- 12-将RGB和深度图对齐
- 13-cpp-xml文件读写操作
- 01-RGB彩色图与depth深度图配准
- 02-模板匹配物体抓取原理
- 03-根据自己需要确定抓取位姿xyzrpy
- 04-生成目标点云&模板匹配
- 05-结合目标&模板&外参计算最终目标位姿
- 06-通过2D图像视觉-生成3D位姿
- 07-四棱锥位姿练习
- 07-点云曲面重建
- 08-手眼标定-数据采集
阶段十 人工智能机器学习
展开第一章 机器学习入门

1-1 机器学习问题描述

- 01_什么是人工智能
- 02_什么是学习&为什么要学习
- 03_学习方法
- 04_机器学习的步骤
- 05_feature和label
- 06_问题描述
1-2 knn算法

- 07_knn算法步骤解析
- 08_knn算法预测
- 09_预测结果优化的原则
- 10_超级参数k的选择
- 11_k值选取的一些原则和技巧
- 12_欧式距离
- 13_多维数据的knn实现
- 14_多组数据的knn实现
1-3 数据处理和可视化

- 15_数据归一化
- 16_数据标准化
- 17_特征数据的选择和处理
- 18_2d数据可视化
- 19_3d数据的可视化
第二章 数据回归

2-1 线性回归入门

- 01_什么是线性回归
- 02_mae和mse
- 03_不考虑m计算b和mse的关系
- 04_变化规律求导分析
- 05_sympy计算变化率
- 06_梯度下降的步骤
- 07_代码实现梯度下降
- 08_一个参数的线性回归
- 09_思考题
2-2 线性回归原理推导

- 10_求解对m和b的偏导数
- 11_线性回归求解m和b
- 12_直接代数求解m和b
- 13_梯度下降的几何学分析
2-3 多项式回归

- 14_线性回归的局限
- 15_天猫销售额预测
第三章 数据回归模型优化

3-1 学习速率

- 01_梯度下降回顾
- 02_初等数学改为矩阵运算
- 03_矩阵运算的过程推到
- 04_用矩阵运算实现梯度下降
- 05_寻找合适的learningrate
- 06_动画展现梯度下降学习过程
3-2 学习速率优化

- 07_论文和算法
- 08_学习速率优化v1
- 09_学习速率优化v2
- 10_油耗评估
第四章 感知机和决策树

4-1 决策树

- 11_sklearn完成线性回归计算
- 12_决策树概念入门
- 13_信息论入门
- 14_信息论和熵
- 15_熵的计算公式
- 16_信息量获取的计算公式
- 17_决策树和随机森林
- 18_过拟合和欠拟合
4-2 感知机

- 01_感知机入门
- 02_感知机的决策函数
- 03_感知机神经元和激活函数
- 04_感知机初步分析
- 05_感知机算法的基本原理
- 06_感知机的递归原理
- 07_感知机算法解析
- 08_真实数据的感知机实现
- 09_感知机的step操作
- 10_动画展现感知机变化的过程
- 11_感知机和梯度下降
第五章 逻辑回归和多分类回归

5-1 逻辑回归原理

- 12_mini_batch和sgd
- 13_逻辑回归入门
- 14_逻辑回归的步骤
5-2 交叉熵与逻辑回归优化

- 15_交叉熵概念入门
- 16_交叉熵梯度下降的推到
- 17_逻辑回归的梯度下降简单实现
- 18_逻辑回归学习速率的优化算法
5-3 多分类和案例分析

- 19_多分类回归的原理
- 20_边际概率和条件概率
- 21_多分类回归的手动计算
- 22_手写数字识别作业
第六章 机器学习流程分析

6-1 数据模型建立

- 01_ 手写数字问题分析和数据标注
- 02_手写数字识别的简单实现
6-2 模型加载

- 03_mini_batch梯度下降训练大量数据
- 04_模型准确度的评估
- 05_模型的保存和加载
6-3 数据增强

- 06_真实数据的预测_x1
- 07_数据增强_x1
6-4 数据训练与深度学习

- 08_手写数字识别_x1
- 09_机器学习的分类_x1
- 10_神经元和神经网络
- 11_深度神经网络
- 12_神经网络的发展
第七章 深度学习入门

7-1 深度学习环境搭建

- 13_keras和tensorflow的安装
- 14_keras_入门与运算介绍
7-2 深度学习案例入门

- 15_keras训练或运算
- 16_keras预测异或问题
7-3 深度学习精确度评估

- 17_loss和accuracy的关系
- 18_模型评估的公式
第八章 深度学习精确度评估

8-1 卷积神经网络原理与设计

- 01_cnn卷积的原理
- 02_cnn原理解析
- 03_反向传导原理解析
- 04_人脑和cnn识别的类比
- 05_cnn设计的原则
- 06_卷积神经网络案例
- 07_手写数字识别的cnn网络设计
8-2 云服务器使用

- 08_云GPU服务器使用
8-3 卷积神经网络物体分类识别

- 01_cnn流程复习
- 02_cnn保存模型和预测
- 03_实验任务
- 04_数据可视化
- 05_数据收集和数据清洗
- 06_数据集的制作
- 07_模型训练
- 08_猫狗分类预测
- 09_猫狗识别数据增强
- 10_误差分析_混淆矩阵
- 11_常见cnn模型&cifar10数据集训练
8-4 yolo物体侦测

- 12_yolo简单入门
- 13_代码实现yolo物体侦测
- 14_yolo摄像头识别物体
- 15_yolo自定义物体标注和识别
- 16_c++代码运行训练好的模型
阶段十一 项目实战 – 智能仓储
展开第一章 MoveIt!与Gazebo联动

1-1 课程简介

- day01_01 RViz与Gazebo的区别
- day01_02 说明
- day01_03 回顾
1-2 ros control简介

- day01_04 ros_control介绍
1-3 传动装置简介

- day01_05 Transmissions配置
- day01_06 Transmissions相关源码查看
- day01_07 Transmissions相关源码查看
1-4 UR3机械臂建模

- day01_08 ur3机械臂展示
- day01_09 ur3机械臂展示
1-5 传动装置配置

- day01_10 ur3机械臂添加transmission配置信息
- day01_11 eg2夹爪添加transmission配置信息
- day01_12 eg2夹爪添加transmission配置信息
1-6 Gazebo配置

- day01_13 机械臂和夹爪的gazebo配置
- day01_14 机械臂和夹爪的gazebo配置
1-7 gazebo_ros_controler插件

- day02_01 gazebo_ros_controler插件介绍
- day02_02 gazebo_ros_controler插件核心代码阅读
- day02_03 gazebo_ros_controler配置
1-8 ros control控制器使用

- day02_04 ros_control概述
- day02_05 ros_control简介
- day02_06 一个关节的controller配置
- day02_07 控制一个关节
- day02_08 控制一组关节
1-9 joint state控制器

- day02_09 joint_state_controller配置
- day02_10 joint_state_controller数据发布
1-10 联通Movie和Gazebo

- day02_11 moveit中的轨迹控制器配置
- day02_12 moveit中的轨迹控制器加载
- day02_13 gazebo 2 moveit
- day02_14 轨迹控制器配置
- day02_15 moveit 2 gazebo
- day03_01 控制器约束添加
- day03_02 脚本调试
1-11 夹爪路径规划

- day03_03 项目结构图
- day03_04 机械臂与夹爪的组装
- day03_05 RViz中调试机械臂
- day03_06 Gazebo中调试机械臂
- day03_07 生成robot_moveit_config
- day03_08 完善robot_gazebo配置
- day03_09 gripper路径规划调试
- day03_10 panda_gripper加载
- day03_11 panda_gripper与ur3组装
- day03_12 effort类型的controller配置注意事项
- day03_13 Stopping trajectory异常的处理
- day03_14 机械臂关节的PID异常处理
第二章 提取物料

2-1 项目简介

- day04_01 智能仓储项目简介
- day04_02 项目创建
2-2 载物机台滑轨管理

- day04_03 载物机台属性设置
- day04_04 stage base link配置
- day04_05 stage slide link配置
- day04_06 gazebo中调试载物机台
- day04_07 模型优化
- day04_08 机械臂拼装
- day04_09 机械臂moveit配置
- day04_10 调整机械臂默认关节旋转参数
- day04_11 滑轨路径规划执行测试
- day04_12 滑轨PID参数调试
- day04_13 三个规划组轨迹规划调试
2-3 blender安装

- day04_14 blender安装
- day04_15 blender汉化
- day04_16 blender默认用户界面设置
- day04_17 blender插件安装
2-4 物料架模型制作

- day05_01 添加栅格
- day05_02 物料架草图绘制
- day05_03 物料架整体挤出
- day05_04 物料架参数设置及导出
- day05_05 blender扩展
2-5 物料架摆放

- day05_06 摆放物料坐标获取
- day05_07 模型文件制作
- day05_08 物料架添加
2-6 物料添加

- day05_09 物料摆放位置配置
- day05_10 物料配置
- day05_11 物料添加的步骤
- day05_12 load_materiel配置文件编写
- day05_13 物料位置加载脚本编写
- day05_14 配置文件路径拼装
- day05_15 获取坐标数组的index信息
- day05_16 获取指定的坐标信息
- day06_01 生成物料添加参数
- day06_02 物料添加
- day06_03 断点调试
2-7 物料抓取

- day06_04 物料抓取步骤
- day06_05 基础代码编写
2-8 添加物料架

- day06_06 物料架位姿设置
- day06_07 物料架dae文件转换
- day06_08 物料添加的测试坐标设置
- day06_09 从params中获取到存储的坐标信息
- day06_10 物料添加
- day06_11 删除添加的物体
2-9 物体抓取规划

- day06_12 物体抓取规划说明
- day06_13 滑轨移动规划
- day06_14 滑轨移动规划测试
- day07_01 在pick_place_materiel中统一测试管理
- day07_02 Gazebo中执行滑轨规划路径
- day07_03 物料抓取回顾
- day07_04 夹爪控制
- day07_05 夹爪姿态信息获取
- day07_06 夹爪位姿信息设置
- day07_07 夹爪接近物体的数据设置
- day07_08 抬起物料配置
- day07_09 更换运动学插件TRAC-IK
- day07_10 attach操作检查
- day07_11 调整RViz配置
- day07_12 Gazebo中执行规划轨迹
2-10 Gazebo抓取插件

- day07_13 Gazebo grasp fix plugin介绍
- day07_14 Gazebo grasp fix plugin配置介绍
- day07_15 Gazebo grasp fix plugin测试
- day07_16 参数微调方法
2-11 完善物料抓取

- day08_01 手动建立机械臂与物料的attach关系
- day08_02 抬起物料
2-12 物料移出物料架

- day08_03 放置物料流程
- day08_04 笛卡尔路径规划
- day08_05 笛卡尔路径规划重试机制
- day08_06 解决初始状态异常问题
- day08_07 Gazebo中执行笛卡尔路径规划
2-13 传送带制作与添加

- day08_08 传送带倒角制作
- day08_09 传送带制作
- day08_10 Gazebo中添加传送带
- day08_11 Gazebo中添加传送带异常处理
- day08_12 RViz中添加传送带
2-14 移动机械臂到传送带

- day08_13 移动到传送带
2-15 夹爪优化

- day08_14 夹爪优化简介
- day08_15 mimic参数配置
- day08_16 mimic效果RViz测试
- day08_17 添加mimic插件
- day08_18 mimic关联配置信息修改
- day08_19 Gazebo中测试优化后的夹爪
2-16 放置物料

- day08_20 物料放置
- day08_21 物料放置RViz中测试
- day08_22 物料放置Gazebo中测试
2-17 Gazebo中移动物料

- day08_23 Gazebo中移动物料