Day in the life of
Robotics Software Engineer – Anjana Nellithimaru
My work revolves around improving perception and manipulation capabilities of Moxi, a nurse assistant robot created by my company, Diligent Robotics. I develop systems and solutions to help our robot interact with the environment using its arm. Our robot was created to help nurses and care teams in health systems and take tasks off their plates like fetching and delivering supplies or lab samples so they can get back to the bedside with the patient.
The multidisciplinary aspect is what differentiates a robotics software engineer from a generic software engineer.
My Typical Day
As a robotics software engineer, my day-to-day involves diverse things from thinking about problems at a fundamental level to writing code and tests to working on integrating my piece of robot software with other components. It can range from brainstorming how we can make robots autonomously navigate through a variety of automatic doors to improving perception and manipulation capabilities of how Moxi, our nurse assistant robot, interacts with the environment using its arm.
My typical day at work starts with a quick meeting with the software team to discuss the work for the day and raise any issues that block progress. After that, I generally meet with the team collaborators to plan and design some solutions. Some days involve a lot of solution prototyping and integration testing to evaluate the particular prototype’s performance on the robot hardware. On other days, I do a fair amount of peer code reviews, code documentation, R&D discussions on some robotic problems. My days also often involve collaborating with mechanical engineers to hash out the requirements to build a robot test rig or with electrical engineers to figure out the maximum number of sensors I can connect to a GPU or with firmware engineers to discuss what the best sensor would be to develop a new feature for the robot.
My key responsibilities involve developing perception solutions for robots and ensuring they are robust in various real-world scenarios involving static and dynamic obstacles. Every day I work on developing solutions to make robots perceive their surroundings better so that they are capable of making context-aware decisions. For instance, in hospitals, there are a variety of doors and scenarios about how doors open that we have to program Moxi to interact with. A door may need a badge access so we have to program the robotic arm to badge into a door and the door may open a certain way so our robot has to be prepared for a number of situations that can be replicated no matter the door and no matter the hospital.
- Robotics is a multidisciplinary field. So, I get to work with a lot of smart folks from various fields on a day-to-day basis
- Playing around with sensors and actuators and watching robots do cool things like social interaction
- Seeing the real-world impact of the work I do and how much nurses can benefit from a hospital delivery robot
- Getting to implement and test the latest state-of-the-art research on robots
- Heavy dependency on hardware also means it’s harder for me to test my software if the hardware on the robot is not functional.
- Not being able to replicate the exact production settings for my test since I am not building the robots in the hospital setting. I don’t know what the robot is going to experience out there in the real world once it’s deployed.
Robotics Software Engineer
Diligent Robotics, an Austin-based A.I. company