Hacker News new | past | comments | ask | show | jobs | submit login
How NASA Designed a Helicopter That Could Fly Autonomously on Mars (ieee.org)
234 points by hacksilver on Feb 18, 2021 | hide | past | favorite | 92 comments



So many interesting details in this article. Snapdragon 801-based hw running Linux, sensor fusion from three sensors whereof some bought COTS from sparkfun (who make breakout boards for sensors, basically the sensor datasheet recommended design). 3 flights planned, but potentially more which will be planned after the three first. 30 day lifetime window, due to dependecy on the rover, which needs to conserve resources.

I would looooove to know more more more about this. What did dev of this look like (eg simulators)? What's the flight envelope? What are the most important risks and how are they mitigated? What internal discussions took place (do this, prio that, don't do X etc).

Just so much interesting stuff! Can't wait :)

edit: from wikipedia: "Each flight is planned to be at altitudes ranging from 3–5 metres (10–16 ft) above the ground.[1] In up to 90 seconds per flight, it could travel as far as 50 metres (160 ft) downrange and then back to the starting area".

"The helicopter uses counter-rotating coaxial rotors about 1.2 metres (4 ft) in diameter".

Etc. Recommend the wiki page on it: https://en.wikipedia.org/wiki/Mars_Helicopter_Ingenuity


Actually the computing power of Ingenuity surpasses one of the Perseverance rover (and probably by a lot). The rover has a radiation hardened RAD 750 CPU (based on PowerPC 750 architecture, which was introduced in 1997 to compete with Intel's Pentium II [1,2]) with 250-150nm technology process operating at 200Mhz[3]. Ingenuity's Snapdragon 801 can reach up to 2.5 GHz and is based on more energy-efficient 28nm modern (released in 2014) ARM architecture [4]. This CPU even has Wi-Fi and GPS, though probably not much of a use on Mars :)

1. https://arstechnica.com/science/2019/11/space-grade-cpus-how...

2. https://en.wikipedia.org/wiki/RAD750

3. https://mars.nasa.gov/mars2020/spacecraft/rover/brains/

4. https://www.qualcomm.com/products/snapdragon-processors-801


I haven't seen much on the 'sky crane' portion. It seems that it will just use whatever fuel it has left after the landing procedure to just get as far away as possible. It seems like the perfect place to stick some experimental imagery gear: film everything you can all the way down and transmit it back to Perseverance. And there's the possibility that it would survive its crash too with all hardware intact.


There are also two redundant TI MCUs on the copter

>TMS570LC43x high-reliability automotive processor operating at 300 MHz, with 512 K RAM, 4 MB flash memory, UART, SPI, GPIO

https://rotorcraft.arc.nasa.gov/Publications/files/Balaram_A...


Do you know why radiation hardening is not needed for the Ingenuity? Is there a mechanical shield? Or is it just the shorter runtime that makes the use of an off-the-shelf processor acceptable?


I had the opportunity to go down to JPL and speak with team members about this design decision. The space hardened processors are not fast enough to do real time sensor fusion and flight control, so they were forced to move to the faster snapdragon. This processor will have not flips on Mars, possibly up to every few minutes. Their solution is to hold two copies of memory and double check operations as much as possible, and if any difference is detected they simply reboot. Ingenuity will start to fall out of the sky, but it can go through a full reboot and come back online in a few hundred milliseconds to continue flying.

In the far future where robots are exploring distant planets, our best tech troubleshooting tool is to turn it off and turn it on again.


I'm a little surprised they didn't go for three separate computers and compare them for every operation, or something like that, but I'm sure they have their reasons.


I've never seen an off-the-shelf processor that has hardware support for doing that kind of cross-checking on every instruction. And doing it in software would probably add so much overhead that the error-checking would be much more likely to fail than the application code.

If you're willing to relax your real-time constraints a bit, and risk a brief period of incorrect behavior before the error is caught, the problem becomes vastly easier and cheaper to solve.


>off-the-shelf processor that has hardware support for doing that kind of cross-checking on every instruction.

it is usually done with COTS CPU by either running the CPUs in lockstep (the simpler early generations of CPU) or by inserting hardware checkpoints at various points like branches, by number of instructions, etc. A recent such commercial system was the triple Itanium from Tandem/NonStop(HP).


There are the ARM Cortex-R series of processors which have two cores running in lockstep for fault tolerance.


