CSIRO: End-to-End Machine Learning Pipeline
In May 2018, I was chosen for a 6 month paid internship program at DATA61 CSIRO (The national science agency of Australia), in Brisbane, Australia. I was supervised by Dr. Nicholas Hudson and Dr. Navinda Kottege.
The main task assigned to me was to develop an end-to-end pipeline for robotics-related machine learning for future use in DATA61 CSIRO and demonstrate it by extending NVIDIA's trailnet (Resnet-18 based) neural network for autonomous navigation of indoor hallways and hill-climbing.
Our Final Presentation
My Tasks
- Built (with a partner) a 6-wheeled robot platform for data collection
- Collected data (with a partner) into ROS bags
- Wrote scripts to convert ROSbags into TF records on Bracewell (CSIRO's supercomputer). I needed to modify and build custom singularity docker containers to run this.
- Create a 20-layer residual convolutional neural network with both Keras-Tensorflow and pure Tensorflow.
- Build a pipeline to thoroughly and efficiently shuffle and prefetch data from TF records and train the model.
- Optimize the trained model for embedded devices (Jetson TX2) with TensorRT (both pure C++ and python tf-trt)
- Implement the inference engines as ROS nodes (C++ and python both)
- Modify the motor controller ROS package of Roboclaw to avoid thread racing and deadlock issues and make the robot autonomously navigate hallways
- Build models for hill climbing and experiment with them.