I am not quite understanding how Sphinx works in gazebo, from what i gather, it essentially hijacks the host machines internet connection to use as its own?
In fact, Sphinx may hijack a host wifi interface for the simulated drone. The simulated drone then creates its usual access point more or less as if it was using its own wifi chip. In the process, the host only loose its internet connection if it was using this particular wifi interface to connect to the internet. See sphinx .drone file documentation for more information.
Note that, there is another way to communicate with the simulated drone. The wifi access point is entirely optional! Sphinx always creates a virtual ethernet interface pair between the drone and the sphinx host. So the simulated drone is always reachable at 10.202.0.1 from the sphinx host. If you can configure bebop_autonomy to use this address instead of the usual 192.168.42.1 drone wifi ip address, it should work properly.
If this is the case would i have to use another computer to use bebop_autonomy?
I am not familiar with bebop_autonomy but I guess that as long as bebop_autonomy does not use the wifi interface used by the drone and does not eat up all the cpu it should be OK. So if you use the simulated drone virtual interface described above it’s OK. If for one reason or another you have to connect to the drone over wifi, just make sure that the drone and bebop_autonomy are using their own wifi interfaces.
To answer your question, AFAIK no you don’t have to use another computer for bebop_autonomy.
I am using a virtual machine to run gazebo as well so im not sure if that makes it any harder?
As long as you route the traffic between the virtual machine running Sphinx and the vm host it should work. If you do this, I guess that you should really stick to the virtual ethernet interfaces between the simulated drone and the vm.