RC Car ML Model Development with an Ouster OS1 Lidar

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.

RC Car Lidar-based ML Model Deployment
RC Car Lidar-based ML Model Deployment

Continue reading

Ensuring Safety and Performance: Best Practices for Robotics Requirements

Requirements formally document what a system must achieve in terms of behavior, performance, and functionality to meet product and business objectives. This encompasses both nominal operation and the system’s reliability and resilience in handling faults or scenarios beyond the defined Operational Design Domain (ODD).

In addition to defining system expectations, requirements establish clear ownership for individual components, fostering accountability and coordination across teams. They also provide the foundation for a Verification and Validation (V&V) program, enabling a structured approach to testing and ensuring the system meets its requirements under all intended conditions.

Iterating on requirements throughout the design process is critical to account for evolving insights, technical challenges, and stakeholder needs. Regularly validating requirements against business goals and operational constraints helps avoid misalignment and downstream integration issues. Teams can refine requirements to balance performance, cost, and technical feasibility, ensuring all subsystems work cohesively.

By serving as a shared framework across disciplines, well-crafted requirements reduce ambiguity, mitigate risks, and support efficient, predictable development cycles.

Some challenges and lessons learned related to requirements for a safety critical robotics system include:

Continue reading

Program Management Philosophy

The notes below represent my current perspective on the role of a technical program manager and the behaviors of the most successful PMs.

A strong leader has the humility to listen, the confidence to challenge, and the wisdom to know when to quit arguing and to get onboard.

Role of the PM

The purpose of a project is to combine the works of different people into a single coherent whole that will be useful to people or customers. Project Management is about using any means necessary to increase the probability and speed of positive outcomes. We are accountable for making the project and whoever was contributing to it as successful as possible. Engineering is responsible for ensuring the solutions are technically feasible. We are responsible for making sure that the solutions are valuable and viable for the business. 

Continue reading

Streamlining Our Team Sync

The time of senior leadership on a team is precious and expensive but so is the cost of poor decision making and inefficient execution due to misalignment between teams. The Engineering organization I support runs a 50 minute sync every two weeks to provide status updates, escalate issues, and review business updates that may impact our team specifically. In the spirit of continuous improvement, we took time to reflect on the format of the current meeting to make it more effective and efficient. This post is a summary of the lessons learned and where we landed in case it’s helpful to other teams facing similar challenges of respecting people’s time but also ensuring the team leads have the best context in order to enable their individual decision making.

Continue reading

The Value of Externalizing Your Thinking

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.

Continue reading

TPM and Engineering Lead Execution Coordination

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:

  1. Are we aligned on overall strategy and confident that the project we are reviewing will get us closer to our goals?
  2. Are the Engineering leaders capable and willing to handle the project management of their team?

Continue reading