Update README and schema with repository and plugin asset details

This commit is contained in:
2025-02-13 15:03:07 -05:00
parent 82a680eae8
commit c9e3135564
7 changed files with 69 additions and 8 deletions

View File

@@ -8,6 +8,9 @@ This repository contains robot plugins for use with HRIStudio, a platform for de
robot-plugins/
├── plugins/ # Robot plugin definitions (JSON)
├── assets/ # Robot images and 3D models
│ ├── repository-icon.png # Repository icon (256x256px)
│ ├── repository-logo.png # Repository logo (512x512px)
│ ├── repository-banner.png # Repository banner (optional)
│ └── {robotId}/ # Assets for each robot
└── docs/ # Plugin documentation
```
@@ -28,13 +31,18 @@ For each robot plugin, you need:
### Assets
- `assets/{robotId}/thumb.png` - Thumbnail image (160x160px)
- `assets/{robotId}/logo.png` - Robot logo (512x512px, transparent background)
- `assets/{robotId}/main.png` - Main image (16:9 aspect ratio)
- `assets/{robotId}/dimensions.png` - Technical drawing (optional)
- Additional views (optional):
- `assets/{robotId}/front.png`
- `assets/{robotId}/side.png`
- `assets/{robotId}/top.png`
### Repository Assets
- `assets/repository-icon.png` - Repository icon (256x256px, square)
- `assets/repository-logo.png` - Repository logo (512x512px, transparent background)
- `assets/repository-banner.png` - Repository banner (optional, 1280x640px)
## Plugin Schema
See [docs/schema.md](docs/schema.md) for the complete plugin schema documentation.

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 KiB

BIN
assets/repository-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
assets/repository-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -2,7 +2,60 @@
This document describes the schema for HRIStudio robot plugins.
## Overview
## Repository Metadata
The repository itself is defined by a `repository.json` file with the following structure:
```json
{
"id": string,
"name": string,
"description": string?,
"url": string (URL),
"official": boolean,
"author": {
"name": string,
"email": string (email)?,
"url": string (URL)?,
"organization": string?
},
"maintainers": [
{
"name": string,
"email": string (email)?,
"url": string (URL)?
}
]?,
"homepage": string (URL)?,
"license": string,
"defaultBranch": string,
"lastUpdated": string (ISO date),
"trust": "official" | "verified" | "community",
"assets": {
"icon": string?,
"logo": string?,
"banner": string?
},
"compatibility": {
"hristudio": {
"min": string,
"recommended": string?
},
"ros2": {
"distributions": string[],
"recommended": string?
}?
},
"tags": string[],
"stats": {
"downloads": number,
"stars": number,
"plugins": number
}?
}
```
## Plugin Schema
Each plugin is defined in a JSON file with the following top-level structure:
@@ -40,7 +93,7 @@ Each plugin is defined in a JSON file with the following top-level structure:
```json
"manufacturer": {
"name": string,
"website": string (URL),
"website": string (URL)?,
"support": string (URL)?
}
```
@@ -61,14 +114,14 @@ Each plugin is defined in a JSON file with the following top-level structure:
```json
"assets": {
"thumbnailUrl": string,
"logo": string?,
"images": {
"main": string,
"angles": {
"front": string?,
"side": string?,
"top": string?
},
"dimensions": string?
}
},
"model": {
"format": "URDF" | "glTF" | "other",
@@ -89,8 +142,7 @@ Each plugin is defined in a JSON file with the following top-level structure:
},
"capabilities": string[],
"maxSpeed": number,
"batteryLife": number,
"payload": number?
"batteryLife": number
}
```

View File

@@ -21,7 +21,7 @@
"assets": {
"thumbnailUrl": "assets/turtlebot3-burger/thumb.png",
"images": {
"main": "assets/turtlebot3-burger/main.png",
"main": "assets/turtlebot3-burger/main.jpg",
"angles": {
"front": "assets/turtlebot3-burger/front.png",
"side": "assets/turtlebot3-burger/side.png",

View File

@@ -23,6 +23,7 @@
"trust": "official",
"assets": {
"icon": "assets/repository-icon.png",
"logo": "assets/repository-logo.png",
"banner": "assets/repository-banner.png"
},
"compatibility": {