HexArth

来自Waveshare Wiki
跳转至: 导航搜索
HexArth
{{{name2}}}
{{{name3}}}
功能简介
特性 HexArth仿生六足机器人
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 TTL总线舵机控制接口 I2C UART

产品介绍

HexArth是一款具有18个自由度的仿生六足机器人,配备了18个30kg.cm大扭矩舵机,结构可靠动作灵活,具有9轴运动跟踪器,并开源了可跨平台使用的Web应用来控制该机器人,手机或电脑只需要安装有浏览器即可访问该机器人的控制界面。以ESP32作为下位机进行连杆逆解和步态生成,为上位机分担算力,也可以安装树莓派作为上位机来进行高阶决策运算。

产品特性

  • 18个自由度,动作更加灵活丰富。
  • ICM20948 9轴运动跟踪器,可使用自平衡模式。
  • 30kg.cm大扭矩舵机,堵转扭矩高达30kg.cm,可扩展性更强。
  • 结构件由5052铝合金和PA12尼龙件组成,结构坚固可靠。
  • 集成多种交互设备,包括0.96inch OLED屏幕、两颗RGB-LED指示灯等。
  • 例程代码使用Arduino IDE开发,不需要手动配置编译环境,ESP32开机自动建立WIFI热点,可使用手机(Android/iOS)或电脑(Linux/Windows/Mac)连接并登录到控制页面,只需安装基于Chromium的浏览器即可,不需要下载app。
  • 带有充电接口和自动下载电路,你可以边充电边使用。
  • 六节18650电池,4000mAh大容量,输出电流更大,舵机动力更强。
  • 电池保护电路,具有防过充、防过放、防过流和短路保护功能。
  • 板载INA219采集芯片,方便实时监控电池电压,充电电流。
  • 可以安装树莓派作为上位机通过串口与下位机通信,ESP32作为下位机可以分担很多逆解和步态生成的算力,留给树莓派更多的资源用于高阶功能开发。
  • 开源step模型,方便进行二次开发;
  • 绝大部分配置设置可由 JSON 指令实现,例如不需要连接 USB 线即可为产品配置 WIFI 连接。
  • 全部代码开源并提供丰富的开发文档和教程。

产品固件更新

  • 如果你的机器人开机时 OLED 屏幕上显示 HexArth Version:0.84 ,说明机器人产品上的驱动程序已经是新版的程序了,就不需要再执行本部分内容给产品进行更新了;
  • 如果你的机器人开机时 OLED 屏幕上没有显示 HexArth Version:0.84,说明此时机器人产品上的驱动程序依旧是老版的程序,则需要执行本部分内容给产品进行更新;如果需要恢复出厂设置,也可以通过本部分内容进行。

我们提供 HexArth的 ESP32 下载工具,使用这款工具,用户可以快速给产品更新固件或还原至出厂程序。

1. 首先,使用 USB 线连接机器人和你的电脑。(此步骤需要拆开机器人才能完成,拆开机器人后连接机器人驱动板中间那个的 USB 接口)。

2. 下载 HexArth的 ESP32 下载工具:HexArth的 ESP32 下载工具,下载后解压缩,双击打开“flash_download_tool_3.9.5.exe”程序。打开后,会弹出两个窗口,我们需要操作的是下载工具的 UI 界面,而另一个窗口作为终端来显示下载工具的工作状态。

3. 在“DOWNLOAD TOOL MODE”这个界面,Chip Type 选择为 ESP32,WorkMode 选择为 Factory,使用 Factory,调用二进制文件时才会使用相对路径,就不需要用户手动输入二进制文件路径,选择好后点击OK。

WAVEROVER下载工具.png

4. 在这个软件界面中,保持“LockSettings”的勾选,右边代表的是可以同时给 8 个 HexArth上传程序。点击“COM”,选择新出现的 COM(我这里新出现的 COM 为 COM3);BAUD 是用于设置下载速度,越高速度越快,ESP32 最高可以使用 921600。

企业微信截图 17700195407627.png

5. 选择好后,点击 START 开始上传程序,上传完成后,“IDLE 等待”会变成“FINISH 完成”,完成后可以断开驱动板与电脑的 USB 连接,打开机器人产品的开关,通电后即可控制机器人。

企业微信截图 17700197644801.png

产品基础使用

