Object Tracking Robot

This robot uses AI-powered image processing to detect and follow a specified object. It features a webcam for real-time video capture, processed using the MobileNetSSD model on an NVIDIA Jetson Nano. When the object is detected, the robot moves towards it. If the object goes out of frame, the robot scans the last known direction and adjusts its movement accordingly. The project is developed in Python using the SMD Python Library.

About Tools and Materials:

2x SMD Red (Purchase Here)

SMD USB Gateway (Purchase Here)

Arduino Gateway Module (Purchase Here)

2x BDC Motor (Purchase Here)

Servo Module (Purchase Here)

USB Camera

Step 1: Hardware & Software Overview

Project Key Components

  1. SMD

    The SMD acts as a bridge between the script and the modules. It is responsible for interpreting the commands sent by the script and translating them into actions that read input from the Ultrasonic Distance Sensor Module and meanwhile, actuate the motor for the continuous reading of the script.

  2. BDC Motor

    The 100 RPM BDC Motor with Encoder is used to rotate the radar mechanism in a full circle. The user can precisely control the motor and get the position through the built-in encoder.

  3. Servo Module The Servo Module drives the servo motor that is connected to it. It can be controlled through the SMD libraries.

Key Features

β€’ AI-Powered Object Tracking Uses MobileNetSSD for real-time object detection and tracking.

β€’ Jetson Nano Processing Leverages NVIDIA Jetson Nano for high-performance image processing and AI applications.

β€’ Autonomous Navigation Moves toward the detected object and adjusts its path dynamically.

β€’ Frame Scanning & Realignment If the object is lost, the robot scans the last known direction and reorients itself.

β€’ Real-Time Video Processing Captures live video using a webcam and processes it for accurate object tracking.

β€’ Servo-Controlled Head Movement Uses a servo motor to adjust the camera’s position for better object detection.

β€’ Python-Based Development Developed using Python with the SMD Python Library for seamless integration with SMD modules.

Step 2: Assemble

1. Connect the Hardware:

β€’ Attach the NVIDIA Jetson Nano to a stable base. β€’ Connect a USB Camera for real-time object detection. β€’ Connect the SMD Red via the USB Gateway Module to the Jetson Nano.

2. Motor and Servo Setup:

β€’ Connect the 100 RPM BDC Motors with Encoders to the SMD motor ports. β€’ Attach a servo motor for camera movement and connect it to the SMD Red.

3. Wiring and Power:

β€’ Connect the SMD Red to power using an appropriate battery or adapter. β€’ Ensure all RJ-45 cables are securely connected for proper communication.

4. Software Installation:

β€’ Install required libraries on Jetson Nano: OpenCV, SMD Python Library, and MobileNetSSD model. β€’ Grant USB access permissions using sudo chmod a+rw /dev/ttyUSB0.

5. Final Check:

β€’ Verify all connections and ensure the camera and motors are properly aligned. β€’ Power on the system and prepare for testing and calibration.

Project Wiring Diagram

Step 3: Run & Test

1. Power On the System:

β€’ Ensure the Jetson Nano, SMD Red, and motors are properly powered. β€’ Check all cable connections before proceeding.

2. Start the Object Detection Script:

β€’ Run the Python script on Jetson Nano β€’ The camera will start detecting the specified object in real-time.

3. Verify Motor Responses:

β€’ If the object is detected, the robot should start moving towards it. β€’ If the object moves, the robot should adjust its direction accordingly. β€’ If the object is out of frame, the servo will scan in the last known direction.

4. Test Object Tracking:

β€’ Move the tracked object around to test responsiveness. β€’ Adjust PID parameters if needed for better accuracy.

5. Debug & Fine-Tune:

β€’ If the robot doesn’t move correctly, check the motor wiring and power supply. β€’ If detection is inaccurate, adjust the confidence threshold (--thr parameter).

6. Record & Analyze Performance:

β€’ The camera feed and robot’s movements are logged and recorded for analysis. β€’ Optimize speed and turning sensitivity based on test results.

Codes

Last updated