Intel Realsense D435i icon Intel Realsense D435i — Connect Intel RealSense depth cameras to ARC NMS for depth-based distance detection, point-cloud mapping, video streaming, and navigation telemetry. Try it →
 

Navigation Messaging System

The Navigation Messaging System (NMS) is built into the ARC framework. It allows skills to push data (location & obstacle detection) into the messaging system. Then, mapping/navigation SLAM skills can subscribe to the navigation events. The NMS was designed to provide transparent Navigation to the user in ARC. You do not have to write any complicated code because the robot skills will work for navigation and obstacle avoidance.



NMS Stack

The NMS stack consists of sensors that feed the messaging system, received by mapping skills.


Level #1 - Map & Navigation

This is how to view the sensor data and organize it into maps for navigating. There are a few skills that do this. They subscribe to the sensor event data and assemble a map. Then, they allow you to click on the map and instruct the robot where to navigate to (either way-point or any destination, depending on your sensor data). A few navigation skills are...



Level #3 - Sensor Groups

You require sensors that feed data into the messaging system that maps are made from. The navigation messaging system collects data by supporting two sensor input groups...

  1. Lidar/depth scanners: any sensor that can detect obstacles (laser, 360-degree lidar ultrasonic, IR, etc.). The sensor will detect objects and mark on the map where the robot cannot go (i.e., walls, sofa, chairs, etc.). Supported skills are...

  2. Localization telemetry pose navigation: Special sensors that keep track of the robot's position (pose) in the real world (IPS, wheel encoders, Roomba movement panel, intel realsense t265, etc.). *Note: only one Group #2 sensor can be active at one time. 


What Sensors Do You Need?

Depending on what NMS Level 1 mapping/navigation you will be using, the sensor requirements may differ. For example, using the mapping skill

Hector SLAM navigation with NMS pose and obstacle data for room mapping, waypoints, and autonomous obstacle-avoiding routes.
will require a sensor from each group L3G1 and L3G2 (layer 3 group 1& layer 3 group 2). So check the mapping robot skill so you know what NMS layer 3 group sensors are required for it. 


Scripting Support

NMS commands are supported by the JavaScript and Python scripting compilers in ARC. The namespace is Navigation, and You can view more details in the Support section for JavaScript or Python. The script commands allow custom sending Level #3 Group #1/#2 sensor data into the NMS. As well as pausing and stopping any ongoing navigation by a Level #1 navigator.


Cartesian Coordinate System

This robot skill uses cartesian coordinates to reference the robot's starting position. The starting position is always 0,0 and is defined at startup. As the robot navigates, the skill measures the distance from the starting position. The unit of measurement is in CM (centimeters). Read more about the cartesian coordinate system on Wikipedia.

Further Reading

Many experts have researched and documented robotics's navigation, localization, and known pose positioning. While the Intel T265 has demonstrated the most significant success at inside-out localization, many other methods have been attempted over the years. The topic of reach into robot navigation is far too vast to be covered in this manual. However, we'll leave you with a few papers that have greatly influenced the robot industry in this field.


All Navigation Robot Skills

These are navigation robot skills that work with the NMS or assist with controlling the robot's movement.

Sensor-based SLAM navigation: builds maps, plans routes to waypoints, and drives using positioning, distance, and movement skills.
Camera-guided docking to a printed glyph with charging confirmation, undocking, retries, and Movement Manager support
Standalone autonomous navigation using Beitian BN-880 GPS/Compass with real-time map waypointing and offline map caching; requires Arduino.
Camera Nms Pose by Synthiam Inc
Camera-based robot pose tracking for ARCx with perspective calibration, floor mapping, and NMS navigation without encoders, lidar, or SLAM.
Camera NMS Pose by Synthiam Inc.
Overhead camera tracks a glyph to give precise robot pose to ARC's NMS for multi-camera indoor/outdoor navigation and waypoint control
EZ-SLAM by Synthiam
Creates a map in a global variable; proof-of-concept SLAM visualizer (very experimental).
Hitachi Lg Lds Lidar by Hitachi-Lg Data Storage
USB lidar skill for Hitachi-LG LDS-01: scans to NMS, globals, obstacle zones, and live view for navigation.
Hitachi-LG LDS 360-degree LiDAR driver streaming scans into ARC NMS for obstacle detection, SLAM use, Arduino hookup, config options and variables.
Infrared indoor positioning for ARC robots: dual-camera tracks IR beacon, shows real-time heading, path and EZ-Script navigation variables
Intel Realsense by Synthiam Inc
Intel RealSense depth camera skill for ARCx navigation, video, measured detections, tilt sensing, recordings, and point clouds.
Connect Intel RealSense depth cameras to ARC NMS for depth-based distance detection, point-cloud mapping, video streaming, and navigation telemetry.
T265 VSLAM for ARC: SLAM-based mapping and precise way-point navigation, low-power tracking, and NMS telemetry.
Tracks robot position and heading with Intel RealSense cameras, sending data to ARCx navigation, scripts, variables, video, and maps.
Converts Xbox 360 Kinect depth frames into NMS obstacle scans for ARC path planning, SLAM, and obstacle avoidance.
Uses Kinect v1 as a depth sensor for obstacle scans, floor-drop detection, vision range measurement, tilt/LED control, and simulated testing across platforms.
NMS Example by Synthiam
Example NMS Level #1 navigation skill showing subscription to combined scan+location data, displaying position and scan info; source code included.
Estimate pose odometry from movement distance for robots without encoders, calibrated by speed. Suited for DIY navigation; pose drifts with lidar.
Queries NMS scan data for nearest obstacles, clear paths, open directions, zones, and pose without driving or mapping.
Query NMS lidar scan data by angle, with control commands for range, arc extremes, and obstacle checks from the latest scan.
Orbbec 3D camera skill for ARCx: obstacle scans, video, depth, IMU tilt, detections distance, recordings, point clouds, multi-camera support
PTI Lidar Plugin by KeenanNW
Pineapple Technology Industries Capstone plugin adds a secretive LiDAR unit to ARC for distance measurement.
Rplidar by Slamtec
Slamtec RPLidar scanner integration for NMS, global variables, obstacle zones, and live scan view across USB, UART, or network.
Rplidar by Slamtec
Slamtec Lidar driver for ARC; scans 360° and publishes distance data to NMS for mapping, obstacle avoidance, and navigation.
Turns a Stereolabs ZED camera into GPU-free depth, obstacle scans, video, IMU and AI-ready 3D sensing for ARC on Windows, Linux and macOS.
Structure Sensor by Occipital
Structure Sensor depth, obstacle scanning, 3D scanning, recording, playback, and paired-color vision for robots via OpenNI2
Hector SLAM navigation with NMS pose and obstacle data for room mapping, waypoints, and autonomous obstacle-avoiding routes.
The Navigator by Synthiam
Path-planning navigator using ARC NMS position and obstacle data to map, log trajectories, and autonomously follow waypoints.
Wavefront by rz90208
Wavefront grid planner computes collision-free, deterministic paths from start to goal using known occupancy maps for indoor robots.
Arduino UNO wheel encoder: reads left/right ticks, provides counts, configurable ticks, wheel & pivot sizes, optional pose telemetry to ARC NMS.
XV Lidar Bridge by Retro Robot Chaos
Neato XV LIDAR integration for ARC with live radar, 8-zone obstacle detection, NMS support, calibration, and scan watchdog monitoring
XV11 LIDAR by CochranRobotics
Real-time 2D mapping from Neato XV-11 360° LIDAR via GetSurreal controller; exports $LIDARDistance/$LIDARIntensity, configurable angles, color, zoom.