← Back to Home

ROS 2 Object Tracking with PointNet and xArm 6

ROS 2PointNetDeep LearningComputer VisionRGB-DVisual Tracking

Overview

Built a robotics perception and control pipeline for an xArm 6 as part of a General Motors automotive-part handling challenge. The project combined an Azure Kinect RGB-D camera, point-cloud processing, a custom PointNet classifier, ROS 2 inference, and physical visual tracking.

3D Deep Learning

A custom point-cloud dataset was generated from the target automotive part using RGB-D data and 3D geometry. Point clouds were normalized to 1,024 points and augmented before training.

A simplified PointNet model was implemented in TensorFlow/Keras with a T-Net, shared MLP layers, global max pooling, dropout, and softmax classification.

Results:

  • 99.1% training accuracy.
  • 96.4% test accuracy.
  • Sub-30 ms CPU inference inside a ROS 2 node.

Physical Tracking

For the physical arm, a lightweight RGB pipeline segmented the target object, computed its centroid, and translated image error into incremental joint commands.

The physical tracking loop:

  • Ran at 10 Hz.
  • Used 0.02 rad joint increments.
  • Maintained sub-50 ms end-to-end visual-servoing latency.
  • Tracked object motion up to 0.3 m/s without losing visual lock.

Important Technical Note

The PointNet classifier and physical visual-servoing loop were validated independently. Due to limited lab access, the PointNet inference node was not fully connected into the final physical arm-control loop.