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
2016-04-11 2
Człowiek odkrywca
3. Podstawowe elementy
Struktura/szkielet
Panele słoneczne
Czujniki
Baterie
Krytyczne podsystemy
EPS (Electronic Power System)
PDM (Power Distrubution Module)
Moduł komunikacji – nadajnik, odbiornik (Comms)
ADCS (Attitude Determination and Control System)
On-Board Computer (OBC)
2016-04-11 3
Cubesat
4. Niska orbita – LEO
Wysoki współczynnik wydajności do mocy
Dostępność - COTS (commercially-off the-shelf)
Krótkie misje
Mniejsze ryzyko – większe możliwości
QB50 - konstelacja
CubeSat as a service – sieć oczu
2016-04-11 4
Charakterystyka cubesatów
10. Sigfox
Globalizacja IoT – cały świat połączony – stacje naziemne,
satelity, swój protokół komunikacji
Spire
Monitorowanie transportu wodnego, prognozy pogody,
system wczesnego ostrzegania
2016-04-11 10
Kosmobiznes – sieć oczu
23. Wibracyjne
Różnica częstotliwości drgań własnych mierzona w dwóch
próbach rezonansowych przed i po teście wibracyjnym
powinna być mniejsza niż 5%.
OBC
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
Termiczne
Test powinien przejść jeżeli nie ma cieplnego uszczerbku
w strukturze po wykonanej próbie termicznej oraz gdy
sumaryczny spadek masy jest mniejszy niż 1%.
2016-04-11 23
Przykładowe kryteria akceptacyjne
24. Budżet mocy
Budżet połączenia (wysyłanie, odbieranie)
Budżet masy
Termiczno-próżniowe (gorące i zimne)
Testy odporności na promieniowanie (sprzęt)
Testy wibracyjne
Testy obciążeniowe
2016-04-11 24
Inne rodzaje testów
27. 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
2016-04-11 27
Zabezpieczenia - FDIR
28. Procesor przestaje odpowiadać w przypadkowych sytuacjach
(zawiesza się)
Jesteśmy na granicy pamięci
???
Wspólna pamięć kodu
i danych
2016-04-11 30
Przygoda #1
29. Odbierane wartości nie zgadzają się z oczekiwanymi
???
Kolejność bajtów
(endianness)
Ułożenie danych
2016-04-11 31
Przygoda #2
30. Wysyłam poprawną ramkę, suma kontrolna się nie
zgadza
???
Implementacja CRC
pod procesor
2016-04-11 32
Przygoda #3
31. A ja mówię, mówię, mówię …@$$@
… i on też mówi, mówi, mówi
???
Obey your master
Master - Slave
2016-04-11 33
Przygoda #4
33. Architektura procesorów
Sposób przechowywania danych w pamięci, adresowanie
i kolejność
Sumy kontrolne
Nie przerywaj kiedy mówię
Brak specjalistycznych narzędzi != brak testów
Gdy pomysłów brak …
2016-04-11 35
Lessons Learnt
Dzisiaj niska, ale może w przyszłości deep space?
Male ryzyko – mała cena wystrzału i produkcji powoduje, że możemy wysyłać ich wiele naraz aby realizowały, jedną, różne misje
Znowu prawo Moora porównanie do smartfonów
"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."
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
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.
Przykład złożonego zagadnienia które składa się z różnego rodzaju czujników – może być realizowane na różne sposoby oraz jest złożone obliczeniowo.
Jak to przetetowac?
Mamy interfejsy, mamy ramki, CRC itp..
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.
1. Command and Data HandlingTwo types of tests were performed to verify the CDHS: interface tests and functional system tests. The purpose of the interface tests was to quickly verify the data links between various subsystems. 5 Software The on-board software for Delfi-C3 has been developed in a late phase of the project. The two main reasons for this were the lack of manpower with computer engineering skills and that for part of the software development hardware was needed first, while some deadlines of the hardware subsystems were not based on this knowledge. Software development is an iterative process were coding, testing, debugging and verification is done at a relative high frequency and many iterations cycles. One of the largest challenges is to verify the performance of other parts of the Command and Data Handling Subsystem (CDHS) continuously when one is focussing on a problem. It occurred that a potential fix for a CDHS related problem was the cause for new problems elsewhere. Therefore version management and system tests with short endurance are very important tools in the last phase of development. Two types of tests were performed to verify the CDHS: interface tests and functional system tests. The purpose of the interface tests was to quickly verify the data links between various subsystems. The CDHS architecture of Delfi-C3 is redundant with a the nominal CDHS system with I2C as data protocol managed by the On-Board Computer (OBC mode) and a back-up system based on tonedialling and decentralized control by the subsystem microcontrollers (OBM mode). The functional tests aimed at the activity flows within the operational modes of the satellite (idle, deployment, science and transponder mode). All CDHS interface and functional tested were passed successfully before the launch of Delfi-C3 , but the enormous time pressure has caused lack of some documentation and rushing of some of the tests. For future projects, more time should be scheduled to perform these tests properly.
Acceptance które tak napradę jest bardziej System Testing- Vibration Test
Thermal Vacuum Test
Nazywam je akceptacyjnymi ponieważ na każdym szczeblu/elemencie/module są nadane konkretne kryteria które muszą być spełnione aby iść dalej. On system level the following tests were done: Sine and random vibration, thermal vacuum, radio communication (inclusive transponder function), deployment of antennae and solar arrays, payload performance and during the whole program several health and functional performance checks.
Zweryfikuj, że OBC ma dostęp do odczytu zapisanych danych w pamięć
FDIR – (Fault detection, isolation and recovery) -> Smart-FDIR
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.
WE CAN DO IT!
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”
Tak naprawdę lessons learnt jest znacznie więcej które widzę po czasie np.
Brak systematycznego code review, zmiana wymagań w trakcie (brak aktualnej dokumentacji)