Worked as a full stack robotics engineer with two unmanned ground vehicles (UGV), the
ClearPath Jackal and Boston Dynamics Spot. Focus was on building...
Autonomy stack and Payload Integration - Evaluated, tested and integrated
various sensors into the autonomy stack and payload. T265 camera, IMUs
Localisation and Mapping - Performing Simultaneous Localisation and Mapping
(SLAM) using Google Cartographer and localisation to pre-built maps using Iterative
Closest Point (ICP) techniques within various packages. Solved for april tag position
and quaternions by optimising residuals between surveyed target positions on site.
Utilisation of Cloud Compare for point cloud processing. . Integrated april tags
into localisation and mapping systems to improve accuracy.
Path Planning and Navigation - Assessed, tested and tuned various:
Obstacle marking algorithms and packages, utilising lidar and depth cameras.
Cost map algorithms and packages.
Global planning algorithms and packages such Rapidly Exploring Random Trees
(RRT).
Local planning and control algorithms and packages such as Timed Elastic Bands.
Robot Behaviour Control System - Built a full control system using behaviour
trees to perform autonomous surveillance missions. Implementation included connection to
various subsystems such as external equipment (housing sea container, charging stations,
payloads and cloud). Used a Spot ROS wrapper to implement custom autonomy stack on
SpotCore. Design was compatible with fleet management systems to control multiple robots
and systems.
Hardware and Embedded systems - Modified Jackal e-stop controller firmware on
ESP32 to utilise heartbeat functionality. Integrated custom e-stops into robotic
platforms. Optimised full stack parameters based on compute constraints.
Cyber and Networking - Set up a VLAN from the Perth robotics lab to Karratha
sites to allow remote operation capability. Robots authenticated to the network using
the IEEE 802.1X network standard.
Manipulation - Assisted in building robotic manipulation sequences and testing
using NASA's affordance template
technology
. Conducted a PoC with the AWS Sagemaker, AWS Robomaker and Max Kelsen teams on
utilising reinforcement learning for dextrous robotic manipulation. The framework utilised
ROS simulation in Robomaker, RAY RLlib in Sagemaker and Kubeflow pipelines.
CICD - Robot images were containerised using docker. CircleCI was used to manage
repositories and packages.
Cloud Integration - Deployed AWS Greengrass on robotic platforms to allow fleet
docker deployments and cloud streaming of robot metrics and metadata using MQ Telemetry
Transport (MQTT). Utilised AWS Kinesis Video Streams to live stream video from robotic
platforms to cloud. Data ingested and integrated into cloud hosted digital twin.
Site trials - Designed and led the install of a robot housing station sea
container on gas processing plant. Led and conducted testing in lab and on site.
Designed and ran remote operations room, including design and build of Kabana
dashboards.
Languages
Python80%
C++20%
Operating Systems
Ubuntu50%
ROS50%
Cloud
AWS100%
🧬 Data Science and AI
My data science projects spans over my experience at Woodside and IBM.
Australian Government Red Imported Fire Ant Nest Detection Model [professional]
- Utilised hyperspectral (Ultraviolet light to Long Wave Infra-Red) imagery taken in helicopter surveillance to train a Region Based
Convolutional Neural Network (RCNN) to detect RIFA nests in wide scale images.
Eradication teams were sent to detected nests with high model confidence.
Rio Tinto Dynamic Scheduling Tool [professional] - Used Natural Language
Processing tool Watson Knowledge Studio to build a custom model to analyse maintenance,
operator and planner shift handover logs to extract entities and relationships
pertaining to equipment health. Built a web application in Flask (PoC) and Django (MVP)
which integrated the model endpoint, the Apache CouchDB database and provided REST APIs
to the ReactJS UI. This information was used be the dynamic scheduling team to optimise
the train scheduling.
Classification of bearing health [hackathon] - Amplified sound
signal from fan bearings utilising an array of microphones and beamforming algorithms
and performed feature engineering to extract audio features. Trained two binary
classifiers (a three-layer feedforward neural network and gradient boosted decision
trees model) to classify the bearings as healthy or corroded based on the acoustic
features.
Woodside Investor Relations Tool [professional] - Built a tool in R-Shiny that
analyses the sentiment
of investor relations meeting transcripts in combination with their historic investment
actions to determine the relationship between meeting style and content on investor
sentiment and actions.
Utilising sound signatures to classify plate damage [professional] - Constructed
Finite Element Models (utilising C++ library deal.II) of a plate
to simulate the sound signature under different damaged conditions and locations. A
large simulated data set of the plate with various damage conditions and locations was
collected using the Pawsey Supercomputer. Experimental data was collected and diagnosis
of the damage severity and location was performed using the simulated data set.
Woodside Sensor Anomaly Detector [professional] - Built a tool to
analyse timeseries data from sensors
in the field to detect anomalies utilising exponential moving averages and the process
control Nelson Rules.
Woodside Major Project Reporting Tool [professional] - Built a tool that rolls
up data from multiple sources
to provide a single view of the status of major projects across the organisation.
Languages
Python50%
R50%
👷♂️ Engineering
The majority of my engineering experience has been in the intersection between engineering,
reliability and digital.
Electrical Equipment in Hazardous Areas - Built a tool that sampled equipment to
be inspected and dynamically adjusted it's behaviour based on the inspection results.
This tool was built on AWS and integrated directly to SAP through Mulesoft APIs.
Process Safety Valves (Pressure Relief Devices) - Built a tool that used Weibull
analysis to optimise the maintenance interval of the safety valves based on their safety
availability targets. This tool was built on AWS and integrated directly to SAP through
Mulesoft APIs.
Solving Torsional Systems - Built a tool which performed torsional analysis of
rotating equipment and drive train systems utilising the Holzer's method. This solved
for the resonant frequencies, mode shapes and stress profiles of the system and
automated the production of a report.
Equipment Criticality Assessment - Built a tool which gathered data from a
number of sources, including mean time to failure, repair time, redundancy, consequence
of failure and performed a criticality assessment of the equipment. This tool was used
to assess the criticality of all equipment on Woodside assets for maimtenance
prioritisation. This tool was built on AWS and automatically placed data in the
enterprise data lake on a scheduled basis.
Languages
Python20%
Typescript80%
Cloud
AWS100%
👨🎓 PhD
My PhD candidature was performed with the University of Western Australia and the Sonar
Systems team of Defence
Science and Technology Group of the Australian Defence Force. The work performed can
be summarised into the following fields .
Applied Mathematics - Over my canditature I built a strong background in applied
mathematics,
including numerical analysis and partial differential
equations of dynamical systems. In particular there was heavy modelling of the acoustic
wave equation and the
vibration equation for plates. This included separation of variables, solving
eigensystems, utilising properties of orthogonality, applying fourier and fourier-bessel
transforms, modelling response functions and utilising Green's functions.
Experimental Physics - Multiple experiments were performed over my candidature
to validate the
mathematical models. Experiments were designed, procured and constructed by the team.
These included the use
of a various sensor types, mechanical shakers, impact hammers, laser vibrometers and
data acquisition systems.
Finite Element Modelling - Finite element modelling was used to validate the
mathematical models. The finite element modelling was performed on the fluid-structure
interaction problems in the commercial software packages ANSYS and
ABAQUS.
Data and Signal Processing - Data and signal processing was used to extract
information from the
experimental data. This included the use discrete fourier transforms, smoothing wavelet
transforms, filtering, and
signal processing.
Languages
Python50%
Mathematica50%
👨🎓 Undergraduate
Studied mechanical engineering, physics and applied mathematics.
Robotics Project - Built a wheeled robot that could navigate an obstacle course,
including deploying a bridge to cross a gap wider than the robot's largest dimension.
The robot was built using a microcontroller and a number of sensors. The robot was
programmed using C++ and the Arduino IDE.
Geophysics project - Utilised the finite difference method to model the propagation
of
seismic waves through a 3D model of the ocean and seabed. The model was validated using the
analytical solution of the wave equation.