-
Notifications
You must be signed in to change notification settings - Fork 3
Home
This project is the simulation platform for the fundamental system group. The core part is based on Pixhawk4 firmware 1.11 beta. Developing a simulation system has several advantages. On the one hand, UAV is a flying vehicle that requires a very high level of security. With simulation, developers can validate their algorithms and easily identify the defects in the whole system where the simple unit test cannot expose. By testing under extreme conditions, the final algorithm could be robust to external disturbance so that the cost of damage to the entity and people would be minimized. Moreover, the process of developing the algorithms can be accelerated with an interface to visualize the running results. On the other hand, the customers or the end-users can easily check if the whole system can perform the desired inspection tasks. They can learn the bounds of the capability of the system vividly.
This simulator can perform three levels of simulation: numerical simulation, software-in-the-loop (SITL) simulation, and hardware-in-the-loop (HITL) simulation. In order to make sure that every flight is safe and achieve our goal as much as possible, we would like to develop a set of simulation platforms for Micro Aerial vehicles (MAVs). To guarantee success in completing the tasks, we first do a simulation in our software-in-the-loop(SITL) system to eliminate software bugs, and then run the simulation in a hardware-in-the-loop(HITL) system to better simulate the real task execution.
The primal component contains companion personal computer(CPC), QgroundControl(QGC), Pixhawk4(PX4) firmware, and Gazebo. The diagram of the whole system can be found in the figure above. CPC is the AI program that runs on the onboard computer of a UAV. It usually contains two main parts: perception and planning, which will be discussed in detail in the following sections. QGC serves as an interface for users to control the UAVs. End-users can easily assign flight schedules and monitor the UAV status via QGC. PX4 runs the flight control and scheduling algorithms on-the-fly which should be of high reliability and be designed with caution. Gazebo is a physical engine to simulate the interaction between UAVs and the real world. It contains the physical model of the world and the dynamics of the vehicle. Even weather conditions like wind and the amount of sunshine can also be involved in the simulation. Here we follow the implementation of \cite{xiao2020xtdrone} which consists of a variety of sensor models. Although it has multiple components executed at the same time, we only need one computer to perform all the functionality. In SITL, the MAV can execute the upper-level planning and perception algorithms with consideration of its dynamics. After this simulation stage, the MAV can complete the tasks by integrating all software modules.
However, there are more to consider in the real-world execution, such as multi-agent communication, computational resource, and human input such as remote controllers. There are several works \cite{bittar2013central,pizetta2016hardware,cai2008design} develop the HITL system for aerial vehicles but have a distinct focus. The HITL system proposed by us takes the computation hardware into consideration. The framework can be seen in the figure above, which differs from SITL in that each algorithm runs on the real onboard computational device of UAV. To name it, the flight control part is executed on the embedded flight control board, the QGC runs on the workstation, CPC runs on the onboard computer and the simulator remains on the server. This design can test the communication capability, the hardware, and the software as a whole and is more convincing evidence than SITL to prove the robustness of the vehicle. In addition, pilots can manually control the flight directly via a remote controller. Some critical operations, like unlocking the vehicle and flight mode switching, can be performed by humans to ensure safety. When emergency situations happen, such as losing control because of strong wind, the pilot can also stop the MAV by a kill switch. The whole process of a complete flight can thus be simulated, offering valuable practicing experiences to developers and operators.