Skip to content

Commit

Permalink
routine updates
Browse files Browse the repository at this point in the history
  • Loading branch information
hokashun committed Jan 2, 2024
1 parent db7cbb0 commit fbf49f4
Show file tree
Hide file tree
Showing 12 changed files with 72 additions and 258 deletions.
42 changes: 17 additions & 25 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,46 @@

# Robot Control System
# What it is

> Where precision fuses with robotic mastery.
## What it is

The GR-1 robot software is a sophisticated system that includes an advanced framework designed for precise management and control of robotic systems. It comprises two core components: the upper computer and the lower computer.

The collective elements of the upper computer, encompassing the Control App, Client SDK, and Server API, comprise the Robot Control System, or RoCS.

This comprehensive framework, along with its robust architectural design, provides developers and operators with the tools necessary for efficient and precise monitoring and remote control of robotic systems, thereby ensuring their seamless and optimal operation.
The Robot Control System, abbreviated as RoCS, is an advanced software framework designed for precise management and control of robots. It is the upper computer of the whole Fourier robot software system which includes both upper computer and lower computer.

See the [Quick start](quick_start/overview.md) guide for more details.
RoCS empowers robots with exceptional control and functionality. Here's a brief overview:

## Features

* **High Precision Control:** RoCS is designed for achieving highly precise control of robotic systems, making robots excel in various tasks, be it in industrial automation, medical surgery, or other domains.
* **Layered Architecture:** RoCS employs a layered architecture, modularizing functionalities for ease of maintenance and scalability. This simplifies development and integration of various components, enhancing system maintainability.
* **User-Friendly Graphical Interface:** RoCS provides a user-friendly graphical interface (Control App) that enables developers to interact with and monitor robotic systems seamlessly, expediting the development process.
* **Open Source:** Part of RoCS (Client SDK) is open source, offering flexibility and customization opportunities for developers. This fosters community engagement and drives innovation.
* **Efficient Data Transmission:** RoCS's Server API facilitates data transmission through HTTP and WebSocket protocols, ensuring efficient and secure data transfer crucial for real-time control and monitoring.
* **High Precision Control:** RoCS excels in various tasks, be it in industrial automation, medical surgery, or other domains, thanks to its precise control of robotic systems.
* **Layered Architecture:** It employs a modular architecture, making maintenance and scalability a breeze. This simplifies development and integration, enhancing system maintainability.
* **User-Friendly Interface:** RoCS provides a user-friendly graphical interface (Control App) that expedites the development process, allowing developers to interact with and monitor robotic systems seamlessly.
* **Open Source:** Part of RoCS (Client SDK) is open source, fostering community engagement and driving innovation by offering flexibility and customization opportunities.
* **Efficient Data Transmission:** RoCS's Server API ensures efficient and secure data transfer through HTTP and WebSocket protocols, crucial for real-time control and monitoring.
* **Comprehensive Functionality:** RoCS offers a wide range of functionalities, including sound and video processing, motion algorithms, hardware control, and more, making it suitable for diverse robotic application domains.
* **Integration:** RoCS effectively integrates various components within its layered structure, making it a comprehensive robotic control system capable of meeting diverse application needs.

## Lower Computer

The lower computer, functioning as the analog of the cerebellum in human physiology, specializes in tasks related to motion control. It is responsible for motor control, motion algorithms, hardware driver management, and other critical functions essential for the robot's movement and stability.
The lower computer, acting as the equivalent of the cerebellum in human physiology, specializes in motion control, handling motor control, motion algorithms, hardware driver management, and other critical functions essential for the robot's movement and stability.

## Upper Computer

On the flip side, the upper computer is primarily designed for smooth data exchange and the execution of specific logic applications. Its responsibilities include tasks like receiving and playing audio, real-time transmission of video streams, sending precise instructions to the robot's hardware components, and continuously monitoring the operational status of the robot. All components of the upper computer are collectively referred to as RoCS.
The upper computer is dedicated to data exchange and executing specific logic applications. It manages tasks such as receiving and playing audio, real-time transmission of video streams, dispatching precise instructions to hardware components, and continuous monitoring of the robot's operational status.

