
机器学习的入门介绍,以Python为基础。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
一、飞控的导航层代码在 ac_wpnav.cpp 中实现。具体而言,1)初始化函数 set_wp_origin_and_destination 被调用,在初始化阶段需要提供三个关键参数:origin 点的向量坐标、目的地向量坐标以及是否启用防地标志。初始化过程首先会计算出从目的地到 origin 点的轨迹长度,命名为 _track_length;随后,通过计算差值得到 _pos_delta,并利用其长度计算出 _track_length:`_track_length = pos_delta.length();`。接着,计算出从 origin 到 destination 的单位向量 _pos_delta_unit。如果轨迹长度为零,则为了避免除以零的错误,将 _pos_delta_unit 的 x、y 和 z 分量都设置为零。否则,将 _pos_delta 归一化得到 _pos_delta_unit。接下来程序会计算控制器的控制距离。
void AC_WPNav::calculate_wp_leash_length(){
//求出在水平方向上单位向量的长度
float pos_delta_unit_xy = norm(_pos_delta_unit.x, _pos_delta_unit.y);
//求出垂直方向上单位向量的长度
float pos_delta_unit_z = fabsf(_pos_delta_unit.z);
//通过垂直方向距离的正负求出获得对应的加速度和控制距离
float speed_z;
float leash_z;
if (_pos_delta_unit.z >= 0.0f) {
speed_z = _wp_speed_up_cms;
leash_z = _pos\_control.get\_leash\_up\_z();
} else {
speed\_z = \_wp\_speed\_down\_cms;
leash\_z = \_pos\_control.get\_leash\_down\_z();
}
}
全部评论 (0)


