3. RoboMaster SDK 和机器人建立连接 您所在的位置:网站首页 robomaster开关 3. RoboMaster SDK 和机器人建立连接

3. RoboMaster SDK 和机器人建立连接

#3. RoboMaster SDK 和机器人建立连接 | 来源: 网络整理| 查看: 265

3. RoboMaster SDK 和机器人建立连接¶ 3.1. EP固件升级¶

请通过RoboMaster App查看EP固件,确保EP固件版本在01.01.0500及其以上版本,如果不是请通过RoboMaster APP进行升级,不然会影响到RoboMaster SDK的使用。

3.2. EP连接方式¶

Robomaster SDK 支持3种与EP的连接方式:WiFi 直连模式,WiFi 组网模式和 USB(RNDIS) 连接模式。

WIFI直连 :

Wi-Fi 直连 :通过将机器人设置为直连模式,并连接机器人的 Wi-Fi 热点进行接入,Wi-Fi 直连模式下,机器人默认 IP 为 192.168.2.1

开启机器人电源,切换智能中控的连接模式开关至 直连模式,如下图所示:

准备具有WIFI连接功能的设备,例如:DJI 妙算、Jetson Nano 或 PC:

DJI 妙算、Jetson Nano 或 PC 通过 WIFI 直连 到 EP

参考sdk代码 /examples/01_robot/04_ap_conn.py 目录下的例程(GitHub RoboMaster SDK repository)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16import robomaster from robomaster import robot if __name__ == '__main__': # 如果本地IP 自动获取不正确,手动指定本地IP地址 # robomaster.config.LOCAL_IP_STR = "192.168.2.20" ep_robot = robot.Robot() # 指定连接方式为AP 直连模式 ep_robot.initialize(conn_type='ap') version = ep_robot.get_version() print("Robot version: {0}".format(version)) ep_robot.close()

运行结果:

Robot Version: xx.xx.xx.xx USB连接

USB 连接 :通过机器人的智能中控上的 USB 端口接入,机器人默认 IP 为 192.168.42.2

USB 连接模式,实质上是使用 RNDIS 协议,将机器人上的 USB 设备虚拟为一张网卡设备, 通过 USB 发起 TCP/IP 连接更多 RNDIS 内容请参见 RNDIS Wikipedia。

选择具有 TypeA USB 接口,并支持 RNDIS 功能的第三方平台,这边列举树莓派的连接,图中蓝线即为USB连接,红线为供电线:

树莓派连接示意图

参考sdk代码 /examples/01_robot/06_rndis_conn.py 目录下的例程(GitHub RoboMaster SDK repository)

1 2 3 4 5 6 7 8 9 10 11 12 13import robomaster from robomaster import robot if __name__ == '__main__': ep_robot = robot.Robot() # 指定连接方式为USB RNDIS模式 ep_robot.initialize(conn_type='rndis') version = ep_robot.get_version() print("Robot version: {0}".format(version)) ep_robot.close()

运行结果:

Robot Version: xx.xx.xx.xx 组网连接 :

Wi-Fi 组网 :通过将机器人设置为组网模式,并将计算设备与机器人加入到同一个局域网内,实现组网连接

开启机器人电源,切换智能中控的连接模式开关至 组网模式

DJI 妙算、Jetson Nano 或 PC 和 EP 连接到同一个局域网后和 EP 进行通信。

DJI 妙算、Jetson Nano 或 PC 路由连接至 EP

安装myqr库生成二维码,按 win+r,在弹出窗口中输入 cmd 打开命令提示符界面,在命令行里面输入:

pip install myqr

参考sdk代码 /examples/01_robot/05_sta_conn_helper.py 目录下的例程(GitHub RoboMaster SDK repository)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21import time import robomaster from robomaster import conn from MyQR import myqr from PIL import Image QRCODE_NAME = "qrcode.png" if __name__ == '__main__': helper = conn.ConnectionHelper() info = helper.build_qrcode_string(ssid="RoboMaster_SDK_WIFI", password="12341234") myqr.run(words=info) time.sleep(1) img = Image.open(QRCODE_NAME) img.show() if helper.wait_for_connection(): print("Connected!") else: print("Connect failed!")

警告

示例代码13行中的,ssid (路由器名称)和 password (路由器密码),需要根据实际的路由器信息进行填写

运行示例代码,会出现二维码图片,按下机器人智能中控上的扫码连接按键,扫描二维码进行组网连接。

运行结果:

Connected!

同时机器人的灯效变为白色呼吸变为青绿色常亮。

小技巧

支持在组网模式下通过SN连接指定的机器人,用户通过在初始化时给 sn 参数赋值完成对机器人 sn 的输入, 参考例程 /examples/01_robot/05_sta_conn_sn.py (GitHub RoboMaster SDK repository)。在不指定 sn 时,SDK默认与搜索到的第一台机器人建立连接。

1 2 3 4 5 6 7 8 9 10 11 12 13from robomaster import robot from robomaster import config if __name__ == '__main__': ep_robot = robot.Robot() # 指定机器人的 SN 号 ep_robot.initialize(conn_type="sta", sn="3JKDH2T001ULTD") ep_version = ep_robot.get_version() print("Robot Version: {0}".format(ep_version)) ep_robot.close() 3.3. 教育无人机系列连接方式¶