使用前注意事项(必读!!)

使用前请务必了解以下内容:

  1. 该产品出厂未安装锂电池组,需要客户自行安装好锂电池组才可以正常使用。海外版的客户需要自行购买锂电池组,推荐使用 4000mAh或以上容量,放电倍率 10C 的 18650 锂电池组。
  2. 该产品不能受到剧烈的撞击,且不防水、不防沙。

首次使用

Hexarth2.png

首次使用需要先使用配置的 12.6V 2A 充电器插入至机器人的电源接口中,打开电源开关后机器人会进行初始化,OLED 屏幕会显示初始化的一系列内容。

  1. 机器人开机后 OLED 屏幕上显示内容含义如下:
    • 第一行内容表示此时 WiFi 处于 AP 模式下,机器人创建了一个热点,WiFi 热点名为 HexArth;
    • 第二行表示 STA 模式处于关闭状态,当 WiFi 处于 STA 模式时,路由器会给机器人分配一个 IP 地址并显示出来;
    • 第三行的内容为本设备的MAC地址,该地址是唯一的,用于ESP-NOW通信;
    • 第四行 U 表示机器人产品的电源电压。
  2. 开机后使用手机或电脑连接机器人的 WiFi:HexArth,密码是 12345678,连接 WiFi 后打开谷歌浏览器,在网址栏中输入 192.168.4.1 打开 Web 端使用界面。接下来你就可以使用 Web 端的按键来控制机器人了,也可以在 Web 控制界面上向机器人发送 JSON 指令。

下位机 Web 端使用

Hexarthweb.png

  • 这个 Web 端界面会实时显示机器人的电压(VOLTAGE)、STA 模式下的 WIFI 信号强度(RSSI)、IP 和 MAC 地址等信息。
  • 通过方向按键可以控制机器人运动,方向按键下面的LEFT、RIGHT 用来控制机器人原地旋转的,INIT用于机器人初始化,STEADY START/END用于打开/关闭机器人的自平衡模式(打开自平衡模式后机器人的运动控制按键会被屏蔽),下面的 SLOW、MIDDLE、FAST 按键用来设置机器人的移动速度。
  • 其它按键当机器人外接了其它扩展模块后起作用,IO4、IO5 和 OFF 控制 LED 灯的开关。

UGV-web界面1.png

  • 在 FEEDBACK INFOMATION 这个窗口可以给机器人发送 JSON 指令,输入框以下部分就是具体的 JSON 指令。
  • 网页端包含了“心跳检测”,打开网页端控制界面后,Web 端应用会与机器人进行连续通信,如果在机器人的运动过程中断开连接,机器人在短时间内会自动停止运动,避免危险。
  • 此 Web 端应用是完全开源的,你可以通过更改开源例程里的 Claws_web_page.h 来更改 Web 端应用的界面和功能。


JSON 使用教程

什么是 JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在不同系统之间传输和存储数据。JSON 最初起源于 JavaScript,但已成为一种独立于编程语言的数据格式,因此可以在各种编程语言中使用和解析。

以下是对机器人左右轮速度控制的 JSON 格式的指令案例:

{"T":1,"X":0.02,"Y":0.02,"Yaw":0.3}

对于这条指令的解释:

“T”代表该指令的类型,指令类型在下位机程序的头文件 json_cmd.h 中定义。1 代表这条指令为 CMD_SPEED_CTRL (用来控制机器人X Y速度以及机身旋转)。

为什么使用 JSON 指令与机器人进行交互?

由于机器人驱动板的板载资源比较多、例程功能丰富、同时兼顾方便扩展上位机,让上位机对于机器人的控制功能更加丰富和方便,所以我们使用 JSON 指令通信来与机器人进行交互,同样的,你也可以基于现有的框架对这些功能进行二次开发,让机器人的功能更适合你的使用需求。

支持 JSON 指令的通信方式

机器人可使用多种方式来进行 JSON 格式的指令交互。其中,有线的通信方式可以使用 RX/TX 引脚进行串口通信,或者通过 Type-C 接口接 USB 进行串口通信;无线的通信方式可以使用 HTTP 请求进行通信,或者使用 ESP-NOW 进行通信。你可以通过下面的例程来使用不同的方法发送 对应的 JSON 指令去控制机器人的各项功能。

