ROCK

The ROCK Concept

 ROCK is an abbreviation for “Rover/RoboCar Open Console Kit.” This is an implementation of a web application designed to make full use of TriCl ops’ resources. The basic concept is: How can a web app comprehensively handle the various devices supported by RoboCar? That’s one answer.

The Night Before ROCK

 Back when I first started working on web apps, I felt like sites like Web—or maybe HTML—had a sort of “responsive” vibe, or maybe not. I tried to structure the screen at ROCK as a single page and use table to separate it, but the size kept changing depending on the content. That behavior gave me quite a headache…

How ROCK Works

 To overcome the issues mentioned above, we fixed the size. We define a panel with dimensions of 600x300 pixels. We then assign one function—such as a sensor or actuator—to each panel. This encapsulates the device’s behavior and the corresponding screen layout. When constructing the screen layout, we combine these panels. Since there are as many panels as there are devices, when configuring the system, panels are selected or discarded as appropriate.

  • Panel
     The panel size is generally 600x300 pixels, but the camera resolution is 1200x600. Typical examples of panels are shown below.
CPU Status Environmental Studies Infrared Remote Control
CPU Load / RAM Capacity / Temperature / Battery Level Room Temperature/Humidity/Atmospheric Pressure irMagician Control
  • File Structure
     In ROCK, a single pain uses the following three files. Depending on the scale of the processing, the number of JavaScript files may increase.
File extension Role
xxx.html Screen Structure: Defining General Web Layouts and Elements
xxx.css Defines Cascading Style Sheets, styles for web elements, and more
xxx.js JavaScript files—use them when the page requires them to run
  • Server Integration
    There are two main types of server implementations.
    • Streaming
       For a server that streams from a Raspberry Pi, use express for this purpose.
    • Device Handling
       For processes that cannot be completed entirely within the web (which is usually the case with ROCK, since it handles devices), you need to set up an HTTP server or a WebSocket server to call the scripts compatible with the device. If the device handler is written in Python,flask works well; if you’re using WebSockets, you can sometimes host it on the same server as the distribution server mentioned above at express.

Pros and Cons of ROCK

  • Pros
     Let’s start by taking a look at Pros. First, there’s its comprehensiveness. The ability to select and filter the information you need is a major advantage when working with multiple devices. Encapsulation ensures a high degree of independence, allowing it to run even with just a single file. Since it’s a web app, it runs on any platform. It works not only on PCs, of course, but also on iPads and Android game consoles.

  • Cons
     One drawback lies in its “DASH Board” structure. A large screen is absolutely necessary (FHD: 1920x1080 or higher is recommended). Since information from all devices is displayed within the same area, it becomes difficult to prioritize content. This makes it difficult to use on devices with physically small screens.