PNDEncoderT
ABS_EncoderT 参数介绍
简介
ABS_Encoder是一款为PNDbotics机器人关节执行器提供末端位置检测的模块。它具备Ethernet或者Wi-Fi通讯配置及获取绝对角度等一系列功能,为机器人主控提供关节末端绝对位置信息。

应用场景
-
场景一、机械臂的末端位置检测
-
场景二、平行执行器的末端输出轴位置检测
-
场景三、仿生双足机器人的膝关节末端位置检测
接口规格
连接器型号为T1M-04-GF-DV。
序号 |
接口说明 |
1 |
以太网接收差分信号RX+ |
3 |
以太网接收差分信号RX- |
5 |
以太网发送差分信号TX+ |
7 |
以太网发送差分信号TX- |
2 |
usb差分信号D+,内部接USB转串口芯片 |
4 |
usb差分信号D-,内部接USB转串口芯片 |
6 |
5V |
8 |
GND |
先进特征
- 支持JSON-RPC框架, 实现远程函数调用
- 灵活配置选用以太网或者Wi-Fi通信,优先采用以太网通信
- 一路Type-C USB接口实现以太网和串口通信
- OTA升级
接口定义
Name |
Specs |
物理层 |
10/100Mbps 以太网或2.4GHz Wi-Fi |
传输层协议 |
TCP/UDP |
通信端口(service) |
2334 |
IP获取方式 |
DHCP/Static IP |
应用层协议 |
JSON-RPC |
指示灯状态说明
序号 |
闪烁模式 |
含义 |
1 |
快速 紫色 呼吸闪烁 |
有线以太网连接中 |
2 |
慢速 紫色 呼吸闪烁 |
有线以太网连接成功 |
3 |
快速 青蓝色 呼吸闪烁 |
Wi-Fi连接中 |
4 |
慢速 青蓝色 呼吸闪烁 |
Wi-Fi连接成功 |
5 |
快速 红色 呼吸闪烁 |
错误 |
6 |
快速 翠绿色 呼吸闪烁 |
OTA升级中 |
JSON-RPC协议框架
JSON-RPC,是一个无状态且轻量级的远程过程调用(RPC)传送协议,其传递内容格式以 JSON 为主。
本文的JSON-RPC协议框架,物理层可以使用有线10/100Mbps以太网,也可以使用2.4GHz Wi-Fi进行通信。支持DHCP功能,连接路由器可自动获取IP。数据采用TCP或者UDP连接通讯,服务端口(Service Port)为2334。
协议中由 id 域指定调用的序号, method
域指定调用的方法, params
域指定调用的参数,result
域指定返回的结果和参数
## json-rpc请求数据帧
域 |
类型 |
描述 |
“id” |
整形 |
每次请求须制定请求帧ID,否则不执行 |
“method” |
字符串 |
调用方法 |
“params” |
对象 |
调用参数。具体每一个调用方法会展开具体的参数列表 |
json-rpc响应数据帧
域 |
类型 |
描述 |
“id” |
整形 |
每次请求制定的请求帧ID,响应时返回 |
“result” |
对象 |
响应参数。具体每一个调用方法的响应会展开响应参数 |
通信流程
以下所说客户端client代表用户的控制计算机(如:Raspberry Pi, PC, Mac 等),服务器server代表ABS编码器。
第1步,需要通过UDP向局域网内广播,获取设备信息
将全部ABS编码器接入局域网后。可先使用UDP广播,获取编码器的设备信息,设备信息中包含有编码器的IP地址。
广播地址为 255.255.255.255 以查询局域网内的所有设备。广播后,全部在线设备会返回设备基本信息给client。
以局域网内包含两个设备为例:
client广播内容为: |
---|
| {
"id": 0,
"method": "Device.Info",
"params":
}
|
server回复内容格式如下:在UDP通信中,socket接口通常会自动返回server地址和端口 |
---|
| Server received from ('192.168.11.114', 2334):
{
"id":0,
"result":
{
"serial_number":"10B6D825754C",
"dev_model":"ABS_EncoderR",
"dev_name":"ABS_Encoder0001",
"Hw_version":"1.0.0",
"fw_version":"1.0.3",
"manufacturing_date":"20210308",
"hostname":"ABS_encoderR",
"connect_mode":"Wi-Fi",
"DHCP_enable":false,
"staticIP":"192.168.11.114",
"RSSI":-48,
}
}
Server received from ('192.168.11.115', 2334):
{
"id":0,
"result":
{
"serial_number":"10B6D825755D",
"dev_model":"ABS_EncoderR",
"dev_name":"ABS_Encoder0002",
"Hw_version":"1.0.0",
"fw_version":"1.0.3",
"manufacturing_date":"20210308",
"hostname":"ABS_encoderR",
"connect_mode":"Wi-Fi",
"DHCP_enable":false,
"staticIP":"192.168.11.115",
"RSSI":-48,
}
}
|
第2步,获取到ABS编码器的IP地址后,进行数据传输,获取IP地址后,可以通过TCP方式建立连接进行通讯,也可以保持UDP通讯方式。
获取配置信息
client向server的Service端口(2334)发送 |
---|
| {
"id": 0,
"method": "Config.Info",
"params":
}
|
server返回如下 |
---|
| {
"id":0,
"result":
{
"dev_name":"ABS_EncoderR0002",
"SSID":"abs",
"password":"12345678",
"hostname":"abs",
"DHCP_enable":false,
"staticIP":"192.168.11.119",
"gateway":"192.168.11.1",
"subnet":"255.255.255.0",
"primaryDNS":"114.114.114.114",
"secondaryDNS":"8.8.8.8"
}
}
|
获取ABS编码器绝对角度
client向server的Service端口(2334)发送 |
---|
| {
"id": 0,
"method": "Encoder.Angle",
"params":
}
|
server返回如下 |
---|
| {
"id":0,
"result":
{
"angle":130.715, //Angle value
"radian":2.28141 //Radian value
}
}
|
设置配置信息
设备的配置信息包括设备名称、型号、生产日期、硬件版本号、Wi-Fi名称、Wi-Fi密码、主机名、是否使能DHCP、静态IP、网关、DNS等。client可以单独设置某一项,也可以同时设置多项。重启设备后生效。
client向server的Service端口(2334)发送 |
---|
| {
"id": 0,
"method": "Set.Config",
"params":
{
"dev_name":"ABS_EncoderR012",
"ssid":"myssid",
"password":"mypassword",
"hostname":"abs",
"DHCP_enable":true,
"staticIP":"192.168.11.119",
"gateway":"192.168.11.1",
"subnet":"255.255.255.0",
"primaryDNS":"114.114.114.114",
"secondaryDNS":"8.8.8.8"
}
}
```json title="server返回如下" linenums="1"
{
"id":0,
"result":
{
"set config ok"
}
}
|
OTA
设备接收到OTA指令后,启动http升级固件
client向server的Service端口(2334)发送 |
---|
| {
"id": 0,
"method": "OTA.Update",
"params":
}
|
server返回如下 |
---|
| {
"id":0,
"result":
{
“recive ota update ok”
}
}
|
设置配置信息
重启设备
设备接收到复位请求,并响应后,等待一秒钟后,重启。
client向server的Service端口(2334)发送 |
---|
| {
"id": 0,
"method": "reboot",
"params":
}
|
server返回如下 |
---|
| {
"id":0,
"result":{"set reboot ok"}
}
|