Files
tr360_ros_driver/COMMAND_FEATURES.md

110 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

# TR360 雷达通信命令功能
## 新增功能
### 1. 多端口通信支持
- **TR360-3-60**: 数据端口 `10195`,命令端口 `11195` (10195 + 1000)
- **TR360-4-60**: 数据端口 `20295`,命令端口 `21295` (20295 + 1000)
### 2. 雷达命令交互
- 支持通过TCP连接发送命令到雷达
- 命令以 `\r\n` 结尾(符合雷达通信协议)
- 响应也以 `\r\n` 结尾
### 3. 命令历史记录
- 自动记录所有发送的命令
- 支持查看历史命令列表
- 可配置最大历史记录数量默认100条
## 可用命令
### 基本命令
- `status` - 查看雷达状态信息
- `history` - 显示命令历史记录
- `set_port <port>` - 设置数据端口(需要雷达支持)
### 自定义命令
可以扩展 `processRadarCommand()` 方法来支持更多雷达特定命令:
- `start_scan` - 开始扫描
- `stop_scan` - 停止扫描
- `get_config` - 获取配置
- `set_config <param> <value>` - 设置参数
## 使用方法
### 1. 启动雷达节点
```bash
roslaunch tr360_ros tr360.launch
```
### 2. 使用telnet测试命令
```bash
# 连接TR360-3-60命令端口
telnet 192.168.1.193 11195
# 发送命令(自动添加回车换行)
status\r\n
# 响应示例
Radar type: TR360-3-60, Port: 10195\r\n
```
### 3. 使用netcat测试
```bash
# 发送单个命令
echo "status" | nc 192.168.1.193 11195
# 交互式测试
nc 192.168.1.193 11195
```
### 4. 使用Python脚本测试
```bash
python3 test_radar_commands.py
```
## 配置参数
在launch文件中可配置以下参数
- `enable_command_server`: 是否启用命令服务器默认true
- `max_history_size`: 最大历史记录数量默认100
- `local_port`: 数据接收端口(根据雷达类型自动设置)
## 技术实现
### 网络架构
- **UDP**: 用于高速点云数据传输端口10195/20295
- **TCP**: 用于可靠命令交互端口11195/21295
### 多线程处理
- 主线程处理UDP数据接收和点云处理
- 独立线程处理每个TCP命令连接
- 使用select()实现多路复用,避免阻塞
### 命令协议
- 命令格式: `command[\r\n]`
- 响应格式: `response[\r\n]`
- 支持标准雷达命令语法
## 扩展开发
要添加新的雷达命令,在 `processRadarCommand()` 方法中添加处理逻辑:
```cpp
else if (command == "custom_command") {
// 处理自定义命令
return "Custom command executed";
}
```
## 故障排除
1. **端口冲突**: 检查端口是否被其他程序占用
2. **连接拒绝**: 确认命令服务器已启用enable_command_server=true
3. **无响应**: 检查防火墙设置和网络连接
4. **命令格式错误**: 确保命令以 `\r\n` 结尾
## 性能考虑
- 命令服务器使用独立端口,不影响点云数据传输性能
- 历史记录使用vector存储内存占用可控
- TCP连接处理使用线程池模式避免阻塞主循环