# tunnelflight **Repository Path**: myboyhood/tunnelflight ## Basic Information - **Project Name**: tunnelflight - **Description**: tunnelflight flight control - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-07-11 - **Last Updated**: 2025-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README tunnelflight --- ## 轨迹生成程序 ```sh roslaunch tunnelflight generate_path_csv_kun01.launch ``` 其中涉及到`/data/iris01` 和 `/data/kun01`下面的轨迹点文件。 ## 飞行控制程序 ```sh # 实际飞行 kun0控制程序 roslaunch tunnelflight uavTrajectoryTrack0.launch # 实际飞行 kun1控制程序 roslaunch tunnelflight uavTrajectoryTrack1.launch #仿真飞行 kun0 kun1控制程序 roslaunch tunnelflight gazeboUAVTrajectoryTrack01.launch ``` ## 飞行控制程序详细说明 本程序用于发布飞行预期点TargetPosition,以及对飞机使用px4的姿态控制器,对目标点TargetPosition进行追踪。 - `FlightController.cpp`(底层控制器) - Input Target:期望目标点position或者期望PVA值, - Input Requirement:Odom(位置和速度)和IMU值。 - Output:输出期望飞行姿态,发布`mavros/setpoint_raw/attitude`给PX4控制器。 - `positionflight.cpp` - Input Requirement:当前Odom位置 和 键盘输入的目标位置。 - Output: 目标位置`target_pose`,发布给`FlightController.cpp`。 - `tunnelflight.cpp`(接收视觉定位,发布姿态控制指令) - Input Requirement:当前vision_pose位置 和 目标位置。 - Output: 输出期望飞行姿态,发布`mavros/setpoint_raw/attitude`给PX4控制器。 - `TwoUAVsVisionFlight.cpp`(接收视觉定位,和目标位置,传给PVA控制器,然后发布姿态控制指令) - Input Requirement:当前vision_pose位置 和 目标位置。 - Output: 输出期望飞行姿态,发布`mavros/setpoint_raw/attitude`给PX4控制器。 - Note: 由于UAV_B是以UAV_A为参考坐标系,它的目标是相对静止,所以只能赋予期望位置,期望速度和加速度都为0。 - `UAVTrajectoryTrack.cpp`(需要手动解锁和和切换offboard,接收预先设定轨迹中的目标位置,然后发布位置控制指令) - Input: 预先设定的轨迹。 - Output: 输出期望飞行位置,发布`mavros/setpoint_position/local`给PX4控制器。 - `UAVTrajectoryTrackSimulation.cpp`(在Gazebo中,自动解锁起飞,接收预先设定轨迹中的目标位置,然后发布位置控制指令) - Input: 预先设定的轨迹。 - Output: 输出期望飞行位置,发布`mavros/setpoint_position/local`给PX4控制器。 - `UAVTrajectoryTrackVisionCorrect.cpp` - brief: 对于从无人机,接收预先设定轨迹中的目标位置,以及PnP获得的相对主无人机的位置,当相对位置偏移出有效范围后, 生成一段矫正轨迹,增加到原来设定轨迹上,然后发布位置控制指令 - Input: 预先设定的轨迹,视觉相对位置。 - Output: 输出期望飞行位置,发布`mavros/setpoint_position/local`给PX4控制器。 - IMU的yaw角测试 当三个IMU对齐放置时,三个xsens-imu读到的yaw角差异很大,但都相对稳定,不会漂移。 - ![Figure1.kun0-xsens-imu-yaw](./README_FILE/IMU_Layouts.jpg) - ![Figure2.kun0-xsens-imu-yaw](./README_FILE/kun0-xsens-yaw.png) - ![Figure3.kun1-xsens-imu-yaw](./README_FILE/kun1-xsens-yaw.png) - ![Figure4.oak-xsens-imu-yaw](./README_FILE/kun0-xsens-yaw.png)