Perhaps the double-memory-and-checking is only done on the control algos and not on sensor fusion/object detection etc?

Kind of "Ok if we for a brief moment believe there's an obstacle in front of us, since it'll be gone next tick, but not ok to turn off motors".


Do you have a source for those fast reboots? It's running Linux after all


A few hundred milliseconds seems easily doable with a custom linux distro.


Unless your /dev/sda wants a fsck. :-)


is Ingenuity running Linux? All of the flight controller software i've seen for autonomous drones don't use an operating system.


Yep, from the article:

"This the first time we’ll be flying Linux on Mars. We’re actually running on a Linux operating system. The software framework that we’re using is one that we developed at JPL for cubesats and instruments, and we open-sourced[0] it a few years ago. So, you can get the software framework that’s flying on the Mars helicopter, and use it on your own project. It’s kind of an open-source victory, because we’re flying an open-source operating system and an open-source flight software framework and flying commercial parts that you can buy off the shelf if you wanted to do this yourself someday. This is a new thing for JPL because they tend to like what’s very safe and proven, but a lot of people are very excited about it, and we’re really looking forward to doing it."

[0]: https://github.com/nasa/fprime


My entirely uninformed opinion is that radiation hardened silicon is something that comes from government that isn't actually needed for most purposes. It's something you do when cost is no object.


I went down this rabbithole not long ago with the rovers on-board computer. The writeup from the people who designed the system was really approachable for someone without any aerospace experience. There's a lot of challenges and tradeoffs involved.

Some takeaways:

> Constrained CPU: 133MHz PowerPC, 128MB RAM, 4GB storage

> Software written in C, OS is VxWorks

> Only get contact a few times a day, rover must be charged and ready each time regardless of uncompleted tasks. Scheduling is hard.

> Some tasks require parts preheated for X time, which depends on ambient temp, they use a lookup table for the time of day instead of measuring the temp directly. (Assume this is for reliability purposes)

> High level activities are constructed in a GUI by the operations team, low-level tasks are written in XML, both are uploaded to the rover as a binary plan file.

It's a good read, do recommend it.

https://ai.jpl.nasa.gov/public/documents/papers/rabideau_iwp...


> Some tasks require parts preheated for X time, which depends on ambient temp, they use a lookup table for the time of day instead of measuring the temp directly. (Assume this is for reliability purposes)

That's an interesting one. Guessing that there also must not be that much variation of temp and weather conditions?


Veritasium did an episode 'Mars Helicopter' containing some interesting discussions with the team that built it.

https://www.youtube.com/watch?v=GhsZUZmJvaM

nm it was already linked elsewhere


This is the coolest part of the mission IMO.

My big question is where does it land? Does it dock with the rover? It seems to power itself via a solar array. About 100 days into the mission they plan on launching the helicopter for the tiny lifespan window.

I think the limit on its lifespan is really, "How long until destroyed by wind/dust". And then how long until it cannot charge its own batteries/sustain itself.


I agree, this is the coolest part, but the most useful part for humanity is MOXIE.

It lands on the ground. And yes, dust on the panels is a big concern. (I work at JPL but not on Perseverance / Ingenuity)


That's really cool; thanks for your work!!

I cant wait to see how Y'all figure out how to get those rock samples back to earth; that's gonnna be nuts XD


There's a bit of info here too : https://www.youtube.com/watch?v=mQu9m4MG5Gc


I had the opportunity to speak with one of Ingenuity's engineers in the NASA pavilion at the EAA Fly In in Oshkosh, WI in 2017 (or perhaps 2016). This was before it had been accepted for the Rover2020 mission but just after they had proven the concept flight capable. I asked him about flight conditions on Mars and what they had to do to get their design airborne in such a thin atmosphere. He made a few points.

1. Given the thinness of the atmosphere, the counter rotating blades are balanced among thickness, length, and rotation speed. They're essentially as big as they can spin with the power they have at a speed where the tips are just under the Martian speed of sound.

2. I asked if wind was an issue. He said that it wasn't an issue for the stability of the craft (Martian wind moving much of anything is a movie trope) but the turbulence it caused could be a major issue for the blades, as they're essentially small wings, like a helicopter. The turbulence of a cross breeze could disrupt the flow of air over the blades and cause them to lose lift.

