The purpose of this project was to develop a Machine Learning model to enable an RC car to autonomously navigate a race track using an Ouster OS1 lidar sensor as the primary sensor input. The model is an end-to-end Convolutional Neural Network (CNN) that processes intensity image data from the lidar and outputs a steering command for the RC car.
This is inspired by the Udacity Self Driving Car “behavior cloning” module as well as the DIY Robocars races. This project builds upon earlier work developing a similar model using color camera images from a webcam to autonomously navigate the RC car.
This post covers the development of a data pipeline for collecting and processing training data, the compilation and training of the ML model using Google Colab, and the integration and deployment of the model on the RC car using ROS.
John Cutler’s “Data-Informed Product Cycle” resonates with me as a depiction of a strong product development process. In the post, he says,
The most successful teams 1. Have a strategy 2. Translate that into models 3. Add minimally viable measurement 4. Identify leverage points 5. Explore options 6. Run experiments
He provides the image below which shows the process as well as the various feedback loops.
John Cutler’s Data-Informed Product Cycle
It’s critical that the design, product, and engineering teams are aligned at each step in this cycle. I’ve found that externalizing our thinking in various forms helps build a state of shared understanding amongst the group. This enables better product decision making, and ideally more successful product outcomes.
Modern product management experience is highly influenced by and optimized for purely software based products. While core principals translate well to products involving a combination of hardware and software, there are some unique considerations to be aware of when managing robotics products.
I recently watched the session, “Reality Check: Getting to Scale” presented by John Simmons, Head of Product, InOrbit at the Robot Operations Conference. The talk was focused on John’s experiences in Operations at Bossa Nova and the lessons they learned as they scaled the robot fleet from 5-350 units. Bossa Nova manufactures inventory control robots for use in retail stores.
I was in a meeting with several of my peers today and someone was looking for feedback regarding gantt chart tools. They were frustrated that the current tooling they were using was fairly rigid and not easy to manipulate live during a working meeting. They wanted to be able to add and remove items, adjust timelines, and assess the impact in real time. They also wanted something that would be easy for Engineering to adopt, since Engineering would need to maintain task state and metadata information.
After the meeting, someone asked me what tools I use for my team in these scenarios. My response was “strong engineering leaders.” It was a bit of a flippant response, but it is true. I’m not saying it’s the ideal situation to always delegate the majority of the tactical execution. But, it’s where I’ve settled for now given my team’s maturity and where I think my focus should be during planning and execution to have the biggest impact. There are two main considerations that come to mind when determining how involved I get in the tactical planning for my teams:
Are we aligned on overall strategy and confident that the project we are reviewing will get us closer to our goals?
Are the Engineering leaders capable and willing to handle the project management of their team?
In 2020, I was given the opportunity to lead the Product team at Ouster. This post details the process and framework I used to define the core functions of the team and figure out where to start.
Ouster’s core business is the design and manufacture of high-resolution lidar sensors supporting a wide variety of robotics applications. As a result of the unique digital lidar architecture taken at Ouster, we’re able to develop lidar systems that are smaller, lighter, and less expensive without sacrificing on core performance. Ouster currently has 600 customers and recently launched it’s second generation lidar sensors. The product offering expanded beyond the original OS1 lidar sensor to include the OS0, optimized for short range performance, and the OS2, which supports applications regarding longer ranges.
I was reading the section in the book, “Thinking in Systems” about the tragedy of the commons and thought some of the recommendations might apply to software teams trying to manage their cloud infrastructure spending. When companies are young, they may optimize for development speed and flexibility and not focus on financial efficiency, This prioritization can lead to significant negative business impacts if left unchecked. We can take frameworks used to evaluate tragedy of the commons scenarios from systems thinking to identify practical solutions for managing cloud infrastructure expenses.
Below are some of my key takeaways from reading the book, The Sovereign Individual by James Davidson and Lord William Rees-Mogg. If you are interested in more detailed notes from this book, they are available here.