Case Study: Jetson Orin Nano AMR & ROS 2 Robotics Development Services Case study: Jetson Orin Nano AMR & ROS 2 robotics development case study. Autonomous mobile robot for warehouse automation with custom PCB design, STM32 motor control, Nav2 navigation, SLAM, and NVIDIA Isaac ROS acceleration.

Jetson Orin Nano AMR & ROS 2 Robotics Development Services

Building an Autonomous Mobile Robot (AMR) involves proficiency in various disciplines like embedded hardware, robotics software, perception, navigation, and real-time control.

At IoTAppDevelopment, our team develops complete robotics solutions using NVIDIA Jetson Orin Nano, ROS 2, STM32, custom PCB design, motor control, sensor integration, computer vision, autonomous navigation, and embedded firmware.

This case study highlights our practical knowledge in designing and implementing an AMR intended for autonomous materials handling within a warehouse.

Covering topics such as hardware as well as PCB design and development, ROS 2-based architecture, navigation, firmware, obstacle avoidance, and system integrations, we illustrate how we are capable of creating dependable, scalable and production-ready robots for industrial use.

Executive Summary

Jetson Orin Nano AMR & ROS 2 Robotics Development Services

This case study details the entire process, from designing to building and also deploying an Autonomous Mobile Robot (AMR) running on NVIDIA Jetson Orin Nano, with an underlying software based on Robot Operating System 2 (ROS 2) platform.

The project was started by logistics and transportation firm aimed at automating internal material transportation system instead of using manual forklifts and conveyor systems.

The goal was to create a cost-effective, compact AMR capable of navigating dynamic warehouse environments, avoiding obstacles, and transporting payloads up to 100 kg between designated pick-up and drop-off locations.

The solution integrates the Jetson Orin Nano as the primary compute unit for perception, navigation, and decision-making, paired with a custom-designed STM32-based motor controller for low-level actuation.

The end robot demonstrated navigation which was fully autonomous with the accuracy of location ±2 cm, the ability to avoid obstacles while moving at a speed of 1.5 m/s and the battery duration of 8 hours of continuous work. The project allowed reducing material transport costs by 35% and increasing warehouse capacity by 18%.

The present case study examines all aspects of development, from hardware design, PCB development, firmware engineering, ROS 2 software architecture to system integration.

Jetson Orin Nano AMR & ROS 2 Robotics Development Services

1. Introduction and Project Background

1.1 The Warehouse Automation Challenge

The customer operates a distribution center with a size of 250,000 square feet with some 50,000 items of stock keeping unit. The process of transferring materials between reception, storage, picking, and shipping was done through:

  • 15 motorized fork-lifts and pallet trucks used by humans.
  • 8 trolley service carts.
  • Conveyor systems causing restriction of working space and fixed position.

This manual method faced multiple issues:

  • High Employment Costs: A large part of the workers were kept busy transporting materials.
  • Inconsistent Production Rate: The speed of transport relied on how available and tired the workers are, resulting in bottlenecks when their workload peaks.
  • Accidents: There were numerous accidents caused by forklifts every year, usually around 3–5.
  • Poor Space Usage: Transporter conveyors could not adapt to the changes in warehouse buildings.

The aim was to use 10 Autonomous Mobile Robots that would handle the process automatically.

1.2 System Requirements

The AMR needed to meet the following specifications:

RequirementTarget
Payload Capacity100 kg
Maximum Speed1.5 m/s (loaded), 2.0 m/s (unloaded)
Navigation Accuracy±5 cm (position), ±2° (orientation)
Obstacle DetectionDetect obstacles at 0.1–10 m range, 270° field of view
Battery Life8 hours continuous operation
ChargingAutomatic docking to charging station
Dimensions800 mm × 600 mm × 400 mm (L×W×H)
Operating EnvironmentIndoor warehouse, temperature 0–40°C, humidity up to 85%
SafetyEmergency stop button, safety-rated LiDAR, audible/visual indicators

1.3 Why the NVIDIA Jetson Orin Nano?

The decision to use the Jetson Orin Nano after considering a range of embedded computing platforms including Raspberry Pi 5, Intel NUC and NVIDIA Jetson Xavier NX was made for the following reasons:

CriterionJetson Orin Nano Advantage
AI Performance 40 TOPS (INT8) with Ampere GPU, sufficient for running SLAM, object detection, and path planning concurrently.
Power Efficiency 7–15W power envelope, enabling 8-hour battery life with a reasonable battery capacity.
ROS 2 Compatibility NVIDIA provides optimized Docker containers and libraries for ROS 2 (Humble) on Jetson platforms.
Cost At $199 (developer kit) or $249 (module), it offered the best performance-to-cost ratio.
Software Ecosystem CUDA, cuDNN, TensorRT, and Isaac ROS provide acceleration for perception and navigation algorithms.
Form Factor Compact module (69.6 mm × 45 mm) suitable for integration into a custom carrier board.
I/O Capabilities Multiple UART, SPI, I2C, CAN, and USB interfaces for connecting to sensors and motor controllers.

