记得收藏丨ROS开发工程师学习指南3D视觉工坊共 4214字,需浏览 9分钟 ·2021-09-14 11:48 前言很多正在学习ROS的小伙伴都有这样的困惑:学了ROS可以做什么?我该从哪一步开始?什么姿势入门最适合自己?迷茫混乱的时候若是有人指明方向就更好了。这不就来了:古月居针对部分对该职业方向有意向/正在学习的小伙伴,分析了北京、上海、江苏等多地公司的岗位招聘要求,为各位规划出一条清晰、全面、系统的ROS开发工程师养成之路,希望看完能让小伙伴们对该职业的学习路径有更加清晰的认知,用最容易的姿势走上ROS开发工程师的道路!二、“攻略“总方案 首先一起来看看整个“攻略“(学习路线)的总览(如图1),针对不同公司产品的应用场景提出的对应招聘需求,我们将整个学习路径采取先通识课后专业课的攻略模式。通识课部分为编程能力→软件开发→机器人通用理论与技术,主要为了提高大家的基本认知和技术基础,至此你已经入门ROS开发,新手任务get,具备了基本任职资格。当然,为了更好地匹配心仪公司的岗位,提升个人竞争力,你还需要get相关专业课(工业机器人、移动机器人、无人机三大类)学习,不断进阶!图1 线路总览三、第一关:通识课程“工欲善其事,必先利其器。”,下面按照学习顺序展开通识课程攻略版图,让我们一步步入门ROS开发。3.1 编程能力C++与Python进行ROS开发的常用语言,古月居为大家筛选了普适的的视频课程资源,小白可以从头进行系统的学习,有一定基础的同学可以针对薄弱点进行巩固。链接如下:C++:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=7599566888210019373Python:https://www.bilibili.com/video/BV1c4411e77t?from=search&seid=119837323685464792653.2 软件开发 ROS开发工程师负责基于ROS系统的产品(如AGV小车)软件系统开发、集成和代码测试。这就需要熟悉嵌入式Linux操作系统,对数据结构算法,网络编程、进程通信、多线程编程有一定理解。针对软件开发能力的培养,我们给出如下学习路线和相关学习资源:⑴数据结构算法https://www.bilibili.com/video/BV1nJ411V7bd?from=search&seid=18196752642549138919⑵软件工程https://www.bilibili.com/video/BV1Vt411V72G?from=search&seid=3752582165111199615⑶Linux下的网络编程、进程通信、多线程编程与QT前端开发这部分知识丰富,需要系统学习且同步进行实战演练,这里推荐《Linux与QT程序设计》。书中从四个方面介绍Linux系统与Qt程序设计的知识:第一方面介绍Linux基础知识,包括发展历史、常用的命令、文件系统等;第二方面主要介绍Qt的基础知识,包括如何编写第一个Qt程序、信号与槽、Qt事件机制及MVC模式等;第三部分着重介绍Qt界面设计的核心内容,包括常用控件、布局管理、对话框及主窗体等;第四部分通过完整的实例介绍Qt的典型应用。《Linux与Qt程序设计》适用于具有一定C/C++程序基础的开发人员阅读,也可以作为Qt开发过程中的工具参考书。图2 《Linux与QT程序设计》3.3 机器人通用理论与技术通过前两步的学习你已经具备Linux环境中进行软件开发的能力,但开发的软件系统只是一个框架,接下来需要在框架中填充与应用相关的内容,逐步完善其功能。这就需要我们掌握机器人的通用理论与技术,了解ROS开发的基本应用。⑴常用传感器原理ROS开发工程师需要完成ROS系统下的多种传感器、执行器的驱动编写,数据采集和处理,这就需要掌握激光传感器、惯性传感器、以及里程计、视觉、超声波、GPS等多种传感器数据融合处理与调优方法。⑵ROS入门21讲 掌握常用传感器原理后可以正式开始最关键的内容—机器人操作系统ROS的学习。这里推荐《ROS入门21讲》,该教程以经典的小乌龟案例深入浅出的讲解ROS的原理与案例,让ROS入门不再困难。扫码查看课程详情⑶相关应用通用的应用主要分为两大块:感知定位与路径规划。主流的定位技术有超声波导航定位、视觉导航定位、GPS定位、SLAM等,目前主流的机器人定位技术是SLAM技术(即时定位与地图构建)。关于SLAM的学习我们建议:首先熟悉ROS中常用的SLAM功能包,然后即可在ROS中对机器人建图导航中最常用的VSLAM与Lidar SLAM技术进行理论学习与实战操作。扫码查看课程详情路径规划模块性能的高低直接关系机器人路径选择的优劣和运动的流畅度,而路径规划算法的性能优劣很大程度上取决于规划算法的优劣,如何在各种场景下迅速、准确的规划出一条高效路径且使其具备应对场景动态变化的能力是路径规划算法应当解决的问题。我们给出一个基于栅格地图的机器人路径规划算法指南,帮助大家掌握常用路径规划算法的原理。扫码查看课程详情四、第二关:专业课程已经攻下了通识课程,下面再接再厉!分别给大家按照专业课程的不同分支展开对应的专业课程的理论与实战学习,大家可以结合理想公司的招聘需求任选某一个或几个方向进行学习,让你在竞争者中脱颖而出。4.1 移动机器人移动机器人是目前ROS开发最广的一个应用对象,经过第三节的常用机器人技术的理论学习,我们给出如下实战课的学习路线:⑴掌握控制算法开发过程——MATLAB+ROS快速开发控制算法掌握高效的算法开发过程是成为优秀工程师的必备素养,《MATLAB+ROS快速开发控制算法》通过一个轨迹跟踪控制算法的开发实例,展示MATLAB与ROS联合快速开发控制算法的流程——V字开发流程。这种技术路线可以快速验证自己的想法并能准确且快速地生成ROS C++代码完成控制系统的开发。扫码查看课程详情⑵轨迹跟踪实战——MATLAB+ROS开发MPC轨迹跟踪算法掌握了一般的算法开发流程之后需要一定的开发实战巩固经验。基于V字开发流程路线开发移动机器人和无人车常用的MPC(模型预测控制)轨迹跟踪算法。最终以树莓派为主控制器控制RC遥控车。该技术路线还有一大优势就是可以充分利用MATLAB的各种接口完成高性能的联合仿真实验。扫码查看课程详情⑶自主导航实战——如何实现ROS机器人自主导航·古月自主导航是移动机器人普遍需要具备的功能。开发自主导航功能需要了解ROS Navigation框架及其核心功能包,在仿真环境中配置并实现移动机器人的自主导航功能,并结合SLAM实现同时建图与自主导航,让你的机器人更加智能化。扫码查看课程详情4.2 工业机器人 多关节操作臂机器人是工业的重要组成部分,它们能够精准的执行各种各样的任务和操作。多关节操作臂已广泛应用在工业和社会生活中,如多关节操作臂有机器加载、取放操作、焊接、喷漆、检测、装配、机械制造、医疗应用等方面用途。许多公司也面向基于ROS的机械臂开发进行人才招聘,但是机械臂开发相对门槛较高,理论部分入门难度较高,建议的学习路线如下:⑴机器人学——运动学、动力学建模以及仿真分析 机器人正运动学正是在控制器中主要的运动学算法。通过机器人正运动学让机器人精准到目标点实现各种各样的任务和操作。此处推荐一个课程带领大家学习机器人正运动学、掌握正运动学推导方法,学习正运动学仿真和得到正运动学结果后的验证方法,及其涉及的机器人学基础:位置、姿态与坐标系描述、映射、变换。扫码查看课程详情⑵机械臂控制——机械臂控制理论入门与实例 学习机器人的学的目的是更好的控制机器人实现目标功能,鉴于机械臂控制理论深奥,需要良好的数学基础,古月居更推荐与实战相结合进行机械臂控制的入门。在《软硬结合带你玩转ROS机械臂》课程中,同学们不仅可以了解到该设计项目的各方面分析、如何去搭建这个机械臂、如何使用立创EDA来绘制原理图和PCB、如何在ROS下开发一个功能包。扫码查看课程详情4.3 无人机无人机为许多机器人公司的主流研发产品。为了保证无人机工作过程安全,仿真在ROS开发无人机的过程中至关重要。飞控开发涉及的知识面广,门槛较高。有意向从事相关岗位的同学需要熟悉:⑴无人机仿真与开发——基于ROS的无人机仿真与开发 无人机路径规划/视觉算法开发如何入门也是许多初学者的一道难关。通过《ROS的无人机仿真与开发》课程提供的完整代码框架,在没有真实的无人机条件下,你将学到PX4无人机三维仿真开发,包含智能无人机开发仿真环境搭建,无人机自主飞行初步,无人机激光雷达避障自主飞行,方便大家做进一步的智能开发,涉及路径规划,自主决策等。在这个基础上实现强化学习,视觉追踪引导,激光/视觉SLAM等研发工作,本课程还提供一些例程DEMO提供完整的接口。扫码查看课程详情⑵飞控开发——飞控原理与开发实战 飞控开发的系统学习推荐高校普遍使用的经典教材——《多旋翼无人飞行器嵌入式飞控开发指南》,这本书主要围绕多旋翼无人机的飞控系统设计,从嵌入式的基础知识开始,深入浅出地介绍了无人机的基本知识和硬件构成,重点介绍了无人机的飞控系统原理、基础和开发流程,针对飞行器系统的状态解算介绍了几种不同的解算方法,并给出相应的实际代码例程。这本书从各方面对无人机系统的设计进行阐述,并提供了最前沿的知识和信息,既有初学者希望了解的基础知识,也有行业研究者所希望深入了解的算法分析,以及室内定位SLAM原理等。图3 《多旋翼无人飞行器嵌入式飞控开发指南》五、总结 一篇攻略小手册看下来,有没有觉得自己豁然开朗了呢?古月学院不仅给同学们呈现了一个完整学习路径,还给大家赠送了【5元无门槛】优惠券,拼团活动叠加优惠券好价double!购买后还可再次获得【5元无门槛】优惠券!一轮优惠二重好礼已就绪!接下来学习之路就看大家的努力啦,冲鸭!扫码即可领取无门槛优惠券点击下方“阅读原文”即可查看完整学习路径 浏览 5点赞 评论 收藏 分享 手机扫一扫分享分享 举报 评论图片表情视频评价全部评论推荐 后台服务器开发学习指南(建议收藏)程序源代码0Flutter开发进阶学习指南Carson带你学习Android0音视频开发工程师工作职责: 1、负责流媒体服务相关模块的开发、维护与优化; 2、负责流媒体协议处理、软硬件视频编解码、媒体流传输等系统的设计开发; 3、视频直播点播相关应用的需求分析、方案制定、代码编写及调试; 任职要求: 1、5年以上流媒体服务器/音视频开发工作经验,本科以上学历; 2、精通C/C++、python, Winodws/Linux环境开发; 3、熟悉等网络通讯协议,熟悉RTSP/RTMP/HLS等流媒体协议,并有实际项目经验; 4、熟悉x264, x265, ffmpeg, gstreamer等开源代码库,使用过GPU/CPU硬件编解码器; 5、熟悉webrtc/SRT/QUIC等系统协议,并有相关经验者; 中高级 PHP 开发工程师岗位职责 1、负责公司现有产品的开发与维护; 2、进行详细设计、代码开发,配合测试,高质量完成项目; 3、负责软件的文档编写 任职要求: 1、1-3年PHP工作经验,热爱技术; 2、熟练使用一种以上PHP Web框架,熟悉TP...向海外寄月饼,记得收藏这份攻略八月十五,长风浩浩送中秋。虽然亲朋好友远在他乡,但一块小小的月饼,能串联起我们与他们的思念。 不过,Docker常用命令,这些都要会,记得收藏!Java后端编程0Docker常用命令,这些都要会,记得收藏!开发者全社区0常用正则表达式最强整理(速查手册,记得收藏)Python绿色通道0理解SpringAop,看这篇就够了!记得收藏Java技术精选0Java开发工程师前途何在?达内JAVA培训0点赞 评论 收藏 分享 手机扫一扫分享分享 举报