Spaces:
Running
Running
feat: add viewer code
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- viewer/.env.public +2 -0
- viewer/.gitignore +7 -0
- viewer/README.md +41 -52
- viewer/components.json +20 -0
- viewer/deploy-function.js +39 -0
- viewer/eslint.config.js +14 -13
- viewer/index.html +8 -3
- viewer/package-lock.json +0 -0
- viewer/package.json +79 -19
- viewer/postcss.config.js +6 -0
- viewer/public/favicon.ico +0 -0
- viewer/public/placeholder.svg +1 -0
- viewer/public/urdf/T12/meshes/Ankle1.STL +0 -0
- viewer/public/urdf/T12/meshes/Ankle2.STL +0 -0
- viewer/public/urdf/T12/meshes/Ankle3.STL +0 -0
- viewer/public/urdf/T12/meshes/Ankle4.STL +0 -0
- viewer/public/urdf/T12/meshes/Ankle5.STL +0 -0
- viewer/public/urdf/T12/meshes/Ankle6.STL +0 -0
- viewer/public/urdf/T12/meshes/Body.STL +0 -0
- viewer/public/urdf/T12/meshes/Foot1.STL +0 -0
- viewer/public/urdf/T12/meshes/Foot2.STL +0 -0
- viewer/public/urdf/T12/meshes/Foot3.STL +0 -0
- viewer/public/urdf/T12/meshes/Foot4.STL +0 -0
- viewer/public/urdf/T12/meshes/Foot5.STL +0 -0
- viewer/public/urdf/T12/meshes/Foot6.STL +0 -0
- viewer/public/urdf/T12/meshes/Hip1.STL +0 -0
- viewer/public/urdf/T12/meshes/Hip2.STL +0 -0
- viewer/public/urdf/T12/meshes/Hip3.STL +0 -0
- viewer/public/urdf/T12/meshes/Hip4.STL +0 -0
- viewer/public/urdf/T12/meshes/Hip5.STL +0 -0
- viewer/public/urdf/T12/meshes/Hip6.STL +0 -0
- viewer/public/urdf/T12/meshes/Knee1.STL +0 -0
- viewer/public/urdf/T12/meshes/Knee2.STL +0 -0
- viewer/public/urdf/T12/meshes/Knee3.STL +0 -0
- viewer/public/urdf/T12/meshes/Knee4.STL +0 -0
- viewer/public/urdf/T12/meshes/Knee5.STL +0 -0
- viewer/public/urdf/T12/meshes/Knee6.STL +0 -0
- viewer/public/urdf/T12/meshes/Shin1.STL +0 -0
- viewer/public/urdf/T12/meshes/Shin2.STL +0 -0
- viewer/public/urdf/T12/meshes/Shin3.STL +0 -0
- viewer/public/urdf/T12/meshes/Shin4.STL +0 -0
- viewer/public/urdf/T12/meshes/Shin5.STL +0 -0
- viewer/public/urdf/T12/meshes/Shin6.STL +0 -0
- viewer/public/urdf/T12/meshes/Thigh1.STL +0 -0
- viewer/public/urdf/T12/meshes/Thigh2.STL +0 -0
- viewer/public/urdf/T12/meshes/Thigh3.STL +0 -0
- viewer/public/urdf/T12/meshes/Thigh4.STL +0 -0
- viewer/public/urdf/T12/meshes/Thigh5.STL +0 -0
- viewer/public/urdf/T12/meshes/Thigh6.STL +0 -0
- viewer/public/urdf/T12/robot-data.json +57 -0
viewer/.env.public
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
VITE_SUPABASE_URL=https://mizajlqhooderueazvnp.supabase.co
|
2 |
+
VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im1pemFqbHFob29kZXJ1ZWF6dm5wIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NDE4NzU1MTgsImV4cCI6MjA1NzQ1MTUxOH0.iTbP3KqPr4Fl48YQnlwplyPF3OCTjU5g62WmmygjSbA
|
viewer/.gitignore
CHANGED
@@ -22,3 +22,10 @@ dist-ssr
|
|
22 |
*.njsproj
|
23 |
*.sln
|
24 |
*.sw?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
*.njsproj
|
23 |
*.sln
|
24 |
*.sw?
|
25 |
+
|
26 |
+
# Environment variables
|
27 |
+
.env.*
|
28 |
+
.env
|
29 |
+
|
30 |
+
# Exclude .env.public
|
31 |
+
!.env.public
|
viewer/README.md
CHANGED
@@ -1,54 +1,43 @@
|
|
1 |
-
#
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
extends: [
|
17 |
-
// Remove ...tseslint.configs.recommended and replace with this
|
18 |
-
...tseslint.configs.recommendedTypeChecked,
|
19 |
-
// Alternatively, use this for stricter rules
|
20 |
-
...tseslint.configs.strictTypeChecked,
|
21 |
-
// Optionally, add this for stylistic rules
|
22 |
-
...tseslint.configs.stylisticTypeChecked,
|
23 |
-
],
|
24 |
-
languageOptions: {
|
25 |
-
// other options...
|
26 |
-
parserOptions: {
|
27 |
-
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
28 |
-
tsconfigRootDir: import.meta.dirname,
|
29 |
-
},
|
30 |
-
},
|
31 |
-
})
|
32 |
-
```
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
```
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
...reactX.configs['recommended-typescript'].rules,
|
51 |
-
...reactDom.configs.recommended.rules,
|
52 |
-
},
|
53 |
-
})
|
54 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# URDF Web Visualizer
|
2 |
+
|
3 |
+
**URL**: https://urdf-web-visualizer.lovable.app/
|
4 |
+
|
5 |
+
## How can I edit this code?
|
6 |
+
|
7 |
+
**Use Lovable**
|
8 |
+
|
9 |
+
Simply visit the [ Project](https://lovable.dev/projects/3aab3fa4-10e6-4c4a-8d12-b46271876519) and start prompting.
|
10 |
+
|
11 |
+
Changes made via Lovable will be committed automatically to the main branch of this repo.
|
12 |
+
|
13 |
+
**IDE**
|
14 |
+
|
15 |
+
Have Node.js & npm installed - [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating). You can also use bun instead of npm.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
+
Follow these steps:
|
18 |
+
|
19 |
+
```sh
|
20 |
+
# Step 1: Clone the repository using the project's Git URL.
|
21 |
+
git clone <YOUR_GIT_URL>
|
22 |
+
|
23 |
+
# Step 2: Navigate to the project directory.
|
24 |
+
cd <YOUR_PROJECT_NAME>
|
25 |
+
|
26 |
+
# Step 3: Install the necessary dependencies.
|
27 |
+
npm i
|
28 |
+
# (OR bun install)
|
29 |
+
|
30 |
+
# Step 4: Start the development server with auto-reloading and an instant preview.
|
31 |
+
npm run dev
|
32 |
+
# (OR bun run dev)
|
|
|
|
|
|
|
|
|
33 |
```
|
34 |
+
|
35 |
+
## What technologies are used for this project?
|
36 |
+
|
37 |
+
This project is built with:
|
38 |
+
|
39 |
+
- Vite
|
40 |
+
- TypeScript
|
41 |
+
- React
|
42 |
+
- shadcn-ui
|
43 |
+
- Tailwind CSS
|
viewer/components.json
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"$schema": "https://ui.shadcn.com/schema.json",
|
3 |
+
"style": "default",
|
4 |
+
"rsc": false,
|
5 |
+
"tsx": true,
|
6 |
+
"tailwind": {
|
7 |
+
"config": "tailwind.config.ts",
|
8 |
+
"css": "src/index.css",
|
9 |
+
"baseColor": "slate",
|
10 |
+
"cssVariables": true,
|
11 |
+
"prefix": ""
|
12 |
+
},
|
13 |
+
"aliases": {
|
14 |
+
"components": "@/components",
|
15 |
+
"utils": "@/lib/utils",
|
16 |
+
"ui": "@/components/ui",
|
17 |
+
"lib": "@/lib",
|
18 |
+
"hooks": "@/hooks"
|
19 |
+
}
|
20 |
+
}
|
viewer/deploy-function.js
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// This is a script to deploy an edge function to supabase.
|
2 |
+
const { execSync } = require("child_process");
|
3 |
+
const fs = require("fs");
|
4 |
+
const path = require("path");
|
5 |
+
|
6 |
+
// Function name to deploy
|
7 |
+
const functionName = process.argv[2];
|
8 |
+
|
9 |
+
if (!functionName) {
|
10 |
+
console.error("Please provide a function name to deploy");
|
11 |
+
console.log("Example: node deploy-function.js urdf-parser");
|
12 |
+
process.exit(1);
|
13 |
+
}
|
14 |
+
|
15 |
+
// Path to the function directory
|
16 |
+
const functionDir = path.join(__dirname, "supabase", "functions", functionName);
|
17 |
+
|
18 |
+
// Check if the function directory exists
|
19 |
+
if (!fs.existsSync(functionDir)) {
|
20 |
+
console.error(`Function ${functionName} not found in supabase/functions/`);
|
21 |
+
process.exit(1);
|
22 |
+
}
|
23 |
+
|
24 |
+
console.log(`Deploying function ${functionName}...`);
|
25 |
+
|
26 |
+
try {
|
27 |
+
// Deploy the function
|
28 |
+
execSync(`npx supabase functions deploy ${functionName}`, {
|
29 |
+
stdio: "inherit",
|
30 |
+
env: {
|
31 |
+
...process.env,
|
32 |
+
SUPABASE_ACCESS_TOKEN: process.env.SUPABASE_ACCESS_TOKEN,
|
33 |
+
},
|
34 |
+
});
|
35 |
+
console.log(`✅ Function ${functionName} deployed successfully!`);
|
36 |
+
} catch (error) {
|
37 |
+
console.error(`❌ Failed to deploy function: ${error.message}`);
|
38 |
+
process.exit(1);
|
39 |
+
}
|
viewer/eslint.config.js
CHANGED
@@ -1,28 +1,29 @@
|
|
1 |
-
import js from
|
2 |
-
import globals from
|
3 |
-
import reactHooks from
|
4 |
-
import reactRefresh from
|
5 |
-
import tseslint from
|
6 |
|
7 |
export default tseslint.config(
|
8 |
-
{ ignores: [
|
9 |
{
|
10 |
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
11 |
-
files: [
|
12 |
languageOptions: {
|
13 |
ecmaVersion: 2020,
|
14 |
globals: globals.browser,
|
15 |
},
|
16 |
plugins: {
|
17 |
-
|
18 |
-
|
19 |
},
|
20 |
rules: {
|
21 |
...reactHooks.configs.recommended.rules,
|
22 |
-
|
23 |
-
|
24 |
{ allowConstantExport: true },
|
25 |
],
|
|
|
26 |
},
|
27 |
-
}
|
28 |
-
)
|
|
|
1 |
+
import js from "@eslint/js";
|
2 |
+
import globals from "globals";
|
3 |
+
import reactHooks from "eslint-plugin-react-hooks";
|
4 |
+
import reactRefresh from "eslint-plugin-react-refresh";
|
5 |
+
import tseslint from "typescript-eslint";
|
6 |
|
7 |
export default tseslint.config(
|
8 |
+
{ ignores: ["dist"] },
|
9 |
{
|
10 |
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
11 |
+
files: ["**/*.{ts,tsx}"],
|
12 |
languageOptions: {
|
13 |
ecmaVersion: 2020,
|
14 |
globals: globals.browser,
|
15 |
},
|
16 |
plugins: {
|
17 |
+
"react-hooks": reactHooks,
|
18 |
+
"react-refresh": reactRefresh,
|
19 |
},
|
20 |
rules: {
|
21 |
...reactHooks.configs.recommended.rules,
|
22 |
+
"react-refresh/only-export-components": [
|
23 |
+
"warn",
|
24 |
{ allowConstantExport: true },
|
25 |
],
|
26 |
+
"@typescript-eslint/no-unused-vars": "warn",
|
27 |
},
|
28 |
+
}
|
29 |
+
);
|
viewer/index.html
CHANGED
@@ -1,13 +1,18 @@
|
|
1 |
-
<!
|
2 |
<html lang="en">
|
3 |
<head>
|
4 |
<meta charset="UTF-8" />
|
5 |
-
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7 |
-
<title>
|
|
|
|
|
|
|
8 |
</head>
|
|
|
9 |
<body>
|
10 |
<div id="root"></div>
|
|
|
|
|
11 |
<script type="module" src="/src/main.tsx"></script>
|
12 |
</body>
|
13 |
</html>
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
<html lang="en">
|
3 |
<head>
|
4 |
<meta charset="UTF-8" />
|
|
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
6 |
+
<title>placeholder</title>
|
7 |
+
<meta name="description" content="A simple tool to visualize URDF files." />
|
8 |
+
<meta name="author" content="Victor Oldensand" />
|
9 |
+
<meta property="og:image" content="/og-image.png" />
|
10 |
</head>
|
11 |
+
|
12 |
<body>
|
13 |
<div id="root"></div>
|
14 |
+
<!-- IMPORTANT: DO NOT REMOVE THIS SCRIPT TAG OR THIS VERY COMMENT! -->
|
15 |
+
<script src="https://cdn.gpteng.co/gptengineer.js" type="module"></script>
|
16 |
<script type="module" src="/src/main.tsx"></script>
|
17 |
</body>
|
18 |
</html>
|
viewer/package-lock.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
viewer/package.json
CHANGED
@@ -1,34 +1,94 @@
|
|
1 |
{
|
2 |
-
"name": "
|
3 |
"private": true,
|
4 |
"version": "0.0.0",
|
5 |
"type": "module",
|
6 |
"scripts": {
|
7 |
"dev": "vite",
|
8 |
-
"build": "
|
|
|
9 |
"lint": "eslint .",
|
10 |
"preview": "vite preview"
|
11 |
},
|
12 |
"dependencies": {
|
13 |
-
"@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
"clsx": "^2.1.1",
|
15 |
-
"
|
16 |
-
"
|
17 |
-
"
|
18 |
-
"
|
19 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
},
|
21 |
"devDependencies": {
|
22 |
-
"@eslint/js": "^9.
|
23 |
-
"@
|
24 |
-
"@types/
|
25 |
-
"@
|
26 |
-
"
|
27 |
-
"
|
28 |
-
"
|
29 |
-
"
|
30 |
-
"
|
31 |
-
"
|
32 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
}
|
|
|
1 |
{
|
2 |
+
"name": "vite_react_shadcn_ts",
|
3 |
"private": true,
|
4 |
"version": "0.0.0",
|
5 |
"type": "module",
|
6 |
"scripts": {
|
7 |
"dev": "vite",
|
8 |
+
"build": "vite build",
|
9 |
+
"build:dev": "vite build --mode development",
|
10 |
"lint": "eslint .",
|
11 |
"preview": "vite preview"
|
12 |
},
|
13 |
"dependencies": {
|
14 |
+
"@hookform/resolvers": "^3.9.0",
|
15 |
+
"@radix-ui/react-accordion": "^1.2.0",
|
16 |
+
"@radix-ui/react-alert-dialog": "^1.1.1",
|
17 |
+
"@radix-ui/react-aspect-ratio": "^1.1.0",
|
18 |
+
"@radix-ui/react-avatar": "^1.1.0",
|
19 |
+
"@radix-ui/react-checkbox": "^1.1.1",
|
20 |
+
"@radix-ui/react-collapsible": "^1.1.0",
|
21 |
+
"@radix-ui/react-context-menu": "^2.2.1",
|
22 |
+
"@radix-ui/react-dialog": "^1.1.2",
|
23 |
+
"@radix-ui/react-dropdown-menu": "^2.1.1",
|
24 |
+
"@radix-ui/react-hover-card": "^1.1.1",
|
25 |
+
"@radix-ui/react-label": "^2.1.0",
|
26 |
+
"@radix-ui/react-menubar": "^1.1.1",
|
27 |
+
"@radix-ui/react-navigation-menu": "^1.2.0",
|
28 |
+
"@radix-ui/react-popover": "^1.1.1",
|
29 |
+
"@radix-ui/react-progress": "^1.1.0",
|
30 |
+
"@radix-ui/react-radio-group": "^1.2.0",
|
31 |
+
"@radix-ui/react-scroll-area": "^1.1.0",
|
32 |
+
"@radix-ui/react-select": "^2.1.1",
|
33 |
+
"@radix-ui/react-separator": "^1.1.0",
|
34 |
+
"@radix-ui/react-slider": "^1.2.0",
|
35 |
+
"@radix-ui/react-slot": "^1.1.0",
|
36 |
+
"@radix-ui/react-switch": "^1.1.0",
|
37 |
+
"@radix-ui/react-tabs": "^1.1.0",
|
38 |
+
"@radix-ui/react-toast": "^1.2.1",
|
39 |
+
"@radix-ui/react-toggle": "^1.1.0",
|
40 |
+
"@radix-ui/react-toggle-group": "^1.1.0",
|
41 |
+
"@radix-ui/react-tooltip": "^1.1.4",
|
42 |
+
"@splinetool/react-spline": "^4.0.0",
|
43 |
+
"@supabase/supabase-js": "^2.49.1",
|
44 |
+
"@tanstack/react-query": "^5.56.2",
|
45 |
+
"@tanstack/react-query-devtools": "^5.71.1",
|
46 |
+
"@types/three": "^0.174.0",
|
47 |
+
"@types/uuid": "^10.0.0",
|
48 |
+
"class-variance-authority": "^0.7.1",
|
49 |
"clsx": "^2.1.1",
|
50 |
+
"cmdk": "^1.0.0",
|
51 |
+
"date-fns": "^3.6.0",
|
52 |
+
"dotenv": "^16.4.7",
|
53 |
+
"embla-carousel-react": "^8.3.0",
|
54 |
+
"framer-motion": "^12.5.0",
|
55 |
+
"input-otp": "^1.2.4",
|
56 |
+
"jszip": "^3.10.1",
|
57 |
+
"lucide-react": "^0.462.0",
|
58 |
+
"next-themes": "^0.3.0",
|
59 |
+
"react": "^18.3.1",
|
60 |
+
"react-day-picker": "^8.10.1",
|
61 |
+
"react-dom": "^18.3.1",
|
62 |
+
"react-hook-form": "^7.53.0",
|
63 |
+
"react-resizable-panels": "^2.1.3",
|
64 |
+
"react-router-dom": "^6.26.2",
|
65 |
+
"recharts": "^2.12.7",
|
66 |
+
"sonner": "^1.5.0",
|
67 |
+
"tailwind-merge": "^2.5.2",
|
68 |
+
"tailwindcss-animate": "^1.0.7",
|
69 |
+
"three": "^0.174.0",
|
70 |
+
"urdf-loader": "^0.12.4",
|
71 |
+
"uuid": "^11.1.0",
|
72 |
+
"vaul": "^0.9.3",
|
73 |
+
"zod": "^3.23.8"
|
74 |
},
|
75 |
"devDependencies": {
|
76 |
+
"@eslint/js": "^9.9.0",
|
77 |
+
"@tailwindcss/typography": "^0.5.15",
|
78 |
+
"@types/node": "^22.5.5",
|
79 |
+
"@types/react": "^18.3.3",
|
80 |
+
"@types/react-dom": "^18.3.0",
|
81 |
+
"@vitejs/plugin-react-swc": "^3.5.0",
|
82 |
+
"autoprefixer": "^10.4.20",
|
83 |
+
"eslint": "^9.9.0",
|
84 |
+
"eslint-plugin-react-hooks": "^5.1.0-rc.0",
|
85 |
+
"eslint-plugin-react-refresh": "^0.4.9",
|
86 |
+
"globals": "^15.9.0",
|
87 |
+
"lovable-tagger": "^1.1.7",
|
88 |
+
"postcss": "^8.4.47",
|
89 |
+
"tailwindcss": "^3.4.11",
|
90 |
+
"typescript": "^5.5.3",
|
91 |
+
"typescript-eslint": "^8.0.1",
|
92 |
+
"vite": "^5.4.1"
|
93 |
}
|
94 |
}
|
viewer/postcss.config.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export default {
|
2 |
+
plugins: {
|
3 |
+
tailwindcss: {},
|
4 |
+
autoprefixer: {},
|
5 |
+
},
|
6 |
+
}
|
viewer/public/favicon.ico
ADDED
|
viewer/public/placeholder.svg
ADDED
|
viewer/public/urdf/T12/meshes/Ankle1.STL
ADDED
Binary file (37.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Ankle2.STL
ADDED
Binary file (37.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Ankle3.STL
ADDED
Binary file (37.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Ankle4.STL
ADDED
Binary file (37.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Ankle5.STL
ADDED
Binary file (37.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Ankle6.STL
ADDED
Binary file (37.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Body.STL
ADDED
Binary file (30.3 kB). View file
|
|
viewer/public/urdf/T12/meshes/Foot1.STL
ADDED
Binary file (41.7 kB). View file
|
|
viewer/public/urdf/T12/meshes/Foot2.STL
ADDED
Binary file (41.7 kB). View file
|
|
viewer/public/urdf/T12/meshes/Foot3.STL
ADDED
Binary file (41.7 kB). View file
|
|
viewer/public/urdf/T12/meshes/Foot4.STL
ADDED
Binary file (41.7 kB). View file
|
|
viewer/public/urdf/T12/meshes/Foot5.STL
ADDED
Binary file (41.7 kB). View file
|
|
viewer/public/urdf/T12/meshes/Foot6.STL
ADDED
Binary file (41.7 kB). View file
|
|
viewer/public/urdf/T12/meshes/Hip1.STL
ADDED
Binary file (44.4 kB). View file
|
|
viewer/public/urdf/T12/meshes/Hip2.STL
ADDED
Binary file (44.4 kB). View file
|
|
viewer/public/urdf/T12/meshes/Hip3.STL
ADDED
Binary file (44.4 kB). View file
|
|
viewer/public/urdf/T12/meshes/Hip4.STL
ADDED
Binary file (44.4 kB). View file
|
|
viewer/public/urdf/T12/meshes/Hip5.STL
ADDED
Binary file (44.4 kB). View file
|
|
viewer/public/urdf/T12/meshes/Hip6.STL
ADDED
Binary file (44.4 kB). View file
|
|
viewer/public/urdf/T12/meshes/Knee1.STL
ADDED
Binary file (18.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Knee2.STL
ADDED
Binary file (18.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Knee3.STL
ADDED
Binary file (18.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Knee4.STL
ADDED
Binary file (18.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Knee5.STL
ADDED
Binary file (18.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Knee6.STL
ADDED
Binary file (18.5 kB). View file
|
|
viewer/public/urdf/T12/meshes/Shin1.STL
ADDED
Binary file (27.3 kB). View file
|
|
viewer/public/urdf/T12/meshes/Shin2.STL
ADDED
Binary file (27.3 kB). View file
|
|
viewer/public/urdf/T12/meshes/Shin3.STL
ADDED
Binary file (27.3 kB). View file
|
|
viewer/public/urdf/T12/meshes/Shin4.STL
ADDED
Binary file (27.3 kB). View file
|
|
viewer/public/urdf/T12/meshes/Shin5.STL
ADDED
Binary file (27.3 kB). View file
|
|
viewer/public/urdf/T12/meshes/Shin6.STL
ADDED
Binary file (27.3 kB). View file
|
|
viewer/public/urdf/T12/meshes/Thigh1.STL
ADDED
Binary file (37.6 kB). View file
|
|
viewer/public/urdf/T12/meshes/Thigh2.STL
ADDED
Binary file (37.6 kB). View file
|
|
viewer/public/urdf/T12/meshes/Thigh3.STL
ADDED
Binary file (37.6 kB). View file
|
|
viewer/public/urdf/T12/meshes/Thigh4.STL
ADDED
Binary file (37.6 kB). View file
|
|
viewer/public/urdf/T12/meshes/Thigh5.STL
ADDED
Binary file (37.6 kB). View file
|
|
viewer/public/urdf/T12/meshes/Thigh6.STL
ADDED
Binary file (37.6 kB). View file
|
|
viewer/public/urdf/T12/robot-data.json
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "T12 Robot",
|
3 |
+
"description": "This is the T12 robot developed by the NASA Jet Propulsion Laboratory. It's a 6-legged robot with articulated joints and components.",
|
4 |
+
"mass": 705.33,
|
5 |
+
"dofs": 16,
|
6 |
+
"joints": {
|
7 |
+
"revolute": 16,
|
8 |
+
"prismatic": 0,
|
9 |
+
"continuous": 0,
|
10 |
+
"fixed": 0,
|
11 |
+
"other": 0
|
12 |
+
},
|
13 |
+
"links": [
|
14 |
+
{ "name": "body", "mass": 266.06 },
|
15 |
+
{ "name": "hip1", "mass": 10.16 },
|
16 |
+
{ "name": "thigh1", "mass": 14.24 },
|
17 |
+
{ "name": "knee1", "mass": 5.79 },
|
18 |
+
{ "name": "shin1", "mass": 10.2 },
|
19 |
+
{ "name": "ankle1", "mass": 5.11 },
|
20 |
+
{ "name": "foot1", "mass": 27.42 },
|
21 |
+
{ "name": "hip2", "mass": 10.16 },
|
22 |
+
{ "name": "thigh2", "mass": 14.24 },
|
23 |
+
{ "name": "knee2", "mass": 5.79 },
|
24 |
+
{ "name": "shin2", "mass": 10.2 },
|
25 |
+
{ "name": "ankle2", "mass": 5.11 },
|
26 |
+
{ "name": "foot2", "mass": 27.42 },
|
27 |
+
{ "name": "hip3", "mass": 10.16 },
|
28 |
+
{ "name": "thigh3", "mass": 14.24 },
|
29 |
+
{ "name": "knee3", "mass": 5.79 },
|
30 |
+
{ "name": "shin3", "mass": 10.2 },
|
31 |
+
{ "name": "ankle3", "mass": 5.11 },
|
32 |
+
{ "name": "foot3", "mass": 27.42 },
|
33 |
+
{ "name": "hip4", "mass": 10.16 },
|
34 |
+
{ "name": "thigh4", "mass": 14.24 },
|
35 |
+
{ "name": "knee4", "mass": 5.79 },
|
36 |
+
{ "name": "shin4", "mass": 10.2 },
|
37 |
+
{ "name": "ankle4", "mass": 5.11 },
|
38 |
+
{ "name": "foot4", "mass": 27.42 },
|
39 |
+
{ "name": "hip5", "mass": 10.16 },
|
40 |
+
{ "name": "thigh5", "mass": 14.24 },
|
41 |
+
{ "name": "knee5", "mass": 5.79 },
|
42 |
+
{ "name": "shin5", "mass": 10.2 },
|
43 |
+
{ "name": "ankle5", "mass": 5.11 },
|
44 |
+
{ "name": "foot5", "mass": 27.42 },
|
45 |
+
{ "name": "hip6", "mass": 10.16 },
|
46 |
+
{ "name": "thigh6", "mass": 14.24 },
|
47 |
+
{ "name": "knee6", "mass": 5.79 },
|
48 |
+
{ "name": "shin6", "mass": 10.2 },
|
49 |
+
{ "name": "ankle6", "mass": 5.11 },
|
50 |
+
{ "name": "foot6", "mass": 27.42 }
|
51 |
+
],
|
52 |
+
"materials": [
|
53 |
+
{ "name": "Aluminum", "percentage": 60 },
|
54 |
+
{ "name": "Carbon Fiber", "percentage": 25 },
|
55 |
+
{ "name": "Steel", "percentage": 15 }
|
56 |
+
]
|
57 |
+
}
|