Thanks to its ability to perform complicated SLAM (simultaneous localization and mapping) and obstacle avoidance tasks without consuming too much power, the Orin Nano had all the qualities that an autonomous robot endowed with batteries would require.

1.4 The Reasons for Using ROS 2

The software framework chosen is ROS 2 (Humble Hawksbill) for the following reasons:

  • The modular framework of ROS 2 allows the separation of tasks in the system and simplifies sensing, comprehension, planning, and actions.
  • ROS 2 has real-time communication capabilities enabled by DDS.
  • ROS 2 supported by NVIDIA Isaac ROS provides all the necessary functions for Jetson hardware.
  • The availability of the massive library for navigation (Nav2), Simultaneous Localization and Mapping (SLAM), and teleoperation (RViz).
  • ROS 2 with the help of DDS allows supporting multiple robots in the system.

2. System Architecture

The AMR is designed as a modular system with three main subsystems: the compute platform (Jetson Orin Nano), the sensing suite, and the motion control system.

2.1 Hardware Architecture

2.1.1 Computing System

  • Primary Component: NVIDIA Jetson Orin Nano 8GB component.
  • Tailor-Made Carrier Board: Developed by our team in response to the need for:
    • Supply of power: 12V-24V DC provided from a battery through an efficient buck converter.
    • Interface for a camera: 2MIPI CSI-2 which connects stereo depth camera.
    • Connections for USB 3.0: For 2D LiDAR connection, IMU and debugging purpose.
    • UART: For interaction with STM32 motor driver.
    • CAN bus: Helps with adding of future sensors.
    • Gigabit Ethernet: Used for debugging and fleet administration.
    • M.2 Key E slot: For wireless communication (Wi-Fi/Bluetooth) purpose.
    • GPIO: Represents the status in terms of LED, emergency stop button and sound making device.

2.1.2 Sensing Suite

  • 2D LiDAR (Primary): RPLIDAR S2 (30-meter range, 360° FOV, 32,000 samples/sec) for mapping, localization, and obstacle detection.
  • Stereo Depth Camera: Intel RealSense D435i (RGB + depth + IMU) for 3D obstacle detection, visual odometry, and future AI-based object recognition.
  • Inertial Measurement Unit (IMU): Built into the RealSense camera, plus an additional Bosch BNO085 IMU on the carrier board for redundancy.
  • Wheel Encoders: Integrated into the motor assemblies for odometry.
  • Bump Sensors: Four tactile bump sensors on the front and rear edges for physical collision detection.
  • Safety LiDAR: A compact safety-rated LiDAR (SICK microScan3) mounted at the front for personnel detection (optional for initial deployment, planned for future integration).

2.1.3 Motion Control System

  • Motor Controller MCU: STM32F446RE (Cortex-M4F @ 180 MHz) on custom printed circuit board.
  • Motors: Two hub-type brushless DC motors with ratings of 200 W that are provided with hall-effect sensors and incremental encoders with a resolution of 1024 PPR.
  • Driver for Motors: Two DRV8301 three-phase gate drivers incorporating current sensing circuitry.
  • Battery: A 24V, 40 Ah LiFePO4 battery integrated with battery management system (BMS).
  • Power Supply: A specially-designed carrier board distributes power accordingly; it is 12V for the Jetson, 24V for the motors, 5V and 3.3V for the sensors and for the charging dock.

2.2 PCB Design Details

The project involved designing two custom PCBs:

2.2.1 Jetson Orin Nano Carrier Board

This is a 6-layer PCB created to fuse the Jetson Orin Nano module together with all related peripherals.

Design Aspects:

  • Power Integrity: Special power planes for 5V, 3.3V, and 1.8V. Use of low ESR capacitors and ferrite beads for noise filtering purposes.
  • Signal Integrity: Careful routing of high-speed signals (MIPI CSI, USB 3.0 and Ethernet) with specific impedance (90Ω differential for MIPI and 90Ω for USB 3.0).
  • Thermal Management: Copper pour areas present under the Jetson module for heat dispersion. Mounting holes for heatsink and fan included.
  • EMC Compliance: Ground stitching vias located around the edges of the board, connecting elements grounded properly and ferrite beads placed on input power.
  • Safety Features: Isolation of emergency stop circuit with a dedicated hardware path that allows cutting off power to the motor without involving software.