## Layers of RoCS
## Components of RoCS

The RoCS is structured into three distinct layers, each serving a unique and pivotal role:
RoCS consists of three components:

* **Control App (User Graphic Application)**

The Control App is an intuitive graphical application tailored for use on terminals external to the robot's physical body, such as computers and mobile devices. Its primary function is to serve as a comprehensive reference for developers, rather than as a consumer-facing application.
An intuitive graphical application for developers to reference and interact with.
* **Client SDK (Client Interface)**

The Client SDK represents the client-side interface, facilitating interaction with the Robot Control System. It provides developers with a streamlined mechanism for accessing the Server API, thereby enabling the development of customized applications. This layer is open-source, encouraging the development community to create tailored solutions.
Facilitates interaction with the Robot Control System, encouraging the development of customized applications.
* **Server API (Server Interface)**

Operating within the confines of the robot, the Server API assumes the role of a lightweight data forwarding layer. It leverages HTTP and WebSocket protocols to facilitate the seamless transmission of external commands to the lower computer and the transmission of essential robot data to external entities. Despite its location within the robot, the Server API is considered an integral part of the upper computer. However, due to efficiency and security concerns, it is not available as open-source software.
The Server API essentially serves as the crucial conduit between the core functions of the lower computer and the external world, ensuring the efficient and secure exchange of data.
Acts as a conduit between the lower computer and the external world, ensuring efficient and secure data exchange. It leverages HTTP and WebSocket protocols for communcation. Due to efficiency and security concerns, it is not open-sourced.

## RoCS Architecture

The RoCS architecture is meticulously engineered to provide accurate control and management of robotic systems through a network-based communication system. It allows for seamless interaction with the robot and empowers operators to issue commands and receive real-time feedback. This is achieved by supporting Node.js and Python SDK clients, along with joystick terminals that run the Control App, enabling effective communication with the system.
The RoCS architecture offers precise control and management of robotic systems through network-based communication, connecting the terminal with the three layers of the system.

![](concepts/static/about_rocs.png)

Expand All @@ -65,4 +57,4 @@ The RoCS architecture is meticulously engineered to provide accurate control and
* The uppermost layer is versatile and dynamic, incorporating advanced functionalities such as graphical programming, cluster control, avatar control, and embodied intelligence.
* This layer enables higher-level tasks, including human-robot interaction, decision-making, and intelligent behaviors.

The RoCS architecture offers a comprehensive framework for controlling and managing robots, spanning from low-level motion control to high-level intelligent behaviors and human-robot interaction,making it a versatile tool in various robotic applications.
For more information, see the [Quick Start](quick_start/overview.md) section.
Binary file added docs/_media/bg-large.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_media/bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 3 additions & 4 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
- [**Quick Start**](quick_start/overview.md)

- [Configuring RoCS for Simulated Robot](quick_start/setup_for_simulated_robot.md)
- [Configuring RoCS for Physical Robot](quick_start/setup_for_physical_robot.md)
- [**Client_SDK**](client_sdk/overview.md)
- [Configuring RoCS for Physical Robot.](quick_start/setup_for_physical_robot.md)
- [**Client_SDK Reference Guide**](client_sdk/overview.md)

