Travers
Biddle
Work History
-
Soul Machines: Senior Software Engineer II
September 2020 - Present
-
RedZone Robotics: Software Engineer
October 2019 - September 2020
-
Sphere Identity: Computer Vision Engineer
May 2018 - October 2019
-
RedZone Robotics: Software Engineer
June 2016 - May 2018
Manhole Inspection Robot
RedZone Robotics
An automated device for inspecting manhole pipes. It consists of a top-side controller + winch and a bottom-side device that gets lowered down a manhole and records video and laser imagery.
I wrote a ROS node that acts as a master control agent for sending commands to other nodes and communicating between the bottom-side and remote control software. It communicates over gRPC and HTTP REST APIs.
The bottom-side device runs on custom firmware written in Golang, re-used from an earlier project I worked on heavily (Wastewater Pipe Inspection Robot). I re-wrote it to handle communication from the top-side and remote control while maintaining backwards compatibility.
Tools: ROS2, GStreamer
Languages: C++17, Golang, CMake, Python3
Mobile OCR
Sphere Identity / Techemy Projects
In a team of two, I created SDK libraries for iOS and Android apps to perform OCR. I wrote the TensorFlow-interaction code in C++ to get the performance benefits of native code and so both mobile platforms could use the same code.
- Built and used TensorFlow and TFLite to execute neural net models on mobile devices from C++. I modified the build scripts for Android to also build for arm64, x86 and x86_64 architectures on a more recent version of the NDK.
- Learned iOS and Android development to create libraries that pull raw image data from the device camera and send it to the C++ back-end to perform OCR. I also wrote wrapper code between Swift/Java and C++ to make this possible.
- Used OpenCV for image filtering and processing, including an algorithm to auto-crop and transform a document from the image background.
- Wrote a Stroke Width Transform implementation to detect text in an image.
- Wrote unit tests using Catch2 framework for sensitive functions. Wrote CMake and Meson files to build and run the tests more easily.
- Learned fundamental Neural Net theory.
- Proposed the product name - OCRology - and designed the initial logo concept.
Tools: TensorFlow, OpenCV, Android NDK, AWS
Languages: C++14, Swift, Kotlin, CMake
Fisheye Calibration
RedZone Robotics
I started work on an Electron desktop tool for calibrating our device’s cameras, required for measuring the internal diameter with structured light. It used Node Native Add-Ons to call C++ OpenCV libraries. The cameras had fisheye lenses with a 180° field of view, requiring a floor-to-ceiling calibration wall so I modified OpenCV source code to process an arbitrary-sized calibration grid. I submitted a bugfix pull request to OpenCV for a bug that showed itself on my data sets, which was accepted.
Tools: OpenCV, Electron, VueJS
Languages: C++11, Typescript
Wastewater Pipe Inspection Robot
RedZone Robotics
RedZone Robotics produces equipment for measuring the condition and degradation of wastewater pipes and provides analytics on the data collected. Most of my work was involved with a robot that recorded video of pipes.
In a team of three, I developed recording firmware in Golang for a Linux-based measurement recording device. I wrote modules for interfacing with IMU sensors, saving to a new custom file format, converting between old and new formats, responding to user interaction and general improvements to the system architecture.
I designed and implemented the system for providing updates to the device via an ssh connection to a private Apt repository. Updates were installed as Debian packages and systemd could then start the services on boot.
I also designed and wrote half of the Web UI for operating the device. It allowed users to start/stop recording, configure settings, preview a live feed, review previous recordings and transfer data to external storage, all from their phone or tablet via a direct WiFi connection to the device.
I wrote a C++ encoder / decoder for our custom file format.
Tools: VueJS, Arduino
Languages: Golang, Typescript, C++11
Select Projects
Manhole Inspection Robot
RedZone Robotics
Mobile OCR Library
Sphere Identity / Techemy Projects
Fisheye Calibration Software
RedZone Robotics
Wastewater Pipe Inspection Robot
RedZone Robotics
Education
Massey University
Master of Engineering
My thesis was "Simplified Computer-Aided Design". I wrote a Computer-Aided Design program with the goal of making it easier for non-technical users to customise 3D designs for 3D printing. It wasn’t very good - I’ve learned a lot since then.
Bachelor of Engineering (Hons)
- Mechatronics major
- Made the Dean's list in first year
- Received a High Achiever's scholarship to attend Massey
Contact
This website was built with Typescript, WebGL, Rust, WebAssembly and Webpack
View source on Github