Cobra Flex
|
| ||||||||||||||||||||||
| ||||||||||||||||||||||
产品简介
Cobra Flex 是一款通用模块化线控底盘,具备强悍的越野通过能力和抗震性能,开源全部代码,方便用户用于二次开发,需要扩展多种上位机 (树莓派、Jetson Orin Nano 等),并可通过 USB 或串口与底盘通信。四轮由内置 FOC 控制电路的总线轮毂电机驱动,动力强劲,转速平稳。内部安装了由六颗 18650 锂电池 (3s2p) 组成的电池组,为机器人持续供电的同时支持边充电边放电。内置多功能机器人驱动板,采用强弱电分离设计,可扩展总线舵机,驱动板基于 ESP32,板载 Wi-Fi (仅用于短距离调试)和蓝牙。采用 CNC 工艺的紧凑型四轮独立悬挂,使其轻松满足重载、避震和越野等需求。产品配有两条 1020 欧标型材扩展导轨,为二次开发提供了更多的可行性。
产品参数
| Cobra Flex 相关参数 | |||||
|---|---|---|---|---|---|
| 物理参数 | 尺寸(长*宽*高) | 235*173*101mm | 性能参数 | 驱动方式 | 差速驱动 |
| 自重 | 2375±5g | 悬挂 | 四轮独立悬挂 | ||
| 最大载重 | 12kg | 最大运行速度 | 0.53m/s(受电压影响) | ||
| 轴距 | 154mm | 最小转弯半径 | 0m(原地自旋) | ||
| 轮距 | 228mm | 最大爬坡角度 | 30° | ||
| 离地间隙 | 34.24mm | 电机空载速度 | 180rpm(受电压影响) | ||
| 驱动轮直径 | 74.5mm | 工作温度 | 0~40℃ | ||
| 电气参数 | 供电电压 | 9~12.6V | 电机参数 | 工作电压 | 9~28V DC |
| 电池规格 | 5000mAh 18650 锂电池 ×6 | 额定电流 | 0.24±0.07A | ||
| 续航时间 | 10h | 额定转速 | 100rpm | ||
| 充电时间 | 3h | 额定转矩 | 0.15Nm/V | ||
产品特性
- 独立悬挂 · 高强避震:采用 CNC 工艺打造的四轮独立悬挂系统,结构紧凑,避震性能出色,轻松应对崎岖地形。
- 总线轮毂电机:采用内置 FOC 控制电路的总线轮毂电机,动力强劲,运行平稳。
- 高效电源系统:内置 3S2P 锂电池组,支持边充边放,保证续航。
- 多功能驱动板:主控模块基于 ESP32,内置 Wi-Fi (仅用于短距离调试)和蓝牙,支持扩展总线舵机、传感器等外设。
- 强弱电分离:驱动板采用强弱电分离设计,有效提升系统稳定性与电气安全性。
- 模块化设计:Cobra Flex 整体采用模块化结构,适配多种上位机平台(如树莓派、Jetson Orin Nano 等),支持 USB 与串口通信,方便用户进行二次开发。
- 开源代码:下位机全部代码开源并提供丰富的开发文档和教程。
- 可扩展性:结构上配备双 1020 欧标型材导轨,扩展空间灵活,可轻松搭载相机、雷达、机械臂等模块。
产品介绍
底盘结构说明
以下是 Cobra Flex 各个部位以及常用接口的标注:
产品组装
使用前注意事项
使用前请务必了解以下内容:
- 产品出厂内置有 3S2P 18650 锂电池组,严禁使用不匹配的充电器,请使用我们配套的 12.6V 2A 充电器,避免损坏电池或起火。
- 产品支持边充边放电,但不建议在高负载任务中长时间边充边用,以保护电池寿命。
- 勿让电池长时间处于过充或过放状态,请定期检查电压并维护电池。
- 本产品防护等级仅为 IP32,避免在雨天、泥水、雪地或高湿环境下运行。
- 长时间高温(>40℃)或低温(<0℃)会影响电池和电机性能,请合理使用。
- 小车提供了DC5521母头 转 DC5525公头+XH2.54母头的连接线方便从电池组引出给jetson orin nano进行供电,这个电源是电池组直接输出的,不能直接给树莓派供电,树莓派需要额外添加电源或者考虑降压。
产品固件更新
我们提供 Cobra Flex的 ESP32 下载工具,使用这款工具,用户可以快速给产品更新固件或还原至出厂程序。
1. 首先,使用 USB 线连接机器人和你的电脑。(此步骤需要拆开机器人才能完成)。
2. 下载 Cobra Flex的 ESP32 下载工具:Cobra Flex的 ESP32 下载工具,下载后解压缩,双击打开“flash_download_tool_3.9.5.exe”程序。打开后,会弹出两个窗口,我们需要操作的是下载工具的 UI 界面,而另一个窗口作为终端来显示下载工具的工作状态。
3. 在“DOWNLOAD TOOL MODE”这个界面,Chip Type 选择为 ESP32S3,WorkMode 选择为 Factory,使用 Factory,调用二进制文件时才会使用相对路径,就不需要用户手动输入二进制文件路径,选择好后点击OK。
4. 在这个软件界面中,保持“LockSettings”的勾选,右边代表的是可以同时给 8 个 UGV02 上传程序。点击“COM”,选择新出现的 COM(我这里新出现的 COM 为 COM3);BAUD 是用于设置下载速度,越高速度越快,ESP32 最高可以使用 921600。
5. 选择好后,点击 START 开始上传程序,上传完成后,“IDLE 等待”会变成“FINISH 完成”,完成后可以断开驱动板与电脑的 USB 连接,打开机器人产品的开关,通电后即可控制机器人。
产品使用与开发
基础调试
首次使用需要先使用配置的 12.6V 2A 充电器插入至机器人的电源接口中,打开电源开关后机器人会进行初始化,OLED 屏幕会显示初始化的一系列内容。
- 机器人开机后 OLED 屏幕上显示内容含义如下:
- 第一行内容表示此时 WiFi 处于 AP 模式下,机器人创建了一个热点,WiFi 热点名为 UGV;
- 第二行表示 STA 模式处于关闭状态,当 WiFi 处于 STA 模式时,路由器会给机器人分配一个 IP 地址并显示出来;
- 第三行的内容为本设备的 MAC 地址,该地址是唯一的,可用于 ESP-NOW 通信。
- 第四行 V 表示机器人产品的电源电压。
- 开机后使用手机或电脑连接机器人的 WiFi:UGV,密码是 12345678,连接 WiFi 后打开谷歌浏览器,在网址栏中输入 192.168.4.1 打开 Web 端使用界面。接下来你就可以使用 Web 端的按键来对机器人进行基础控制,也可以在 Web 控制界面上向机器人发送 JSON 指令。
JSON 通信协议详解
在与机器人底盘通信时,我们使用一种特定的控制指令——即 JSON 指令,来告诉机器人应该执行什么动作。在这个部分中,我们主要介绍如何发送 JSON 指令进行机器人控制及机器人 JSON 指令的使用说明。
什么是 JSON 指令
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在不同系统之间传输和存储数据。JSON 最初起源于 JavaScript,但已成为一种独立于编程语言的数据格式,因此可以在各种编程语言中使用和解析。
JSON 指令就像是一张标准化的“点餐单”,它可以告诉机器人移动的速度以及转动的方向等。
JSON 指令的基本格式
JSON 指令的基本格式是:键:值
- 键必须是字符串,用双引号包围;
- 值可以是多种类型:字符串、数字、对象、数组、布尔值或 null,其中,字符串必须用双引号包围,其它的不需要引号;
以下是驱动机器人移动的指令:
{"T":1,"L":100,"R":100}
其中双引号中的 T、L、R 都是键,冒号后的是值。对于这条指令的解释:
- "T":1 代表该指令用来驱动机器人移动(SPEED_INPUT)。固定值,不可更改,是程序识别该指令用途的数值。
- T 的值在产品下位机程序的头文件 json_cmd.h 中定义。
- 注意:不同的控制指令会使用不同的 T 值。
- "L":为左侧轮速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "R":为右侧轮速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm,当 L 和 R 的值均为 0 时,机器人即停止。
这条指令是告诉机器人:“请以 10rpm 的速度前进。”
以下是单独驱动电机的指令:
{"T":11,"M1":1000,"M2":1000,"M3":1000,"M4":1000}
- "M1":为左前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "M2":为右前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "M3":为右后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "M4":为左后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
以下是获取小车反馈的指令:
{"T":130}
一问一答机制反馈的指令如下
{"T":1001,"M1":0,"M2":0,"M3":0,"M4":0,"odl":0,"odr":0,"v":1173}
- "M1":为左前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "M2":为右前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "M3":为右后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "M4":为左后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
- "odl":为左侧轮的里程。单位是cm。
- "odr":为右侧轮的里程。单位是cm。
- "v":为电压。
以下是打开小车的连续反馈指令:
{"T":131,"cmd":1}
- "cmd":0为关闭,1为打开。
以下是打开小车的连续反馈指令:
{"T":132,"IO1":255,"IO2":255}
- "IO1":前方led灯的亮暗程度,取值范围为 0~255,255为最亮。
- "IO2":前方led灯的亮暗程度,取值范围为 0~255,255为最亮。
为什么使用 JSON 指令通信?
以下是使用 JSON 格式的指令来控制机器人的优点:
1.可读性好
JSON 是一种轻量级的文本数据格式,易于人类阅读和编写。它使用键-值对的形式,这使得指令易于理解和调试,特别是在开发和测试阶段。
2.易于解析
许多编程语言都提供了JSON解析器,使得解析JSON指令变得非常容易。这使得将指令转化为可执行的操作变得简单。
3.跨平台兼容性
JSON 是一种通用格式,几乎可以在任何编程语言和平台上使用。这意味着您可以使用不同的编程语言来发送和接收 JSON 指令。
4.结构化数据
JSON 支持嵌套的数据结构,可以包含对象和数组。这使得您可以以清晰的方式组织指令,包括参数、选项和子命令等。
5.扩展性
您可以轻松地添加新的字段和参数到JSON指令中,以支持更多的功能和选项,而不必改变指令的整体结构。
6.易于集成
JSON 是许多 API 和 Web 服务的标准输入和输出格式。这使得机器人可以与其他系统和服务进行无缝继承,例如通过 REST API 进行通信。
7.标准化
JSON 是一个标准化的数据格式,受到广泛的支持和采用。这意味着您可以借助各种库和工具来处理和操作 JSON 数据。
8.支持多语言
由于 JSON 可以在多种编程语言中使用,因此可以实现多语言编写的机器人控制系统,而无需重新编写指令解析器。
总的来说,JSON 格式的指令提供了一种简单、灵活、可读性好且易于解析的方式来控制机器人,使得机器人控制系统更加强大和可维护。
产品资料
Cobra Flex 图纸
Cobra Flex 3D 模型
Cobra Flex 2D 尺寸图
软件
软件
下位机源码
技术支持
联系人:方工
EMAIL:[email protected]
QQ:2355742825
微信:扫下方二维码添加