Main Components:

  • DC-DC converters: TPS5430 (buck converter, 24V → 12V), TPS62130 (buck converter, 12V → 5V), TLV62130 (buck converter, 5V → 3.3V).
  • USB Hub: USB2514B (4-ports USB 2.0 hub) to connect multiple sensors.
  • CAN Transceiver: TJA1050 (for future extension).
  • UART Level Shifter: MAX3232 (for RS-232 communication with STM32).

2.2.2 The PCB motor controller

This is the PCB that consists of four layers and is capable of providing the essential control of motors and implementation of safety functions.

Considerations for design:

  • High current traces: The traces of the motor phases are able to withstand currents of up to 10A in continuous mode. As a result, their width is equal to or more than 2mm, filled with copper.
  • Current sensing: Use of shunt resistors connected to the input of INA240 current sensing amplifiers for measuring the current.
  • Gate drive isolation: Use of DRV8301 enables using built-in bootstrap capacitors and dead time control.
  • Encoder interface: Use of hardware quadrature encoder interface (QEI) to accurately measure speed and position.
  • EMI filtering: Implementation of RC filtering at all analog inputs (temperature, current sensing) to get rid of the noise generated by the motor.
  • Safety functions: Implementation of a hardware overcurrent protection circuit which is able to remove power from the motor within microseconds when the fault occurs.

2.3 Firmware Architecture

Two separate firmware projects were developed:

2.3.1 The firmware for STM32 Motor Controller

Designed using C within STM32CubeIDE, and the HAL/LL libraries

  • Control Loop: Relies on timer interrupts; operates at a frequency of 10 kHz (100 µs).
  • Velocity control: Utilizes PE control on wheel motors, combining encoder feedback with the current measurement.
  • Odometry: Involves calculating the position (x,y,θ) of the robot from wheel encoders and IMU.
  • Communication: UART communication used to connect with the Jetson utilizing own protocol.
  • Safety functions: Monitoring of motor overheating, overcurrent, and emergency stop. Safe torque off (STO) is initiated upon detection of a fault.
  • Watchdog timer: Hardware watchdog timer resets the MCU if connection with Jetson fails for over 500 ms.

2.3.2 The Boot Firmware of Jetson Orin Nano

The Jetson operates using a Linux OS (JetPack 6.0). It features the following boot setup:

  • Device Tree: Customized for device configuration allowing all supported peripheral interfaces to function (UART, I2C, SPI, CAN, GPIO).
  • Power Management: Configured for CPU/GPU frequency modulation to enable better power usage.
  • Sensor Drivers: Built-in drivers for RealSense camera, RPLIDAR, BNO085 IMU.

3. Software Architecture (ROS 2)

The ROS 2 software stack is organized into multiple nodes, each responsible for a specific function.

3.1 ROS 2 Node Architecture

ROS 2 Node Architecture

3.2 Key ROS 2 Nodes

3.2.1 Sensor Nodes

  • LiDAR Node: Makes use of the rplidar_ros package in order to publish sensor_msgs/LaserScan data at a rate of 10 Hz.
  • Camera Node: Employs the realsense2_camera package in order to publish RGB images, depth images, and point cloud data at 30 Hz.
  • IMU Node: Utilizes the bno055 package to output sensor_msgs/IMU data at 100 Hz.

3.2.2 Sensor Fusion Node

  • robot_localization: Applies an Extended Kalman Filter (EKF) in order to combine the information from the wheel odometry system, IMU data, and the ML-based approach into a single output, thereby generating a smooth and accurate pose estimate of 50 Hz.

3.2.3 SLAM Node

  • slam_toolbox: Performs online SLAM using LiDAR data and fused odometry, generating a 2D occupancy grid map of the warehouse. The map is saved and reused for subsequent navigation sessions.

3.2.4 Navigation Stack (Nav2)

  • Global Planner: NavFn (or Smac Planner) finds the best way from the present location of robot to its final destination taking into account the presence of static obstacles.
  • Local controller: DWB (Dynamic Window Approach) comes up with commands related to robot movements takes into account the presence of dynamic obstacles in real time.
  • Behavior Tree: Entails all the logic related to navigation, including types of recovery behavior patterns (like spinning in order to clear costmap, moving the vehicle backward).
  • Costmap 2D: Responsible for maintaining local and global costmaps that utilize static map information alongside current sensor data.

3.2.5 Motor controller node

  • Customized Node: Assists in converting commands from geometry_msgs/Twist into wheel velocity commands, ensures that information is sent to STM32 via UART and has capability to read odometry data back.

