Overview
Ned2 is a robot based on Raspberry, Arduino & ROS. It uses ROS to make the interface between Hardware and high-level bindings.
On the following figure, you can see a global overview of the Niryo’s robot software in order to understand where are placed each part of the software.

Ned2 software architecture
The TCP server exposed in this schematic follows our own protocole, see Use Ned robot’s TCP server for more informations.
ROS (Robot Operating System) is an Open-Source Robotic Framework which allows to ease robot software development. The framework is used in almost each part of Ned2’s software.
The Stack is split into two parts:
The High Level Packages (motion planner, vision, …), developed in Python to give good readability.
The Low Level Packages (drivers, hardware management, …), developed in C++ to ensure real time capabilities.
Note
To learn more about ROS, go on Official ROS Wiki.