Ah so if I understand this correctly : on the software side I'm most probably gonna land on ArduPilot, and for the hardware that's were the bulk of decisions will be?
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/