`ECL_L1_Pos_Controller.cpp` 是 PX4 中实现 L1 控制器的源代码文件。L1 控制器是一种航迹控制器,用于将飞行器沿着预定的航迹飞行。该控制器使用当前位置和速度信息来计算期望的航向角和前进速度,并将其作为控制指令发送给飞行控制器。
下面是 `ECL_L1_Pos_Controller.cpp` 的主要函数及其功能:
- `ECL_L1_Pos_Controller::navigate()`: 根据当前位置和速度信息计算期望的航向角和前进速度,并将其作为控制指令发送给飞行控制器。
- `ECL_L1_Pos_Controller::set_l1_period(float period)`: 设置 L1 控制器的周期,即控制指令的更新频率。
- `ECL_L1_Pos_Controller::set_nav_circle(float radius)`: 设置导航圆的半径,即飞行器绕航点飞行时的转弯半径。
- `ECL_L1_Pos_Controller::set_time_const(float time_const)`: 设置 L1 控制器的时间常数,用于调节控制器的响应速度。
- `ECL_L1_Pos_Controller::set_distance_limit(float limit)`: 设置距离限制,即飞行器与目标点之间的最大距离。
- `ECL_L1_Pos_Controller::set_bearing_error_limit(float limit)`: 设置航向误差限制,即飞行器与目标点之间的最大航向误差。
这些函数实现了 L1 控制器的基本功能,并提供了一些参数设置接口,用于调节控制器的性能和适应不同的任务需求。