Spaces:
Running
Running
| import type { RobotUrdfConfig } from "$lib/types/urdf"; | |
| export const robotUrdfConfigMap: { [key: string]: RobotUrdfConfig } = { | |
| "so-arm100": { | |
| urdfUrl: "/robots/so-100/so_arm100.urdf", | |
| displayName: "SO ARM 100", | |
| description: "6-DOF Robotic Arm", | |
| icon: "icon-[ix--robotic-arm]", | |
| isDefault: true, | |
| jointNameIdMap: { | |
| Rotation: 1, | |
| Pitch: 2, | |
| Elbow: 3, | |
| Wrist_Pitch: 4, | |
| Wrist_Roll: 5, | |
| Jaw: 6 | |
| // camera_mount: 7 | |
| }, | |
| // Rest position - robot in neutral/calibration pose (all joints at 0 degrees) | |
| restPosition: { | |
| Rotation: 0, | |
| Pitch: 0, | |
| Elbow: 0, | |
| Wrist_Pitch: 0, | |
| Wrist_Roll: 0, | |
| Jaw: 0 | |
| // camera_mount: 0 | |
| }, | |
| compoundMovements: [ | |
| { | |
| name: "Jaw down & up", | |
| primaryJoint: 2, | |
| primaryFormula: "primary < 100 ? 1 : -1", | |
| dependents: [ | |
| { | |
| joint: 3, | |
| formula: "primary < 100 ? -1.9 * deltaPrimary : 0.4 * deltaPrimary" | |
| // formula: "- deltaPrimary * (0.13 * Math.sin(primary * (Math.PI / 180)) + 0.13 * Math.sin((primary-dependent) * (Math.PI / 180)))/(0.13 * Math.sin((primary - dependent) * (Math.PI / 180)))", | |
| }, | |
| { | |
| joint: 4, | |
| formula: | |
| "primary < 100 ? (primary < 10 ? 0 : 0.51 * deltaPrimary) : -0.4 * deltaPrimary" | |
| } | |
| ] | |
| }, | |
| { | |
| name: "Jaw backward & forward", | |
| primaryJoint: 2, | |
| primaryFormula: "1", | |
| dependents: [ | |
| { | |
| joint: 3, | |
| formula: "-0.9*deltaPrimary" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| }; | |