机器人内置心跳函数:当3秒钟内没有新的移动控制指令下达,机器人会自动停止移动,所以当你通过上位机来控制机器人时,需要定时重复下达移动指令来让机器人连续移动。

1. 串口/USB 通信

特性:有线连接,默认波特率@115200,双向通信,稳定、低延时;

用途:方便使用 PC、树莓派 等上位机来控制机器人;

连接方式:

  • 通过机器人 40PIN 的 UART 接口与 树莓派进行连接
  • 使用 USB 线将机器人的下位机驱动板的 USB 接口与上位机进行连接(此方法需要拆卸小车)

Python 例程:serial_simple_ctrl.py。具体例程内容如下:

import serial
import argparse
import threading

def read_serial():
    while True:
        data = ser.readline().decode('utf-8')
        if data:
            print(f"Received: {data}", end='')

def main():
    global ser
    parser = argparse.ArgumentParser(description='Serial JSON Communication')
    parser.add_argument('port', type=str, help='Serial port name (e.g., COM1 or /dev/ttyUSB0)')

    args = parser.parse_args()

    ser = serial.Serial(args.port, baudrate=115200, dsrdtr=None)
    ser.setRTS(False)
    ser.setDTR(False)

    serial_recv_thread = threading.Thread(target=read_serial)
    serial_recv_thread.daemon = True
    serial_recv_thread.start()

    try:
        while True:
            command = input("")
            ser.write(command.encode() + b'\n')
    except KeyboardInterrupt:
        pass
    finally:
        ser.close()


if __name__ == "__main__":
    main()

使用以下命令来运行串口通信程序,注意一定要加上机器人所接入的端口号。将 COM20 更换成机器人在 PC 中新插入的串口设备端口号,如果您使用的是树莓派、Jeston Orin Nano等设备,也要更改为相对应的端口名称。

python serial_simple_ctrl.py COM20

运行完成后,在这个界面中可以发送 JSON 格式的指令,也可以获取机器人的反馈信息,从而与机器人进行通信。

2. HTTP 请求通信

HTTP(Hypertext Transfer Protocol)是一种用于在 Web 上进行数据通信的协议。

特性:基于 WIFI 模块实现的无线通信,请求-响应模型,灵活、简单。

Python 例程:下载http_simple_ctrl.py HTTP 请求通信例程,具体例程内容如下:

import requests
import argparse


def main():
    parser = argparse.ArgumentParser(description='Http JSON Communication')
    parser.add_argument('ip', type=str, help='IP address: 192.168.10.104')

    args = parser.parse_args()

    ip_addr = args.ip

    try:
        while True:
            command = input("input your json cmd: ")
            url = "http://" + ip_addr + "/js?json=" + command
            response = requests.get(url)
            content = response.text
            print(content)
    except KeyboardInterrupt:
        pass


if __name__ == "__main__":
    main()

在运行程序前您需要确认机器人的 ip 地址。确认机器人 ip 地址跟机器人所处的 WIFI 模式息息相关。

  • 如果机器人 WIFI 模式仅处于 AP 模式,则 IP 地址为 192.168.4.1;
  • 如果机器人 WIFI 模式处于 STA 模式,则可以在机器人 OLED 屏幕上的 ST 这行获得该机器人的 IP 地址。

使用以下命令来运行 HTTP 请求通信程序。命令中的 IP 地址要更改为您机器人的 IP 地址。

python http_simple_ctrl.py 192.168.4.1

注意:无论是哪一种模式下,机器人需要与运行该脚本的设备处于同一个局域网内。

3. 通过 Web 应用下达 JSON 指令

  • 开机后使用手机或电脑连接机器人的 WiFi:HexArth,密码是 12345678,连接 WiFi 后打开谷歌浏览器,在网址栏中输入 192.168.4.1 打开Web端使用界面。
  • 在 FEEDBACK INFOMATION 这个窗口可以给机器人发送 JSON 指令,窗口下面就是具体的 JSON 指令。

产品硬件介绍

下位机驱动板板载接口

ROS-Driver-for-Robots-intro.png

ROS-Driver-for-Robots-intro1.png


HexArth 教程目录

HexArth 使用教程

产品资料

开源例程

机器人模型

技术支持

联系人:方工
EMAIL:2355742825@qq.com
QQ:2355742825
微信:扫下方二维码添加
QRCode YijunFang.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证