外设控制 API
1. 灵巧手
主要封装类:hand_sdk::HandController
1.1 接口说明
connectRs485(port, baud)setAllFingerAnglesDeg(angles, speed)start()stop()disconnect()getFingerAnglesDeg(out_angles_deg)
1.2 示例
编译:
cd PeripheralSDK/hand_sdk
mkdir -p build && cd build
cmake ..
make -j
运行动作示例(比耶):
cd PeripheralSDK/hand_sdk/build
./hand_sdk_demo /dev/ttyACM0 1
查询当前位置:
cd PeripheralSDK/hand_sdk/build
./hand_sdk_demo /dev/ttyACM0 4
action_id 建议说明:
0:STRAIGHT1:VICTORY2:OK3:HEART4:QUERY_POS(仅查询)
2. 六维力
六维力建议直接基于 PeripheralSDK/sri_can_sdk 使用。该 SDK 为纯 C++(非 ROS2 依赖),基于 Linux SocketCAN。
2.1 接口说明
set_can(iface, bitrate):配置 CAN 接口与波特率(如can0,1000000)set_channel(cmd_id, data_ids):配置命令 ID 和 3 个数据帧 IDconnect()/disconnect():连接/断开 CANsend(cmd):发送命令(0x01单次、0x02连续、0x00停止)read(timeout):单次采样(内部发送0x01并接收解析 3 帧)recv(timeout):连续模式下接收并解析 3 帧connected():连接状态data():读取最新六维力数据
2.2 示例
sri_can_sdk::SriSensor s("id");
s.set_can("can0", 1000000);
s.set_channel(0x80, {0x291, 0x292, 0x293});
if (s.connect()) {
if (s.read(1.0)) {
auto& d = s.data();
printf("FX=%.2f FY=%.2f FZ=%.2f\n", d.fx, d.fy, d.fz);
}
s.send(sri_can_sdk::SriProtocol::CMD_START_CONTINUOUS);
while (s.recv(0.1)) {
auto& d = s.data();
// 使用 d.fx d.fy d.fz d.mx d.my d.mz
}
s.send(sri_can_sdk::SriProtocol::CMD_STOP_CONTINUOUS);
s.disconnect();
}
编译与可执行文件测试:
sri_can_demo 的参数是 CAN 接口名,例如 can4,不是 /sys/class/net/can4 这类路径。
CAN 接口配置(以 can4、1Mbps 为例):
sudo ip link set can4 down
sudo ip link set can4 type can bitrate 1000000
sudo ip link set can4 up
ip -details link show can4
运行示例:
cd PeripheralSDK/sri_can_sdk/build
./sri_can_demo can4
菜单测试顺序:
输入
1:连接输入
3:单次采样,检查FX/FY/FZ/MX/MY/MZ输入
4:流式采集,输入采集帧数(如200)输入
2:断开输入
0:退出
联调排查:
若提示“连接失败”,先检查
can4是否已up若提示“单次采样失败”,检查波特率、命令 ID、数据 ID 是否和设备一致
可使用
candump can4抓包确认是否有数据帧
3. 底盘
主要封装类:ti5_chassis_sdk::ChassisController
3.1 接口说明
connect(host, port)sendVelocity(vx, vy, wz)sendVelocityFor(vx, vy, wz, duration_ms, period_ms)moveForward(vx)/moveLateral(vy)/rotate(wz)stop()isConnected()host()/port()getLastVelocity(vx, vy, wz)
3.2 示例
编译:
cd PeripheralSDK/chassis_sdk
mkdir -p build && cd build
cmake ..
make -j
前进 2 秒:
cd PeripheralSDK/chassis_sdk/build
./chassis_sdk_demo <host> <port> <cmd> [value] [duration_ms]
./chassis_sdk_demo 169.254.128.2 5480 forward 0.10 2000
原地旋转 1.5 秒:
cd PeripheralSDK/chassis_sdk/build
./chassis_sdk_demo 169.254.128.2 5480 rotate 0.20 1500
查询连接状态与最近一次速度命令:
cd PeripheralSDK/chassis_sdk/build
./chassis_sdk_demo 169.254.128.2 5480 query