\
\
Course Syllabus: Using NVIDIA Jetson Nano with ROS
\
Course Description\
\This comprehensive 4-month (approximately 16-week) self-study course is designed to empower motivated beginners and intermediate learners with the knowledge and practical skills to effectively utilize the NVIDIA Jetson Nano in conjunction with the Robot Operating System (ROS). Through a blend of foundational concepts, practical examples, and hands-on projects, learners will gain proficiency in setting up, programming, and deploying robotic applications on this powerful embedded platform. By the end of this course, you will be able to integrate sensors, control actuators, and implement intelligent behaviors for your robotics projects using the Jetson Nano and ROS.\
\
Primary Learning Objectives\
\Upon successful completion of this course, students will be able to:\
\-
\
- Confidently set up and configure the NVIDIA Jetson Nano for robotics development.\ \
- Understand the core concepts and architecture of ROS and ROS2.\ \
- Develop ROS nodes in Python for sensor data acquisition and actuator control on the Jetson Nano.\ \
- Implement basic navigation and perception functionalities using ROS packages and the Jetson Nano’s capabilities.\ \
- Integrate and utilize various sensors (e.g., cameras, LiDAR) with the Jetson Nano and ROS.\ \
- Debug and troubleshoot ROS applications running on the Jetson Nano.\ \
- Design and execute a cumulative robotics project demonstrating practical application of learned skills.\ \
\
Necessary Materials\
\-
\
- NVIDIA Jetson Nano Developer Kit (4GB or 2GB)\ \
- MicroSD card (64GB or larger, Class 10 or UHS-1 rated)\ \
- Power supply for Jetson Nano (5V 4A barrel jack or 5V 2A micro-USB, depending on the model)\ \
- USB keyboard and mouse\ \
- HDMI monitor\ \
- Ethernet cable (for initial setup and network connectivity)\ \
- USB webcam (e.g., Logitech C920 or similar)\ \
- Breadboard, jumper wires, LEDs, resistors (for basic electronics exercises)\ \
- Optional: USB to TTL serial cable (for debugging)\ \
- Optional: Small mobile robot chassis with motors and encoders (e.g., TurtleBot3, DonkeyCar kit, or a custom build) for the final project.\ \
Course Content: Using NVIDIA Jetson Nano with ROS
Week 1-2: Foundations – Getting Started with Jetson Nano and Linux
\
Lesson 1: Unboxing and Initial Setup of NVIDIA Jetson Nano\
\-
\
- \Learning Objectives:\
\-
\
- Identify the components of the Jetson Nano Developer Kit.\ \
- Successfully flash the Jetson Nano image onto an SD card.\ \
- Perform the initial boot-up and setup of the Jetson Nano.\ \
\ - \Key Vocabulary:\
\-
\
- \Jetson Nano:\ A small, powerful computer for embedded applications and AI.\ \
- \SD Card:\ A small storage device used to hold the operating system.\ \
- \Flashing:\ The process of writing an operating system image to a storage device.\ \
- \Developer Kit:\ A complete package for starting development on a platform.\ \
\ - \Content:\ This lesson will guide you through the exciting first steps of setting up your NVIDIA Jetson Nano. We’ll cover what comes in the box, how to download the necessary software, and the process of flashing the JetPack OS onto your microSD card. We’ll then walk through the initial boot-up, connecting peripherals, and completing the first-time setup wizard. This hands-on process is crucial for establishing your development environment.\ \
- \Practical Hands-on Example:\ Flash the JetPack OS onto your SD card, insert it into the Jetson Nano, connect a monitor, keyboard, and mouse, and successfully boot into the Ubuntu desktop environment. Complete the initial setup, including Wi-Fi configuration (if applicable).\ \
\
Lesson 2: Linux Essentials for Robotics\
\-
\
- \Learning Objectives:\
\-
\
- Navigate the Linux filesystem using common commands.\ \
- Understand basic Linux commands for file manipulation and user management.\ \
- Install and manage software packages using \
apt\
.\
\
\ - \Key Vocabulary:\
\-
\
- \Terminal/Shell:\ A command-line interface for interacting with the operating system.\ \
- \Directory/Folder:\ A container for files and other directories.\ \
- \Command Line Interface (CLI):\ A text-based interface for running commands.\ \
- \apt:\ Advanced Package Tool, a command-line utility for handling packages in Debian-based Linux distributions.\ \
\ - \Content:\ Robotics development heavily relies on Linux. This lesson introduces essential Linux commands and concepts that you’ll use daily. We’ll cover navigation (\
cd\
, \ls\
, \pwd\
), file operations (\mkdir\
, \touch\
, \cp\
, \mv\
, \rm\
), and managing user permissions (\sudo\
). A key focus will be on \apt\
, the package manager, which allows you to install, update, and remove software effortlessly.\
\ - \Practical Hands-on Example:\ Open a terminal on your Jetson Nano. Create a new directory, create a text file inside it, copy it to another location, and then remove the original. Use \
apt update\
and \apt upgrade\
to ensure your system’s packages are up to date.\
\
Week 3-4: Introduction to ROS/ROS2 on Jetson Nano
\
Lesson 3: Understanding ROS/ROS2 Core Concepts\
\-
\
- \Learning Objectives:\
\-
\
- Explain the fundamental concepts of ROS/ROS2 (Nodes, Topics, Messages, Services, Actions).\ \
- Differentiate between ROS1 and ROS2, understanding the advantages of ROS2.\ \
- Install ROS/ROS2 on the Jetson Nano.\ \
\ - \Key Vocabulary:\
\-
\
- \ROS (Robot Operating System):\ A flexible framework for writing robot software.\ \
- \ROS2:\ The next generation of ROS, with improved performance, security, and real-time capabilities.\ \
- \Node:\ An executable process in ROS/ROS2 that performs a specific task.\ \
- \Topic:\ A named bus over which nodes exchange messages.\ \
- \Message:\ A data structure used for communication between nodes.\ \
\ - \Content:\ This lesson provides a foundational understanding of ROS/ROS2, the backbone of modern robotics software. We’ll dive into its modular architecture, exploring the core communication mechanisms like nodes, topics, messages, services, and actions. We’ll also highlight the key differences and improvements in ROS2, which is becoming the standard for new robotics projects. The lesson concludes with the installation steps for ROS/ROS2 on your Jetson Nano.\ \
- \Practical Hands-on Example:\ Install a suitable ROS2 distribution (e.g., Foxy, Galactic, Humble, or Iron) on your Jetson Nano following the official ROS documentation. Verify the installation by running the \
ros2 doctor\
command.\
\
\
Lesson 4: ROS2 Basics: Running Your First Nodes\
\-
\
- \Learning Objectives:\
\-
\
- Run basic ROS2 nodes and understand their output.\ \
- Use \
ros2 run\
and \ros2 topic\
commands.\
\ - Visualize ROS2 data with \
rviz2\
.\
\
\ - \Key Vocabulary:\
\-
\
- \\
ros2 run\
:\ Command to execute a ROS2 node.\
\ - \\
ros2 topic\
:\ Command-line tool for inspecting and interacting with ROS2 topics.\
\ - \\
rviz2\
:\ A 3D visualization tool for ROS2.\
\ - \Publisher:\ A node that sends messages on a topic.\ \
- \Subscriber:\ A node that receives messages from a topic.\ \
\ - \\
- \Content:\ Now that ROS2 is installed, it’s time to get your hands dirty\! This lesson will guide you through running your first ROS2 nodes, specifically the “talker” and “listener” example. You’ll learn how to inspect the active topics and messages using the \
ros2 topic\
command. We’ll also introduce \rviz2\
, a powerful visualization tool that allows you to see what your robot “sees” and how it’s interacting with its environment.\
\ - \Practical Hands-on Example:\ Start the \
demo\_nodes\_cpp talker\
and \demo\_
Leave a Reply