- [Python](https://fftai.github.io/rocs_client_py/index.html)
- [Nodejs](https://fftai.github.io/rocs_client_js/index.html)
Expand All @@ -22,6 +22,7 @@
- [Controlling Robot Movements](demo_app/control_robot_movements.md)
- [Accessing and Modifying Settings](demo_app/settings.md)
- [Build Your Own Remote Control App](demo_app/app_project_setup.md)
- [**Server API**](server_api/ServerAPI.md)
- [**Autonomy**](autonomy/overview.md)
- [**Motion Library**](motion_library/overview.md)

Expand All @@ -32,8 +33,6 @@
- [Move Head](motion_library/move_head.md)
- [Move Arms and Hands](motion_library/move_arms_and_hands.md)
- [Tremble Fingers](motion_library/tremble_fingers.md)
- [**Server API**](server_api/ServerAPI.md)
- [**FSA**](fsa/about_fsa.md)
- [**Release Notes**](release/overview.md)

- [Release V0.1](release/v0.1.md)
Expand Down
7 changes: 3 additions & 4 deletions docs/client_sdk/overview.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Overview

The SDK operates based on the concept of encapsulation, neatly organizing essential robot functions into separate classes, each equipped with specialized methods. Developers can make use of these encapsulated capabilities through provided interfaces, making it easy to create customized applications seamlessly. Whether you need to fine-tune low-level motor operations, coordinate complex high-level motion sequences, manage audio/video transmission, implement SLAM for mapping, or monitor odometry, the SDK's modular structure ensures flexibility and simplicity for developers to customize their solutions.

The SDK plays a vital role in applications seeking to command the GR-1, acquire sensor data, establish payload services, etc.
This reference guide is designed to assist you in navigating the various modules and classes, demonstrating how they can be effectively employed in application development. It serves as a fundamental resource for developers.

Operating on the principle of encapsulation, the SDK neatly packages fundamental robot functions into distinct classes, each armed with specialized methods. Developers can harness these encapsulated capabilities through provided interfaces, facilitating the seamless creation of customized applications. Whether fine-tuning low-level motor operations, orchestrating high-level motion sequences, handling audio/video transmission, implementing SLAM for mapping, or monitoring odometry, the SDK's modular structure ensures flexibility and simplicity in customization for developers.

This quickstart guide provides a step-by-step walkthrough to help you install the necessary SDK libraries (both in Python and JavaScript/TypeScript) and run basic programs for GR-1 control.
!> Please note that we assume you have already installed your preferred SDK packages. If you haven't done so yet, please refer to [Setting Up Python Client SDK](quick_start/setup_for_physical_robot?id=setting-up-python-client-sdk) or [Setting Up JavaScript/TypeScript Client SDK](quick_start/setup_for_physical_robot?id=setting-up-javascripttypescript-client-sdk) section for installation instructions.
12 changes: 8 additions & 4 deletions docs/concepts/about_rocs.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# What it is

The Robot Control System, known as RoCS, is an advanced software framework designed for precise management and control of robotic systems. It consists of two primary components: the upper computer and the lower computer.

> Where precision fuses with robotic mastery.
>
The Robot Control System, abbreviated as RoCS, is an advanced software framework designed for precise management and control of robots. It is the upper computer of the whole Fourier robot software system which includes both upper computer and lower computer.

RoCS empowers robots with exceptional control and functionality. Here's a brief overview:

Expand All @@ -22,9 +26,9 @@ The lower computer, acting as the equivalent of the cerebellum in human physiolo

The upper computer is dedicated to data exchange and executing specific logic applications. It manages tasks such as receiving and playing audio, real-time transmission of video streams, dispatching precise instructions to hardware components, and continuous monitoring of the robot's operational status.

## Layers of RoCS
## Components of RoCS

RoCS consists of three layers:
RoCS consists of three components:

* **Control App (User Graphic Application)**

Expand Down Expand Up @@ -55,4 +59,4 @@ The RoCS architecture offers precise control and management of robotic systems t
* The uppermost layer is versatile and dynamic, incorporating advanced functionalities such as graphical programming, cluster control, avatar control, and embodied intelligence.
* This layer enables higher-level tasks, including human-robot interaction, decision-making, and intelligent behaviors.

RoCS is a versatile tool in various robotic applications. For more details, see the [Quick Start](quick_start/overview.md).
For more information, see the [Quick Start](quick_start/overview.md) section.
Loading

0 comments on commit fbf49f4

Please sign in to comment.