3.3 NVIDIA Acceleration

The use of NVIDIA Isaac ROS packages helped us in enhancing perception:

  • isaac_ros_nvblox: An experimental framework with GPU-accelerated 3D reconstruction for the detection of obstacles.
  • isaac_ros_image_proc: A framework for GPU-accelerated image processing of data from camera.
  • isaac_ros_dnn_stereo_depth: A framework for GPU-accelerated stereo depth estimation and an alternative to the depth feature of RealSense.

4. Development Process

4.1 Hardware Development

The hardware design process was conducted in a series of rounds.

Phase 1: Prototyping

  • Implementation of the Jetson Orin Nano Developer Kit and commercial motor controllers in order to confirm the concept of the system.
  • Creation of a "Frankenstein" prototype, which was made of a wooden frame, commercial wheels and electrical wiring done using a breadboard.

Phase 2: Creation of a Custom PCB

  • Preparation of Jetson carrier board and STM32 motor controller using KiCad EDA software.
  • Performing signal integrity tests on high-speed connections (MIPI, USB3.0, Ethernet).
  • Manufacture the prototype circuit boards and conduct the assembly using the reflow process.

Phase 3: Integration and Testing

  • Creation of a ready robot using the custom PCBs, sensors and motors.
  • Running preliminary tests to check all connections.
  • Conducting thermal tests while being under load in order to keep Jetson and motor controller working in a safe thermal mode.

4.2 Firmware Development

The firmware for the STM32 motor controller was developed with the STM32Cube IDE.

The major steps that were followed in the development procedure include:

  1. Peripheral Configuration: Timer configuration for PWM in motor control, QEI configuration for encoders and UART configuration for communication.
  2. Motor Control Implementation: Trapezoidal commutation was implemented for BLDC motors. Subsequently, the implementation was upgraded to sinusoidal commutation with the help of Space Vector Modulation (SVM) technology.
  3. PI controller tuning: Velocity PI controllers were tuned using the step response tests.
  4. Odometry implementation: Dead reckoning odometry with the help of wheel encoder data and IMU yaw was implemented.
  5. Safety implementation: Protection against overcurrent, over temperature and communication timeouts was implemented.

4.3 Software Development of ROS 2

The development of the software for ROS 2 was done on the Jetson with the help of Docker containers.

Steps of Development:

  1. Groundwork of the environment: JetPack 6.0, Docker, and ROS 2 Humble were installed on the Jetson Orin Nano.
  2. Integration of Sensors: All the sensors' drivers were tested and configured.
  3. SLAM Implementation: The first mapping of the warehouse was done using remote operation.
  4. Navigation Calibration: The parameters for Nav2 were calibrated through various testing (inflation radius, cost scaling, DWB).
  5. Fleet Operations: A basic fleet operation system was developed utilizing a host server (Raspberry Pi 4) for the purpose of granting jobs to the robots.

4.4 System Integration and Testing

The system was subjected to thorough testing, which included:

  • Unit Testing: The components, such as sensors, motor controller, and communication devices were tested separately.
  • Integration Testing: The entire system was put together and tested on the whole robot.
  • Simulation Testing: The Gazebo simulation with the digital twin of the robot was used to verify the navigation algorithms before deployment.
  • Field Testing: The testing was conducted in a controlled zone of the warehouse, where the robot was put in the real-world situation.
  • Reliability Testing: The robot was operated continuously for 72 hours to detect any possible issues.

5. Development Challenges and Solutions

5.1 Challenge: Accurate Localization in Dynamic Environment

The environment of a warehouse keeps on changing hugely with the pallets, forklifts, and people in constant movement, which causes challenges regarding localization since maps tend to be outdated rapidly.

Solution:

  • It employed the hybrid solution with LiDAR-based localization (AMCL - Adaptive Monte Carlo Localization) alongside wheel odometry and data from IMU.
  • It utilized the notion of "keep-out zone"; upon detecting the significant mismatch between LiDAR data and the map, the robot designates the zone as keep-out and develops the route around it.
  • It constantly updates the map during quieter hours.

5.2 Challenge: Real-Time Obstacle Avoidance

At speeds up to 1.5 m/s, the robot must react to obstacles quickly to avoid collisions.

Solution:

  • The local costmap is refreshed using LiDAR data running at 20 Hz ensuring a reaction time of 50 ms.
  • The multi-tier obstacle detection system has been developed:
    • Long (5–10 m): LiDAR detects obstacles and the local planner alters the plan.
    • Medium (1–5 m): The robot slows down.
    • Short (<1 m): The robot comes to a halt without any delay.
  • RealSense depth camera offers 3D obstacle detection capabilities for low objects that cannot be noticed by 2D LiDAR.

