# Multivehicle python

**URL:** <https://discuss.px4.io/t/multivehicle-python/34369>\
**Category:** MAVSDK\
**Created:** [September 19, 2023, 5:59pm UTC](https://discuss.px4.io/t/multivehicle-python/34369 "2023-09-19T17:59:22Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Giovanni](https://discuss.px4.io/user_avatar/discuss.px4.io/giovanni/32/14276_2.png) [@Giovanni](https://discuss.px4.io/u/Giovanni)\
**Post date:** [September 19, 2023, 5:59pm UTC](https://discuss.px4.io/t/multivehicle-python/34369/1 "2023-09-19T17:59:22Z")

</div>

Hi everyone, it’s possible to connect 2 drones with gazeblo-classic on QGC, using python? Because i’ve tryied the basic connection model and it doesn’t work.

---

<div class="post-metadata">

**Author:** ![Jaeyoung-Lim](https://discuss.px4.io/user_avatar/discuss.px4.io/jaeyoung-lim/32/10829_2.png) [@Jaeyoung-Lim](https://discuss.px4.io/u/Jaeyoung-Lim)\
**Post date:** [September 19, 2023, 6:00pm UTC](https://discuss.px4.io/t/multivehicle-python/34369/2 "2023-09-19T18:00:39Z")

</div>

Have you tried [Multi-Vehicle Simulation with Gazebo Classic | PX4 User Guide](https://docs.px4.io/main/en/sim_gazebo_classic/multi_vehicle_simulation_gazebo.html)

---

<div class="post-metadata">

**Author:** ![Giovanni](https://discuss.px4.io/user_avatar/discuss.px4.io/giovanni/32/14276_2.png) [@Giovanni](https://discuss.px4.io/u/Giovanni)\
**Post date:** [September 19, 2023, 6:16pm UTC](https://discuss.px4.io/t/multivehicle-python/34369/3 "2023-09-19T18:16:40Z")

</div>

Yes, and it doesn’t work… I’m trying to write down 2 python script to control a mission for each drone:  
for drone 1:

```auto
import asyncio
from mavsdk import System
from mavsdk.mission import (MissionItem, MissionPlan)

async def run():
    drone = System(sysid=2)
    await drone.connect(system_address="udp://:14541")

    await drone.action.arm()

    mission_items = []
    #mission_items.append(MissionItem(47.398039859999997, 8.5455725400000002, 2.5, 5, 
    # True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    mission_items.append(MissionItem(47.3978133, 8.5456344, 2.5, 5, 
     True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    
    mission_items.append(MissionItem(47.3977222, 8.5457436, 2.5, 5, 
     True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    
    mission_items.append(MissionItem(47.3976182, 8.5456850, 2.5, 5, 
     True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    
    mission_items.append(MissionItem(47.3977494, 8.5455343, 2.5, 5, 
     True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    
    

    mission_plan = MissionPlan(mission_items)
    print(drone)
    await drone.mission.upload_mission(mission_plan)
    await drone.mission.start_mission()

asyncio.get_event_loop().run_until_complete(run())

```

for drone 2:

```auto
import asyncio
from mavsdk import System
from mavsdk.mission import (MissionItem, MissionPlan)

async def run():
    drone = System(sysid=2)
    await drone.connect(system_address="udp://:14542")
    sysid = drone._sysid
    compid = drone._compid
    print("sysid: {sysid}")
    print("compid: {compid}")

    await drone.action.arm()

    mission_items = []
    #mission_items.append(MissionItem(47.398039859999997, 8.5455725400000002, 2.5, 5, 
    # True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    mission_items.append(MissionItem(47.3978133, 8.5456344, 2.5, 5, 
     True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    
    mission_items.append(MissionItem(47.3977222, 8.5457436, 2.5, 5, 
     True, float('nan'), float('nan'), MissionItem.CameraAction.NONE, float('nan'), float('nan'),float('nan'),float('nan'),float('nan')))
    
    
    # ... aggiungi altri waypoint come necessario

    mission_plan = MissionPlan(mission_items)
    print(drone)
    await drone.mission.upload_mission(mission_plan)
    await drone.mission.start_mission()

asyncio.get_event_loop().run_until_complete(run())

```

---

<div class="post-metadata">

**Author:** ![Jaeyoung-Lim](https://discuss.px4.io/user_avatar/discuss.px4.io/jaeyoung-lim/32/10829_2.png) [@Jaeyoung-Lim](https://discuss.px4.io/u/Jaeyoung-Lim)\
**Post date:** [September 19, 2023, 7:29pm UTC](https://discuss.px4.io/t/multivehicle-python/34369/4 "2023-09-19T19:29:43Z")

</div>

@Giovanni How does it fail? It should work as far as I am concerned

---

<div class="post-metadata">

**Author:** ![Giovanni](https://discuss.px4.io/user_avatar/discuss.px4.io/giovanni/32/14276_2.png) [@Giovanni](https://discuss.px4.io/u/Giovanni)\
**Post date:** [September 19, 2023, 8:59pm UTC](https://discuss.px4.io/t/multivehicle-python/34369/5 "2023-09-19T20:59:33Z")

</div>

@Jaeyoung-Lim Many thanks, solved it. I think that the problem was the installation of Gazebo-classic, i just uninstall and re-install it again and it works !
