Object detection and tracking for pick-and-place robotics operations — used in the paper "Object Detection and Tracking for Pick and Place Robotics Operations".
-
object_detection/sobel_detector.py— ROS2 node (JengaDetectorNode) that subscribes to a RealSense D405 camera, detects Jenga blocks via HSV color segmentation and contour analysis, computes 3D positions using aligned depth data, and publishes annotated images andPoseArraymessages for robot arm control. -
object_detection/jenga_moveit_node.py— ROS2 node (JengaCombinedNode) that controls an Interbotix PX150 arm via MoveIt2. Implements a state machine: D405 tracking → ESP32-CAM fine waist correction → grasp sequence (open gripper, hover, descend, close, lift). Integrates live waist nudges from the ESP32-CAM offset during the grasp. -
object_detection/esp_image_detector.py— ROS2 node (SimpleJengaDetector) that processes ESP32-CAM images, detects Jenga blocks with HSV filtering and contour scoring, and publishes a normalised horizontal offset (Float32) used by the arm node for waist joint correction. -
object_detection/cam_driver.py— ROS2 node (Esp32CamDriver) that drives an ESP32-CAM module: fetches an MJPEG HTTP stream, decodes JPEG frames, and publishes them assensor_msgs/Imagetopics. Supports start/stop streaming services and rosbag recording/replay.