5.3 Challenge: Power Management and Battery Life

Achieving 8-hour battery life required optimizing power consumption at all levels.

Solution:

  • Dynamic Frequency Scaling: The CPU/GPU performs frequency adjustments based on the workload. During idle times, the GPU is turned off.
  • Sensor Power Switching: When the RealSense camera (which consumes a lot of power) is not needed, it is switched off (for example, during slow movements).
  • Motor Efficiency: The BLDC motors and DRV8301 drivers are highly efficient (above 90%), which leads to lower power losses.
  • Battery Monitoring: The battery management system gives the charge level, and when the battery level goes below 20%, the robot automatically heads back to recharge.

5.4 Challenge: Communication Latency

The UART link between the Jetson and STM32 has a maximum bandwidth of 115200 baud, which could introduce latency in command transmission.

Solution:

  • Optimized the communication protocol to minimize overhead (binary format, no JSON).
  • Sends velocity commands at 50 Hz, which is sufficient for smooth control.
  • Odometry data is read at 100 Hz.
  • Moved the primary control loop (velocity PI) to the STM32, so the Jetson only sends high-level velocity commands, reducing the amount of data that needs to be transmitted.

5.5 Challenge: Cost Optimization

The cost of the first prototype was much higher than anticipated cost of production.

Solution:

  • Expensive products like SICK safety LiDAR were replaced with cheaper alternatives like RPLIDAR for the first stage of deployment, with plans to integrate safety-certified sensors in later versions.
  • Custom PCB designs were made in-house, thus eliminating the need for costly services of outsourced designers.
  • Instead of using expensive commercial software for navigation, open-source versions were utilized (ROS 2, Nav2, SLAM Toolbox).
  • Negotiation of bulk pricing was done with component suppliers.

6. Results and Performance Metrics

The AMR was deployed in a pilot program at the client's warehouse, operating alongside human workers.

MetricTargetAchievedResult
Payload Capacity100 kg110 kgExceeded
Maximum Speed1.5 m/s (loaded)1.5 m/sMet
Navigation Accuracy±5 cm±2.5 cmExceeded
Obstacle Detection Range10 m15 m (LiDAR)Exceeded
Battery Life8 hours8.5 hoursExceeded
Charging Time4 hours3.5 hoursExceeded
Successful Task Completion Rate98%99.1%Exceeded
Mean Time Between Failures (MTBF)100 hours250 hoursExceeded
Material Transport Cost Reduction25%35%Exceeded
Warehouse Throughput Increase10%18%Exceeded
Safety Incidents00Met

The robot has completed over 5,000 autonomous missions without a single safety incident. The client has ordered an additional 20 units for full-scale deployment.

Conclusion

The Jetson Orin Nano Autonomous Mobile Robot initiative illustrates how contemporary edge AI technology can be merged with ROS 2 to fabricate affordable and efficient robotic systems for automation in industries.

The use of Jetson Orin Nano of NVIDIA integrated with custom hardware, STM32 motor control and ROS 2 ensures easy scalability of robotic systems for autonomous warehouse operations.

At IoTAppDevelopment, we provide end-to-end robotics development services, covering NVIDIA Jetson development, ROS 2 software development, autonomous navigation, computer vision, AI/ML integration, STM32 firmware development, motor control, custom PCB design, sensor integration, and complete robotic system integration.

We offer support for high-tech innovations such as fleets of robots, predictive maintenance, digital twins, two-dimensional navigation, edge Artificial Intelligence, and the Internet of Things.

If you are aiming for an Autonomous Mobile Robot, an automatic robot, a warehouse automation system, or a robotics product based on Jetson, IoTAppDevelopment will transform your idea into a full-scale, reliable, industrial prototype.

Abhinav Akula
DevOps Engineer and 3× Microsoft Azure Certified professional specializing in Azure cloud solutions, migration, deployment automation, and multi-cloud environments. He holds Microsoft certifications as an Azure Developer Associate and Azure Solutions Architect Expert, with expertise in building scalable, secure, and reliable cloud infrastructure.

What Our Clients Say About Us

Client satisfaction is our ultimate goal. Here are some kind words of our precious clients they have used to express their satisfaction with our service.

Leadership That Leads Worldwide

With a physical presence in over 15 countries and a global footprint spanning 25+ countries, we are ready to serve you anywhere. Location, language, or culture is never a barrier, because our global team can work with you in your language. Our strong international team ensures seamless collaboration across borders We have a strong tech team, highly recognized in their domains, with extensive technical expertise.