📜 ⬆️ ⬇️

Curiosity driver continues to answer Habr's questions

Here is the second part of Paolo's answers to the questions asked by Habr.
The first part is available at this link , and the questions themselves were taken here in this post - all the texts of the questions were taken from there almost unchanged.

I tried to group the questions in such a way that, first of all, there are those that relate to any technical aspects, and closer to the end - questions that highlight Paolo’s personal views, relationships in the rover team, and so on. Let's welcome Paolo again and continue the interview.


')

[All text enclosed in square brackets - translator's notes]

Q: Can a situation happen when all the wheels of a rover are stuck in the sand and the rover cannot move?
A: Yes. Regardless of the type of surface, Curiosity cannot move if the angle of elevation exceeds 25 degrees. On soft sand, it cannot rise at an angle greater than 12 degrees.

The rover crew is trying to find a way to get the Spirit out of the sand dune of the Troy crater.
On the right of the image, Paolo enters control commands into the computer.

Q: Is there a way to get out of this situation?
A: First of all, we, of course, just try not to fall into such situations. If we have to take risks, for example, to get to an interesting object from a scientific point of view, we always try to provide for departure routes. For example, when Opportunity tried to climb the foot of Cape Verde (alas, unsuccessfully), he had two such routes.

Q: How accurate are the clocks on the rovers, is it possible to correct their course, and if so, how does this happen?
A: For clarity, I will give an example. Opportunity watches for 9 years lost about 20 minutes. Usually we do not adjust the clock, as this may affect the maintenance of the rover of the magazine, but we can always calculate how much they are lost. To do this, we ask the rover to send a "biiiiiip" of a certain duration at a certain point in time. Then we listen to the program, and we determine when the sound is actually heard - or rather, we are more interested in when the sound ends, because we can skip the beginning of it. Since we know how long the signal takes to get to us from Mars, we can quite accurately determine the difference in the course of the clock.

Q: For obvious reasons, the Martian calendar is different from the Earth one. Tell us about the features of using the calendar on the rovers
A: The axis of rotation of Mars, like Earth, is tilted, so there are seasons. It takes about two Earth years to make one revolution around the Sun, so the seasons are about twice as long, but since the orbit of Mars is not an ideal circle, their duration is not necessarily the same. The Martian day is called Sol, and its duration is approximately 39 minutes longer than Earth's. We don't use Martian months or weeks, but we have Martian seconds, minutes, and hours. In general, our Martian calendar operates only with the number of Solov that have passed since the moment of landing. We even have several neologisms: Tosol (from today - today), Yestersol (from yesterday - yesterday), Morrowsol (from tomorrow - tomorrow), Soliday (from holiday - off).


Visual image of the ratio of Mars and Earth "months"

Q: What improvements in the process of controlling the rover would you like to see?
A: Soon we will be able to enable the Curiosity automatic navigation system, which will allow us to increase the distance of each movement. Currently, AutoNav analyzes only the type of surface (sand, dune, cobblestones, etc.) in order to make it easier for the rover to understand where it is safer for him to ride.

Q: Does NASA have projects of rovers that will monitor their technical condition, and, if necessary, print the necessary parts on the built-in 3D printer and carry out a self-repair?
A: I have not heard about this, and indeed it would have been difficult to deliver a 3d printer to Mars :-) It is much more efficient to make systems redundant. Curiosity has many devices in two copies - we are talking about computers, cameras, sensors, etc. If something happens to one of these tools, we can always use the second one. Despite the fact that we only have a set of wheels, in the event of a failure of one of the motors, we can transfer the wheel to a “neutral” so that we do not have to drag it, as in the case of Spirit.

Q: How many new lines of code are required to write a program for the next day?
A: For programming the rover, we use a special language, but it happens that only about 1000 lines are written per day. Some of the code can be reused, so we leave it on the rover, some - it is rewritten each time. Some more complex operations — for example, collecting and processing samples — may require thousands of lines of code.

