Workshop Software
Workshop Software
Software Subsystem
Agenda for the
Session
OS requirements (Linux Ubuntu distribution)
Python
ROS2
UI
Yolo
Image Processing
Networking
OS Requirements
Why Linux?
Robotics Middleware Support: Linux supports ROS (Robot Operating System), which is widely used for
robotics development, including sensor integration and motion planning.
Real-Time Processing: Linux offers low-latency performance, crucial for real-time control and navigation.
Driver Compatibility: Jetson's hardware drivers (for cameras, LIDAR, and motor controllers) are optimized
for Linux.
AI and Computer Vision Libraries: Access to NVIDIA's CUDA, cuDNN, and TensorRT libraries, essential for AI-
powered vision and decision-making.
Developer Tools and Community Support: Strong community support, along with tools like JetPack SDK
and NVIDIA Nsight, facilitate efficient development and debugging.
Flexibility: Linux based OS offers a high level of customization than any other OS in the market.
OS Requirements
Basic Linux Commands
ls – Lists files and directories in the current directory.
ls -l # Shows detailed info like permissions, size, and modification date
ls src #Lists the contents of the src directory
ls src/sample #Lists the contents of sample directory inside src
ls arguments.
-l – Long listing format (shows details like permissions, owner, size, and modification date).
-a – Shows all files, including hidden files (those starting with a dot .)
-h – Human-readable sizes (e.g., KB, MB) when used with -l.
-1 – Lists one file per line.
-R – Recursively lists all files in subdirectories.
-S – Sorts files by size, largest first.
-r – Reverses the order of the sort (e.g., oldest first with -t).
OS Requirements
Basic Linux Commands
cd – Changes the current directory.
cd /home/user/Documents # Navigates to the Documents folder
cd .. #Navigates to the previous directory
cd #Navigates to home directory
Compatible with popular microcontrollers and single-board computers (e.g., Raspberry Pi)
OpenCV (Open Source Computer Vision Library) is an open-source library for computer vision, image
processing, and machine learning. It is widely used for real-time computer vision applications.
Object Detection and Recognition: Detects obstacles, targets, or landmarks for navigation and exploration.
Color Detection and Tracking: To track objects of specific colors, useful in tasks like target identification.
Camera Calibration and Image Correction: Corrects distortions caused by the camera lens.
Image Processing
OpenCV Basics
Importing OpenCV in Python
Save an Image
Image Processing
OpenCV Basics
Stream Video from Webcam
Image Processing
OpenCV Basics
Resize Image
Convert to Grayscale
Blur Image
YOLO (You Only Look Once) is a state-of-the-art real-time object detection algorithm known for its speed
and accuracy. It detects objects in images or video feeds by predicting both bounding boxes and class
probabilities simultaneously.
Real-Time Performance: Capable of processing images at high frame rates, making it ideal for live video
feeds, like those on a rover.
Single Neural Network: YOLO uses a single convolutional neural network to predict multiple bounding
boxes and class probabilities in one go.
High Accuracy: Balances speed with accuracy, detecting objects with high precision.
Generalization: Performs well on a variety of objects and scenes due to its global reasoning approach.
YOLO
Model Training
Purpose: Monitor and control the rover remotely using real-time data.
Technologies Used:
Flask: Backend framework to serve live data.
HTML/CSS: Frontend for displaying the feed with a user-friendly
interface.
JavaScript: For dynamic updates without page refresh.
Applications:
Remote navigation and control.
Surveillance in hazardous or hard-to-reach areas.
Scientific data collection and monitoring.
UI
Architecture Overview
Socket programming is a way to enable communication between devices over a network using IP
addresses and ports. It allows two devices to send and receive data, much like making a phone
call where one device dials (client) and the other answers (server).
Modularity: Breaks down robot software into reusable packages and nodes.
Communication:
Topics: Publish/Subscribe messaging system for sensor data and commands.
Services: Request/Response communication for synchronous operations.
Actions: Asynchronous communication for long-running tasks.
Hardware Abstraction: Works with a variety of sensors, actuators, and computing platforms.
Simulation: Integration with simulators like Gazebo for testing in virtual environments.
Community and Ecosystem: Large community support and a vast collection of pre-built packages.
ROS
Why use ROS?
Easy integration with sensors (LIDAR, GPS, cameras) and actuators (motors, servos).
ROS abstracts hardware interfaces, making it easier to switch or upgrade components without
ROS is compatible with NVIDIA Jetson devices, leveraging CUDA and TensorRT for AI tasks like object
Run a Node
To send control signal over the network from base station to rover.
To access image feed and other sensor data from various sources
in the rover.
To send control signal over the network from base station to rover.
To access image feed and other sensor data from various sources
in the rover.