Closed rmst closed 5 years ago
Stay tuned for an official release of whitelisted APIs for the competition, but as a general rule of thumb, APIs with the sim
prefix will be blocked. The exceptions to this being simGetImage(s)
and simLoadLevel
To add on, for control APIs, see comment here https://github.com/microsoft/AirSim-NeurIPS2019-Drone-Racing/issues/9#issuecomment-515560660
See https://microsoft.github.io/AirSim-NeurIPS2019-Drone-Racing/, and the recent release notes v0.1.1 and v0.1.0 for control APIs
How does something like moveByAngleRatesThrottleAsync(roll_rate, pitch_rate, yaw_rate, throttle, duration, vehicle_name='')
work precisely?
Are the rates and throttle arguments target values that a PID controller is trying to reach within duration
(by modifying the speed of the rotors) or are those values set directly in the simulator and will be held for duration
and set to zero afterwards?
Also, what happens if we call the command again before duration
has passed? Is it replaced or will it execute after the previous command finishes?
Throttle is set directly. There is no control for the same.
yes, anglerates are tried to reach with a P controller.
the controller runs till duration
is reached, and then rates are set back to zero. however, wrt throttle
, drone switches back to hover, and won't fall out of the sky
if you call the command again before duration
has passed, it will be replace.
if you want it to execute after
the previous command finishes, you can do :
moveByAngleRatesThrottleAsync(roll_rate, pitch_rate, yaw_rate, throttle, duration, vehicle_name='').join()
which will wait for duration
to get finished.
Note that for moveByAngleRatesZAsync
, Z direction would be stabilized for you.
The API offers many functions. Which ones will be allowed in the competition?