3. The design of the craft was essentially locked once they confirmed it could fly. They would keep most of their original hardware and software, rather than rebuild anything, which I found surprising. Given this was before they were accepted on the mission I'm not sure if anything changed. It does appear to be pretty equivalent to what we saw there.


I find, besides all the extremely exciting, technical challenges, the following sentence incredibly fascinating:

> "This [is] the first time we’ll be flying Linux on Mars."

But regardless of that, I find it so incredibly cool and inspiring that during my lifetime, a human flying vehicle will fly on Mars. I was a space nut in my childhood and youth and love to see this.


Linux flying on Mars and Electron regularly launched to LEO. What a time to be alive :)


> It’s kind of an open-source victory, because we’re flying an open-source operating system ...

That is in reference to Linux. I think it can be a proud moment for Linus Torvalds and the team.


One thing that I have been wondering, if the atmosphere is so thin, then how does the RTG cool? I seem to have nerd-sniped myself.

It needs a temperature differential to generate electric current and it looks to have fins for convective cooling but the atmospheric pressure is a few % of that of sea level Earth.


You can read a bit about this in quite some detail in this pre-print from the 80s: https://www.osti.gov/servlets/purl/1033420

".. radiation, diurnal and seasonal temperature".

"Convective cooling by the Martian atmopshere, even on a cold windy day makes only a relatively minor contribution to heat rejection"


I believe the fins are primarily radiators. Conduction, convection, radiation.


mars is freezing cold, it's like dust covered ice ball.


Space is cold and yet getting rid of waste heat is a challenge for any spacecraft. The ISS has giant radiators to dissipate heat. It doesn't matter how cold Mars is if it's difficult to transfer the heat away, such as in a very thin atmosphere which has less capability to carry away heat than Earth's atmosphere. There needs to be some kind of medium for the heat to transfer away (aside from radiation), regardless of ambient temperature. It's why a vacuum-walled thermos can keep things warm even in a cold environment. That's what they were asking about.

Heat can be conducted away by contact with another object, probably not what you want if you're using an RTG to power your spacecraft, you don't want your RTG to heat it too much. It can be convected away, which is more difficult in a thin atmosphere like Mars has. Or it can be radiated away by blackbody radiation, which some certainly is, but that is limited and isn't much.


> blackbody radiation, which some certainly is, but that is limited and isn't much.

Boltzman equation has temperature in the 4th power, so it is quickly becomes a lot.

https://en.wikipedia.org/wiki/Thermal_radiation

"Using the formulas below shows a human, having roughly 2 square meter in surface area, and a temperature of about 307 K, continuously radiates approximately 1000 watts."

At the temperature that you can keep your electronics at, say 60C, it would be 700W/m2. So, for example a GPU mining ethereum in space (where i think we're ultimately heading toward with the crypto) would need a heat radiator only 3-5 times the size of the GPU.


But the heat still needs to leak into the environment, and a thin atmosphere means little convection, so it's still just radiation - same problem as in a vacuum.


Here's one of the referenced software frameworks (if I understand correctly) used for the ingenuity control systems: https://github.com/nasa/fprime


Can someone explain the phyics of flying a helicopter in such low density atmosphere? It must be less efficient than on earth, but evidently efficiency isn't proportional to density or else it could not fly at all.


> It must be less efficient than on earth

No it mustn't. You'd expect efficiency to be higher, all else being equal, since there's less drag to overcome - aircraft can generally fly more efficiently at high altitude on Earth (up to a point). The limiting factor is that helicopter flight only works while the rotor tips are subsonic, so as the air gets thinner the "IAS" that a pitot tube on the rotor (that's going as fast as you safely can) would experience gets lower and lower, and so the flight dynamics will be like a helicopter with a slow rotor, but speeded up. But for a small helicopter the square-cube law is on your side and so a low "IAS" is quite doable.


Using actuator disc theory, accounting for 38% gravity and 1.2% air density, Ingenuity would need about 2.1x more power to hover on Mars.

But it's not that simple. The reynolds number which Ingenuity's blades are operating on Mars is extremely low, 10,000 to 20,000. This makes the airfoils less efficient compared to what you might design on Earth.

Compare to a Trex 450 (30% heavier weight equivalent) helicopter on Earth, it's got 10+ minutes of endurance and has a smaller diameter rotor, whereas Ingenuity has a 90 second stated endurance, although that is probably limited by navigation too.


