UCD ElecSoc chat
Daniel Vagg
UCD Graduate: Physics specializing in Space science/tech
Cloud SW engineer | System architect | CTO
Presentation Overview
- Quick intro/background
- Glider
- Parameter Space
- Thoughts on Python
5 min
5-10 min
15-30 min
(TOTAL)
5 min
- Presentations rarely end on time
Quick Intro
- I'm Dan
- I studied here
Background
- BSc (Hons) Physics with Computing in 2011
- Internships (FH, ESA)
- Internships (FH, ESA)
- Worked with FH afterwards
- Sent a thing to space*
- Sent a thing to space*
- MSc in Space Science
- Led to current job
- Led to current job
- None of that really matters to you
*Actually not space; stratosphere.
Glider
To the stratosphere!
- High altitude videos = cool
- Figured glider = better video
- So...
- I designed that
- Tested it..
- Flew it & Lost it (eventually)
Glider
To the stratosphere!
How did it work?
- Python on android phone
- GPS + Orientation + GSM
- Sent command over BT
- Arduino parsed commands
- Controlled all servos
- Power
- Battery pack powered most
- Charged phone using USB
- Phone had own power
Humble beginnings
Glider body (and box)
Some progress
Basic servo control
Balloon/Glider cable
Some promise
Arduino
Bluetooth module
Parachute
Parachute release
Power regulator
Tape (30% of structure)
Ready to fly
Parachute
HD Camera
Glider
To the stratosphere!
Outcomes
- First flight: success!
- A lot of interviews focus on it..
- Got an internship offer from Captec
- Philae programming
Glider
Why did I show it?
Because it was a poorly thought out idea
It was guesswork built around that idea
It was incremental work
When I had the idea for the glider, it didn't feel different to other ideas I have had
Just pursue the ideas you like - the good ones wont feel special.
Ireland:
A problem for gliders:
Legend:
Glider
Version Comparison
Part list
System Design
Glider V1 (Hermes)
Phone -(BT)> Arduino
Phone ran Python
Simple, 1-way comms
RasPi -(SPI)> Arduino
RasPi runs similar Python code
2 way comms
SW/Antenna Failure (no backup)
Weather
Glider V2 - anon
RasPi -(SPI)> Arduino
RasPi runs similar Python code
2 way comms
SW/Antenna Failure (no backup)
Interference!
Glider V2 - anon
RasPi -(I2C)> PCA9685
RasPi runs upgraded Python code
2 way comms + Backup tracker
Interference mitigated
Pending Launch
Glider V3 - (ICARO)
Glider Part list
- GoDiscover FPV Glider
- Ublox-8 GPS receiver
- Raspberry Pi 2 B
- Raspberry Pi camera (look back)
- Arduino (ATmega328)
-
RFM95W-868S2 LoRa(TM) Transceiver
- 8£ vs ~50£ Xbee (discontinued anyway)
- Antenna
- GoPro
- Parachute(s)
- Speaker
Groundstation Part list
- Raspberry Pi 2 B
- Antenna
- Battery pack
- LoRa(TM) Transceiver
- Internet connection
- Tethered mobile
- Tethered mobile
- Web Server
- Host public Tracker
System Architecture
(Rough)
Glider system
[RasPi]
Python state machine
GPS
IMU
Piloting
Radio
Servo
Radio
Groundstation
[RasPi]
Groundstation
USB
tethered internet
Public Tracker
Groundstation with no radio
People!
Augmented Reality Trackers
Parameter Space
Overview
- What we do
- Gaia Mission
- GAVIP
Parameter Space
What we do
We solve data-analysis problems for the latest European space missions
Gaia
- Scans 1 billion stars in our galaxy using 2 telescopes
- Determine their position/motion very accurately
- Observations on either side of the sun helps determine distance
Why build a platform (GAVIP)?
A lot of data (> 1PB)
Scientists want to analyse it
Move code to data
Parameter Space
GAVIP
Features
- Run user-contributed code
- Don't restrict what the code can do
- Okay
- Okay
- Run it for free with shared resources
- Allow code to be contributed/shared
- Ah... okay
- Ah... okay
- And some jobs need GB of RAM for days..
- Oh come on.
Parameter Space
GAVIP
Technologies
- Python (all)
- Django (web)
- Celery (queue)
- Lots more..
- Docker
- Isolate the software!
- RabbitMQ
- Queue the work
- PostgreSQL/SQLite
- Storage
Parameter Space
GAVIP
AVI: Added Value Interface (~someones code)
GAVIP: Gaia AVI Platform
Parameter Space
EO4Atlantic
The problem presented by Gaia is not unique
The approach of GAVIP worked, and is reusable
Python
Thoughts
- Versatile
- Growth
- Why so popular?
- Why use it in Parameter Space?
Python
Versatile
Broad usage in community:
- Scientific (scipy, astropy)
- Data analysis (numpy)
- Web development (Django, etc)
- Robotics (https://micropython.org/)
- Scripting (BASh, then Python for me)
It's not the only versatile language
- But it's growing very quickly
Python
Growth
Python is growing rapidly - start using it!
Stack Overflow have covered this: goo.gl/2eqXo4
Python
Why so popular?
In my opinion
- Flexible use (scripts -> classes, etc)
- Readable syntax
- Minimal AND clear (for x in some_list)
- Indentation to declare scope (no {})
- Great package repo (pypi)
- Jupyter notebooks
- Fast! (goo.gl/U7SKPv)
- Benefits = More than sum of its parts. Eg:
- StackOverflow answers are clearer
- Learning is quicker, more enjoyable
Python
Why use it in Parameter Space?
All of the above.
Sure, some parts could be done in Java just as well.
And it can be clean - though sometimes excessive.
But it adds:
- New build systems for our code
- Maintenance procedures, etc
Python
Why use it in ESA products?
Needed some more reasons here!
They already support Java (a lot)
The community was the reason.
We want them to write software for GAVIP.
They know Python (the broader community)
The END
Space is cool
Python is great
Feel like making a project?
You won't know how far it will take you
ElecSoc talk
By Daniel V
ElecSoc talk
ElecSoc talk UCD
- 481