Home care robots enable users to do more by automating basic home care tasks, such as vacuuming and mopping. I've been working at iRobot as a software engineer since February 2017. I develop code for path planning, state machines, robot user interfaces, sensor calibration, test automation, and production line verification. I am responsible for developing new features, debugging robot behaviors, and testing the firmware on all of our home care robots that are currently under development.
I work closely with the UI/UX team to implement new motions, behaviors, and interfaces on the robots that make sense to our users. While it is critical that our robots clean effectively, it is also important for the robot's movements to make sense to a user. If a user understands the robots actions, the user will trust the robot to operate without interfering or without even being present. For example, the path of our vacuum cleaning robots can be seen in the carpet due to the way the carpet has been brushed. My team and I have implemented code so that the robots follow organized, parallel ranks, so it is obvious to a homeowner that the robot has cleaned the entire room.
I also work with electrical, mechanical, and systems engineers to make sure our robots are able to navigate any household without becoming stuck on various obstacles. This requires close inter-team collaboration to determine the root cause of issues and determine fixes in both hardware and software. This also requires extensive regression testing, which I help automate, to make sure updates to the robot don't negatively affect performance in other scenarios.
My work has also brought me to our production facilities in China to support software versioning, sensor calibration, and production line testing. This gave me insight into manufacturing at our company and was a very interesting cross-cultural experience.