# 机器人队招新(无人机项目) ``` 参考 湖科大Asterism实验室加入流程 发布时间: 咕咕咕 by tc ``` ## 0. 机器人队(无人机项目)简介 - 我们项目是机器人队中获得国家级一等奖最多的项目 - 欢迎有责任心、对我们的项目感兴趣的同学加入我们 - 无论你是什么专业,都可以来我们这一起玩 - 方向分为软件以及硬件,当然你全栈也可以的( ## 1. 你需要做什么 - 认真负责,对你的比赛负起责任 - 自发学习,增进技术 - 有时候需要你垫钱买设备(会报销) ## 2. 你可以获得什么 - 参加有含金量的比赛,为保研加分 - 锻炼你的工程能力以及学习能力 - 得到学长学姐学业等方面的指导 - 设备、差旅费的报销 - 我们的实验室在教三楼316,是地大唯一一个面向本科生的实验室,24h有电+空调。只要你正式加入我们并且在比赛中做出一定的贡献,就可以申请一个自己的工位 - 316实验室有一个6.7*4.5的室内场地,可以进行机器人有关的调试等 ## 3. 加入流程 - 大一的同学: 完成考核并提交 - 面试 - 加入机器人队 - 大二、大三的同学: 完成更复杂的考核内容 - 面试 - 加入机器人队 ### 3.1 完成考核并提交 这个阶段主要是为了: - 筛选看起来**已经有机器人相关基础**或者**有明显自学能力**的同学 - 让你初步接触这个领域,从而决定是否继续加入我们 完成考核并提交的同学,会被视为有意愿长期加入我们。 **进入下一阶段的条件:** 完成考核内容(不要求全部完成),我们会根据完成情况联系你。 ### 3.2 面试 面试会和你的考核情况有关。此阶段主要是为了确认考核是你自己做的。我们鼓励你去网上**复刻别人的教程**,或者是**拷打AI**(只要不是抄了跑通了直接交,或者是从别人的教程里截图当做自己的配图)。我们希望你**有一定的修改**或者是**熟悉这个项目的流程**,而不是完全copy 别人的 or 网上的 or 别人在网上copy的。我们不认可抄袭行为,**抄袭的同学一经发现不允许参与任何机器人队的项目**。 ### 3.3 加入机器人队 完成以上的考核以及面试以后,你离参加比赛还差一些东西需要学习,具体的学习内容和比赛要求有关。你需要边参与比赛边学习有关的知识。 加入我们以后,我们能为你提供各种设备以及调试场地。 我们可以提供的支持包括: - 3d打印机 - nuc、香橙派等边缘计算设备 - 2D、3D激光雷达 - D435深度相机 - T265相机 - 各种飞控 - 配备了飞控的无人机 - 螺丝刀等工具 - ...... ### 3.4 参加比赛 不完全统计,可以参加的比赛有这些: - 5月 中国机器人暨RoboCup世界杯中国赛 无人机实物赛、无人机仿真赛 - 5月 ~ 暑假 中国机器人及人工智能大赛 无人协同项目 - 5月 ~ 暑假 中国机器人及人工智能大赛 微型无人机项目 - 5月 ~ 暑假 RAICOM空中侦察项目 - 10月 中国机器人暨RoboCup世界杯中国赛 无人机自主竞速 - 11月 华北五省机器人大赛(只有省赛;需要有合适的项目) - 12月 ~ 次年6月 RoboMaster机甲大师高校人工智能挑战赛 仿真赛、实物赛 - 一年三场的植保机器人 - 各种创赛 - ...... **参加比赛的流程:** - 前面的考核是基础内容。为了保证参赛质量,参赛前我们可能会再发布一个**报名用的赛前考核**,证明你**已经有能力完成比赛**或者**在参赛时可以达到参赛水平** - 组队阶段遵循自愿组队,你要是能一个人单挑,也可以自己选择队友。最后根据报名的队伍可能会进行人员调整 - 备赛阶段将进行检查,目的是督促备赛 - 报名费、比赛过程中产生的材料费、差旅费、邮寄设备的费用等(除了吃饭)都可以报销,具体的报销方式入队后会发给你。**比赛时可能需要你先行垫付** ## 4. 考核内容 >考核分为软件和硬件两个方向。每个方向分基础部分以及进阶部分。大一的同学至少要完成基础部分与进阶部分,最后的附加部分尝试选择一个完成。其他同学请完成全部内容。**本次发布的考核针对软件方向,硬件方向请单独联系我(qq 3352648769)**,内容与SolidWorks建模、元器件焊接等有关。如果你是飞手或者以前接触过航模、打过飞北等比赛,也请单独联系我,我们现在很需要这些方面的同学加入。 考核过程没有特别要求,但我们建议: - 刚开始的第一步绝对会很难,但如果你真的想在 大学阶段 学习前沿的无人机和机器人技术,并使用全校最适合无人机/机器人开发的器材进行实机实验,机器人队可能是比较合适的选择 - 考核的题目难度不大,但是对于刚接触的同学来说可能会遇到各种奇奇怪怪的问题(网络问题、设备环境问题等)。**查阅资料、解决遇到的问题本身也是考核的一部分**。我们希望你能锻炼信息检索的能力,充分利用互联网。你可以在csdn、github、AI、b站等地方找到问题的答案。 - 尽可能多的自己完成,但是在卡了很久(比如一两天)就应该在群里求助 - 记录自己的学习历程,可以用来发博客,或者仅仅是留一个纪念(这个我没干但是应该干,也建议大家干) - 简单了解所有命令/代码的实际含义,这可以帮助你定位问题 - 如果遇到的困难很集中,可以考虑用任何你想的到的办法,系统补一下相关知识,做一些简单实践(一类知识的学习在3-9小时左右,不超过12小时。比如学ros,学python,学C++) - 完成任务目标不是第一性的,在完成任务目标的过程达到对应的能力。让你们在学习的过程中具备机器人研发的思维是题目最初也是最朴素的愿望。同时,这不代表我们反对你参考各种教程、帖子或者是使用AI。事实上,我们十分鼓励你通过这些方式来增长能力 ### 4.1 基础部分 *一、安装ubuntu 20.04* >18.04或20.04均可,但是我们后续的开发都在20.04;同时,由于ros1不再支持ubuntu20.04之后的版本,所以我们强烈建议你使用ubuntu20.04。 有两种方式,使用虚拟机 和 使用双系统, 各有优劣,完成任一方案即可。虚拟机更卡但是容易配置,回滚方便;双系统比虚拟机流畅,适合进行长期的开发,但是配置门槛较高,容易把电脑搞崩。 参考教程: 使用虚拟机的教程很多,也相对简单,请自行到b站搜索。 使用双系统可以参考: [Windows 和 Ubuntu 双系统的安装和卸载](https://www.bilibili.com/video/BV1554y1n7zv?vd_source=ff10da97fd8eec086ca6994495450b27) 建议: - 如果是第一次装双系统的话请**备份好电脑中重要文件** - ubuntu现在可以安装linux版的qq、微信等,很方便 - 双系统建议给ubuntu留200G及以上空间 - 如果你恰好时间充裕,可以把你的ubuntu打扮得像mac,美观一点。 - 你需要简单了解下 linux的命令 *晋级条件:* 安装完成ubuntu 20.04 ,显示出标志性的猎豹图案的桌面,并正常连接wifi上网 *二、科学上网* >机器人技术研发,或者说和电脑有关的,必须会xxxx 参考教程: 如果你之前不会xxxx,这是我自用的链接[xxxx](https://link-hub.world/),签到应该可以领取几百兆免费的。 ~~本来不想放怕进🍊了~~ 建议: - 如果遇到各种网络问题,有时候可能只是WIFI的问题,切换手机流量给开热点就可以了,不一定要用tizi。 - 如果使用tizi时出现网络问题/network error 尝试更新配置,再切换节点、打开或者关闭tizi。 *晋级条件:* 访问 油管,并观看1080P的视频,流畅不卡 *三、安装ros,初步了解一下ros* >官方文档对 ROS 的介绍如下:The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source. 简单来说 ROS 就是一款开源的机器人操作系统,可以实现在 Linux 或 Dock 下安装并进行使用。如今已经有ros2了,但是ros1的资源更多,我们以后也使用ros1。 参考教程: 可以使用鱼香ros一键安装,请自行搜索 建议: - ros与ubuntu版本是对应的,比如说`ubuntu18.04 - melodic`,`ubuntu20.04 - noetic`。有些老旧的教程给出的一些命令可能是针对meloldic,如果你用的是noetic请将命令里面的melodic替换成noetic。类似于`ros melodic xxx` ->`ros noetic xxx`,反过来同理。 - 如果你网不好建议换手机流量开热点。 *晋级条件:* 1. 调出小乌龟,请自行搜索这是什么; 2. 了解一些基础的工具是干啥的以及如何打开,比如说qt工具箱(这一点提交的报告不用写但是面试可能会问你) ### 4.2 进阶部分 *一、安装mavros、px4、QgroundControl* >实机很危险,算法一般需要现在仿真进行测试之后再搬到实机。~~316实验场地的天花板已经被击穿好几块了~~ 参考教程: px4、mavros的安装的教程网上有很多,请自行搜索。 QGC请直接去官网下载。 建议: - 建议安装px4 1.13.3版本,后续迁移无人机模型(model)、地图(world)等等相对方便。实在不行再安装最新版。 *晋级条件:* 在gazebo中出现一台无人机,用QGC解锁它。 *二、编写一个简单的发布者与接收者* >无人机在比赛的过程中需要完成一些任务,比如说识别等,识别到的信息可能需要发布出来。 参考教程: [机器人操作系统 ROS 快速入门教程](https://www.bilibili.com/video/BV1BP4y1o7pw?vd_source=ff10da97fd8eec086ca6994495450b27) 进一步的学习可以参考赵虚左老师的教程,b站也有。不过暂时够用了。 建议: - ros的学习是一个边学边用的过程,一些东西忘记了很正常,简单查资料就能找到了, *晋级条件:* 形式无所谓,你来定,在任务提交里面让我们看出来有这么个东西就行。 ### 4.3 附加部分 **请在以下选择一个进行:** #### 4.3.1 在仿真中控制无人机 >死程序其实能跑的话永远是最快的( *一、在仿真中控制无人机飞一个四边形* **大一同学选择这部分的,完成这个即可** 参考教程: px4官网给出了一个简单的c++和python历程,它让无人机悬停在了一个位置不动。接下来请你修改一下它,让他飞一个四边形。 建议: - 大致了解代码在干啥 *晋级条件:* 在仿真中飞一个四边形,随后降落。 *二、在仿真中控制无人机识别二维码,根据二维码内容进行下一步的飞行* **大二及以上的同学完成这部分视为完成附加题4.3.1** 要求: - 无人机起飞,扫码后根据二维码内容飞到下一个点,降落。 - 在gazebo中自己搭建一个二维码model,然后创建一个world。 - 为无人机添加对地摄像头。 - 无人机知道二维码的位置,但不知道二维码里的内容。二维码里面的内容可以是一串字符串,比如`2,3,2`, 表示`x=2,y=3,z=2`的位置,单位为米。无人机起飞前往二维码位置进行扫码,根据识别到的内容飞往下一个点,随后原地降落,锁桨。 参考教程: 前面所有的,熟练掌握,然后需要知道怎么在gazebo做一个world,怎么将仿真的摄像头加入无人机。 建议: 熟练掌握上面的内容 *晋级条件:* 在仿真中完成上述内容。 #### 4.3.2 训练一个目标检测模型,写一个发布者发布识别结果出来。 > 无人机的比赛一般都有检测某物品的要求。 **建议有NVIDIA的gpu的同学进行尝试,没有的同学请看4.3.1** 要求: - 用给出的图片自行制作训练集等,训练一个简单的目标检测模型。 - 安装usb_cam,发布来自摄像头识别到的图像信息 - 将训练的模型部署在ubuntu,识别靶子的内容。请用A4纸打印几张图片,你可以外接一个摄像头或者就用电脑自带的摄像头来识别。 - 将识别得到的结果发布出来,直接在终端echo它。 参考教程: 请自行搜索,网上有很多。 建议: - 由于边缘平台算力有限,请用轻量的模型。 *晋级条件:* 识别给出的图片,不要求有太高的准确率。 ## 5. 提交考核 **提交时间** 初步定在寒假结束前,大约2.15号,提交审核以后我们会通知晋级的同学面试。 **提交格式** 请打包成一个压缩文件,命名为`姓名-专业-学号-学院`,文件夹构成如下: ``` 姓名 - 专业 - 学号 - 学院 |-- 基础部分 | |-- 安装ubuntu | | |-- 说明文档.doc(或.pdf) | | |-- 任务截图.png | | |-- 视频.mp4(若需要) | |-- 安装ros | | |-- 说明文档.doc(或.pdf) | | |-- 任务截图.png | | |-- 视频.mp4(若需要) | |--... |-- 进阶部分 | |-- 安装px4 | | |-- 说明文档.doc(或.pdf) | | |-- 任务截图.png | | |-- 视频.mp4(若需要) | |-- 发布者接收者 | | |-- ros 工作空间文件夹 | | |-- 任务截图.png | | |-- ros 工作空间文件夹 | | |-- 视频.mp4(若需要) | |--... |-- 附加部分 | |-- 飞行仿真 | | |-- 说明文档.doc(或.pdf) | | |-- 任务截图.png | | |-- ros 工作空间文件夹 | | |-- 视频.mp4(若需要) | |-- cv | | |-- 说明文档.doc(或.pdf) | | |-- 任务截图.png | | |-- ros 工作空间文件夹 | | |-- 视频.mp4(若需要) | |--... ``` 说明文档大概写一下你的流程,遇到的问题就可以了,文档可以用markdown写了转pdf,不用也没关系。文档不要写太长了,写少不扣分,写多了不加分。要没啥能写的写一行也可以。如果觉得说不清楚可以录视频。如果没完成这个任务,也可以写,做到哪一步写哪一步。总之,**提交的内容是为了让我们明白你去做了这个任务。** **提交方式** 咕咕咕收的时候会发的,要是提前完成了可以提前联系我(qq 3352648769)