Projekt

Ogólne

Profil

  1. Wstęp (mam wątpliwość czy wstęp w ogóle robić, gdyż aby zrobić go dobrze trzeba by było jeszcze mocniej wniknąć w temat. Nie wiem czy jest sen robić to tak pobieżnie. Właściwie to wykład powinien być wstępem - motywacją. Taki wstęp na pewno powinien znaleźć się w artykule.)
    • Motywacja do zajmowania się specyfikacją systemów robotycznych. Co wyróżnia system robotyczny z ogólnej grupy systemów informatycznych.
    • krótki opis DSL -- odwołanie do przykładów takich jak RobotML, BRICKS, SmartSoft, aby pokazać, że podobne podejście ma zastosowanie w praktyce. Pokazanie kolejnych warstw DSL - metamodel i model (zwykle w formie graficznej UML), mapowanie na komponenty i/lub generacja kodu.
  2. Opis agenta upostaciowionego za pomocą nowej notacji -- ten sam opis co w artykule, lecz w języku polskim i bez opisu akcji elementarnej.
  3. Przykładowy opis systemu za pomocą nowej notacji -- sterownik robota IRp-6 na podstawie mojej pracy magisterskiej (ten sam opis lecz nowa notacja)
  4. Opis zadań projektowych
    • Specyfikacja robota miniRyś -- podejście bazujące na stworzeniu specyfikacji na podstawie już istniejącego komponentowego opisu implementacji oraz schematach struktury warstwy sprzętowej. Studenci powinni korzystać wprost z prac inżynierskich Daniela Giełdowskiego oraz Macieja Bogusza (dostępne online)
    • Specyfikacja robota Bombel -- podejście bazujące na stworzeniu specyfikacji na podstawie prototypu wprowadzającego ograniczenia warstwy sprzętowej. Studenci powinni korzystać z wykładu z przedmiotu ANRO
    • Co powinna zawierać specyfikacja:
      • Specyfikacja wymagań: przypadki użycia
      • Specyfikacja struktury: podział systemów na agenty, wydzielenie podsystemów i buforów komunikacyjnych
      • Specyfikacja zachowania: W przypadku robota miniRyś specyfikacja zachowania powinna opisywać sposób działania regulatorów kąta oraz modułu lokalizacji. W przypadku robota Bombel specyfikacja zachowania powinna zawierać opis sterowania pozycyjnego (prosta i odwrotna kinematyka) oraz opis działania aplikacji, której celem jest zmiana pozycji końcówki manipulacyjnej z punktu A do punktu B w przestrzeni konfiguracyjnej oraz w przestrzeni operacyjnej.
      • Generalna zasada jest taka, że specyfikacja powinna być zgodna z dokumentacją przedstawioną w pracach inżynierskich oraz wykładzie. Jeśli opracowania te nie precyzują pewnych aspektów działania robotów, studenci mogą sami proponować rozwiązania. W takiej sytuacji powinni uzasadnić swoje decyzje projektowe.

Uwagi do notacji:
kanał komunikacyjny. Jest potrzeba mówienia ogólnie o kanale komunikacyjnym ca(a_ui,a_robot), a nie tylko poprzez wskazanie konkretnych portów ca(a_ui.sc_0.bo_1,a_robot.sc_0.bo_1)

Uwagi techniczne do EA

Jak robić strzałki na portach

  • tworzymy pakiet z elementami pomocniczymi
  • w tym pakiecie dodajemy diagram bdd
  • dodajemy trzy nowe bloki - Block1, Block2, Block3
  • do każdego bloku dodajemy FlowProperty
  • klikamy FlowProperty w każdym z bloków i wybieramy w opcjach (porty_strzalki.png) in/out/inout
  • w drugim pakiecie z naszym modelem tworzymy diagram ibd
  • tworzymy w nim Property i ,,przeciągamy'' do niego Block1 z drzewa elementów (po lewej stronie)
  • W okienku które się pojawia wybieramy ,,Drop as: port''
  • Aby w naszym nie był podpisany z wykorzystaniem nazwy np. Block1, musimy w pakiecie pomocniczym usunąć nazwy bloków

