README 3.91 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
Το bip_exec_for_deliverable περιέχει το παράδειγμα για το imageDetection και το toy master.

Παρακάτω περιγράφεται η διαδικασία που ακολουθήθηκε για την δημιουργία του τρέχοντος κατάλογου,
ο οποίος αποτελείται από τα εξής αρχεία:

    1. bip_example : Φάκελος του παραδείγματος, με την δυναμική βιβλιοθήκη,το modelDescription.xml,
    το πρόγραμμα Inference.py (το οποίο χρησιμοποιείται από το bip για το inference), το yolo νευρωνικό
    και τα σήματα / frames. Αυτός ο φάκελος ιδανικά μπορεί να γίνει zip και να μετατραπεί σε .fmu.

    2. includes & src, ο πηγαίος κώδικας του toy master

    3. create_master.sh το script που τρέχει για να κάνει compile τον toy master με τη δυναμική
    βιβλιοθήκη και να παραχθεί το εκτελέσιμο. (για να τρέξει πρέπει να ανανεωθούν τα paths που περιέχει)

    4. master  το εκτελέσιμο που παράγεται

    5. log_for_35_sim_steps.txt τα αποτελέσματα της εκτέλεσης του master και το παράδειγμα imageDetection.



Για την παραγώγη της δυναμικής βιβλιοθήκης του παραδείγματος εκτελέστηκαν οι παρακάτω εντολές που
εμπεριέχονται και στο "run.sh" το οποίο κάνει compile το bip engine και όλα τα παραδείγματα:

g++ -fPIC Deploy/Deploy.cpp learn/src/learn/* ../ext-cpp/utilities.cpp -I learn/include  
-I ../ext-cpp/  -I $BIP2_ENGINE_GENERIC_DIR -I $BIP2_ENGINE_SPECIFIC_DIR  -shared -o l
ibProject.so -L $BIP_PATH/distribution/build/bip-full/BIP-reference-engine-*/lib/static -lengine

Αφού παραχθεί το libProject.so του παραδείγματος τότε εκτελούμε το script "create_master.sh" 
που βρίσκεται στο examples/master_example (στο project bip_fmu) με την παρακάτω εντολή:

./create_master.sh ../SpeedControlModule/modelDetection/imageDetection/ > log_for_35_sim_steps.txt

Το script δέχεται ως όρισμα το path που περιέχει το so και τα απαραίτητα αρχεία. Πιο συγκεκριμένα:

1. Δημιουργεί τον φάκελο bip_example
2. Δημιουργεί τον φάκελο bip_example/binaries
3. Δημιουργεί τον φάκελο bip_example/binaries/linux64
4. Δημιουργεί τον φάκελο bip_example/resources
5. Αντιγραφή του libProject.so στον φάκελο bip_example/binaries/linux64
6. Αντιγραφή του φακέλου Signs στο bip_example/resources
7. Αντιγραφή του φακέλου ext-cpp στο bip_example/resources
8. Αντιγραφή του modelDescription.xml στο bip_example (υπάρχει ένα στοιχειώδης modelDescription.xml στο 
project bip_fmu στον φάκελο examples/bip_example/modelDescription.xml)
9. Μετονομασία του libProject.so σε bip_example.so για να είναι συμβατός ο φάκελος bip_example με FMU checkers
10. Μεταγλώττιση του master (src/DEPLOY_TEMPLATE.cpp + includes) με τη δυναμική βιβλιοθήκη bip_example.so
11. Εκτέλεση του master


TODO:

1. Θα πρέπει να ξαναδούμε το XML ώστε να είναι συμβατό με το μοντέλο (π.χ. μεταβλήτη time αφαιρέθηκε, μεταβλητή zero)
2. Θα πρέπει να γίνει το bip_example folder, zip και .fmu ώστε να γίνει fmu check validation.