Description

This quadcopter does not use gyroscopes for stabilization and is controlled by changing the RPM on each of the four motors. Its feature is the use of software PID controllers that provide smooth and stable control.

How does this work?

The figure above shows a simple flowchart of the program. Each engine receives control signals generated by PID controllers, of which there are four in total: PID controller for vertical speed, pitch, yaw and roll.
The first controller seeks to maintain a given vertical speed of the drone (read below), the other three generate signals directly to control the drone.
The throttle axis is represented as Slider 1, now you don’t need to hold and adjust the throttle value to make the drone hover, it’s enough to deflect the slider for vertical maneuver and return it to 0, the drone will tend to keep the vertical speed equal to 0. But this is not altitude hold, because at least vertical speed and tends to 0, but can take small negative values, so the drone will slowly descend. It just makes it easier to control the drone. If you want to keep the flight altitude constant, use AG 2, the algorithm will link the vertical speed and altitude (more precisely, the difference between the required and current altitude).

Controls

– Use Slider 1 as the Throttle Axis (see point above).
– Pitch, roll and yaw are set to standard axes by default.
– Use AG2 to hold the flight altitude, AG3 to light.

Pay attention

– The program is designed to work with a fps value of 60. If your fps value is different, the drone may behave incorrectly.
– Due to the peculiarities of the functioning of electric motors in the game, the drone cannot perform sharp maneuvers, so the control may seem too "sluggish".
This is just a prototype, I'm glad to hear your comments, advice and wishes.

P.S. This version of the drone is outdated.

GENERAL INFO

  • Created On: Windows
  • Game Version: 1.1.107.0
  • Price: $85k
  • Number of Parts: 134
  • Dimensions: 0 m x 1 m x 1 m

PERFORMANCE

  • Total Delta V: 0m/s
  • Total Thrust: 0N
  • Engines: 0
  • Wet Mass: 9kg
  • Dry Mass: 9kg

STAGES

Stage Engines Delta V Thrust Burn Mass

15 Comments

  • Log in to leave a comment
  • Profile image
    2,408 DreaPods

    Your perfomance feedback, bug reports, questions and tips are welcome!

    Pinned 1.3 years ago
  • Profile image
    2,408 DreaPods

    @sacr3dbac0n0 oh, I'll try to come up with something in the future..

    9 months ago
  • Profile image
    4,697 sacr3dbac0n0

    @DreaPods I've tried the fixed time step, it could work, but it is hard to tune. However, it's still sensitive to FPS lower than 60. Any other ideas? I can't think of any other Vizzy tools we could use to fix this.

    9 months ago
  • Profile image
    2,408 DreaPods

    @sacr3dbac0n0 Hi! Thanks for the idea, I'll definitely check it out. I also had the idea of polling the PID controllers through a time constant slightly larger than the frame time (0.1...0.035 s) to reduce the impact of frame time instability on the system. But this requires very precise tuning for balance between responsive control and stable behavior of the craft.

    +1 9 months ago
  • Profile image
    4,697 sacr3dbac0n0

    Hello, I've been working on a PID-stabilized VTOL spaceplane and used your quadcopter as the inspiration and foundation for the code. I just wanted to say that I've found the solution for unwanted oscillations during physics timewarp. It's surprisingly simple: change nothing with code except dividing the PID gains by the timewarp multiplier amount. You can keep integrating and deriving with frame delta time without inducing oscillations. The gains scale with the time multiplier. Although I'm not sure how the frame rate issue could be fixed.

    9 months ago
  • Profile image
    2,408 DreaPods

    @Jerba This code contains 4 PID controllers that provide stable and smooth control by changing the speed of the engines. It is by changing the coefficients (you can easily see them before the P-I-D components) that you can adapt the program to any craft that is controlled in this way. However, there is a problem that I described above - this code is only a prototype and does not work perfectly. I have some ideas to improve the algorithm.

    1.2 years ago
  • Profile image
    550 Jerba

    Just wondering, where and how would I edit the code to be compatible with a much larger and heavier craft?

    1.2 years ago
  • Profile image
    2,408 DreaPods

    @Lunarmodule Maybe it's a bug, try downloading again

    1.3 years ago
  • Profile image

    我下载之后螺旋桨没了

    1.3 years ago
  • Profile image
    2,408 DreaPods

    @Jerba Thanks, the drone can sometimes be unstable, next time I will try to improve its stability (control through the pitch of the blades should improve the situation), I also have ideas for introducing some flight modes, and improving the program

    1.3 years ago
  • Profile image
    550 Jerba

    I love how stable it is and how well it can stabilize itself, do you plan on making a more stunt/fpv style drone? I’d love to that be able to possibly make a vizzy driven car and then follow it with the drone. I live the stability of this but it doesn’t turn too well, especially at higher speeds and doing something like a 180 turn using both roll and yaw upsets the drone. Would love if you could make a more performance based variant of the code! Great job on the vizzy too, really surprised at just how simple and small the code was considering how well it flies.

    1.3 years ago
  • Profile image
    2,408 DreaPods

    @Morty Thank you very much, I'm just learning. I have some ideas to improve the program, I hope I will implement them in the future

    1.3 years ago
  • Profile image
    498 Morty

    Very nice program grateful talent

    1.3 years ago
  • Profile image
    2,408 DreaPods

    @Wills123 Thanks!

    1.3 years ago
  • Profile image
    7,683 Wills123

    Very cool, I like how you put the solar panel under a transparent part

    1.3 years ago

14 Upvotes

Log in in to upvote this post.