Generacja pliku PDF

  • każdy diagram z EA można eksportować do PDF-a - Print -> Print to PDF
  • jeśli diagram nie mieści się na stronie A4 to należy zmienić rozmiar strony. Rozmiar zmienia się per diagram a nie per projekt.
  • wygenerowane diagramy mają pewne wady. Jak sobie z nimi radzić:
    - tekst wychodzi poza obramowanie bloku - z poziomu EA należy zwiększyć szerokość / wysokość bloku
    - diagram nie posiada liter ,,i'' - należy ponownie wygenerować diagram
    - tekst obramowania diagramu zawierający nazwę typu diagramu, pakiet oraz nazwę diagramu nie mieści się w ramce - patrz edycja Inkscape
    - obramowanie diagramu jest zdecydowanie za duże - patrz Inkscape
    - wielkość kartki nie jest przycięta do rozmiaru diagramu - patrz Inkscape
Inkscape:
  • Aby edytować diagram należy zainstalować program Inkscape.
  • Otwieramy diagram i w Ustawieniach importu zaznaczamy ,,Poppler/Cairo import'' -- import odpowiednich czcionek.
  • Klikamy prawym przyciskiem myszy na diagram i wybieramy ,,Rozdziel grupę''.
  • Od tego momentu każdy element diagramu możemy edytować oddzielnie. W szczególności możemy wydłużyć pasek z nazwą diagramu oraz odpowiednio zmniejszyć rozmiar obramowania diagramu.
  • Aby przyciąć kartkę do wielkości obramowania diagramu klikamy Ctrl+Shift+D, wybieramy ,,Dopasuj stronę do zawartości..." a następnie ,,Dopasuj stronę do rysunku lub zaznaczenia''

Strzałki <<flow>> oraz typy przesyłanych danych

  • Strzałki <<flow>> przerywane można tworzyć między innymi między Blokami, Elementami typu Property lub między Portami.
  • Klikamy na Element startowy, w lewym górnym rogu elementu pojawia się strzałka skierowana do góry, klikamy tę strzałkę i przeciągamy ją do elementu docelowego.
  • Po upuszczeniu strzałki pojawia się okno dialogowe z możliwością wyboru typu asocjacji - wybieramy Information Flow.
  • Pojawia się okno dialogowe ,,Information Items Conveyed''. W tym oknie wybieramy Blok, który definiuje typ danych przesyłanych w stworzonym połączeniu. Ten Blok musimy wcześniej samodzielnie zdefiniować. Możemy nadać mu też pola określające pola struktury danych. Możemy też nie wybierać żadnego Bloku. Wtedy nie zdefiniujemy przesyłanego typu danych.
  • Asocjacji typu ItemFlow możemy nadać nazwę. W tym celu dwukrotnie klikamy na przerywaną strzałkę. W oknie dialogowym ItemFlow Properties nadajemy nazwę.
  • W tym samym oknie w zakładce General Settings możemy wybrać kierunek (Direction) strzałki.

Blok <<dataType>>

  • Tworzymy oddzielny pakiet ,,Data Types''
  • Tworzymy diagram bdd* Tworzymy Blok* Klikamy 2 razy na Blok i w polu Stereotype wpisujemy ,,dataType''
  • Klikamy prawym przyciskiem myszy na Blok, wybieramy Features->Attributes
  • W okienku, które pojawia się niżej wybieramy zakładkę ,,Attriutes'' i dodajemy w niej pola.
  • Możemy ustalić typ (Type) pola. Może być to typ prosty lub złożony. Aby dodać typ złożony należy najpierw utworzyć odpowiedni Blok <<dataType>>
  • W zakładce Scope możemy wybrać między innymi ,,Public" albo ,,Private''. Pojawi się wtedy odpowiednio znak ,,+'' lub ,,-'' po lewej stronie atrybutu w Bloku.
  • Aby wyświetlić atrybuty należy kliknąć prawym przyciskiem myszy na Blok i wybrać Compartment Visibility... Pojawia się okienko dialogowe. W polu Attribute Visibility zaznaczamy wszystkie cztery okienka (albo te które uważamy za potrzebne)

porty_strzalki.png (167 KB) Maciej Wegierek, 2020-01-11 14:18