Thanks for your answer. It is hard to find good information about the aerodynamics.



The blades spin much faster to generate the required lift (lift proportional to density). Mars having lower gravity also helps.


If you just want images from a different angle, why not tether it to the rover?

Also can't you use a kind of balloon instead to save power?


There actually have been airship proposals for Mars, but as you'd expect because of the tiny atmosphere they're... different: https://www.nasa.gov/directorates/spacetech/niac/2017_Phase_...


I would think the atmosphere is too light to support a balloon.


I do remember reading about this - a balloon would work, but it would be absolutely enormous, far larger than anything we can bring into Mars currently. Maybe some day.


Another thing I'm wondering: the drones can probably carry only a small (light) camera, whereas a satellite can carry much more and thus also a much better camera. Wouldn't a satellite+camera be a better option?


For a given aperture there's a limit to the angular resolution you can get which means you can only see objects above a certain size from orbit. The highest resolution we had in 2013 had a resolution of ~.3m/pixel. That's too large for anything beyond rough mapping for things like landing or a vague plan for driving.

TL;DR a decent camera at <1km is hard to beat from >100km no matter how good the satellite camera is.

https://space.stackexchange.com/questions/1140/whats-the-hig...



Could they use it to try blow dust off the Opportunity rover's solar panels to see if it'll boot again?


