Files
tr360_ros_driver/COMMAND_FEATURES.md
yemai 690eef76fe 添加TR360雷达通信功能和命令交互系统
- 添加多端口通信支持:TR360-3-60(10195)和TR360-4-60(20295)
- 实现TCP命令服务器,支持带\r\n的雷达命令
- 添加命令历史记录功能
- 支持status、history、set_port等内置命令
- 更新launch文件配置双雷达节点
- 添加测试脚本和文档
2025-09-11 15:41:39 +08:00

2.8 KiB
Raw Permalink Blame 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. 启动雷达节点

roslaunch tr360_ros tr360.launch

2. 使用telnet测试命令

# 连接TR360-3-60命令端口
telnet 192.168.1.193 11195

# 发送命令(自动添加回车换行)
status\r\n
# 响应示例
Radar type: TR360-3-60, Port: 10195\r\n

3. 使用netcat测试

# 发送单个命令
echo "status" | nc 192.168.1.193 11195

# 交互式测试
nc 192.168.1.193 11195

4. 使用Python脚本测试

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() 方法中添加处理逻辑:

else if (command == "custom_command") {
    // 处理自定义命令
    return "Custom command executed";
}

故障排除

  1. 端口冲突: 检查端口是否被其他程序占用
  2. 连接拒绝: 确认命令服务器已启用enable_command_server=true
  3. 无响应: 检查防火墙设置和网络连接
  4. 命令格式错误: 确保命令以 \r\n 结尾

性能考虑

  • 命令服务器使用独立端口,不影响点云数据传输性能
  • 历史记录使用vector存储内存占用可控
  • TCP连接处理使用线程池模式避免阻塞主循环