Status of AI in FlightGear: Difference between revisions

Jump to navigation Jump to search
Line 291: Line 291:
   |there are two aspects to Nasal: that of interaction with itself and with the property tree. For your purposes, the property tree is going to be your communication with the wider FlightGear code. Nasal also can use its own mechanisms to interact with different things (file system, route manager, fgcommands, ...). In interest of the web browser analogy, XML in FlightGear is like HTML. Specifically it is responsible for setting up much of the property tree that FlightGear's subsystems act off of. David Megginson (creator of FG's property tree) once said that "XML should provide the nouns, Nasal should be the verbs" (or something, that isn't a direct quote) – so PropertyList XML is really good at providing data that Nasal can work off of. For like the fox2.nas script, this means that ideally all of the specific data about the missile would be taken from Nasal and stored in an XML file (which would be loaded by the Nasal file and the data would be copied over).
   |there are two aspects to Nasal: that of interaction with itself and with the property tree. For your purposes, the property tree is going to be your communication with the wider FlightGear code. Nasal also can use its own mechanisms to interact with different things (file system, route manager, fgcommands, ...). In interest of the web browser analogy, XML in FlightGear is like HTML. Specifically it is responsible for setting up much of the property tree that FlightGear's subsystems act off of. David Megginson (creator of FG's property tree) once said that "XML should provide the nouns, Nasal should be the verbs" (or something, that isn't a direct quote) – so PropertyList XML is really good at providing data that Nasal can work off of. For like the fox2.nas script, this means that ideally all of the specific data about the missile would be taken from Nasal and stored in an XML file (which would be loaded by the Nasal file and the data would be copied over).
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190395#p190395
   |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190395#p190395
    |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
    |author=<nowiki>Philosopher</nowiki>
    |date=<nowiki>Fri Sep 20</nowiki>
  }}
}}
{{FGCquote
  |Curt posted on his blog this article about circle holding which will be of interest: [http://gallinazo.flightgear.org/uas/spiraling-under-control/ http://gallinazo.flightgear.org/uas/spi ... r-control/]. If he isn't too busy, you could ask him about some more of the details or ask where to learn about the algorithms he used. I don't have time to reread it, but I think he used like the rascal or other small aircraft and a Nasal algorithm consisting of (I'm just guessing here) bank hold (to set up an approximate radius and to turn in a circle) and bank angle correction (to get the right radius, to stay on track and correct errors, etc.). He also mentions a lot of control mixing in the article required to maintain the fine balance of throttle/speed, bank angle/turn radius, and pitching/altitude, so it was probably more sophisticated than that.
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=190396#p190396
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |title=<nowiki>Re: How would I go about controlling an airplane with nasal?</nowiki>
     |author=<nowiki>Philosopher</nowiki>
     |author=<nowiki>Philosopher</nowiki>

Navigation menu