Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add / fix unintuitive lower level multirotor APIs #2297

Merged
merged 8 commits into from
Mar 25, 2020

Conversation

madratman
Copy link
Contributor

@madratman madratman commented Nov 6, 2019

add / fix unintuitive lower level APIs - RPYZ|Throttle, AngleRateZ|Throttle

Todos:

  • mavlinkvehicleimpl.h/cpp, mavlinkvehicle.h/cpp. do we need to scale from throttle from [0,1] to [-1,1]
  • Docs
  • release new python client
  • Enable on the fly gain tuning
  • Incorporate Added moveByRotorSpeed command for QuadX #890 as moveByMotorPWMs

Should subsume #1984

@madratman madratman force-pushed the PR/low_level_apis branch 3 times, most recently from ebfe290 to 52505a2 Compare November 7, 2019 23:01
@madratman madratman changed the title add / fix unintuitive lower level APIs add / fix unintuitive lower level multirotor APIs Nov 12, 2019
@madratman
Copy link
Contributor Author

Will add docs and example script in next PR.

@madratman madratman merged commit 7d398ad into microsoft:master Mar 25, 2020
@madratman
Copy link
Contributor Author

To answer (the now deleted?) question by Pawel Jaworski - moveByMotorPWMs is documented here https://github.com/microsoft/AirSim/blob/master/PythonClient/airsim/client.py#L366-#L379

@aftersomemath
Copy link

aftersomemath commented Apr 25, 2020

The old "low level" API's moveByAngleZAsync and moveByAngleThrottleAsync are still present in the Python client. However, these functions no longer cause any movement of the simulated multirotor.

def moveByAngleZAsync(self, pitch, roll, z, yaw, duration, vehicle_name = ''):
return self.client.call_async('moveByAngleZ', pitch, roll, z, yaw, duration, vehicle_name)
def moveByAngleThrottleAsync(self, pitch, roll, throttle, yaw_rate, duration, vehicle_name = ''):

I am not sure what the desired resolution should be. Perhaps the old functions can wrap the new API calls and log deprecation warnings? My outer loop controller used for previous versions of AirSim broke silently when upgrading to the latest release and this took a little while to track down.

I am very excited that moveByMotorPWMs was implemented. I was planning to dig in and implement this myself, so this bug/discovery has saved me quite a bit of time. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants