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. +
Ranger Mini robot +
## 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. +
NanoPC-T6 +
## 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 +
Ranger Mini robot +
## 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 + +
+Manifold Pocket Scanner +
+ +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)