multi-player and flightaxis?

tridge

Member
The multi-player menu is intriguing in RF9. Is the protocol documented somewhere, or is KnifeEdge willing to document it? I wonder if I could use it to create a 2nd vehicle for ArduPilot to do things like vehicle following another vehicle, and display both vehicles in the UI.
 
The multiplayer feature hasn't been documented to my knowledge. We don't have any plans to create such documentation, I'm afraid.

That said, there should be nothing to stop you from networking two (or more) FlightAxis sessions together into a multiplayer session. The vehicles could then share a reality, and the controllers can talk among themselves using whatever protocol you'd use in the world.

In the case of machine vision, you'd use the onboard cameras using your existing solutions.

It's not quite as simple as injecting a synthetic vehicle via multiplayer, but it does add extra verisimilitude!

Let us know if you get this going - I've always wanted to try it.
 
The project that led to this question was one where we are adding a feature to ArduPilot quadplanes where the quadplane can takeoff and land on a moving ship. I've added support for that in ArduPilot, and added simulation of the ship movement in SITL (software in the loop simulation).
So what I was imagining for bringing this to RF9 was:
  • build a model of a ship with a heli-pad in 3ds max
  • import as a model in RF9. The model wouldn't actually need any method of propulsion, it would just be a ship that sits on the water
  • make ArduPilot SITL pretend to be a multi-player client in RF9, and send the main RF9 instance data telling it that there is a player with a ship at the following (moving) position and pose
If we did this, then would the collision physics work to allow the aircraft to sit on the ship while it moves? I'm guessing the multi-player client just tells the RF9 instance what model it is and its position, velocity and attitude. Would the two vehicles then interact? Could they interact in a way that one could land on the other without destroying either vehicle?
It would be nice to know if the above is at least theoretically possible before I put a lot of time into working out the protocol. For example, if the protocol included license key info that I can't generate in SITL then it wouldn't be worth trying.
Cheers, Tridge
 
Speaking to the aircraft going transparent in multiplayer...THAT is what happens when an aircraft sits for about 10-15 seconds...??? in multiplayer without any input from the controller (you/TX).... I`m pretty sure it doesn`t matter where you are on the field. I think it was designed that way in order for planes not to crash/interfere with each other upon spawning and or interning that particular session of multiplayer. I`m also wondering if/is it possible to give the landing platform the physics/hardness of a runway so the quads skids don`t sink into it. Just thinking out loud tridge, very cool project you`ve got going on... ? :)
 
Speaking to the aircraft going transparent in multiplayer...THAT is what happens when an aircraft sits for about 10-15 seconds...???
I noticed that when on the ground, but with ArduPilot in control there is pilot input at 300Hz. The fact the aircraft keeps hovering also means the motors are still being controlled (quadplanes don't hover for long without changes in motor demands).
So I think there is some secondary condition for this happening, and it seems related to having a 2nd aircraft in close proximity (maybe amount of overlap of aircraft?).
I`m also wondering if/is it possible to give the landing platform the physics/hardness of a runway so the quads skids don`t sink into it.
I tried upping the strength multiplier on the landing platform to 1500% (the max). No luck yet. I've never tried creating a runway to know how you setup the physics for it.
 
Mark Whitehorn managed to make a landing work in RF8 using multi-mode instead of multi-player:
Jeremy, any chance we could use two flightaxis connections with multi-mode?
 
Last edited:
I've been head-down on a couple of projects, so it looks like I've got a good backlog of questions to answer here! Let's dig in!

If we did this, then would the collision physics work to allow the aircraft to sit on the ship while it moves?
I have some concerns about the aircraft successfully resting on a moving vehicle. I would expect it to make contact and receive impulses. But it may end up jumping around a lot, particularly with the discontinuous motion that tends to arise from networked multiplayer.

This is our attempts so far:
Interesting. I wonder why collision isn't working (when not ghosted). I know that we experience mid-airs on a fairly regular basis when doing multiplayer testing. Maybe that changes when the contact is very slow. There are a lot of provisions to prevent collision when spawning in at common starting points. I'll have to investigate a bit to comment more knowledgably.

I tried upping the strength multiplier on the landing platform to 1500% (the max). No luck yet. I've never tried creating a runway to know how you setup the physics for it.
This part is just FYI: The strength multiplier only controls the propensity of a part to break off. Setting it to 1500% means that the part will never break off. That's probably a good idea here.

Jeremy, any chance we could use two flightaxis connections with multi-mode?
I'm not sure. Guessing without digging into code, this will either be very possible or nearly impossible. I'll have to investigate before giving any encouraging words.

I do think that Multimode is much more likely to succeed than multiplayer for actual contact. I'm still not sure if the resting contact will hold up to a moving "runway". Can Mark test this question to make sure the physics itself can hold up?

This is very neat stuff!

PS: I really appreciate our new forum system's quoting abilities.
 
Back
Top