所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

课时二:图形化编程软件Mind+(队伍:PlutoCharon)

宫冰玉 宫冰玉 2020-12-16 09:38:47

一、课程引入

(1)学习Mind+界面布局

(2)使用Mind+连接自己的TT无人机

(3)理解空间坐标以及有头模式飞行和无头模式飞行

(4)认识挑战卡,使用挑战卡辅助定位

(5)学习顺序结构和循环结构

(6)学习变量的使用方法

二、知识原理讲解

(1)使用Mind+连接自己的TT无人机

2.1.1配置Mind+关于RoboMaster TT无人机的环境

步骤1 步骤1
打开Mind+软件
projectImage
步骤2 步骤2
切换实时模式
projectImage
步骤3 步骤3
添加TT扩展库
projectImage
projectImage
projectImage
projectImage
projectImage

2.1.2空间坐标系

projectImage

坐标标系,是理科常用辅助方法。常见有直线坐标系,平面直角坐标系。为了说明质点的位置、运动的快慢、方向等,必须选取其坐标系。在参照系中,为确定空间一点的位置,按规定方法选取的有次序的一组数据,这就叫做“坐标”。在某一问题中规定坐标的方法,就是该问题所用的坐标系。

 

2.1.3无人机的有头模式和无头模式

任何飞行器都一定有个自身的坐标系,也就是飞行器的头,尾,这也就是前面说的飞行器的自身坐标系。如果推动遥控器的向前运动,飞行器总是向它头的方向飞行,那么这个飞行器就是运行在有头模式。如果推动遥控器的向前飞行,飞行器还是向它起飞时头指示的方向飞行,即使这个时候飞行器在飞行的过程中改变了机头方向(操纵了遥控的航向角),那么 这个飞行器的运行在无头模式。

所以可以看到,无头模式飞行器是以它起飞时头指示的方向为前,其运行的前后左右是参考地理坐标系(也就是地球坐标系)。所以飞无头模式,操控手尽量不要旋转,否则就会混淆运行的前后左右。

无头模式:四轴飞行前进方向始终以开机初始化机头朝向为正方向,飞行过程四轴旋转

(航向角 YAW 改变)前进方向不变。

有头模式:四轴飞行前进方向始终以机头方向为正方向,飞行过程四轴旋转(航向角

YAW 改变)前进方向跟随机头方向改变。

注意:使用无头模式时可间断旋转但不能持续旋转,否则可能会导致航向角偏移。

 

2.1.4挑战卡

挑战卡:通过飞行器的视觉传感器探测到不同挑战卡的 ID 并返回所在坐标系的三维坐标,执行相应编程命令。

TT标配4张挑战卡,正、反面为不同图案,共有 8 个 ID 。挑战卡的图案由小火箭、挑战卡 ID、星球三部分组成。

projectImage

小火箭: 代表该挑战卡坐标系中 X 轴正方向。

挑战卡 ID:分别为数字 1-8,方便用户区别不同挑战卡。

星球:TT 通过探测星球排列图案识别挑战卡 ID,并且获取在该挑战卡坐标系中的坐标值。

挑战卡坐标系说明:

挑战卡图案中蕴含了一个三维坐标系的信息,原点在挑战卡的正中心,挑战卡所在平面为 x/y 轴 所在平面。 每个挑战卡都提供一个独立的相对坐标系,不同挑战卡之间的坐标系互不影响,因 此可以根据需求任意组合、摆放。

projectImage

挑战卡有效识别范围:

可识别高度范围:0.3 - 1.2m

0.3m 处可识别范围 : 0.4m×0.4m

1.2m 处可识别范围 : 1m×1m

projectImage

挑战卡操作:

①放置挑战卡

将挑战卡放置在水平面上,根据需求调整挑战卡小火箭朝向。

 

②开启TT挑战卡探测

*将 TT 放置在挑战卡中心

*进入 Mind+上传模式后,用程序打开 TT 的挑战卡探测功能。

*根据实际情况,用控制命令打开前视 / 下视的挑战卡探测。

 

 

③控制TT识别挑战卡

用指令操作 TT 起飞悬停。使用相应参数的指令控制 Tello 识别挑战卡,基于坐标

和 ID 信息,完成相应的飞行动作。

 

 

2.1.5初识编程

 ①顺序结构:顺序执行的程序结构,从上到下执行。

条件判断语句:

条件控制是有两种:一种是只执行条件成立的情况,一种是除了执行条件成立的情况,还执行条件不成立的分支。

 如果-那么

projectImage

如果指定的条件结果为真,则将包围在中间的所有功能积木块按照顺序执行。

如果-那么-否则

projectImage

如果指定的条件结果为真,则将包围在“那么”和“否则”之间的所有积木块将按顺序执行;如果指定的条件结果为假,则将包围在“否则”之后的所有积木块按照顺序执行。

拓展:等待积木块

projectImage

除了前面两种积木块之外,这个等待积木块也有六边形的空白区域,可以用来放入条件积木块。这个积木块本质上拥有的功能是暂停,可以阻止该积木块下方的积木块执行,直到六边形区域中的条件判断为真。

 ②循环结构:循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。

死循环:

projectImage

在没有相应的退出语句之前,程序陷入死循环。

有次数的循环

projectImage

当程序重复循环10次后,自动跳出。

有条件的循环:

projectImage

当到达某个条件时,跳出循环结构。

 ③变量的使用方法

变量积木:当应用程序执行的时候,变量积木用于储存或操作数据。

点击以建立一个新的变量,你可以选择变量的适用对象。

projectImage

获得变量的内容。要观察变量的内容,点击积木旁边的勾选框。右击读数改变显示方式。鼠标右键点击一个变量,可以删除变量或者给他重命名。

projectImage

用来将变量设置为指定的值

projectImage

显示变量

projectImage

隐藏变量

projectImage

三、项目实施步骤

(注意安全,远离无人机桨叶)

项目2:无人机进入起桨模式和退出起桨模式

项目描述:

要求在使用PC端Mind+连接无人机后,使用搭积木的编程方式,实现当开始事件被点击时,无人机能够进入起降模式,验证无人机连接成功并可以为无人机散热,当空格按键被按下后,无人机退出起降模式。

任务流程图:

projectImage
材料清单 材料清单
1x
RoboMaster TT无人机

程序文件:(程序)

projectImage

演示视频:(视频)

项目3:固定路线起飞航行及降落

项目描述:

要求使用积木编程语言并使用顺序结构和循环结构在自行设置固定路线内,起点起飞航行,终点降落

任务流程图:

projectImage
材料清单 材料清单
1x
RoboMaster TT无人机

程序文件:(程序)

projectImage

演示视频:(视频)

三、项目拓展

拓展练习:“正方形”航线的编程

项目描述:

要求使用四个挑战卡,完成正方形航线的编程。

任务流程图:

projectImage
材料清单 材料清单
1x
RoboMaster TT无人机
4x
视觉挑战卡

程序文件:(程序)

projectImage

演示视频:(视频)

Makelog作者原创文章,未经授权禁止转载。
2
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]