microsoft / AirSim-NeurIPS2019-Drone-Racing

Drone Racing @ NeurIPS 2019, built on Microsoft AirSim
https://microsoft.github.io/AirSim-NeurIPS2019-Drone-Racing/
MIT License
356 stars 90 forks source link

What subset of the API are we allowed to use? #19

Closed rmst closed 5 years ago

rmst commented 5 years ago

The API offers many functions. Which ones will be allowed in the competition?

>>> client.sim
client.simCharGetAvailableFaceExpressions(  client.simCharResetBonePose(                client.simCharSetSkinAgeing(                client.simGetGroundTruthEnvironment(        client.simGetVehiclePose(                   client.simSetObjectPose(
client.simCharGetBonePose(                  client.simCharSetBonePose(                  client.simCharSetSkinDarkness(              client.simGetGroundTruthKinematics(         client.simIsPause(                          client.simSetPose(
client.simCharGetBonePoses(                 client.simCharSetBonePoses(                 client.simContinueForTime(                  client.simGetImage(                         client.simListSceneObjects(                 client.simSetSegmentationObjectID(
client.simCharGetFaceExpression(            client.simCharSetFaceExpression(            client.simDestroyObject(                    client.simGetImages(                        client.simLoadLevel(                        client.simSetTimeOfDay(
client.simCharGetHeadRotation(              client.simCharSetFacePreset(                client.simEnableWeather(                    client.simGetObjectPose(                    client.simPause(                            client.simSetVehiclePose(
client.simCharGetSkinAgeing(                client.simCharSetFacePresets(               client.simGetCameraInfo(                    client.simGetPose(                          client.simPrintLogMessage(                  client.simSetWeatherParameter(
client.simCharGetSkinDarkness(              client.simCharSetHeadRotation(              client.simGetCollisionInfo(                 client.simGetSegmentationObjectID(          client.simSetCameraOrientation(   
msb336 commented 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

madratman commented 5 years ago

To add on, for control APIs, see comment here https://github.com/microsoft/AirSim-NeurIPS2019-Drone-Racing/issues/9#issuecomment-515560660

madratman commented 5 years ago

See https://microsoft.github.io/AirSim-NeurIPS2019-Drone-Racing/, and the recent release notes v0.1.1 and v0.1.0 for control APIs

rmst commented 5 years ago

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?

madratman commented 5 years ago

Note that for moveByAngleRatesZAsync, Z direction would be stabilized for you.