diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..c7b0455
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,74 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## Project Overview
+
+This is a Docusaurus v3 documentation site for Weston Robot products, built with TypeScript and React. The site serves as comprehensive documentation for robot platforms, peripherals, systems, software, and tutorials.
+
+## Common Development Commands
+
+### Development
+```bash
+# Install dependencies
+npm install
+
+# Start development server (available at http://localhost:3000)
+npm run start
+
+# Build for production
+npm run build
+
+# Type checking
+npm run typecheck
+
+# Serve production build locally
+npm run serve
+
+# Clear Docusaurus cache
+npm run clear
+```
+
+### Docker Development
+```bash
+# Run with Docker Compose
+docker compose up
+
+# Or use the convenience script
+./run_docs.sh
+```
+
+## High-Level Architecture
+
+### Documentation Structure
+The site uses Docusaurus's multi-instance documentation pattern with six separate documentation sections, each with its own routing and sidebar configuration:
+
+- **General** (`/general/*`) - Operational safety and maintenance guides - configured in `sidebars-general.ts`
+- **Robot** (`/robot/*`) - Documentation for UGVs, quadrupeds, humanoids, and manipulators - configured in `sidebars-robot.ts`
+- **Peripheral** (`/peripheral/*`) - Power regulators, network equipment, computers - configured in `sidebars-peripheral.ts`
+- **System** (`/system/*`) - Integrated systems like UGV development kits - configured in `sidebars-system.ts`
+- **Software** (`/software/*`) - SDKs, toolboxes, and installation guides - configured in `sidebars-software.ts`
+- **Tutorial** (`/tutorial/*`) - Step-by-step guides and how-tos - configured in `sidebars-tutorial.ts`
+
+Each section is configured as a separate plugin instance in `docusaurus.config.ts` with its own path, route base, and sidebar configuration.
+
+### Key Configuration Files
+- `docusaurus.config.ts` - Main configuration defining plugins, themes, navbar, and multi-docs setup
+- `sidebars-*.ts` - Individual sidebar configurations for each documentation section
+- `src/pages/index.tsx` - Custom landing page with interactive decision tree navigation using React hooks
+
+### Content Organization
+- Documentation content is written in Markdown/MDX files in respective directories
+- Each section has an `intro.md` entry point
+- Images are stored in `img/` subdirectories within each section
+- Category metadata is managed through `_category_.json` files
+
+### Search & Navigation
+- Uses `docusaurus-lunr-search` plugin for client-side search functionality
+- Custom interactive decision tree on the homepage guides users to appropriate documentation sections
+- Navbar provides direct access to all major documentation categories
+
+### Styling & Theming
+- Custom CSS in `src/css/custom.css`
+- Supports Mermaid diagrams through `@docusaurus/theme-mermaid`
+- Uses Prism for syntax highlighting with GitHub light and Dracula dark themes
\ No newline at end of file
diff --git a/peripheral/computer/cm4.md b/peripheral/computer/cm4.md
index 6c599d5..8f332c7 100644
--- a/peripheral/computer/cm4.md
+++ b/peripheral/computer/cm4.md
@@ -8,7 +8,9 @@ import CM4_IMG from '../img/westonrobot/cm4_sbc.jpg';
This onboard computer is based on Raspberry Pi Computer Module 4 (CM4). We extended the board with CAN and RS485 ports for interfacing with the robot bases and sensors.
+

+
## Key Specifications
diff --git a/peripheral/computer/nanopc.md b/peripheral/computer/nanopc.md
index 20a800c..21c4480 100644
--- a/peripheral/computer/nanopc.md
+++ b/peripheral/computer/nanopc.md
@@ -9,7 +9,9 @@ import NANOPC_PORTS from '../img/westonrobot/nanopc_industrial_ports.png';
This onboard computer is based on NanoPC-T6. We extended the board with industrial ports for easy and reliable interfacing with commonly used sensors and robot bases. Drivers to the ports are pre-configured under Ubuntu 22.04.
+

