一、参数说明
1.1 从ROS参数服务器中获取的
- uav_id:参数服务器中获取
- uav_state.connected:初始化 false;通过订阅无人机当前状态来更新,px4_state_sub
- uav_state.armed:初始化 false;通过订阅无人机当前状态来更新,px4_state_sub
- uav_state.mode:初始化 ‘’;通过订阅无人机当前状态来更新,px4_state_sub
- 无人机飞行模式(UAVSetup.msg):POSCTL---定点飞行;OFFBOARD---自主飞行;AUTO.LAND---自动着陆;AUTO.RTL:自动返航模式
- location_source:来自yaml文件
- odom_valid:初始化 false
- uav_state.gps_status:初始化为无GPS信号,更多见UAVState.msg
- uav_state.gps_num:GPS卫星数量初始化为0
- uav_state.position:初始化0
- uav_state.velocity:初始化0
- uav_state.attitude_q:
- uav_state.attitude:初始化0
- uav_state.attitude_rate:初始化0
- uav_state.battery_state:初始化0
- uav_state.battery_percetage:初始化0
- offset_pose.x,offset_pose.y:无人机位置偏移量,初始化为0。来自OffsetPose.msg
1.2 订阅消息得到的参数
- 创建 px4_state_sub:使用回调函数px4_state_cb处理飞控发送的消息
- 创建 px4_battery_sub 订阅器:使用 px4_battery_cb() 函数处理飞控传来的消息
- 创建 px4_position_sub 订阅器:使用 px4_pos_cb() 函数处理飞控传来的消息。
无人机当前位置,ENU系,来自飞控 /* 飞控通过uav_controller.cpp 发送的期望位置执行飞行指令, 并定时发布此时无人机位置,uav_estimator.cpp 订阅位置 通过回调函数处理得到 uav_state.position */
- 创建 px4_velocity_sub 订阅器:使用 px4_vel_cb() 函数处理飞控传来的消息
无人机当前速度,ENU系,来自飞控 /* 通过回调函数处理得到 uav_state.velocity,线速度 */
- 创建 px4_attitude_sub 订阅器:使用 px4_att_cb() 函数处理飞控传来的消息
无人机当前欧拉角,ENU系,来自飞控 /* 通过回调函数处理得到 attitude_q:四元数;attitude:欧拉角;attitude_rate:角速度 */
- 创建 px4_range_sub 订阅器:使用 px4_range_cb() 函数处理飞控传来的消息
1.3 发布的参数
- 创建 uav_state_pub 发布器,对应 uav_controller.cpp 的 uav_state_sub 订阅器
- 创建
二、成员函数
2.1 printf_uav_state()
- uav_state.connected:来自 px4_state_sub 订阅器
- uav_state.armed:来自 px4_state_sub 订阅器
- uav_state.mode:来自 px4_state_sub 订阅器
- location_source:来自yaml文件
- uav_state.odom_valid:通过 check_uav_state() 更新值
- uav_state.position:
- uav_state.velocity:
- uav_state.attitude:
- uav_state.battery_state:来自px4_battery_sub 订阅器
- uav_state.battery_percetage:来自px4_battery_sub 订阅器