Like bri3d said in his comment, there are a few options -- ArduPilot is heavily focused on mission planning (Waypoints, GPS guidance, etc). There is other flight controller firmware like Betaflight which is more focused on the stabilization and PID control of a quad.
There's definitely a lot of different decisions you can make on the hardware side: Choosing what sensors you include, flight computer & flight controller, ESCs and motors, frame, and so on.
On the other hand, you could also choose to build a drone from a kit or ready-to-fly model, and experiment more with higher-level software. ArduPilot can be connected to ROS, which is the standard software platform for robotics. Much of the swarming behavior, visual tracking, and other experiments are done on a platform like ROS, which then sends waypoints or other instructions to the flight computer.
MavLink (Standard serial protocol used to communicate with drones, used to communicate between an ArduPilot controller and a ground station): https://mavlink.io/en/
ROS (Software platform designed for robotics, commonly ArduPilot drones feed into a ROS system for swarm experiments etc.): https://www.ros.org/
There's definitely a lot of different decisions you can make on the hardware side: Choosing what sensors you include, flight computer & flight controller, ESCs and motors, frame, and so on.
On the other hand, you could also choose to build a drone from a kit or ready-to-fly model, and experiment more with higher-level software. ArduPilot can be connected to ROS, which is the standard software platform for robotics. Much of the swarming behavior, visual tracking, and other experiments are done on a platform like ROS, which then sends waypoints or other instructions to the flight computer.
Some areas to research if you're into this:
ArduPilot (Firmware handling waypoint missions, guidance, etc. on an onboard flight controller): https://ardupilot.org/copter/index.html
MavLink (Standard serial protocol used to communicate with drones, used to communicate between an ArduPilot controller and a ground station): https://mavlink.io/en/
ROS (Software platform designed for robotics, commonly ArduPilot drones feed into a ROS system for swarm experiments etc.): https://www.ros.org/