+
## Key Specifications
diff --git a/peripheral/img/manifold/pocket.png b/peripheral/img/manifold/pocket.png
new file mode 100644
index 0000000..ed4153f
Binary files /dev/null and b/peripheral/img/manifold/pocket.png differ
diff --git a/peripheral/network/industrial_5g_router.md b/peripheral/network/industrial_5g_router.md
index a068cb7..c81c767 100644
--- a/peripheral/network/industrial_5g_router.md
+++ b/peripheral/network/industrial_5g_router.md
@@ -6,7 +6,9 @@ import ROUTER_5G_IMG from '../img/westonrobot/5g_router/industrial_5g_wifi_route
# Industrial 5G Router
+

+
## 1. Key Specifications
diff --git a/peripheral/sensor/_category_.json b/peripheral/sensor/_category_.json
new file mode 100644
index 0000000..a836bcf
--- /dev/null
+++ b/peripheral/sensor/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Sensors",
+ "position": 4,
+ "link": {
+ "type": "generated-index",
+ "description": "Sensors."
+ }
+}
diff --git a/peripheral/sensor/manifold_pocket.md b/peripheral/sensor/manifold_pocket.md
new file mode 100644
index 0000000..21a8e05
--- /dev/null
+++ b/peripheral/sensor/manifold_pocket.md
@@ -0,0 +1,37 @@
+---
+sidebar_position: 1
+---
+
+
+import MANIFOLD_POCKET_SCANNER_IMG from '../img/manifold/pocket.png';
+
+# Manifold Pocket Scanner
+
+## 1. Overview
+
+
+

