RoboMaster SDK 解读.3

家中布偶猫镇楼

import timefrom robomaster import robotfrom robomaster import ledif __name__ == '__main__': ep_robot = robot.Robot() ep_robot.initialize(conn_type="sta")
ep_led = ep_robot.led
# 设置灯效为常亮,亮度递增 bright = 1 for i in range(0, 8): ep_led.set_led(comp=led.COMP_ALL, r=bright << i, g=bright << i, b=bright << i, effect=led.EFFECT_ON) time.sleep(1) print("brightness: {0}".format(bright << i))
ep_robot.close()

我们直接拿一段代码来看,和以往不一样的是引入了LED的包,看来作为装饰的灯也是一个独立的系统,有很多的方法去控制。

记得创建一个新的led对象,下面是是要设置一个递减变化用的标志变量~

bright = 1 for i in range(0, 8): ep_led.set_led(comp=led.COMP_ALL, r=bright << i, g=bright << i, b=bright << i, effect=led.EFFECT_ON) time.sleep(1) print("brightness: {0}".format(bright << i))

这段是对一个RGB的灯的控制,这段代码可以封装好复用

r=bright << i, g=bright << i,  b=bright << i

for搭配<<运算来实现显示效果,记录下来

昨天的话其实没有说完,我们今天继续


延时的作用就是保证当前任务执行的完整性,这里的设计是设计了一个阻塞性质的代码,在执行的时候会停在这里,直到完成任务或者被强制回收。对地位一样的模块,任务相同是互斥的。不同模块之间是互相独立的。总之所有的设计就是保证任务的完整运行

没忍住还是搜索了一下这个单词的意思

以及ACK也去找了一下相关的定义

接着说了TT无人家里面的一个实时控制

就是不提前写好序列让机器去执行,而是实时的发出控制的命令去操作机器

这个也给出了一个代码,我按照逻辑和作用分类了

可以看到所谓的实时模式就是用了rc的方法

多机的控制流程是这样,我想对于一个大型的无人机控制的流程也是这样


  1. 首先将所有的待控制的飞行器连接在同一个中继器上面(路由器),而后进行飞行前的初始化。

  2. 接着就是对连接的所有的飞行器进行排队,编号

  3. 接着是两种模式,我没有看懂,也不知道该怎么办来实现

  4. 接着就是执行飞行任务

https://pypi.org/project/netifaces/

这是什么?

一段时间,没有简单的方法从Python获取计算机网络接口的地址,这让我很恼火。这种困难有充分的理由,即几乎不可能以便携式的方式做到这一点。然而,在我看来,应该有一个包,你可以easy_install将照顾出这样做的细节,你使用的计算机上,然后你可以继续编写Python代码,而不用关心自己与系统依赖的低级网络 API的细微的坚韧。

此包尝试解决此问题。

这就是说。用Py获得一个计算机的IP地址


def GetNetworkIP(): #获取本地网卡IP地址 import netifaces #routingGateway = netifaces.gateways()['default'][netifaces.AF_INET][0] #网关 routingNicName = netifaces.gateways()['default'][netifaces.AF_INET][1] #网络适配器信息 for interface in netifaces.interfaces(): if interface == routingNicName: #print (netifaces.ifaddresses(interface)) try: routingIPAddr = netifaces.ifaddresses(interface)[netifaces.AF_INET][0]['addr'] #获取IP except KeyError: pass #print ("Routing IP Address:%s"% routingIPAddr) return routingIPAddrif __name__ == "__main__": try: print ("Routing IP Address:",GetNetworkIP()) except: print ("Unable to get the address, there may not be installed netifaces module! command: pip install netifaces")

以上代码给出了一个demo,如果有使用的,可以直接拿来去使用。

对于多机的编号,使用列表的方式

  1. 是想要编号的机器id

  2. 一个是实体机器的号码,形成了映射的关系

组的方法,可以复用无人机

先将机器编组,然后向组发送命令来控制飞行器

特别的给出了两个方法,在一个组内添加机器或移除机器

for drone_id in drone_group.robots_id_list: drone_obj = drone_group.get_robot(drone_id) drone_obj.flight.takeoff().wait_for_completed()

给出了一个依次起飞的代码,drone_group 为获取到的“组对象”

用循环依次的放飞飞行器~

(0)

相关推荐

  • TE|| Microdrones

    TE|| Microdrones

  • 怎么选择室内LED显示屏?

    上一篇说了如何选择购买led户外显示屏?,这一篇来说一下如何选择室内LED显示屏.室内和户外的环境截然不同,户外环境光亮.高温.低温.高盐.风暴.沙尘.大雪等等,而室内环境相对较暗.相对恒温.相对干净 ...

  • 雅思口语新题| Part1: Concentration

    雅思口语新题| Part1: Concentration

  • RoboMaster SDK解读.2

    这个是车子的直接控制模式 也可以通过路由器拥连接 中间因为有了路由器,所以有了更加稳定的数据传输链路 也可以用喜闻乐见的UART来连接,什么?你居然不爱串口??? 这里也给出了串口连接的接线图 pip ...

  • RoboMaster SDK解读.1

    对于这次的比赛的这个平台我有点蒙???不太会用 这个是TT飞行,完全是积木式的.我还是喜欢Mnid+可以看到生成的代码 在挨打反击的界面有两段,这是第一段 里面一些模块的意思我也看不懂 看字面意思就好 ...

  • RoboMaster SDK 解读.4

    我们不可能把所有的API都看完,就按照我未来要写一套机器人的系统来看 首先可以看到这个的class是最大的robomaste的类,后面是**kw 到目前为止我们遇到看第一个知识点,为什么要在这里设计一 ...

  • Robomaster SDK源码解读.Camera.上

    先搜索关键字 在这里 对应的引入的库,机器库 相机的库,里面有TT 开始读这个camera的源码,主要是要了解是有什么方法. 我主要是要一个逐帧的方法,因为需要算法去处理每一帧的照片 里面主要是有三个 ...

  • Robomaster SDK安装(Win10+Py3.8)

    这个是dji官网里面自带的开发工具库,如果不是写C++的话 建议就直接安装就行 这个是下载的Github的库文件,后面的两个文件在安装前记得执行 你可以选择默认值 也可以选择自我的安装(话好像不顺口) ...

  • Mind+安装Robomaster SDK

    http://mindplus.cc/ mind+已经自带Python了,但是还需要一些简单的配置 打开以后点击这个Python模式 接着我们点击库,然后点PIP模式 在此之前我们换个源,建议豆瓣源, ...

  • Robomaster SDK源码阅读.5

    一位读者催更了很长时间的文章,想看robomaster SDK的源码解读,有点感动,就我的水平居然还有人想看. 其实我写这个还是比较小众的 https://github.com/dji-sdk/Rob ...

  • Dji RoboMaster Tello SDK封装.4(打包,安装)

    最后安装格式,你得写一个init得文件来完成SDK最后得编写 分别是包名,作者名字,授权方式,版权,版本,以及库中包含得文件 import setuptoolswith open('README.md ...

  • Dji RoboMaster Tello SDK封装.3(回复指令解包类)

    老规矩,时间库+一个统计大类 初始化一些关于时间的的类变量 这里插一个Python列表的使用技巧,[:1]就是将当前列表的第一个元素丢掉 这个是类里面的所有的函数 我们这个函数倒着看,就是先看应用的地 ...