crv控制代码项目环境信息获取总结

📅 发布时间:2026/7/10 19:34:01 👁️ 浏览次数:
crv控制代码项目环境信息获取总结
这个项目的信息获取方式分为传感器输入、预定义轨迹、人工控制三类 1. 传感器输入实时感知GNSS/IMU 模块(gnss_localizer_node.py)数据来源: CHCNAV 组合导航设备GPS IMU消息格式: NMEA$GPCHC句子解析字段:$GPCHC, ..., 真北航向角, ..., ..., 纬度, 经度, 海拔, 东向速度, 北向速度, ...处理后发布:/vehicle_pose- 车辆位姿位置方向/vehicle_odom- 里程计位置速度TF 变换 - 坐标系关系ROS 订阅机制(以pid_runner_node.py为例)# 订阅里程计来自 GNSS 模块 rospy.Subscriber(/vehicle_odom, Odometry, self.odom_callback) # 订阅全局路径来自规划模块 rospy.Subscriber(/global_path, Path, self.path_callback) 2. 预定义轨迹离线地图CSV 轨迹文件(trajectory_loader.py)文件格式:time, x, y, z, yaw, velocity加载方式:raw_data load_csv_trajectory(/home/chd/catkin_ws/scripts/vehicle_data_e2w.csv)用途: 提供全局参考路径车辆沿此路径行驶标定数据(calibration_data.csv)车辆动力学参数用于控制器参数整定 3. 人工控制测试/接管键盘控制(keyboard_control.py)按键映射:按键功能W/S油门增减Z/X刹车增减A/D方向盘L/R转向灯H双闪灯Q退出归零发布话题:/accel_cmd,/brake_cmd,/steer_cmd,/indicator_cmd 完整数据流图┌─────────────────────────────────────────────────────────────────┐ │ 信息输入层 │ ├─────────────────┬─────────────────┬─────────────────────────────┤ │ 传感器输入 │ 预定义轨迹 │ 人工控制 │ │ (GNSS/IMU) │ (CSV文件) │ (键盘) │ └────────┬────────┴────────┬────────┴──────────────┬──────────────┘ │ │ │ ↓ ↓ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ ROS 话题总线 │ ├─────────────────────────────────────────────────────────────────┤ │ /chcnav/nmea_sentence → gnss_localizer_node │ │ /vehicle_odom → pid_runner_node, mpc_planner │ │ /global_path → pid_runner_node │ │ /accel_cmd, /steer_cmd → 底盘CAN接口车辆执行 │ └─────────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────┐ │ 车辆底盘执行 │ │ (油门/刹车/转向) │ └─────────────────┘ 关键信息转换原始数据转换处理输出NMEA$GPCHC解析坐标转换收敛角补偿局部 ENU 坐标WGS84 经纬度pyproj转 UTM (EPSG:4527)米制坐标真北航向角减去子午线收敛角90°偏移ROS ENU yawCSV 轨迹点加载为Waypoint列表全局路径键盘按键映射为控制量 (-100~100)车辆控制指令项目的信息流设计很典型传感器提供实时状态预定义轨迹提供目标路径控制器计算控制指令最终通过 ROS 话题传递给车辆底盘执行。