学习线路图
1. python基础¶
不管有没有编程基础的童鞋, 我都推荐大家先去学Python ,Python像一把瑞士军刀, 你可以用他干很多东西,比如自动回复邮件、自动收集信息。
Python又非常简单容易理解。只要把解决问题的过程想明白,很容易就能转化成对应的代码。
python基础包含,算数运算符,变量, 输出和输入,条件语句,循环,元组,字典等知识点,熟悉常用的控件, 文本标签,编辑框,按钮,布局,信号,槽等技术。
后面高级的课程, 人工智能,自动驾驶,机器人操作系统需要熟练掌握c++计算, 有python基础的同学,再去对比学习c++就会变得非常容易上手。
很多学员是零基础的 ,学习 python 后,可以做出来简单的学生管理系统,火车票查询系统。
2.面向对象¶
python是一门面向对象的语音,面向对象是重要的编程思想,接下来我们通过飞机大战、坦克大战这种经典的游戏来让大家掌握面向对象的思想。
看看第二周,大家的成果吧。
3. 高等数学¶
线性代数的重要性需要特别强调。一般来说,优秀的工程师和科学家在职业生涯中一定要掌握高等数学,线性代数,梳理统计,矩阵的乘法、向量的乘法、向量的内积、变化率的求导、概率论和极限。要想掌握机器视觉和人工智能, 成为年薪30万以上的工程师, 懂高等数学和线性代数,这是必备基础。
看看第三周,大家的成果。
综合运用矩阵运算,反向传导,梯度下降,实现小车的自动驾驶, 这是深入理解人工智能课程的基石。
大学一年级的基础课程, 掌握这么多就差不多了。
到这里
你已经成长成为
一个初出茅庐的新兵
可以准备进入
智能机器人软件工程师
开发的大门了
机器人领域四大问题
- 感知。视觉传感器、图像传感器、激光雷达、各种传感器技术。
- 规划。人工智能、知识表达、路径规划、任务调度、机器学习等。
- 行动。运动学、动力学、开环控制,闭环控制、pid控制等。
- 数学基础。最优估计、微分几何、概率论等。
4.Linux¶
IT行业的程序员都会争论高级语言和低级语言哪个好,Linux和Windows哪个好,而对于机器人工程师来说,我们是工程师,语言和操作系统都是工具, 哪个工具最顺手,我们就要优先学习哪个工具。从现在到可预见的未来里,Linux是机器人软件工程师最好的操作系统。原因是机器人操作系统ROS是基于Ubuntu开发的,在Ubuntu上运行最稳定。虽然window10 投入巨资打算支持ros, 但是目前来讲ubuntu是我们最好的选择。
学习掌握装ubuntu操作系统,掌握shell脚本编程,双系统安装方法,自主解决各种显卡,网卡驱动,Linux内核问题。
5. c++实战编程¶
python我们说是瑞士军刀,但是真要去造机器人,合适的工具并不是瑞士军刀,而是C/C++这样简单粗暴的锤子和螺丝刀般的工具。
工具最重要的是如何去使用, 我们用大量的案例,来教大家,带大家去使用工具。我们课程类比讲解python和c++的异同点, 短期内让大家掌握,clion开发环境,变量和常量,数组和Vectors,操作符和流程控制,字符和字符串处理 函数,Characters and Strings,Functions,指针和引用,OOP -面向对象,操作符重载,继承,封装,智能指针,异常处理,IO和流 ,boost,STL模版技术等c++核心技能。
学习目标 :
c++和python融会贯通,学生可以自己编译c++工程为库文件,用python去调用c++代码。python写业务逻辑简洁明了,c++做核心算法,整洁高效。
6.cmake和makefile实战¶
c语言和c++语言从诞生到现在已经有几十年了, 很多前辈程序员写出了大量经典的框架和工具集, 学习编译工具理解Github存在的意义, 让前辈的代码融入到我们的工程中。
学习目标 : 学生能自主编译opencv, FFmpeg, pointcloud等经典c++项目, 并引入到自己工程中。
7.机器人操作系统ROS¶
ROS( Robot Operating System,机器人操作系统)诞生于2007年,并很快在机器人研究领域掀起了ROS开发与应用的热潮,目前已经成为机器人领域的网红。
谷歌、亚马逊、微软等众多知名公司已经广泛使用ROS系统,熟练掌握ROS操作系统,已经成为机器人开发的重要一环, 猎聘网上搜索ROS关键字, 大多数岗位起步月薪到达到1.5~2万元。
学习目标:熟练使用pid原理, 联合使用c++和Python语言,完成扫地机器人的开发。
8. 机器人学 & CobotSys¶
多自由度的机械臂的难点在于机械臂的运动学正反解、运动学控制和动力学控制,是一个建模分析和数值算法实现的问题。六关节机械臂工作原理,机器人坐标系,坐标变换与旋转矩阵,欧拉角四元数,机器人的DH表达,机器人关节空间与笛卡尔空间转换,机器人的正解和反解,这些都是属于机器人学的最基本的问题。
ROS在消费级领域应用比较多,但是在条件苛刻的工业级场景里面较少使用,CobotSys 库柏特操作系统是有大规模工业场景落地的操作系统,通过实战学习工业场景机器人的落地。
学习目标: 熟练掌握机器人学关键知识点,可以进行正解和反解的推导和运算。
9.相机成像和驱动¶
相机是机器人的眼睛,我们要学习不同相机的成像原理,不同光源对成像的影响,结构光相机,双目相机和普通rgb相机的使用场景,相机下位机程序的编写,相机驱动的编写等内容。
学习效果:
相机测距仪
10.机器视觉OpenCV¶
视觉是人类最为重要的感觉。要赋予机器人智能,第一步就是给机器人赋予视觉,随着科学技术和计算机计算的不断发展,主要解决视觉问题的图像处理系统得到了长足的发展,涌现出许多优秀的框架,OpenCV是其中的代表。这一周课程学习图像卷积模糊、边缘梯度计算,一阶导数算子与二阶导数算子的运算,自定义滤波、高斯与椒盐噪声图像生成与图像去噪声增强,掌握直方图对比与反向投影技术,模板匹配等技术
学习效果:
自动驾驶,车道线识别。
11. 3D视觉¶
2d的照片丢失了一个维度的数据,在某些特殊应用场景下,不能满足开发的需求,我们要引入3d的相机来进行更准确的识别,3d相机使用的技术包含,点云模型,pcl,点云数据的读取保存和可视化,点云的拼接,点云的矩阵变化,点云滤波,直通滤波,平面滤波,点云条件去除与轮廓去除,上采样和下采样,点云对齐,分割,拟合,2d与3d配置,传感器融合等。
学习效果:
12. 深度学习实战¶
深度学习是目前很火的技术,但是大多数教程都是偏理论部分的,学完很难应用到真实的业务场景里面,我们采用目前最主流的深度学习框架,最新版(tensorflow2.0),讲解深度学习和卷积神经网络, 深度学习做重要的是组织数据集,评估模型和改善模型,这几块内容会作为我们课程的重点内容讲解。
学习效果:
生活垃圾分类,交通标志识别,人类表情感情识别等。
13.SLAM¶
SLAM是Simultaneous localization and mapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题,我们课程会讲解slam算法原理,坐标变换与实时构图的过程,最终利用生成好的地图文件,完成AGV小车或者扫地机器人的自主导航
学习效果:
14. 综合项目实战-机器人写字¶
项目简介
人手写数字,通过机器视觉识别数字的图像,让机器人模仿写出对应的数字。
项目特色
1、准备数据集
2、深度学习训练数据集
3、机器视觉获取图像和图像处理
4、识别数字,根据轮廓生成机器人运动轨迹,控制机器人写出数字
15. 综合项目实战-机器人无序分拣¶
项目简介
在料框中,随机放置着若干相同类型的盒子,机器人需要逐个拾取盒子,并将盒子按照指定要求,重新摆放。
项目特色
1、2D图像处理
2、机器视觉和机器人学的综合应用
3、3D点云处理
4、基于深度学习的物体分类与检测
5、运动规划
6、RCNN;Mask RCNN;多目标检测
7、视觉定位
16. 综合项目实战-机器人跟随¶
项目简介
机器人识别跟随嫌疑人,自主导航避障,跟随嫌疑人。
项目特色
1、深度学习工具包使用
2、数据集采集
3、数据集分析
4、小车控制等。