Earlier quoted context omitted.
when i was first exposed to ada, early 1990's, the language was unusable. compile times where excessive (like hours). machines of that era were slow and had small memories (4MB was a common size, and more than 1 CPU was a luxury). i must also admit, ada was hard. you had to do some mojo just to print out a value ("package int_io is new integer_io blah, blah). it had a standard of a couple of hundred pages that you ke…
Ada 2012 is what I learned, but I probably would have moved on if had learned Ada 95. They've done a fantastic job modernizing it, and the next version looks even better (Ada 2022). > my opinion today is ada is relatively small, makes very fast code, and supports all the programming paradigms of C++ in a very sane way. This is why I've been sticking with it. I also get pre/post conditions, a real module system (yes,…
The software that flies SpaceX rockets and starships
111–112 of 112 posts
Re: The software that flies SpaceX rockets and starships
#112It is fascinating that they solve robustly 50 times per second a control problem and handle gracefully numerical issues. Granted they have dedicated hardware to do so that fast, but it never stops to amaze me.
- Quadrotors control their attitude solely by adjusting the thrust generated by the four motors. Unlike rockets, or fixed-wing aircraft, or cars even, the moment there is any kind of disturbance (whether software, hardware, or environmental), the aircraft immediately starts to fall out of the sky.
- For the work I do, we typically fly around 5-7m above ground. If the motors completely quit, we have around 1.2 sec before we hit the ground at 42km/h.
- The aircraft is also capable of roll rates >50deg/sec. Even if you're high enough that you don't immediately hit the ground, motor problems can also result in you pointing upside down and pulling yourself towards the Earth instead of pushing away.
- Most of the parts have notoriously bad repeatability, plus small variations would wreck any repeatability anyway. You can't just set all of your motor throttles to 60% and expect them to have the same thrust, it's nested-upon-nested control loops to keep everything going
- The sensors are generally crap too with non-trivial amounts of bias and drift.
And the wildest part of all of this? You can get a top notch flight controller to handle all of this for you (and open source!) for $150 USD https://shop.holybro.com/pixhawk-5x_p1279.html?