Over the past year, I’ve been part of a research project in UiA’s robotics lab focused on robotic disassembly of EV batteries. My main focus has been on the perception side of things, getting the robots to see and understand what they’re working with.
One of the first big tasks was calibrating our 3D camera to work reliably in the lab environment. When you need a robot to pick up parts at exact positions, the sensor data has to align with the real world. Once that was done, I created several ROS2 packages. One handles image processing from the camera. Another takes detected objects and figures out where they are relative to the robot’s position. A final package wraps all this into a service that sends the position data directly to the ABB robot controller, so the robot arm knows where to move.
After the ROS2 packages were working, I built a dataset of images for training a YOLO object detection model. I annotated the images myself using polygons, labeling all the nuts, modules, and other parts we needed the system to recognize. Then I trained a segmentation model so the robot could understand exact object boundaries and positions, not just detect them.
By the end of the semester, we had a system where the robots could see their work environment, identify parts, and coordinate their movements based on that perception data. This project taught me a lot about ROS2 communication, coordinate transformations, and making sure everything talks to each other reliably.
