Platform Fundamentals
  • 3 Minutes to read

Platform Fundamentals

Article summary

What's a robotic application? A robotic application is a software application designed to run on a robotic device.
At a high level, the most common components of a robotic app are:

  1. User Interface & Interactions - interact with the user and ask for inputs (like pressing a button or placing a finger to measure pulse), display information & reflect what the robot is doing or waiting for (waiting for input, processing, working, etc..).
  2. Sensors & Controllers - Get information from a robust variety of sensors (cameras, temperature, pressure, compass, fingerprint, etc..) and send commands to the robot (LEDs, movement, navigation, arm commands, etc..).
  3. Data processing - Using the inputs from the user + the data from the sensors and process the main logic of your application, like identifying an object, running an ML model, or communicating with third-party services.

There are mainly three different types of Ra-Ya applications you can choose from:

  • You can develop an application using our Restful API. You write the JS client-side code (explained below) and communicate with the robot to get data and send commands through a restful API. This approach is ideal for a simple application that doesn't require complex data processing close to the hardware.
  • You can develop an application using our Python Ra-Ya SDK. You write the Python code that will run in the robot's embedded pc and don't write JS client-side code.  This approach is ideal for applications that perform tasks and doesn't require any interaction with the user (except an indication if the app is running or not).
  • You can develop an application using both Restful API and Python Ra-Ya SDK. This approach is similar to any client-server development. Your business logic will be written by the SDK and run on the embedded PC, while your User Interface will be written in JS. Restful API can get/send commands to the robot or communicate between your client code & embedded code. 

We are going to cover the core concepts behind a Ra-Ya app:

  • Client-side code.
    • Restful API.
  • Embedded code.
    • Ra-Ya SDK.

Client-side code

As you can see in the illustration above, the client-side code represents the user interface that will be exposed to the users.

  • This code should be written in Javascript. We highly encourage you to use React library.
  • The client-side code should be responsive since the app will be used by the users from their mobile phone or from Gary's touch screen.

Let's say you want to develop a health application that will measure different physiologic parameters (pulse, pressure, etc..).In that scenario, you will probably want to show those results in a visual timeline/chart to enable the user to track his measurements. The way you are going to ask from inputs (in our example, asking users to "take a measurement"), show progress, and showing outputs (like a visual chart) is through the client-side code.

Restful API

Our robust Restful API will allow you to access any sensor or control in the robot in a very fast and familiar way, directly from your Javascript code.

Let's consider again our "health measurements" app. We wanted to measure different physiologic parameters and show them to the user. We can achieve that by just calling the following API:


In addition, through the restful API, you will be able to pass & receive data between your client-side code and embedded code, hosted in the robot's embedded PC.

In Restful API section you will find our full API documentation. take a look!

Embedded code

As you probably got it, If the client-side code is the one in charge of the user interface and interactions with the users, the embedded code will run in the robot embedded PC & is the one that will handle the heavy business logic and machine learning models. For that reason, he needs to be close to the hardware in order to achieve the best performance for real-time or complex tasks.

  • Gary's side code will be stored in Gary's embedded pc.


Ra-Ya SDK is our Python kit developed in order to make your embedded code process easier. You will find there all the tools needed to access the sensors/controllers, register for events, easily communicate with your client-side code, etc...

  • You can download our SDK from here
  • To read more about all available sensors/controllers, please access this article.

Was this article helpful?