作者:思源
早一段时间,机器之心拿到了一台机甲大师 S1,在畅快地控制与 游戏 之余,我们不禁想看看它的编程模块到底是什么样的。看看除了手动控制外,我们都能通过编程实现些什么,机甲大师 S1 又能自动化做些什么。带着这些疑问,机器之心实际 *** 作了一波,看看机甲大师 S1 的大脑到底能有多强。
「战斗」体验
在刚拿到机甲大师 S1 的时候,当然是先体验一番它的 *** 作与战斗乐趣了。我们可以通过云台上的摄像头以第一人称的视角 *** 作机器,当然也包括开火啦。因为我们是通过 WIFI 连接并控制机甲大师,所以控制距离依 WIFI 信号而定,当然你也可以尝试其它的连接方式。
即使是单人模式,机甲大师 S1 也能实现很多功能,例如录制视频或拍照、识别物体或射击水d等等。如下是机器之心已经在办公室中开玩了。
真实场景版第一人称射击 游戏 。
在刚玩机甲大师 S1 时,可能会感到非常新奇、非常有意思。但了解它的 *** 作和各种功能后,它的 *** 作乐趣会逐渐消退,毕竟没有其它机甲大师能一起对战。
不过值得庆幸的是,机甲大师 S1 还有「实验室」模式,我们可以根据编程模块实现各种炫酷的玩法。
机甲大师 S1 编程模块
机甲大师 S1 的编程主要分为 Python 和 Scratch 两种,它们两者之间是可以直接转换的。总体而言,机甲大师提供了大量预定义的模块,我们要做的就是调用不同的模块,并构造完整的流程。
机甲大师 S1 的功能模块大致能分为几大类,首先是控制机身行为的模块,包括灯光、移动和射击等等;其次是各种识别模块,例如识别到人、标志等等;最后是一些编程的标准模块,例如控制流或数据结构等等。
因为基本的能力与特性都是确定的,剩下的重点就是构建系统的逻辑。所以说,如果我们了解了各种模块或 API 的定义,那么机甲大师 S1 的编程并不困难。
举个栗子
下面列举一个简单的案例,我们需要机甲大师 S1 开始旋转机身、云台来找人。如果检测到行人,那么就令机身的所有灯光都变成红色,并抬头「看着」人。这样简单的一个逻辑可以快速通过 Scratch 完成,直接拖拽不同的模块就行了。其中不同类的模块颜色还不一样,例如 while、if 等控制语句都是蓝色;视觉识别模块都是浅黄色。
如下展示了用 Scratch 编写上面逻辑的结果:
即使不太了解编程的读者,看看上面的模块差不多也能知道机甲大师 S1 会做些什么。基本上各种复杂的任务或流程都能通过 Scratch 搭建,各种功能也都能实现。对于一般的开发者而言,我认为直接使用 Scratch 编程更便捷一些,因为 Python 编程其实逻辑上也差不多,不过要熟悉各种 API。
如下是上面程序的 Python 代码,它的复杂之处在于 API 的选择与配置,其它程序控制流或过程并不会太复杂。
虽然说是用 Python 编写的程序和 Scratch 是等价的,但这么多 API 还是需要花一定功夫来理解的。如上所示,我们并不需要导入各种模块,直接可以调用 vision_ctrl、led_ctrl 和 gimbal_ctrl 等接口,各 API 的参数也与 Scratch 中的差不多。
如果我们用 Python 写机甲大师 S1 的程序,那么我们这样的初学者会遇到一些问题。首先机甲大师 S1 似乎暂时没有提供完善的 Python API 文档,只在每一个 Scratch 模块下介绍了对应的 API,但该 API 的行为与用法并没有展示。其次,每一次查找 API 时,不能通过搜索直接定位,我们先要理解 Scratch 模块,才能找到对应的 API。
编程指南中的 Python API 示例。
最后,至少在机器之心尝试用 Python 编程时,没感觉到它的定制化优势。所有高层 API 的接口都是封装好的,我们只能利用现有的功能模块实现一些流程。比如说机甲大师 S1 的识别功能,它支持行人、特定标记、特定姿势和其它机器人的检测,它们都有非常完善的 API。但是如果需要识别新的目标,例如「猫」,那么它是做不到的,我们也无法给它加上我们自己训练的 ML 模型。
当然,机甲大师的底层开发肯定非常复杂,要给它加上新的特性一定很麻烦,但是机器之心还是希望机甲大师能提供一系列教程,让机器学习开发者也能将自己的模型加载到上面。
总体而言,通过这个简单的案例,我们发现对于一般的用户,使用 Scratch 写程序要比用 Python 写高效得多。它非常适合作为青少年的编程启蒙玩具,用 Scratch 编写出炫酷的应用。
Scratch 编程模块
最后我们重点介绍一下机甲大师该怎样使用 Scratch 进行编程。机甲大师 S1 的编程都在应用程序内完成,不同的语言都有自己的编辑窗口。如下所示为 Scratch 的编程界面,其中图形化的编程模块有一百多个。为了便于查找模块,机甲大师按照不同的功能以不同颜色的模块进行分类,这样搭建起来会比较简单。
编程指南地址:https://www.dji.com/cn/robomaster-s1/programming-guide
我们简单搭建了一个识别人的流程,机甲大师可以旋转车身找人,找到了就向行人前进。如下所示为程序的调试窗口,执行后可以同时看到摄像头的画面与车身的状态,这样就能快速尝试刚刚编写程序的效果。
在下面的动图中,我们可以看到程序运行的动态过程。这里因为场地有限,我们将向前平移距离设定为了 0 米,如果不为 0,那么机甲大师在检测到人的同时会抬起「炮筒」向人前进。如下所示当检测到人时,机甲大师会抬头。
其实更好的一种方式是先用 Scratch 搭建整个架构,然后再在 Python 开发环境下修改细节。比如说,拉拽的 Scratch 模块只有少数几种条件语句,但是如果在 Python 环境下就能利用 elif 等更合理的语句。
同时,很多 API 的参数也是不太一样的,在 Scratch 环境下,灯光只能配置几种常见的颜色,但是在 Python 环境下,可以通过 RGB 的值来配置灯光颜色。如下是上述程序的 Python 代码,我们可以进一步调整细节。
如上只是简要介绍机甲大师 S1 该怎样编程,我们通过简单的 *** 作就实现一个「智能」的机器人。总体来说,使用已有的高层 API 做个智能机器人就已经非常足够了,我们不能期望能使用更加复杂的底层接口。带小朋友做个炫酷的机甲大师,这也是非常有意思的挑战啊。
文/图 KID
故事要从2013年的夏天说起,那一年大疆召集了部分高校,以资助或半资助的方式举行了第一届名为RoboMaster的机 器人大赛。不同于以往的机器人格斗比赛,RoboMaster定位更为高端,主要体现在对战模式、工程设计以及算法三方 面。
首先对战模式是组队参赛,参考了当前流行的电竞 游戏 ,对机器人进行了分工,有步兵、英雄、无人机、基地等多种 兵种协同作战。而且对战方式是由人来 *** 控实体机器人进行FPS(第一人称射击)。
其次参赛选手需要独立研发机器人,利用精密机械设计来丰富机器人的功能,提升稳定性,同时辅以优秀的软件算法 ,包括机器视觉技术(自动目标识别跟踪)等。整个比赛不仅是 *** 控技术的比拼,更是顶级的工程技能博弈。
大疆创始人汪滔之所以创办RM,是希望通过这项机器人大赛传达如下理念:
1.发掘 科技 领域的“机神”级人物,助力一代明星工程师在此起航;
2.帮助理工男从幕后走到台前,完成技术宅的“逆袭”;
3.将大学生从网络 游戏 中解放出来,通过机器人竞技实现自我理想;
4.激发大学生纯粹的做事态度,培养他们对极致的追求。
历经六年,如今RM已经正式成为国家级比赛,同时有了一个响亮的中文名字——机甲大师赛。去年RM共吸引到来自全球184支高校战队参赛,RoboMaster已经不仅是中国大学生的机器人比赛,更是世界范围内 科技 爱好者共同参与的机器人竞技项目。
随着RM大赛的名气和参与人数逐年增多,大疆也有了另外的打算。这几年RM大赛推动大疆机器人技术快速发展和成熟,结合大疆原本就很厉害的平台控制技术、云台技术、图传技术和视觉技术,使得大疆有勇气和能力推出一款能够量产化的机器人产品——RoboMaster S1。
首先就定位而言,大疆S1并不像以往无人机、运动相机那样大众化,这款机器人主要针对 娱乐 和教育市场。它的原型来自于大疆RoboMaster机甲大师赛中的步兵机器人。
RoboMaster机甲大师赛的步兵机器人作为赛场上的主(pao)力(hui),依靠灵活的机动能力和风骚的走位,一直处于赛场的第一线四处游走攻击对手,为整个队伍的胜利立下了汗马功劳,这样的一台步兵机器人也蕴含了不少高 科技 。
大疆RMS1很好的继承了RoboMaster机甲大师赛步兵机器人的大多数功能,包括感应装甲、FPV、自动识别等。除此之外,RMS1还简化了编程的难度,融入了6类智能编程模块,通过在APP中加入可视化编程功能,让青少年学生在手机上也能够对机器人的动作实现编程控制。
正是由于这套设备不太简单, 科技 含量相对来说比较高,所以大疆这款产品的定位主要还是针对14岁以上青少年 娱乐 、学习,以及极客发烧友们进行程序开发之用。
大疆RMS1机器人采用模块化设计,底盘、云台、甚至车轮都需要自行组装,这样做的目的除了让青少年在组装的时候可以更了解这些零部件以外,还能够锻炼自己的动手能力。
大疆RMS1机器人全套零部件一览
大疆RMS1机器人的全套设备包括四只麦克纳姆轮、四个无刷电机、运动控制器、底盘、三轴云台、FPV摄像头、感应装甲、水晶d发射器、电池、图传以及安装用的各种螺丝和模具等。虽然跟RoboMaster机甲大师中的步兵机器人上的配件功能和长相都非常相似,但很遗憾并不能通用。
大疆RMS1机器人采用的是麦克纳姆轮进行驱动,这种驱动轮与传统轮胎最大的区别就是外面的“外胎”部分,麦克纳姆轮还有一圈直排滚轮。关于麦克纳姆轮我之前在一起科普贴中详细的介绍过,由于无法插入网页链接,所以感兴趣的小伙伴欢迎移步到5iMX论坛深入学习了解一下。
对于麦克纳姆轮消耗最大的小滚轮,大疆采用了橡胶加塑料材质,通过塑料与塑料摩擦、橡胶与地面接触的组合方式,在节约成本的同时,有效的降低了滚轮的磨损。
大疆RMS1机器人采用四颗低KV值的M3508I外转子无刷电机直驱,少了那些复杂的机械传动结构之后,电机的传动效率更高了。这四个M3508I外转子无刷电机最高支持12V供电,最高转速900转,单个电机产生的最大扭矩能够达到50mNm(毫牛米,1mNm=0.001NM),能够给大疆RMS1机器人带来非常强劲的动力输出,使其获得非常高的加速度。但受限于最高转速,所以极速并不会太快。
对于这种电机直驱的动力总成来说,电机在驱动车轮转动的同时还要为车子提供一定的支撑,所以对电机结构强度要求会比较高。
从另一个角度看看起来,这款电机还是非常结实,厚实的安装板加上直径5mm的主轴,对于这台重量不到5kg的机器人来说完全没有问题。
运动控制器相当于大疆RMS1机器人小脑,主要负责对机器人的运行轨迹和动作进行协调,同时将机器人受到攻击时的位置、攻击方向等信息反馈给位于智能中控,而它真正的大脑(智能中控)则位于云台上。
相机云台在大疆的无人机时拍照、摄像的主要设备,而在这款地面站车上,云台同样非常重要!大疆RMS1机器人的云台集成了水晶d发射器、FPV摄像头、图传、感应装甲、扬声器等设备,外部功能模块基本上都集成在云台上。
作为机器人的主要装备,大疆RMS1机器人安装了一门可发射6mm水晶d的“主炮”,能够发射6mm发泡水晶d,射速为10发/s,发射初速度为26 m/s 。
大疆的水晶d采用的是一种无色无味、无毒无害、可降解的发泡硅胶,使用前需要提前月四个小时在自来水中浸泡发涨后才能使用。
浸泡好的水晶d是这样样子,打出去之后会自动碎裂,经过一段时间后会自然降解,所以不用担心环保的问题。
在发射水晶d时,还伴随着音效和灯光效果,看上去非常酷炫,打击感非常强。除了发射水晶d以外,还能够发射激光进行模拟对战。
水晶d发射机的d仓尺寸为153 x 54 x 30mm(长宽高),能够容纳大约400发水晶d,由于射速较快,连续射击的情况下40S左右就能打完一个d夹。但在对战模式下,子d的发射有一定的冷却时间,火力持续时间会有比较明显的增加。
RoboMaster机甲大师赛中的机器人都采用第一视角进行对战,这台机器人上也保持了这一特性。RMS1机器人搭载一颗 F2.4/120° fov 500万像素摄像头,能够拍摄720p@30fps和1080p@30fps的视频。除了画面以外,它还具备收音功能,能够让你在对战中更好的记录第一视角所看到的画面以及你听到的所有音效。
RMS1机器人的智能中控是这台机器中 科技 含量最高的零部件之一,是大疆RMS1机器人能够实现各种智能功能的关键所在。这套中控系统集成了图传、车载计算机等功能,同时还能够支持31个传感器和46个可编程部件以及自定义配件,让用户更自由的发挥创意。而它的图传系统则是采用了全新的WiFi图传,有效传输距离为100米左右。
作为对战型的机器人,大疆RoboMaster机甲大师赛中的每一台机器人上面都可以看到这种方块状的板子,这是机器人的感应装甲。感应装甲属于机器人裁判系统的伤害感知部分,主要用于检测机器人被d丸攻击,及碰撞情况。
而在大疆RMS1机器人上面,同样拥有这样的感应装甲,这四块感应装甲分别对应了机器人的前后左右四个方位。当某一个方向的感应装甲受到攻击时,机器人就可以通过传感器进行识别,并通过反击程序对该方向的敌人发起反击。
除了底部的感应装甲以外,在云台的两侧还有两块感应装甲,这两块感应装甲除了感应石d攻击以外,还能够感应到红外射击时的虚拟攻击。除此之外,这两块感应装甲还带有血量显示功能。
大疆RMS1机器人采用模块化设计,所有零部件的完成度都非常高,组装相对来说并不复杂。
大疆RMS1机器人采用RoboMaster机甲大师赛的同名APP进行 *** 控,软件大小为767.5MB,能够支持安卓和IOS两大主流 *** 作系统,以及中文、日文和英文三种语言。
RoboMaster的UI界面设计体现出一种科幻、机械的美感,即使是缓冲界面也加入了RMS1机器人的二维草图作为过渡,非常具有 科技 感。
RMS1机器人拥有单机驾驶、多人竞技和实验室三种模式。单机驾驶主要是针对个人 娱乐 ,多人竞技主要是针对拥有两台甚至数台RMS1机器人的队伍进行多人对战、竞速等。
除了以上两种模式以外,在实验室模式中,你还可以通过内置的软件对RMS1机器人进行可视化编程,以实现初步的自动驾驶功能。而对于那些不会编程的新手,也可以通过内置的丰富编程教学资源,从大师之路的系列关卡中学习学习编程、机器人和人工智能知识,同时锻炼独立解决难题的能力, 探索 实现目标的不同路径。
在 *** 作方面,RMS1除了使用手机触控屏进行 *** 控外,也可以连接遥控器或者使用鼠标键盘进行 *** 控,对于不同使用习惯的小伙伴都比较适用。
使用手机 *** 控其实跟前段时间大热的“吃鸡” 游戏 非常类似,都是采用的左手控制前后左右移动,右手控制方向和俯仰视角。
射击按钮同样也支持左右手 *** 作
在RMS1机器人的包装中是不包含这个遥控器的,并且也不支持其他类型的遥控器,想要使用遥控器 *** 控还需要单独购买。
使用遥控器 *** 控是,上面的摇杆可以控制RMS1机器人的前后左右移动。
左上角的L2进行开火
使用遥控器配合体感 *** 控云台的左右和俯仰效果会更好
另外,遥控器还能够支持鼠标键盘控制,直接将鼠标键盘接在遥控器的USB接口上就可以了。
攻击方式上,RMS1机器人能够支持红外光束和水晶d两种。使用红外光束攻击时,云台两侧的红外接收器会能够接收到敌方车辆发射的红外光束,由裁判系统判定伤害,只要是光束覆盖到的范围攻击都有效。而采用水晶d对战时,只能攻击车身周围的四块感应装甲和云台二轴处的两块感应装甲才能判定伤害,攻击其他非装甲区域属于无效攻击。除此之外,一定程度的撞击、敲击也有会造成裁判系统误判为伤害。
除了以上功能以外,RMS1机器人还有非常丰富的人机交互功能,掌声识别、姿态识别、甚至是用在无人机上的智能跟随功能在这台RMS1机器人上都可以看到。不过遗憾的是智能跟随功能目前只能跟随行人和同类(RMS1机器人),对于其他物体和移动目标都无法识别跟随。
与大多数DIY产品不同,大疆RoboMaster S1机器人的产品化成程度非常高,整个设计外观简洁,模块化的设计使得组装也非常方便,上手难度也不算太大,是一款非常适合编程开发入门的机型。除了教学与应用开发以外,用这款机器人进行日常 娱乐 也不是不可以。
当用它进行 娱乐 、对战时,强烈的打击感和FPV视觉效果让人有一种身临其境的感觉。关于大疆这款RMS1机器人的更多玩法,请持续关注5iMX近期发布的相关评测。
RoboMaster EP 是大疆面向专业机器人教育场景所打造的教育机器人,它继承了机甲大师 S1的结构优势,在原有基础上搭配多元全新硬件,可充分释放学生的好奇心与创造力。此次新增的硬件包含高性能舵机、机械臂、机械爪、红外深度传感器、传感器转接模块以及电源转接模块。基板平台预留有 3 mm 直径及 8/16/32mm 间隔扩展孔,为接入更多硬件提供了可能。RoboMaster EP 还支持外接“Micro:bit”、“Arduino”、“树莓派”等第三方开源硬件,且能利用自身电池为它们供电。同时,通过人工智能芯片平台 Jetson Nano 和 SDK 进行模型训练和场景识别,RoboMaster EP还能帮助学生在实践中更深入地理解人工智能运作原理。
此外,EP 开放 DJI 官方 SDK,支持超过 50 个可编程传感器接口。可获取传感器模块、视频流和音频流等数据,通过编写程序实现多机协作编队、障碍物智能避让等多种人工智能应用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)