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 generally600x300pixels, 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, useexpressfor 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,flaskworks well; if you’re using WebSockets, you can sometimes host it on the same server as the distribution server mentioned above atexpress.
- Streaming
Pros and Cons of ROCK
-
Pros
Let’s start by taking a look atPros. 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.