教育无人机目前主要包括 Tello EDU 以及 Tello Talent,Robomaster SDK支持通过WIFI直连模式与这两款产品建立连接。

WIFI直连 :

Wi-Fi 直连 :通过将机器人设置为直连模式,并连接机器人的 WIFI 热点进行接入,WIFI 直连模式下,机器人默认 IP 为 192.168.10.1

首先将机器人设置为 WIFI 直连模式

Tello EDU : 短按图中红色剪头所示电源按键,等待黄灯快闪开机完成,机器人出厂默认即为 WIFI 直连模式,如果开机时为组网模式, 可以通过电源按键重置 WIFI:在开机状态下,长按电源键 5s,期间状态指示灯将熄灭后再闪烁黄灯。 状态指示灯显示黄灯快闪后, WIFI 的 SSI 和密码将重置为出厂设置,默认无密码

Tello Talent :: 开启机器人电源,切换扩展模块的模式开关至 直连模式,如下图所示:

准备具有WIFI连接功能的设备连接教育无人机的 WIFI,例如:DJI 妙算、Jetson Nano 或 PC:

参考sdk代码 /examples/12_drone/01_ap_conn.py 目录下的例程(GitHub RoboMaster SDK repository)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15from robomaster import robot if __name__ == '__main__': # 如果本地IP 自动获取不正确,手动指定本地IP地址 # robomaster.config.LOCAL_IP_STR = "192.168.10.22" tl_drone = robot.Drone() # 初始化 tl_drone.initialize() # 获取飞机SDK版本信息 version = tl_drone.get_sdk_version() print("Drone SDK Version: {0}".format(version)) tl_drone.close()

运行结果:

Drone SDK Version: xx.xx.xx.xx 组网模式 :

组网模式 :将机器人设置为组网模式,并连接SDK运行设备所在的局域网进行接入,

首先将飞机设置为 直连模式,并且与运行SDK的设备连接,具体操作参考上一小节 运行提供的示例程序 /examples/12_drone/23_set_sta.py (GitHub RoboMaster SDK repository), 将程序中的 ssis 与 password 参数改为当前使用的路由器的账号与密码 1 2 3 4 5 6 7 8 9 10 11 12 13import robomaster from robomaster import robot if __name__ == '__main__': tl_drone = robot.Drone() tl_drone.initialize() # 切换飞行器WiFi模式为组网模式,指定路由器SSID和密码 tl_drone.config_sta(ssid="RoboMaster_SDK_WiFi", password="12341234") tl_drone.close() 切换扩展模块的模式开关至组网模式,之后机器会自动连接到指定的路由器所在的局域网内 将运行SDK的设备也连接至该局域网内,此时SDK与机器即在同一网络内 3.4. 通讯方式¶ 3.4.1. EP通讯方式¶

Robomaster SDK 与EP的3种连接方式在通讯协议上支持 TCP 和 UDP 通讯。

参数 TCP UDP 可靠性 可靠 不可靠 连接性 面向连接 无连接 效率 低 高 场景 对数据准确性要求高 对数据传输的实时性要求高

小技巧

机器人要实时的控制运动的可以选用 UDP, 机器人进行事件型控制可以选用 TCP

用户可以根据自己的运用场景去设置对应的通讯方式 更多TCP通讯内容可以参考:TCP Wikipedia ,UDP通讯可以参考:UDP Wikipedia。

TCP通讯 参考sdk代码 /examples/01_robot/07_tcp_protocol.py 目录下的例程(GitHub RoboMaster SDK repository) 1 2 3 4 5 6 7 8 9 10 11 12 13 14import robomaster from robomaster import robot if __name__ == '__main__': ep_robot = robot.Robot() # 指定连接方式为STA 组网模式, 网络通讯方式 tcp ep_robot.initialize(conn_type='sta', proto_type='tcp') version = ep_robot.get_version() print("Robot Version: {0}".format(version)) ep_robot.close() 组网连接

这边可以根据代码第8行中的 connect_type 参数进行修改 sta 对应组网连接,ap 对应WIFI直连,rndis 对应USB连接。

运行程序,并得到结果返回:

Robot Version: xx.xx.xx.xx UDP 通讯 参考sdk代码 /examples/01_robot/08_udp_protocol.py 目录下的例程(GitHub RoboMaster SDK repository) 1 2 3 4 5 6 7 8 9 10 11 12import robomaster from robomaster import robot if __name__ == '__main__': ep_robot = robot.Robot() # 指定连接方式为AP 直连模式, 网络通讯方式 udp ep_robot.initialize(conn_type='ap', proto_type='udp') version = ep_robot.get_version() print("Robot Version: {0}".format(version)) ep_robot.close() 进行组网连接

这边可以根据代码第8行中的 connect_type 参数进行修改 sta 对应组网连接,ap 对应WIFI直连,rndis 对应USB连接

小技巧

不同的通讯方式,实际是根据代码第8行中的对 robot.initialize() 函数的 proto_type 传递的参数来变更的,tcp 对应TCP通讯, udp 对应UDP通讯

运行程序,并得到结果返回:

Robot Version: xx.xx.xx.xx 3.4.2. 教育无人机 通讯方式¶

目前 Tello EDU 与 Tello Talent 只支持UDP通信方式,因此不需要额外的配置



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有