+
+
+The Pocket is a highly compact and modular 3D data collection device, purpose‑built for seamless integration into handheld workflows and robotic platforms. It combines dual industrial-grade fisheye cameras with global shutter capability for true‑color imaging, alongside a 40‑line LiDAR system delivering dense, real‑time point clouds. The system supports live preview and on‑the‑fly edits through the MindCloud‑GO app, all housed within a lightweight (560 g), palm‑sized enclosure with approximately 2 hours of battery life.
+
+## 2. Specifications
+
+| Specification | Value |
+|--------------|-------|
+| Laser Wavelength | 905nm |
+| Laser Range | Up to 40m @ 10% reflectivity, 70 m @ 80% reflectivity |
+| LiDAR Point Cloud Density | 40 lines |
+| LiDAR Point Rate | 200,000 points/s (first return) |
+| LiDAR Frame Rate | 10 Hz |
+| Cameras | Dual Fisheye 5 Megapixel Global Shutter Camera |
+| Battery Life | 2 hours |
+| Dimensions (Main Unit) | 115 mm X 110 mm X 83 mm |
+| Weight (Main Unit) | 560 g |
+
+## 3. Resources
+
+* MindCloud GO User Manual: [PDF](https://tangrobot.sharepoint.com/:b:/s/Public-Outgoing/EXVPAz1fy0dEmuplUSErgX8BZrLj6EK2IC621P0m_sSpow?e=cWhO5P)
+* MindCloud User Manual: [PDF](https://tangrobot.sharepoint.com/:b:/s/Public-Outgoing/EQCjHhhVamtNuHzNLNt-J1oBzEU-H3OIJ6Gbclk3GRVqZA?e=avRo4H)
+* MindCloud Go (Android APK): [Download](https://www.manifoldtech.cloud/download/?file=MindCloudGo_0.3.0.apk)
+* MindCloud (Windows): [Download](https://www.manifoldtech.cloud/download/?file=MindCloud_0.1.9.exe)
\ No newline at end of file
diff --git a/sidebars-peripheral.ts b/sidebars-peripheral.ts
index 566ff6a..9341aec 100644
--- a/sidebars-peripheral.ts
+++ b/sidebars-peripheral.ts
@@ -22,6 +22,12 @@ const sidebarsPeripheral: SidebarsConfig = {
items: [
'power/power_regulator_v2'],
},
+ {
+ type: 'category',
+ label: 'Sensors',
+ items: [
+ 'sensor/manifold_pocket'],
+ },
],
};
diff --git a/src/css/custom.css b/src/css/custom.css
index 326804d..ac4be78 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -29,26 +29,29 @@
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
- --ifm-color-primary: #3b7caf;
- --ifm-color-primary-dark: #356f9e;
- --ifm-color-primary-darker: #326995;
- --ifm-color-primary-darkest: #29577b;
- --ifm-color-primary-light: #4189c0;
- --ifm-color-primary-lighter: #4b90c5;
- --ifm-color-primary-lightest: #67a2ce;
+ --ifm-color-primary: #67b588;
+ --ifm-color-primary-dark: #5aa77a;
+ --ifm-color-primary-darker: #53a073;
+ --ifm-color-primary-darkest: #44855f;
+ --ifm-color-primary-light: #74c396;
+ --ifm-color-primary-lighter: #7bc99d;
+ --ifm-color-primary-lightest: #90d7b2;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
- --ifm-background-color: #111827;
- --ifm-hero-background-color: #1f2937;
- --ifm-navbar-background-color: rgba(17, 24, 39, 0.95);
- --ifm-card-background-color: #1f2937;
- --ifm-footer-background-color: #0f172a;
- --ifm-color-emphasis-700: #9ca3af;
- --ifm-color-emphasis-800: #d1d5db;
- --ifm-color-emphasis-900: #f3f4f6;
+ --ifm-background-color: #1e1e1e;
+ --ifm-hero-background-color: #282c34;
+ --ifm-navbar-background-color: rgba(30, 30, 30, 0.95);
+ --ifm-card-background-color: #282c34;
+ --ifm-footer-background-color: #161618;
+ --ifm-color-emphasis-100: #2e333d;
+ --ifm-color-emphasis-200: #3e4451;
+ --ifm-color-emphasis-700: #abb2bf;
+ --ifm-color-emphasis-800: #c8cdd7;
+ --ifm-color-emphasis-900: #e6e9ef;
+ --ifm-font-color-base: #abb2bf;
- /* Custom link colors for dark mode */
- --ifm-link-color: #60a5fa;
- --ifm-link-hover-color: #93c5fd;
+ /* Custom link colors for dark mode - soft green accent */
+ --ifm-link-color: #67b588;
+ --ifm-link-hover-color: #7bc99d;
--ifm-link-decoration: none;
}
diff --git a/src/pages/index.module.css b/src/pages/index.module.css
index 9f2fbb1..cbbe53d 100644
--- a/src/pages/index.module.css
+++ b/src/pages/index.module.css
@@ -172,7 +172,7 @@
}
.questionBox {
- background-color: var(--ifm-color-primary);
+ background: linear-gradient(135deg, var(--ifm-color-primary), var(--ifm-color-primary-dark));
color: white;
padding: 1.5rem 2rem;
border-radius: 8px;
@@ -200,16 +200,18 @@
.optionCard {
background-color: var(--ifm-card-background-color);
+ border: 1px solid var(--ifm-color-emphasis-200);
border-radius: 8px;
overflow: hidden;
- transition: transform 0.2s ease, box-shadow 0.2s ease;
+ transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
position: relative;
}
.optionCard:hover {
transform: translateY(-4px);
- box-shadow: 0 12px 20px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 12px 20px rgba(0, 0, 0, 0.15);
+ border-color: var(--ifm-color-primary);
}
.optionLink,
@@ -261,6 +263,12 @@
.backButton {
grid-column: 1 / -1;
background-color: var(--ifm-color-emphasis-100);
+ border-color: var(--ifm-color-emphasis-200);
+}
+
+[data-theme='dark'] .backButton {
+ background-color: var(--ifm-color-emphasis-100);
+ border-color: var(--ifm-color-emphasis-200);
}
.backButton .optionButton {
diff --git a/tutorial/intro.md b/tutorial/intro.md
index f272278..f7bf7aa 100644
--- a/tutorial/intro.md
+++ b/tutorial/intro.md
@@ -6,4 +6,12 @@ sidebar_position: 1
In addition to the resource provided on the product pages, we also prepare more detailed tutorials and guides to help you get started with our products. These tutorials cover a range of topics, from basic setup to advanced usage, and are designed to help you make the most of our products as fast as possible.
-* [Unitree G1 Humanoid Robot Development Guide](unitree/g1_dev_guide)
\ No newline at end of file
+## AgileX UGVs
+
+* [UGV Robot Base Control Guide](agilex/ugv_base_control)
+
+## Unitree Legged Robots
+
+* [G1 Development Guide](unitree/g1_dev_guide)
+* [G1 Diagnostics Guide](unitree/g1_diag_guide)
+* [G1 Internet Connection Guide](unitree/g1_internet_guide)