I guess the atmosphere would be too tenuous to try to blow dust away with it (max pressure should be a bit more than Ingenuity's mass/rotor surface, so not much).

How long before a commercial autonomous helicopter-based solar panel dusting service on Mars, I wonder?


s/mass/weight/


No, it's not going to land anywhere near Opportunity.

https://mars.nasa.gov/resources/24729/map-of-nasas-mars-land...


techpod did an episode recently with the engineering camera payload uplink lead from nasa jpl doug ellison. it was very cool.

from the episode summary:

> "Friend of the podcast Doug Ellison from NASA's Jet Propulsion Lab stops by to give us the lowdown on the newest Mars rover Perseverance, which will be landing on the red planet in just a few weeks, plus all kinds of fun info about Lagrange transceivers, making oxygen out of thin air, flying helicopters on other planets, and recording home movies at mach 25."

https://techpod.content.town/episodes/71-curiosity-and-perse...


I implemented a visual-inertial navigation based on the algorithm called MSCKF. It would be really interesting to know what kind of algorithm they are using. They mentioned state propagation in the article. This might indicate they are using an algorithm based on extended kalman filter.

It takes quite some care to make those algorithms robust. Even when you run in an environment covered with diverse visual features. The state divergence is a real thing which essentially means the copter is falling from the sky (Do they call it like that on Mars?).


Probably MSCKF.


Can someone who understands aeronautical engineering explain why they went with a helicopter over a winged aircraft?

My guess is that takeoff would be too difficult for a traditional winged aircraft and VTOL was way too complicated.

But given the thin nature of the atmosphere, a helicopter seems even more difficult to get lift than a winged aircraft.

Can someone explain or link to the science between lift and air density and it's relation to helicopters and winged aircraft? Thanks!


> But given the thin nature of the atmosphere, a helicopter seems even more difficult to get lift than a winged aircraft.

Easier to speed up a helicopter's wings (rotors) than speeding up an aircraft which would need more and more runway.


No runways on Mars, so takeoff could be difficult. Maybe we could do that once we have well prepared surfaces. Helicopters can also hover and are much more manoeuvrable than fixed-wing. Lift is proportional to density. L = Cl x .5 x rho x v^2 x S (L is lift, Cl a non-dimensional coefficient which depends on wing shape, rho is density, v is speed and S is surface area of the wing). For fixed wing aircraft, v is speed of aircraft. For helicopters its the speed of the blade (when its in hover. When its moving forward its a bit more complex).

Haven't done the math but the aircraft has to be going pretty fast ('v' in the equation) to generate the required lift. This also means longer runway lengths.


Wonder the same thing, I have the impression that Quad or Hex copter would be more stable/reliable with more redundancy build in.


Quad/hex would be less efficient and heavier for the same performance (range, speed, service ceiling), but yes, more stable. In this mission, I suspect minimizing weight (as a rocket payload to be sent through space) and maximizing range (hop flights on Mars on a limited power source) were a priority. This is also why full size helicopters are almost all single main rotors with a TR.


The propellers are huge in order to get this tiny helicopter to fly. A quadcopter would be larger than Perseverance, unless you devise some zero-mass hinges to make the entire thing fold into the same space that was available for Ingenuity.


it needs to fit inside the fairing. also what do winged aircraft use to fly?


Unfortunately the article does not talk about how this helicopter would fare in a sandstorm. Are the winds strong enough to tip it over?


There is practically no wind on Mars. The wind speed is super high, but the air density is so low it won't impact anything more than dust.


This is really interesting to think about. On Venus it’s the opposite. Any kind of wind speed will have a huge impact.


Mars has 1% of earth's atmosphere, so it will not affect the vehicle, The answer comes from an interview with the engineers here : https://youtu.be/GhsZUZmJvaM?t=534


> With all this in mind, getting Ingenuity to Mars in one piece and having it take off and land even once is a definite victory for NASA

Sorry, slightly off-topic: Not a native English speaker. Isn't this sloppy writing? Seems like declaring victory ahead of time?


The sentence is fine; they're saying the fact that it took off and landed successfully is a victory in itself.


The probe containing the helicopter hasn't landed on Mars yet, though. It's landing in 44 minutes.


Then yeah it's bad or misleading.


Thanks.


I'm amazed they were able to pack enough energy in the thing to get the props to go fast enough to work in Mars's barely there atmosphere. Keeping it upright is standard equipment in even low-end quadcopter drones.


Seems shortsighted to end this mission after 30 days.

I imagine it's purely for mission planning complexity reasons. But a more sensible approach seems to be to say "after 30 days you have to limit comms to 100 bytes/sec back to earth and stay 100 meters from the rover".

In the future I could imagine the more modern processor on the helicopter might become handy... Some neural network based navigation system might run on it but not the rover main cpu... Also the helicopter might be able to get very good aerial photos that could be turned into 3d models to figure out the best spots to do science. It should be able to see much better than orbital radars.


The official mission length is just how long they have to wait before calling it a success. They expect it to last much longer. Since this is primarily a technology demonstrator once it's a "success" more options open up for actually experimenting with tactics and the limits of the device. It's like how you wait until you've left the parking lot to do a big smokey burnout and see how fast a rental goes in 1st gear.


> Seems shortsighted to end this mission after 30 days.

At this point, NASA is getting rather famous for this. Opportunity had a 90 day mission that survived for nearly fifteen years. Curiosity, a much bigger and more complicated machine, is still doing science 8.5 years later.


Obligatory Veritasium video link: https://www.youtube.com/watch?v=GhsZUZmJvaM


I wish we could have more information on the terrain relative navigation implementation..


Imagine how far the technology could go had we sent 10 times the missions we do now.


What's the point of flying a helicopter on Mars? What scientifically relevant data do you get? Its fun and cool but why?


* Scouting possible destinations or routes for the rover.

* Imaging areas from above with higher fidelity than possible from orbit, and from angles not possible from a rover.

* Retrieving samples from areas inaccessible for a rover.


I find it hard to believe you genuinely asked yourself this question and came up empty before posting this vacuous comment.


Because exploring is our nature. And because it will be the first test or flying something in an alien atmosphere. Tons of data alone from the first 5 seconds is very interesting. It's the first step to commercial airliners on Mars :)


It's just a demonstrator but can travel 100m in each 90 second flight.

For comparison, the Curiosity rover has travelled 23 km over 8 years.


Well, you may be able to get places a rover can't. But as they say in the article, this is just a demonstrator to show if they can fly on Mars at all.


To test the technology for next missions. This is just a proof of concept.


The article covers this.

In the future maybe they can fly with LiDAR to get more accurate surface details for the rovers to navigate with, and finding interesting features


Perhaps we could eventually get things like a video of a drone flying over the 4km high cliffs of Echus Chasma:

https://apod.nasa.gov/apod/ap080723.html

There is a whole new world out there!


main thing I've seen on mark rober's youtube is that it allows you to really scout out locations with a speed unheard of for rovers.

Also, you can't really(easily) get a helicoper stuck on rocks :)


I would have thought atmospheric data that you can't get elsewhere - you'd be able to learn things about pressure and wind at altitudes that rovers can't get to.


I don't think it will fly that high to make a measurably difference to ground level. It only flies for 90 seconds. How high can you get in that time?


This is a tech demo. This will help design future Martian drones.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: