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)
       
  • Worked with FH afterwards
    • Sent a thing to space*
       
  • MSc in Space Science
    • 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
       
  • 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
       
  • Run it for free with shared resources
  • Allow code to be contributed/shared
    • 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