The fact that we send every day is more like scripts, and usually contains a set of actions not for one Sol, but for several, most often for three Saul at once. In the first Sol, the most important activities are performed, and in the rest, basic scientific procedures are carried out. This is done to ensure that the rover does not lose a whole Saul in vain if, for some reason, we fail to transmit the data on time. This most often happens when DSN stations fail (some of the equipment is rather old), or due to bad weather. And once we did not manage to transfer commands, because on the way of a signal between the Earth and Mars an obstacle was formed - the Moon!


amazing photo of one of the antennas of the DSN complex in Canberra

Q: How high-level frameworks / operations are used: do programmers work directly with pointers, memory, etc. or they write the code declaratively, at the level of operations that need to be performed “move forward to ..”, “stop if ..”, “take a stone if it is green”, etc.
A: Great questions! Firstly, the language that we use supports multithreading, but we don’t have a typical infrastructure for multithreading, for example, synchronization is a very nontrivial task for us. We can query and verify some of the internal parameters of the rover:
if tilt > 10 deg then stop 
but we don’t have, for example, for, do, or while loops, since they can cause the system to loop. We can tell the rover to " move until you get to that place, " but at the same time we say " stop if you have driven more than 3 meters ahead ." We need to be sure that the rover will always respond to commands in a predetermined amount of time.

The movement of the device can be controlled at various levels. At the lowest level, we can say something like “ apply 5.7 volts to the drive of the left front wheel for 4.5 seconds ”; or " turn on the same motor until the wheel turns 14 degrees "; or " drive 1.3 meters ahead ." However, at the same time, we can work at a higher level, for example, ask the rover to get to a certain point (X, Y), avoiding obstacles, and measuring the level of wheel slip, oh, and still, while you do this, please do DAN measurements through every meter. We can also tell the rover to get, for example, to a certain rock, which we can see on certain image pixels. However, at the moment there is no possibility to say “go to that stone, and use MAHLI on it”, we do not have [1].

[1] [Paolo means that using any tools, such as a camera on a manipulator, is a very difficult task, requires a separate code and the rover is not able to do it on its own. So he will be able to get to the stone, but not to use his equipment]

Q: To program the movement to a small pebble and its elevation, it is necessary to have a huge accuracy in determining the coordinates. How is it achieved?
A: Alas, our ladle is too small to lift stones ;-)
If we need to move the rover with great accuracy, we use images obtained from NAVCAM cameras, and determine the distances to various objects and terrain, after which we decide which route will be most preferable. For example, we usually try to use as few steps and turns as possible, and we try to move as far as possible in a straight line, preferably along even stretches of terrain. Sometimes you have to be careful not to run into anything that may be of scientific value; sometimes you have to take gravel into account.

For extremely precise positioning, we use visual odometry [Visual odometry - VO]. When the rover is in motion, its computer calculates the location and direction (roll, pitch and, in fact, the direction of motion), but it does not know whether the wheels slip. VO uses stereo images taken via NAVCAM to measure the actual amount of movement, including slippage. This allows you to move the rover very carefully, sometimes with an accuracy of only a few centimeters! VO is implemented as software that runs on a rover, and it works rather slowly, so we try to use it only when it is really necessary.

Q: What engine regulators are used in the manipulator arm? Is normal PID control used there or are you using regulators on fuzzy logic or neural networks? Is it possible to reprogram the regulators remotely from the Earth? Is the change in the parameters of the engines during the operation somehow taken into account? I would like to know as much details as possible about the development and testing of low-level iron for the rover.
A: I am not sure that there is a published document on the engine management system. I will check one of the drivers wrote the code. In the manipulator arm, brushless motors with sensors are used to increase positioning accuracy. The engine management system is implemented on the FPGA, which is connected to the CPU. The CPU sends commands to the motion in the FPGA, which directly controls the manipulator. There are a huge number of customizable control system parameters, such as PID controller factors, but I’m not sure that we can remotely reprogram the FPGA. Speaking of PID controllers. At Opportunity, we tried to clean the mirror in the MiniTES, which was disabled by a dust storm in 2007. We reconfigured the PID controller of the mirror drive so as to obtain high-frequency vibrations and thereby shake off the sand, but the attempt, unfortunately, did not succeed. [ *]

[*] [Thanks to Karlson_rwa for clarifying the translation of this answer]


The "hand" of Curiosity at work

Q: How often do you use the autonomous navigation system "Curiosity", which gives the rover the opportunity to independently choose the path of movement without additional commands from the Earth? How safe is it? What equipment of the rover (except for the wheels, of course) is used to ensure autonomous movement? Does this system on Curiosity have any new features compared to a similar system that has proved its effectiveness on Spirit and Opportunity?
A: AutoNav can be used if we need to travel a little further than the distance that we can see with the help of cameras - usually these are distances of about 30-40 meters. We have not yet used this system on Curiosity, but when we start moving to Mount Sharpe, we will most likely use it almost every day.
At MER, we used it quite a bit on both rovers. I do not have exact statistics, but the percentage of its use was very large.

Q: Were there any bugs in the system that were especially memorable, which you can tell about (taking into account the NDA)? How long did it take to eliminate it?
A: With the exception of the Spirit anomaly on the 18th Sol , we found all the faults in the software rather quickly. However, correcting an error can take a considerable amount of time — not because it is difficult to fix it by itself, but because we need to make sure that the correction does not spoil anything else. Sometimes preparing a patch takes only a day or two, but testing it takes much, much longer.

Q: What do you think about the prospects of the Mars ARES mission? Is it difficult to control the rover? Why? And, in your opinion, will it be much harder to fly a Martian plane?
A: The control and level of autonomy of an aircraft is fundamentally different from that of a ground robot. For example, there may be situations where you have to act very quickly, while you control the rover, you would have more than enough time. JPL has several projects (all of them are still at the design stage), which are considering the use of autonomous aircraft for research. Of course, we also have helicopters, quadrocopters, and aerostats, but I am not sure how suitable such devices are for use on Mars.


Mars ARES, apparently the prototype

Q: I would like to see night shots of the sky, stars, planets. Why is this not?
A: Most recently, we took several pictures using the built-in backlight MAHLI, after which, on the same Sol, we sent cameras to the sky. In fact, night shooting is associated with some difficulties:

Do not forget that such actions (even if all this is very cool) consume energy and memory, but do not provide very much valuable information. These resources can be used to obtain more scientific data if we use them throughout the day. But I’m sure we’ll still have night shots, so be patient!


MAHLI calibration target, photographed using LED backlight (left), and a Martian stone in ultraviolet backlight (right)

Q: Where can I get a driving license to control the rover? Does this require a perfect understanding of the engineering part of the rover? How long have you been training on Earth to say to yourself one day “Now he will definitely listen to me”? Strongly worried before sending another batch of teams? What mistakes in the process of controlling the rover should beware first?
A: Actually, we do not have any “rights”, and we do not even pass any exams, either written or for driving. We try to teach each other, and check each other's work. If one of us thinks something is wrong, we either analyze the code of the on-board software or check the commands at the test site. Sometimes, if it seems to us that some actions are potentially dangerous, we simply decide not to perform them.

The reverse situation also happens - when drivers think that everything is in order, but other team members disagree. Then we have to come to some kind of general opinion about what actions can be potentially dangerous, and what - not. Even after 8 years of work and more than 15 kilometers that the rovers drove under my control on Mars, I'm still not 100% sure that everything will go as it should. You can't even imagine how many sleepless nights I have had in the last couple of years :-)

Q: What do you like most about your job?
A: Something new happens every day - new tasks, or new problems that need to be solved. Of course, some of my responsibilities are boring, but I never get bored, because every day gives me the opportunity to learn something!

