Pewnego dnia przychodzi do Ciebie szef i mówi, że od dzisiaj przestajesz testować aplikacje webowe i będziesz testował oprogramowanie wbudowane. Oczywiście nie byłoby w tym nic dramatycznego gdyby nie okazało się, że to oprogramowanie wbudowane w nanosatelity. Z pewnością w głowie testera pojawiają się pytania jak bardzo zapewnianie jakości w takim środowisku może się różnić od aplikacji czy systemów „naziemnych”.
Wprowadzę Cię w domenę kosmiczną na przykładzie oprogramowania pisanego na satelity, a konkretnie na czujnik słońca, który poleci na jednej z nich.
Zagadnienia, które się pojawią:
– wprowadzenie w działanie nanosatelitów
– podstawy systemów wbudowanych działających w przestrzeni kosmicznej
– środowisko kosmiczne i jego wpływ na oprogramowanie
– różnice w testowaniu satelity od testowania standardowych aplikacji oraz od testowania przemysłowego oprogramowania wbudowanego
– jak testować, co testować, narzędzia, typy testów, standardy
– jak wygląda piramida testów automatycznych
– ograniczenia w testowaniu
– kompetencje testera satelitów/systemów wbudowanych
– wyniki pracy oraz osobista retrospektywa
2. “Unexplored paths lead to undiscovered treasures”
― Constance Chuks Friday
„It's human nature to stretch, to go, to see, to understand. Exploration is
not a choice, really; it's an imperative.”
— Michael Collins
9. ► Sigfox
Globalizacja IoT– cały świat połączony– stacje naziemne, satelity, swój protokół komunikacji
► Spire
Monitorowanie transportu wodnego, prognozy pogody, system wczesnego ostrzegania
.
10. ► (dziś) Low orbit
► (w przyszłości) – misje deep space?
► Wysoki współczynnik wydajności do mocy
► COTS (commercially-off the-shelf)
► Krótkie misje
► Mówi się już o klastrach cubesatów (konstelacjach) – QB50
► CubeSat as a service – sieć oczu
"The average satellite up there today is a 486 PC running Windows 95," he jokes."[…] If you start to
treat satellites in much the same way [as smartphones], you can get rapidly improving satellites up
there really quickly."
11. Podstawowe elementy
► Struktura/szkielet
► Panele słoneczne
► Czujniki
► Baterie
Krytyczne podsystemy
► EPS (Electronic Power System)
► Moduł komunikacji – nadajnik, odbiornik (Comms)
► ADCS (Attitude Determination and Control System)
► PDM (Power Distrubution Module)
► On-Board Computer (OBC)
12. Określenie położenia:
► Star tracker
► GPS antena
► Detektor słońca
► Magentometr
► Żyroskop
Kontrola:
► Silnik
► Koła reakcyjne
► Drążek reakcyjny (magnetorquer)
► Kontrola systemu (ADCS) – np. algorytm TRIAD
17. ► AIL – Algorithm in the loop
► SIL – Software in the loop
► HIL – Hardware in the loop
18. ► Sprawdź czy EPS dostarcza napięcie do modułu OBC
► Sprawdź czy OBC ma zasilanie i czy odbiera komendy przez przewód startowy
► Zweryfikuj,że OBC transmituje (odpowiada) dane do modułu COMM
► Zweryfikuj,że OBC odbiera i zachowuje dane w pamięci od modułu komunikacyjnego COMM
► Zweryfikuj,że OBC ma dostęp do odczytu zapisanych danych w pamięć
► Zweryfikuj,że OBC może czytać, zapisywać i odsyłać dane pochodzące z czujników do modułu
COMM
► Zweryfikuj,że OBC wysyła komendy aktywacyjne do odpowiednich modułów (np. panele, antena)
nie wcześniej niż 30 minut po aktywacji przełącznika umieszczenia satelity na orbicie
► Zweryfikuj,że OBC aktywowało nadajniki RF nie wcześniej niż 30 minut po aktywacji przełącznika
umieszczenia satelity na orbicie
20. ► Budżet mocy
► Budżet połączenia (wysyłanie, odbieranie)
► Budżet masy
► ADCS
► C&DH
► Termiczno-próżniowe (gorące i zimne)
► Testy odporności na promieniowanie (sprzęt)
► Testy wibracyjne
► Testy obciążeniowe
► FDIR – (Fault detection, isolation and recovery) -> Smart-FDIR
21. Pass/fail criteria
► The pass criteria for resonance survey test is that lowest natural frequency of the CubeSat shall
be > 90 Hz.
► A common pass criteria for vibration test campaign is that the variation of natural frequencies
measured in the two resonance surveys before and after vibration test campaign shall be lower
than 5%.
22. Akcje
► Fault-avoidance
► Fault-tolerance
► Fault-removal
► Fault-forecasting
Mechanizmy
► Ograniczenie dostępu do krytycznych i niezaimplementowanych obszarów
► Timeout na szynie danych podczas dostępu I/O do urządzeń
► Obsługa typów błędu (kody błędy kategoryzujące błędy)
► Sprawdzanie cyklicznych zależności
► Głosowanie co do kopii pamięci danych
► Kontrola parzystości adresów, danych i szyny
► Watchdog
24. Python
► Bitstring
► Pyserial
► Adafruit GPIO FT232H
► Unittest + ddt
Sun Sensor
SPI
UART
PC
FTDI
FT2322H
FT232R
USB
USB
USB
25. ► Procesor przestaje odpowiadać w przypadkowych sytuacjach (zawiesza się)
► Jesteśmy na granicy pamięci
???
Wspólna pamięć kodu i danych
26. ► Odbierane wartości nie zgadzają się z oczekiwanymi
???
Kolejność bajtów (endianness)
Ułożenie danych
27. ► Wysyłam poprawną ramkę, suma kontrolna się nie zgadza
???
Implementacja CRC pod procesor
28. ► A ja mówię, mówię, mówię …@$$@
► … i on też mówi, mówi, mówi
???
Miszcz jest tylko jeden
29.
30. ► We can do it!
► Architektura procesorów
► Sposób przechowywania danych w pamięci, adresowanie i kolejność
► Sumy kontrolne
► Poczekaj na mnie! Dochodzę!
► Brak specjalistycznych narzędzi != brak testów
► Gdy pomysłów brak …
31.
32. Space product assurance ECSS‐Q‐ST‐80C – dokument wysokopoziomowy
► zapewnianie jakości procesu
► zapewnianie jakości produktu
Space engineering - Software ECSS‐E‐ST‐40C (software testing)
► Software
management/requirements/design/validation/delivery/verification/operation/maintenance
proces
(wzorowane na ISO/IEC-12207)
Space eningeering –Testing ECSS‐E‐ST‐10‐03C
(Integration,Alignment, Leak/proof pressure, Mechanical [Static load test, sinusoidal,
acoustic, random, modal survey, shock], EMC conducted, EMC radiated/auto‐compatibility/RF, Thermal
(TB/TV test), Functional and performance test, Final preparation)
33. Co dalej?
► Testy degradacji matryc
► Niezawodny StarTracker
► Obserwacja ziemi
Cubesats:
► Oprogramowanie i przetestowanie komputera pokładowego?
► Środowisko programistyczne?
► Narzędzia do testowania? Framework testów funkcjonalnych?
(… to be continued …)
Typically, the 1U, 2U, and 3U CubeSats’ maximum power budgets range from 1 to 2.5 Watts, 2 to 5 Watts, and 7 to 20 Watts, respectively [10].
The results of the deployment system testing are discussed, including the design and realization of the test-bed, the mechanical stress given to the solar cells by the deployment accelerations and the overall system performance. The maximum power delivered by the system is about 50.4 W BOL, greatly enhancing the present Cubesat solar array performance.
Dla porównania:
The International Space Station has solar panels comparable in span to the size of a football pitch in order to generate an impressive 92 kW of power – the largest solar arrays in orbit to date
„Under this vision and making use of intelligence in the supporting network infrastructure, things will be able to autonomously manage their transportation, implement fully automated processes and thus optimise logistics; they have to be able to harvest the energy they need; they will configure themselves when exposed to a new environment, and show an “intelligent/cognitive” behaviour when faced with other things and deal seamlessly with unforeseen circumstances; and, finally, they might manage their own disassembly and recycling, helping to preserve the environment, at the end of their lifecycle.”
http://www.internet-of-things-research.eu/pdf/IoT_Cluster_Strategic_Research_Agenda_2011.pdf
Spire –
The company’s main focus is on the oceans (which are two-thirds of the Earth’s surface, after all), where it is developing applications for monitoring illegal fishing, high-seas piracy, and accidents as well as standard asset tracking. Since each individual satellite has a limited lifespan but is cheap and relatively easy to replace, the networks can be updated frequently. In tandem this combination of global coverage and updated technology provides the company and it's subscribers with a unique birds-eye view of the global economy in real-time motion.
Goście zaczynali od ArduSat – od eksperymentów a Arduino in space !!!! To jest punkt zaczepienia do zrobienia przejścia – oni mogli to i my możemy i zaczelismy … czunik slonca.
http://www.forbes.com/sites/robertvamosi/2014/11/11/big-data-is-stopping-maritime-pirates-from-space/
http://spacenews.com/spire-raises-40-million-for-weather-satellite-constellation/
SIGFOX
What is SIGFOX
SIGFOX provides a cellular style network operator that provides a tailor-made solution for low-throughput Internet of Things and M2M applications.
For a host of applications from smart meters to control nodes that need connectivity over long ranges the only option until recently has been to use a cellular connection. This option has several disadvantages because cellular phone systems are focussed on voice and high data rates. They are not suited to low data rate connections as the radio interface is complex and this adds cost and power consumption - too much for most M2M / IoT applications.
The SIGFOX network is aimed at providing connectivity for a variety of applications and users. It is not aimed at one area, but at being for general use by a variety of different types of users. The SIGFOX network performance is characterised by the following:
Up to 140 messages per object per day
Payload size for each message is 12 bytes
Wireless throughput up to 100 bits per second
SIGFOX has selected to integrate the ‘SmartLNB’, an innovative low bitrate, low-power satellite technology developed by Eutelsat into its infrastructure, as one of the solutions to enable base stations to exchange data. As a satellite-based device, the ‘SmartLNB’ also offers the benefits of simple installation, guaranteed bandwidth and ubiquitous coverage.
Algorithm in the loop (AIL). The algorithms of interest are added to the pure numerical simulation. They are not yet written in the formal language that will be used on the final hardware and are not run on it. AIL is mainly used at design stages with the objective of testing the algorithms
Software in the loop (SIL). Algorithms are translated into the final programming language, but they run on ground hardware. The software carries out all the required functions, but in general its performance is different with respect to running it on a flight unit architecture (e.g. PC vs embedded-PC)
Hardware in the loop (HIL). Real hardware is included in the simulation loop, and consists typically of sensors and/or actuators. HIL is a hybrid software-hardware simulation architecture, in which the hardware part can vary from a few pieces to the fully integrated system. HIL technique is particularly useful for the verification of all those elements that operate in special environments and conditions which are difficult to reproduce in a laboratory. It may help to detect unexpected behaviors and/or failures arising from the integration of the component in the global system.
SMART-FDIR was a project coordinated by Alenia Spazio (ALS), with Politecnico di Milano (POLIMI) acting as subcontractor. It started in June 2002 and ended in June 2003. The main goal of the study was to investigate the added value of Artificial Intelligence (AI) technology in the implementation of a satellite on-board FDIR software prototype-demonstrator with real-time performance, robustness architecture, auto-learning and decision making capabilities.After the analyses of the state of the art in the use of AI for FDIR developments, the SMART-FDIR project developed the prototype demonstrator in three iterations, implementing successively the fault detection, the fault identification and the fault isolation and recovery.
Fault-avoidance—how to prevent, by design, the occurrence of a fault.• Fault-tolerance—how to provide, by redundancy, thespecified service in spite of faults occurring.• Fault-removal—how to remove the presence of designfaults.• Fault-forecasting—how to estimate, by evaluation, thepresence, creation and consequences of errors.
SMART-FDIR was a project coordinated by Alenia Spazio (ALS), with Politecnico di Milano (POLIMI) acting as subcontractor. It started in June 2002 and ended in June 2003. The main goal of the study was to investigate the added value of Artificial Intelligence (AI) technology in the implementation of a satellite on-board FDIR software prototype-demonstrator with real-time performance, robustness architecture, auto-learning and decision making capabilities.After the analyses of the state of the art in the use of AI for FDIR developments, the SMART-FDIR project developed the prototype demonstrator in three iterations, implementing successively the fault detection, the fault identification and the fault isolation and recovery.
Fault-avoidance—how to prevent, by design, the occurrence of a fault.• Fault-tolerance—how to provide, by redundancy, thespecified service in spite of faults occurring.• Fault-removal—how to remove the presence of designfaults.• Fault-forecasting—how to estimate, by evaluation, thepresence, creation and consequences of errors.
Fault Detection and IsolationMechanismsAs mentioned above the first step in the process of keepingthe application software running is to detect faults thatoccur in the processing function. Since faults are detected aserrors, the common term used is error detection. Some ofthe error detection mechanisms used by current implementations are• Access to protected or unimplemented areas.• Bus time out when accessing I/O devices.• Error correcting codes in memory that detect correctableand uncorrectable error.• Cyclic redundancy check and/or check summing of vitalmemory areas.• Voting on multiple copies of vital memory data.• Parity on address, data and control buses.• Watchdog.• Processor under-voltage detector.• Built-in self-tests.When errors are detected they can sometimes be mitigated immediately, as is the case of reading data from amemory that is protected by an error detection and correction (EDAC) device. An EDAC that detects a correctableerror can still forward correct data to the processor. Notehowever that this does not mean that the fault in thememory is corrected. By reading the same address again theerror will repeat.If errors cannot be immediately corrected then some kindof alarm must be raised to signal that proper operation canno longer be provided. It is sometimes necessary to temporarily block the output from the processing function whenan error occurs to prevent the error from producingunwanted output from the system.
Troszkę mięska.
Wspólna przestrzeń adresowa dla programu i danych
- Jeżeli Twoje urządzenie zawiesza się w przypadkowych momentach, a szczególnie przy zapisie, weź pod uwagę ze możesz napisywac swój program
Sposób przechowywania danych w pamięci, adresowanie i kolejność
może powodować złą interpretację danych - Kolejność bajtów (Big Endian, Little Endian)
Memory alignment – zła interpretacja danych, napisywanie danych
Overflow, underflow
Synch()
kazde urządzenie ma swoją prędkość i musimy o tym pamiętać aby ją dostrajać do możliwości i do drugiego urządzenia
Przyzwyczajenia do wygodnego IDE
nie wykryje np. literówki w fladze przerwania (wiele godzin poszukiwań błędu)
Sumy kontrolne
- Trzeba pamiętać, że pomio dostępności algorytmów, sposób wyliczenia będzie zalezał od implementacji w danym procesorze – mi to zajęło tydzień ;)
Poczekaj na mnie! Dochodzę!
Ciężko siękomunikowac jeżeli mówimy naraz, albo jeżęli nie poczekam z nadawaniem az nadawca skończy ;) problemy z komunikacją to często wina różnych prędkości (taktowania)
Brak specjalistycznych narzędzi != brak testów
- Pomimo tego, że nie mieliśmy fachowego stanowiska do testów (modelu słónca na orbicie ;)) nie zablokowało nas aby sprawdzić wartości kątów laserem, szczególnie skrajnych wartości – co umozliwilo wykrycie krytycznego błędu zgłoszonego do zespołu nano-avionics (jeszcze nad tym siedza)
Przyzwyczajenia do wygodnego IDE
- Nie wszystkie IDE są tak dobre jak te których do tej pory uzywalismy, nas IDE nie uchroniło przed literówką w fladze która ustawialiśmy przerwanie – oczywiście nie działało i nie wiedzieliśmy przez kilka godzin dlaczego
Gdy pomysłów brak …
- Jeżeli statyczna analiza kodu nie pomaga, testy funkcjonalne nie dają odpowiedz, debug printem nie wystarcza … pozostaje oscyloskop, aby zobacyzc na niskim poziomie „co tam się dzieje”
Requirements in thisStandard are defined in terms of what shall be accomplished, rather than in terms of how to organizeand perform the necessary work. This allows existing organizational structures and methods to beapplied where they are effective, and for the structures and methods to evolve as necessary withoutrewriting the standards.
Testing standard:
This standard addresses the requirements for performing verification by testingof space segment elements and space segment equipment on ground prior tolaunch. The document is applicable for tests performed on qualification models,flight models (tested at acceptance level) and protoflight models.
Not-included: Testing of stand‐alone software,NOTE For verification of flight or ground software,ECSS‐E‐ST‐40 and ECSS‐Q‐ST‐80 apply.
Np.. Software Validation plan
8.2.2.5 Integrated System Test (IST) The Integrated System Test is the main test performed at system level, aimed to check the functional capabilities of the whole Satellite fully integrated and in final flight configuration. Main objectives of IST will be: - verify correct functionality of all the subsystems in the Satellite environment - verify inter-function between different equipments and subsystems and correct exchange of data - simulate the mission profile, verifying the Satellite performance in the different mission phases and with different operative mode of Satellite and Payload - in case of not nominal event (opportunely simulated) verify the Satellite capabilities to recovery the mission, using also redundant configurations. Nominally, the IST will be performed 2 times during the environmental test campaign. The first time after completion of the Satellite integration (payload included) and before the environmental test campaign. The second time at the end of the environmental test campaign; immediately before the launch campaign.
This is achieved through the Systems Engineering Management Plan (SEMP), which documents how the technical and engineering activities are to becarried out in a fully integrated manner. The SEMP generally consists of ten sections, as illustrated in Table 7.2. Itsobjective is to define the approaches, procedures, resources,organizational structures, levels of responsibilities, andcommensurate levels of authority used to address all aspectsof each of the life cycles of the project.
Testing of stand‐alone software,NOTE For verification of flight or ground software,ECSS‐E‐ST‐40 and ECSS‐Q‐ST‐80 apply.