10/09/18 OGRS 2018 Lugano 2
BackgroundBackground
● Geo for All Lab since 2014
● Lab of the month in August 2016
● OSGeo charter member since 2014
● Contributions to QGIS, OSGeoLive, RTKLib,
p.mapper, GNU Gama
● Using and teaching QGIS, GRASS, PostGIS,
MapServer, OpenLayers, Proj, GDAL, ...
● Open source projects maintained:
Ulyxes, GeoEasy and QGIS plugins
http://github.com/zsiki
10/09/18 OGRS 2018 Lugano 3
UlyxesUlyxes
● Started in 2008 (Tcl and C++)
● Changed to Python in 2012
● Based on PySerial, GNU Gama, OpenCV, etc
● 3 in 1 like an instant coffee
coffee: research and coding
sugar: industrial applications
milk: educational usage
● Parts:
coffee: Ulyxes PyAPI,
sugar: PyApps,
milk: server scripts
10/09/18 OGRS 2018 Lugano 4
Repo on GitHubRepo on GitHub
First commit on September 6, 2014
10/09/18 OGRS 2018 Lugano 5
Sensor object modelSensor object model
Interface Measure unit
Writer
(optional)
Physical
device
Data
Serial/USB/
Bluetooth/i2c
file (CSV, XML),
SQLite database,
http (to RDBMS)
Logical device
●Set up messages
●Parsing answers
Reader
(optional)
file (CSV, XML),
SQLite database,
http (from RDBMS)
10/09/18 OGRS 2018 Lugano 6
Detailed object modelDetailed object model (PyAPI 2018 Aug)
Iface
SerialIface LocalIface
Instrument
TotalStation GNSS
MeasureUnit
NmeaGnss
Leica
WebCam
USBIfaceLeicaDna
Trimble5500
Writer
FileWriterHTTPWriterImageWriter
VideoWriter
Video
DigitalLevel
CSVWriter
VideoIface
Logging
TCA1800 TPS1200
TCRA1100
~5700 line of code
~1200 line comment
~50 module/class
Planned
BluetoothIface
Not finished
Ready
Used Python
modules
serial
cv2/cv
pyusb
I2CIfaceBMP180Unit
smbus
BMP180 LSM9DS0
LSM9DS0Unit
Angle
Reader
Independent
classes
WebMetUnit
Base class
Key
WebMetWifiCollector
WebIface GamaIface
CSVWriter EchoWriter GeoWriterSqLiteWriterLSM9DS0
Wifi
10/09/18 OGRS 2018 Lugano 7
UML sequence diagramUML sequence diagram
Sensor Measure unit Interface Writer
Logical message
Sensor dependent
message
Send message
Device dependent
answer from sensor
Answer
Processed
data
Processed
data
physical
sensor
e.g. GetMeasure
e.g. %R1Q,2108:15000,0
e.g. %R1P,0,0:0,0.9973260431,1.613443448,1.3581
e.g. {‘hz’:0.9973260431,‘v’:1.613443448,‘distance’:1.3581}
file,
database,
http, etc.
10/09/18 OGRS 2018 Lugano 8
First applicationFirst application
10/09/18 OGRS 2018 Lugano 9
10/09/18 OGRS 2018 Lugano 11
10/09/18 OGRS 2018 Lugano 12
Educational usageEducational usage
Automation for surveying (Msc subject)
Train the
trainers
10/09/18 OGRS 2018 Lugano 13
10/09/18 OGRS 2018 Lugano 14
Let’s ride togetherLet’s ride together
Zoltán Siki, Bence Takács, Csaba Égető
siki.zoltan@epito.bme.hu Takacs.bence@epito.bme.hu, egeto.csaba@epito.bme.hu

Ulyxes

  • 2.
    10/09/18 OGRS 2018Lugano 2 BackgroundBackground ● Geo for All Lab since 2014 ● Lab of the month in August 2016 ● OSGeo charter member since 2014 ● Contributions to QGIS, OSGeoLive, RTKLib, p.mapper, GNU Gama ● Using and teaching QGIS, GRASS, PostGIS, MapServer, OpenLayers, Proj, GDAL, ... ● Open source projects maintained: Ulyxes, GeoEasy and QGIS plugins http://github.com/zsiki
  • 3.
    10/09/18 OGRS 2018Lugano 3 UlyxesUlyxes ● Started in 2008 (Tcl and C++) ● Changed to Python in 2012 ● Based on PySerial, GNU Gama, OpenCV, etc ● 3 in 1 like an instant coffee coffee: research and coding sugar: industrial applications milk: educational usage ● Parts: coffee: Ulyxes PyAPI, sugar: PyApps, milk: server scripts
  • 4.
    10/09/18 OGRS 2018Lugano 4 Repo on GitHubRepo on GitHub First commit on September 6, 2014
  • 5.
    10/09/18 OGRS 2018Lugano 5 Sensor object modelSensor object model Interface Measure unit Writer (optional) Physical device Data Serial/USB/ Bluetooth/i2c file (CSV, XML), SQLite database, http (to RDBMS) Logical device ●Set up messages ●Parsing answers Reader (optional) file (CSV, XML), SQLite database, http (from RDBMS)
  • 6.
    10/09/18 OGRS 2018Lugano 6 Detailed object modelDetailed object model (PyAPI 2018 Aug) Iface SerialIface LocalIface Instrument TotalStation GNSS MeasureUnit NmeaGnss Leica WebCam USBIfaceLeicaDna Trimble5500 Writer FileWriterHTTPWriterImageWriter VideoWriter Video DigitalLevel CSVWriter VideoIface Logging TCA1800 TPS1200 TCRA1100 ~5700 line of code ~1200 line comment ~50 module/class Planned BluetoothIface Not finished Ready Used Python modules serial cv2/cv pyusb I2CIfaceBMP180Unit smbus BMP180 LSM9DS0 LSM9DS0Unit Angle Reader Independent classes WebMetUnit Base class Key WebMetWifiCollector WebIface GamaIface CSVWriter EchoWriter GeoWriterSqLiteWriterLSM9DS0 Wifi
  • 7.
    10/09/18 OGRS 2018Lugano 7 UML sequence diagramUML sequence diagram Sensor Measure unit Interface Writer Logical message Sensor dependent message Send message Device dependent answer from sensor Answer Processed data Processed data physical sensor e.g. GetMeasure e.g. %R1Q,2108:15000,0 e.g. %R1P,0,0:0,0.9973260431,1.613443448,1.3581 e.g. {‘hz’:0.9973260431,‘v’:1.613443448,‘distance’:1.3581} file, database, http, etc.
  • 8.
    10/09/18 OGRS 2018Lugano 8 First applicationFirst application
  • 9.
  • 11.
  • 12.
    10/09/18 OGRS 2018Lugano 12 Educational usageEducational usage Automation for surveying (Msc subject) Train the trainers
  • 13.
  • 14.
    10/09/18 OGRS 2018Lugano 14 Let’s ride togetherLet’s ride together Zoltán Siki, Bence Takács, Csaba Égető siki.zoltan@epito.bme.hu Takacs.bence@epito.bme.hu, egeto.csaba@epito.bme.hu