Q: Do you happen to watch Space Brothers?
A: No.

Q: How realistic, in your opinion, is the process of NASA functioning?
A: Since I have not seen a single series, I really do not know. Sorry!

Q: Does the rover have any weapons such as a gun other than a laser? (to fight aliens or other robots)
A: No, of course! In general, if we find any forms of life, then we will try to study them and not shoot them!

Q: Which of the Three Laws of Robotics were incorporated into the Curiosity program? What is the amount of code responsible for these laws?
A: Since there are no people on Mars, we did not need the First Law. The second and third laws, in a certain sense, are indeed present in the rover software, but they are distributed over a huge number of lines of code. This is particularly true of the Third Self-Defense Act.

Q: Would you like to personally go to Mars?
A: YES !!! There are places on Mars for which I would give everything in the world. I even sometimes dream of getting to Mars.

Q: Do the locals help in avoiding difficult situations, bad roads and shifting sands?
A: Alas, the rover moves so slowly that even if we were stuck somewhere in the mud, conventional methods, such as swinging back and forth, would not help much. In addition, the soil on Mars is very different from the earth because of the difference in the amount of moisture, so that in general the road conditions on Earth are far from the same as on Mars. However, instead of [Aborigines], we have a group of geologists — soil mechanics experts — who help us solve the most difficult problems, such as the case when Spirit is stuck in the Troy crater.

Q: How did you get into NASA? Once all the approaches to your house were blocked by black jeeps, a pair of BlackHawks hung over the house, knocked on the door and said, “Will you go with us!”? Or was it somehow different?
A: Haha ;-) No, no, nothing like that! Many, many years ago, I came across a job ad in JPL. I sent my resume, was invited to an interview, and apparently they liked me because they took me to work. A few years later, when I worked at JPL for some time, they called me to work with MER, and then with MSL.

Q: In general, how do they get into NASA?
A: There is a link on the JPL website where you can view open vacancies and submit your resume. You can also familiarize yourself with information about different departments in order to understand which work you would be most interested in and directly contact one of the managers.

Q: If you could buy your own rover, what would you have managed, and what would you buy? Why?
A: If I could, I would buy Opportunity. It was the first rover I drove on Mars, and I still remember my first trip perfectly!


Paolo with rovers. To be honest, before I saw this picture, I was not fully aware of the size of Curiosity ...

Q: Imagine that the driver of the rover discovers something interesting in a photo sent from Curiosity a few minutes ago. Is it possible that he will run up to someone from the scientific team with the words: “Look! This is a SUPER stone! Come on, slow down here for a couple of days and study it properly ”? Or it is impossible, and the command of management of a mars rover and the experts analyzing the scientific data do not interfere with each other's areas of interest?
A: You can definitely send a letter to the public relations department of JPL and give them your suggestions or ask a question. As it is easy to imagine, they receive a huge number of such letters, so you may have to wait some time to get an answer.
[It seems this question he did not understand or he goes beyond what is permitted, - Zelenyikot]
[It is also possible that Paolo decided to answer the question in a slightly more abstract way - everyone can make a suggestion, but no one knows exactly what decision will be made in the end - SingerOfTheFall]

Q: Are there many competitors in the driver?
A: Yes, but I managed to get into this small team. The flip side of the medal is that in no other place in the world can I find such work :-)

Q: Is this your dream job?
A: Yes! In general, I love to drive, and many times went to travel around Europe and the United States. Every time I see a road, I start thinking about where it might lead. I spent many hours looking at places I could never get on Google Maps. And I also love the Martian landscapes, and even when I look at them through the cameras of the rovers, I feel as if I myself am standing there.



Many thanks to Zelenyikot for the opportunity to ask questions to Paolo, and to all those who suggested interesting and thoughtful questions.
And, of course, many thanks to Paolo himself, let us wish success both to him personally and to the entire Mars exploration program!

Source: https://habr.com/ru/post/171199/


All Articles