-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Low level quadcopter control #808
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
Comments
It's just matter of adding new API call, for example, |
Thanks for the advice. My next step would be to implement the functionality that is mentioned in issue: What I would like to do is to get the rotor speeds via the reinforcement learning, apply them by using movebyrotorspeed command, and get the state from the environment. Can you give me a few pointers? |
Hi zbenic, I am also trying to reproduce the results from that paper, but I'm very new to airsim and C++ in general. How did you gain access to the low level commands for rpms on each rotor, etc.? What would I need to do to use those? |
Hello @nrocketmann. Actually, I've given up on using AirSim for my purposes because I've switched to https://github.com/wil3/gymfc which should be OpenAI Gym environment for testing RL on quadcopters. |
@zbenic Thanks for the info. I'll give that a try. Good luck! |
Oh, that sounds a sad news to me @zbenic , how do you compare the two, which part of gymfc do you think is better than airsim? |
Hey @vinbo gymfc author here. Airsim is a simulator while gymfc is an environment for constructing intelligent flight control systems so they have different goals. Currently gymfc has environments for learning attitude control but the goal is to expand this to include navigation and guidance. Gymfc is using Gazebo as the backend physics engine, while airsim is uses the unreal engine. Gymfc could potentially use airsim as its backend, you'd just need write the interface to the aircraft model to control the actuators and read sensor data. Luckily Gazebo already provides an interface for controlling a quadcopter which made it easiest for gymfc to use this engine. You wouldnt use gymfc as a flight simulator, the environment is constructed specifically for learning certain tasks and the graphics aren't nearly as impressive as airsim. I've been working on another project for doing SITL testing of betaflight called Aeroloop which I'd love to port over the backend currently using Gazebo to Airsim. Edit: I shouldn't say they have different goals necessarily, AirSim as described is created for being used with ML in mind and expose APIs to allow you to do this. It is a general framework for learning. GymFC on the other is specialized and has this all implemented for attitude control. You just interact with the gymfc environment with your control algorithm (e.g using openai baselines) in order to train it its control task. |
Thank you for your introduction, wil3, already stared. I'll look into it. Thanks |
@zbenic Can you confirm that we consider this closed? |
Yes, we can close this. |
@zbenic Hello! Hey I read what you did regarding controlling the rotation speed of the rotors and also briefly saw your changes in your personal repository. Could you please let me know if you were able to actually make the drone move in the simulator via commanding rotor speeds in the way you did it? More strictly, if through your movebyrotorspeed command function, the drone in the simulator actually moved according to forces generated by those rotor speeds? I would like to develop a low level controller based on other control strategies different from the implement PID, so I would need to command rotor speeds and the simulated drone state to change according to those commanded rotor speeds. I understand you dropped airsim, but just would like to confirm up to which point you were able to get, and maybe I can pick up from there. Thanks for your answer. |
@juanmed Hello! Yes, I was able to use the movebyrotorspeed command to move the quad in the simulator. Good luck! |
Nice to know! Thanks! |
@zbenic |
@linxiaobo110 The low level control is already implemented. |
Thank you!
I am reading it now.
Do you still do research with airsim? Can gymfc work with position control?
I am the only one do research about RI on quadrotor. how hard it is!
sincerely, xiaobo
zbenic <[email protected]> 于2019年3月12日周二 下午3:07写道:
… @linxiaobo110 <https://github.com/linxiaobo110>
Hello. I believe everything is explained here: #1680 (comment)
<#1680 (comment)>.
The low level control is already implemented.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#808 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ALnSUhDNK9V3gSYspV8X44LN9RvPLyPXks5vV1IqgaJpZM4SDc4k>
.
|
I'm not doing anything in AirSim for the moment. |
@linxiaobo110 new version of gymfc will be released in the next couple weeks making it even easier to do trajectory and navigation control. Out of the box the current gymfc version is for attitude control. |
@wil3 Which version of Gazebo will it use and will it work on Ubuntu 18.04? I remember when setting up Gazebo 8, I had some problems with dependencies on 18.04 so I had to revert to 16.04. |
Hi @zbenic Gymfc is under pretty heavy development and changes fast. Ubuntu 18.04 is now supported and Gazebo 8 and 9. The Gazebo plugins are now built dynamically on install for whatever version you have installed. The new version is basically a complete rewrite though addressing a lot of dependency issues with the aircraft, I'm almost done with it. |
@wil3 Great, thank you for your efforts. Looking forward to the new version. |
Thank you very much!!!!
These messages are very helpful for me! You are so nice!!!
zbenic <[email protected]> 于2019年3月13日周三 下午9:41写道:
… @wil3 <https://github.com/wil3> Great, thank you for your efforts.
Looking forward to the new version.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#808 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ALnSUsE5yyzLpJcd9GvzPP5XhiSjlm7cks5vWQAMgaJpZM4SDc4k>
.
|
Hello.
My plan is to recreate the work done in:
https://arxiv.org/pdf/1707.05110.pdf
and to continue to research further. The only thing missing is the access to the low level quad controls (to be able to set individual motor rpms or thrusts).
Regarding the closed issue:
#99
Are there any progress on the said matter?
I am also willing to help with the necessary code changes.
The text was updated successfully, but these errors were encountered: