@wandelbots/wandelbots-js-react-components 3.4.0-pr.feat-add-yaskawa-gp200s.438.0503e4b → 3.4.0-pr.feat-yaskawa-gp200s.437.1b5737e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -10
- package/dist/3d.cjs.js +2 -0
- package/dist/3d.cjs.js.map +1 -0
- package/dist/3d.d.ts +11 -0
- package/dist/3d.d.ts.map +1 -0
- package/dist/3d.es.js +16 -0
- package/dist/3d.es.js.map +1 -0
- package/dist/LoadingCover-Dr9hDTku.js +87 -0
- package/dist/LoadingCover-Dr9hDTku.js.map +1 -0
- package/dist/LoadingCover-r2yhJZF9.cjs +2 -0
- package/dist/LoadingCover-r2yhJZF9.cjs.map +1 -0
- package/dist/WandelscriptEditor-Dj7TBCkF.cjs +2 -0
- package/dist/WandelscriptEditor-Dj7TBCkF.cjs.map +1 -0
- package/dist/WandelscriptEditor-DnJvITTA.js +140 -0
- package/dist/WandelscriptEditor-DnJvITTA.js.map +1 -0
- package/dist/auth0-spa-js.production.esm-9WdmjTxR.js +1429 -0
- package/dist/auth0-spa-js.production.esm-9WdmjTxR.js.map +1 -0
- package/dist/auth0-spa-js.production.esm-BcLLh1tx.cjs +5 -0
- package/dist/auth0-spa-js.production.esm-BcLLh1tx.cjs.map +1 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +1 -1
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -1
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts +1 -1
- package/dist/components/3d-viewport/collider/ColliderCollection.d.ts.map +1 -1
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts +1 -1
- package/dist/components/3d-viewport/collider/ColliderElement.d.ts.map +1 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts +1 -1
- package/dist/components/3d-viewport/collider/CollisionSceneRenderer.d.ts.map +1 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts +1 -1
- package/dist/components/3d-viewport/collider/colliderShapeToBufferGeometry.d.ts.map +1 -1
- package/dist/components/ProgramStateIndicator.d.ts +3 -3
- package/dist/components/ProgramStateIndicator.d.ts.map +1 -1
- package/dist/components/RobotCard.d.ts +4 -3
- package/dist/components/RobotCard.d.ts.map +1 -1
- package/dist/components/jogging/JoggingBlocked.d.ts +7 -0
- package/dist/components/jogging/JoggingBlocked.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -1
- package/dist/components/jogging/JoggingOptions.d.ts.map +1 -1
- package/dist/components/jogging/JoggingPanel.d.ts +1 -1
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -1
- package/dist/components/jogging/JoggingStore.d.ts +10 -5
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -1
- package/dist/components/jogging/PoseCartesianValues.d.ts +2 -2
- package/dist/components/jogging/PoseCartesianValues.d.ts.map +1 -1
- package/dist/components/jogging/PoseJointValues.d.ts +1 -2
- package/dist/components/jogging/PoseJointValues.d.ts.map +1 -1
- package/dist/components/robots/DHRobot.d.ts.map +1 -1
- package/dist/components/robots/Robot.d.ts +1 -1
- package/dist/components/robots/Robot.d.ts.map +1 -1
- package/dist/components/robots/RobotAnimator.d.ts +2 -2
- package/dist/components/robots/RobotAnimator.d.ts.map +1 -1
- package/dist/components/robots/SupportedRobot.d.ts +3 -3
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -1
- package/dist/components/robots/manufacturerHomePositions.d.ts +1 -1
- package/dist/components/robots/manufacturerHomePositions.d.ts.map +1 -1
- package/dist/components/safetyBar/ControllerTypeIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/OperationModeIndicator.d.ts +2 -2
- package/dist/components/safetyBar/OperationModeIndicator.d.ts.map +1 -1
- package/dist/components/safetyBar/SafetyBar.d.ts +3 -3
- package/dist/components/safetyBar/SafetyBar.d.ts.map +1 -1
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts +2 -2
- package/dist/components/safetyBar/SafetyStateIndicator.d.ts.map +1 -1
- package/dist/components/utils/errorHandling.d.ts.map +1 -1
- package/dist/components/utils/errorHandling.test.d.ts +2 -0
- package/dist/components/utils/errorHandling.test.d.ts.map +1 -0
- package/dist/core.cjs.js +2 -0
- package/dist/core.cjs.js.map +1 -0
- package/dist/core.d.ts +33 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.es.js +54 -0
- package/dist/core.es.js.map +1 -0
- package/dist/index-CAib4NKw.js +2261 -0
- package/dist/index-CAib4NKw.js.map +1 -0
- package/dist/index-CqMZL0FV.cjs +2 -0
- package/dist/index-CqMZL0FV.cjs.map +1 -0
- package/dist/index-CxasuX80.js +5212 -0
- package/dist/index-CxasuX80.js.map +1 -0
- package/dist/index-DxwppshT.cjs +29 -0
- package/dist/index-DxwppshT.cjs.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +3 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +69 -0
- package/dist/index.es.js.map +1 -0
- package/dist/lib/ConnectedMotionGroup.d.ts +90 -0
- package/dist/lib/ConnectedMotionGroup.d.ts.map +1 -0
- package/dist/lib/JoggerConnection.d.ts +113 -0
- package/dist/lib/JoggerConnection.d.ts.map +1 -0
- package/dist/lib/JoggerConnection.test.d.ts +2 -0
- package/dist/lib/JoggerConnection.test.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.d.ts +24 -0
- package/dist/lib/MotionStreamConnection.d.ts.map +1 -0
- package/dist/lib/MotionStreamConnection.test.d.ts +2 -0
- package/dist/lib/MotionStreamConnection.test.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.d.ts +7 -0
- package/dist/lib/motionStateUpdate.d.ts.map +1 -0
- package/dist/lib/motionStateUpdate.test.d.ts +2 -0
- package/dist/lib/motionStateUpdate.test.d.ts.map +1 -0
- package/dist/manufacturerHomePositions-Ca80ycLi.cjs +2 -0
- package/dist/manufacturerHomePositions-Ca80ycLi.cjs.map +1 -0
- package/dist/manufacturerHomePositions-CgaG5vaK.js +976 -0
- package/dist/manufacturerHomePositions-CgaG5vaK.js.map +1 -0
- package/dist/theming-BQcKj8Gp.cjs +133 -0
- package/dist/theming-BQcKj8Gp.cjs.map +1 -0
- package/dist/theming-Bafjg0Wg.js +23460 -0
- package/dist/theming-Bafjg0Wg.js.map +1 -0
- package/dist/wandelscript.cjs.js +2 -0
- package/dist/wandelscript.cjs.js.map +1 -0
- package/dist/wandelscript.d.ts +2 -0
- package/dist/wandelscript.d.ts.map +1 -0
- package/dist/wandelscript.es.js +5 -0
- package/dist/wandelscript.es.js.map +1 -0
- package/package.json +49 -21
- package/src/3d.ts +15 -0
- package/src/components/3d-viewport/CoordinateSystemTransform.tsx +1 -1
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +1 -2
- package/src/components/3d-viewport/collider/ColliderCollection.tsx +1 -1
- package/src/components/3d-viewport/collider/ColliderElement.tsx +1 -1
- package/src/components/3d-viewport/collider/CollisionSceneRenderer.tsx +1 -1
- package/src/components/3d-viewport/collider/colliderShapeToBufferGeometry.ts +1 -1
- package/src/components/AppHeader.md +1 -1
- package/src/components/ProgramStateIndicator.tsx +3 -6
- package/src/components/RobotCard.tsx +4 -7
- package/src/components/jogging/JoggingBlocked.tsx +37 -0
- package/src/components/jogging/JoggingCartesianTab.tsx +13 -11
- package/src/components/jogging/JoggingJointLimitDetector.tsx +2 -2
- package/src/components/jogging/JoggingJointTab.tsx +4 -4
- package/src/components/jogging/JoggingOptions.tsx +6 -5
- package/src/components/jogging/JoggingPanel.tsx +6 -3
- package/src/components/jogging/JoggingStore.ts +66 -39
- package/src/components/jogging/PoseCartesianValues.tsx +3 -4
- package/src/components/jogging/PoseJointValues.tsx +3 -4
- package/src/components/robots/DHRobot.tsx +2 -3
- package/src/components/robots/Robot.tsx +1 -1
- package/src/components/robots/RobotAnimator.test.tsx +7 -22
- package/src/components/robots/RobotAnimator.tsx +8 -13
- package/src/components/robots/SupportedRobot.tsx +3 -6
- package/src/components/robots/manufacturerHomePositions.ts +1 -1
- package/src/components/safetyBar/ControllerTypeIndicator.tsx +4 -2
- package/src/components/safetyBar/OperationModeIndicator.tsx +7 -5
- package/src/components/safetyBar/SafetyBar.tsx +3 -6
- package/src/components/safetyBar/SafetyStateIndicator.tsx +9 -7
- package/src/components/utils/errorHandling.test.ts +41 -0
- package/src/components/utils/errorHandling.ts +4 -0
- package/src/core.ts +33 -0
- package/src/i18n/locales/de/translations.json +3 -0
- package/src/i18n/locales/en/translations.json +3 -0
- package/src/index.ts +4 -43
- package/src/lib/ConnectedMotionGroup.ts +444 -0
- package/src/lib/JoggerConnection.test.ts +120 -0
- package/src/lib/JoggerConnection.ts +674 -0
- package/src/lib/MotionStreamConnection.test.ts +23 -0
- package/src/lib/MotionStreamConnection.ts +189 -0
- package/src/lib/motionStateUpdate.test.ts +28 -0
- package/src/lib/motionStateUpdate.ts +117 -0
- package/src/wandelscript.ts +2 -0
- package/dist/auth0-spa-js.production.esm-1QXzndwB.js +0 -950
- package/dist/auth0-spa-js.production.esm-1QXzndwB.js.map +0 -1
- package/dist/auth0-spa-js.production.esm-BLRAk7Yh.cjs +0 -5
- package/dist/auth0-spa-js.production.esm-BLRAk7Yh.cjs.map +0 -1
- package/dist/index.cjs +0 -155
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -34927
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wandelscript.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wandelscript.d.ts","sourceRoot":"","sources":["../src/wandelscript.ts"],"names":[],"mappings":"AACA,cAAc,qDAAqD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wandelscript.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wandelbots/wandelbots-js-react-components",
|
|
3
|
-
"version": "3.4.0-pr.feat-
|
|
3
|
+
"version": "3.4.0-pr.feat-yaskawa-gp200s.437.1b5737e",
|
|
4
4
|
"description": "React UI toolkit for building applications on top of the Wandelbots platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -13,8 +13,24 @@
|
|
|
13
13
|
"main": "./dist/index.cjs",
|
|
14
14
|
"exports": {
|
|
15
15
|
".": {
|
|
16
|
-
"
|
|
17
|
-
"
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.es.js",
|
|
18
|
+
"require": "./dist/index.cjs.js"
|
|
19
|
+
},
|
|
20
|
+
"./core": {
|
|
21
|
+
"types": "./dist/core.d.ts",
|
|
22
|
+
"import": "./dist/core.es.js",
|
|
23
|
+
"require": "./dist/core.cjs.js"
|
|
24
|
+
},
|
|
25
|
+
"./3d": {
|
|
26
|
+
"types": "./dist/3d.d.ts",
|
|
27
|
+
"import": "./dist/3d.es.js",
|
|
28
|
+
"require": "./dist/3d.cjs.js"
|
|
29
|
+
},
|
|
30
|
+
"./wandelscript": {
|
|
31
|
+
"types": "./dist/wandelscript.d.ts",
|
|
32
|
+
"import": "./dist/wandelscript.es.js",
|
|
33
|
+
"require": "./dist/wandelscript.cjs.js"
|
|
18
34
|
}
|
|
19
35
|
},
|
|
20
36
|
"types": "./dist/index.d.ts",
|
|
@@ -50,17 +66,19 @@
|
|
|
50
66
|
"devDependencies": {
|
|
51
67
|
"@emotion/react": "^11.14.0",
|
|
52
68
|
"@emotion/styled": "^11.14.0",
|
|
69
|
+
"@monaco-editor/react": "^4.7.0",
|
|
53
70
|
"@mui/icons-material": "^7.1.1",
|
|
54
71
|
"@mui/material": "^7.1.1",
|
|
55
72
|
"@react-three/drei": "^10.2.0",
|
|
56
73
|
"@react-three/fiber": "^9.1.2",
|
|
57
|
-
"@rollup/plugin-commonjs": "^
|
|
74
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
58
75
|
"@rollup/plugin-json": "^6.1.0",
|
|
59
76
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
60
77
|
"@rollup/plugin-terser": "^0.4.4",
|
|
61
78
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
62
|
-
"@
|
|
63
|
-
"@storybook/
|
|
79
|
+
"@shikijs/monaco": "^3.1.0",
|
|
80
|
+
"@storybook/addon-docs": "^10.1.7",
|
|
81
|
+
"@storybook/react-vite": "^10.1.10",
|
|
64
82
|
"@storybook/test-runner": "^0.24.1",
|
|
65
83
|
"@svgr/rollup": "^8.1.0",
|
|
66
84
|
"@testing-library/jest-dom": "^6.6.3",
|
|
@@ -68,19 +86,19 @@
|
|
|
68
86
|
"@testing-library/user-event": "^14.6.1",
|
|
69
87
|
"@types/lodash-es": "^4.17.12",
|
|
70
88
|
"@types/react": "^19.1.8",
|
|
71
|
-
"@types/three": "^0.
|
|
89
|
+
"@types/three": "^0.182.0",
|
|
72
90
|
"@vitejs/plugin-react": "^4.3.4",
|
|
73
|
-
"@wandelbots/nova-js": "
|
|
91
|
+
"@wandelbots/nova-js": "3.3.1",
|
|
74
92
|
"add": "^2.0.6",
|
|
75
|
-
"eslint-plugin-storybook": "^10.
|
|
76
|
-
"glob": "^
|
|
93
|
+
"eslint-plugin-storybook": "^10.1.10",
|
|
94
|
+
"glob": "^13.0.0",
|
|
77
95
|
"http-server": "^14.1.1",
|
|
78
96
|
"husky": "^9.1.7",
|
|
79
97
|
"i18next": "^25.2.1",
|
|
80
98
|
"jest-simple-dot-reporter": "^1.0.5",
|
|
81
99
|
"jest-summary-reporter": "^0.0.2",
|
|
82
|
-
"jsdom": "^
|
|
83
|
-
"monaco-editor": "^0.
|
|
100
|
+
"jsdom": "^27.4.0",
|
|
101
|
+
"monaco-editor": "^0.55.1",
|
|
84
102
|
"nodemon": "^3.1.9",
|
|
85
103
|
"npm-run-all": "^4.1.5",
|
|
86
104
|
"postcss": "^8.5.3",
|
|
@@ -95,9 +113,10 @@
|
|
|
95
113
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
96
114
|
"rollup-plugin-postcss": "^4.0.2",
|
|
97
115
|
"semantic-release": "^24.2.3",
|
|
98
|
-
"
|
|
116
|
+
"shiki": "^3.1.0",
|
|
117
|
+
"storybook": "^10.1.11",
|
|
99
118
|
"storybook-preset-inline-svg": "^1.0.1",
|
|
100
|
-
"three": "^0.
|
|
119
|
+
"three": "^0.182.0",
|
|
101
120
|
"three-stdlib": "^2.35.14",
|
|
102
121
|
"ts-dedent": "^2.2.0",
|
|
103
122
|
"typescript": "^5.8.2",
|
|
@@ -105,24 +124,36 @@
|
|
|
105
124
|
"vite": "^6.2.0",
|
|
106
125
|
"vite-plugin-svgr": "^4.3.0",
|
|
107
126
|
"vitest": "^3.0.7",
|
|
108
|
-
"wait-on": "^
|
|
127
|
+
"wait-on": "^9.0.3"
|
|
109
128
|
},
|
|
110
129
|
"peerDependencies": {
|
|
111
130
|
"@emotion/react": "^11.11.1",
|
|
112
131
|
"@emotion/styled": "^11.11.0",
|
|
132
|
+
"@monaco-editor/react": "^4.7.0",
|
|
113
133
|
"@mui/icons-material": "^6 || ^7",
|
|
114
134
|
"@mui/material": "^6 || ^7",
|
|
115
135
|
"@react-three/drei": "^9.122.0 || ^10",
|
|
116
136
|
"@react-three/fiber": "^8 || ^9",
|
|
137
|
+
"@shikijs/monaco": "^3.1.0",
|
|
117
138
|
"react": "^18.0.0 || ^19.0.0",
|
|
118
139
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
119
|
-
"
|
|
140
|
+
"shiki": "^3.1.0",
|
|
141
|
+
"three": ">=0.182",
|
|
120
142
|
"three-stdlib": ">=2"
|
|
121
143
|
},
|
|
122
144
|
"peerDependenciesMeta": {
|
|
123
145
|
"react-dom": {
|
|
124
146
|
"optional": true
|
|
125
147
|
},
|
|
148
|
+
"@monaco-editor/react": {
|
|
149
|
+
"optional": true
|
|
150
|
+
},
|
|
151
|
+
"@shikijs/monaco": {
|
|
152
|
+
"optional": true
|
|
153
|
+
},
|
|
154
|
+
"shiki": {
|
|
155
|
+
"optional": true
|
|
156
|
+
},
|
|
126
157
|
"@react-three/drei": {
|
|
127
158
|
"optional": true
|
|
128
159
|
},
|
|
@@ -137,17 +168,14 @@
|
|
|
137
168
|
}
|
|
138
169
|
},
|
|
139
170
|
"dependencies": {
|
|
140
|
-
"@monaco-editor/react": "^4.7.0",
|
|
141
171
|
"@mui/x-charts": "^8.9.0",
|
|
142
|
-
"@mui/x-data-grid": "^8.
|
|
143
|
-
"@shikijs/monaco": "^3.1.0",
|
|
172
|
+
"@mui/x-data-grid": "^8.23.0",
|
|
144
173
|
"i18next-browser-languagedetector": "^8.0.4",
|
|
145
174
|
"lodash-es": "^4.17.21",
|
|
146
175
|
"mobx": "^6.13.6",
|
|
147
176
|
"mobx-react-lite": "^4.1.0",
|
|
148
177
|
"react-error-boundary": "^6.0.0",
|
|
149
|
-
"react-i18next": "^15.5.2"
|
|
150
|
-
"shiki": "^3.1.0"
|
|
178
|
+
"react-i18next": "^15.5.2"
|
|
151
179
|
},
|
|
152
180
|
"overrides": {
|
|
153
181
|
"storybook": "$storybook"
|
package/src/3d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// 3D viewport and Three.js-based components
|
|
2
|
+
export { default as CollisionSceneRenderer } from "./components/3d-viewport/collider/CollisionSceneRenderer"
|
|
3
|
+
export * from "./components/3d-viewport/PresetEnvironment"
|
|
4
|
+
export * from "./components/3d-viewport/SafetyZonesRenderer"
|
|
5
|
+
export * from "./components/3d-viewport/TrajectoryRenderer"
|
|
6
|
+
export * from "./components/RobotCard"
|
|
7
|
+
export * from "./components/robots/AxisConfig"
|
|
8
|
+
export {
|
|
9
|
+
MANUFACTURER_HOME_CONFIGS,
|
|
10
|
+
extractManufacturer,
|
|
11
|
+
getDefaultHomeConfig,
|
|
12
|
+
} from "./components/robots/manufacturerHomePositions"
|
|
13
|
+
export * from "./components/robots/Robot"
|
|
14
|
+
export { defaultGetModel } from "./components/robots/robotModelLogic"
|
|
15
|
+
export * from "./components/robots/SupportedRobot"
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type ThreeElements } from "@react-three/fiber"
|
|
2
|
-
import type { Geometry } from "@wandelbots/nova-
|
|
3
|
-
import type { SafetySetupSafetyZone } from "@wandelbots/nova-js/v1"
|
|
2
|
+
import type { Geometry, SafetySetupSafetyZone } from "@wandelbots/nova-js/v1"
|
|
4
3
|
import * as THREE from "three"
|
|
5
4
|
import { ConvexGeometry } from "three-stdlib"
|
|
6
5
|
|
|
@@ -16,7 +16,7 @@ A navigation header component that displays the current application's icon and n
|
|
|
16
16
|
import {
|
|
17
17
|
AppHeader,
|
|
18
18
|
type AppItem,
|
|
19
|
-
} from "@wandelbots/wandelbots-js-react-components"
|
|
19
|
+
} from "@wandelbots/wandelbots-js-react-components/core"
|
|
20
20
|
import { Home, Settings, Person } from "@mui/icons-material"
|
|
21
21
|
|
|
22
22
|
const apps: AppItem[] = [
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { Chip, Typography, useTheme } from "@mui/material"
|
|
2
|
-
import type {
|
|
3
|
-
RobotControllerStateOperationModeEnum,
|
|
4
|
-
RobotControllerStateSafetyStateEnum,
|
|
5
|
-
} from "@wandelbots/nova-js/v1"
|
|
2
|
+
import type { OperationMode, SafetyStateType } from "@wandelbots/nova-js/v2"
|
|
6
3
|
import { observer } from "mobx-react-lite"
|
|
7
4
|
import { useTranslation } from "react-i18next"
|
|
8
5
|
import { externalizeComponent } from "../externalizeComponent"
|
|
@@ -12,9 +9,9 @@ export interface ProgramStateIndicatorProps {
|
|
|
12
9
|
/** The current state of the program */
|
|
13
10
|
programState: ProgramState
|
|
14
11
|
/** The current safety state of the robot controller */
|
|
15
|
-
safetyState:
|
|
12
|
+
safetyState: SafetyStateType
|
|
16
13
|
/** The current operation mode of the robot controller */
|
|
17
|
-
operationMode:
|
|
14
|
+
operationMode: OperationMode
|
|
18
15
|
/** Additional CSS class name */
|
|
19
16
|
className?: string
|
|
20
17
|
}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { Box, Button, Card, Divider, Typography, useTheme } from "@mui/material"
|
|
2
2
|
import { Bounds } from "@react-three/drei"
|
|
3
3
|
import { Canvas } from "@react-three/fiber"
|
|
4
|
-
import type {
|
|
5
|
-
ConnectedMotionGroup,
|
|
6
|
-
RobotControllerStateOperationModeEnum,
|
|
7
|
-
RobotControllerStateSafetyStateEnum,
|
|
8
|
-
} from "@wandelbots/nova-js/v1"
|
|
4
|
+
import type { OperationMode, SafetyStateType } from "@wandelbots/nova-js/v2"
|
|
9
5
|
import { observer } from "mobx-react-lite"
|
|
10
6
|
import { useCallback, useEffect, useRef, useState } from "react"
|
|
11
7
|
import { useTranslation } from "react-i18next"
|
|
12
8
|
import type { Group } from "three"
|
|
13
9
|
import { externalizeComponent } from "../externalizeComponent"
|
|
10
|
+
import type { ConnectedMotionGroup } from "../lib/ConnectedMotionGroup"
|
|
14
11
|
import { PresetEnvironment } from "./3d-viewport/PresetEnvironment"
|
|
15
12
|
import type { ProgramState } from "./ProgramControl"
|
|
16
13
|
import { ProgramStateIndicator } from "./ProgramStateIndicator"
|
|
@@ -22,9 +19,9 @@ export interface RobotCardProps {
|
|
|
22
19
|
/** Current program state */
|
|
23
20
|
programState: ProgramState
|
|
24
21
|
/** Current safety state of the robot controller */
|
|
25
|
-
safetyState:
|
|
22
|
+
safetyState: SafetyStateType
|
|
26
23
|
/** Current operation mode of the robot controller */
|
|
27
|
-
operationMode:
|
|
24
|
+
operationMode: OperationMode
|
|
28
25
|
/** Whether the "Drive to Home" button should be enabled */
|
|
29
26
|
driveToHomeEnabled?: boolean
|
|
30
27
|
/** Callback fired when "Drive to Home" button is pressed */
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Alert, AlertTitle, Backdrop, Button, Stack } from "@mui/material"
|
|
2
|
+
import { observer } from "mobx-react-lite"
|
|
3
|
+
import { useTranslation } from "react-i18next"
|
|
4
|
+
import { type JoggingStore } from "./JoggingStore"
|
|
5
|
+
|
|
6
|
+
export const JoggingBlocked = observer(({ store }: { store: JoggingStore }) => {
|
|
7
|
+
const { t } = useTranslation()
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<Backdrop
|
|
11
|
+
open={true}
|
|
12
|
+
sx={{
|
|
13
|
+
position: "absolute",
|
|
14
|
+
zIndex: (theme) => theme.zIndex.drawer + 1,
|
|
15
|
+
color: "#fff",
|
|
16
|
+
background: "rgba(15, 15, 15, 0.88)",
|
|
17
|
+
justifyContent: "flex-start",
|
|
18
|
+
alignItems: "flex-start",
|
|
19
|
+
}}
|
|
20
|
+
>
|
|
21
|
+
<Stack sx={{ m: 2, width: "100%" }}>
|
|
22
|
+
<Alert severity="error" sx={{ mb: 2 }}>
|
|
23
|
+
<AlertTitle>{t("Jogging.Blocked.ti")}</AlertTitle>
|
|
24
|
+
{t("Jogging.Blocked.lb")}
|
|
25
|
+
</Alert>
|
|
26
|
+
|
|
27
|
+
<Button
|
|
28
|
+
variant="contained"
|
|
29
|
+
color="secondary"
|
|
30
|
+
onClick={() => store.unblock()}
|
|
31
|
+
>
|
|
32
|
+
{t("Jogging.Blocked.Reenable.bt")}
|
|
33
|
+
</Button>
|
|
34
|
+
</Stack>
|
|
35
|
+
</Backdrop>
|
|
36
|
+
)
|
|
37
|
+
})
|
|
@@ -6,13 +6,18 @@ import {
|
|
|
6
6
|
useTheme,
|
|
7
7
|
type Theme,
|
|
8
8
|
} from "@mui/material"
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
degreesToRadians,
|
|
11
|
+
radiansToDegrees,
|
|
12
|
+
XYZ_TO_VECTOR,
|
|
13
|
+
} from "@wandelbots/nova-js"
|
|
10
14
|
import { observer } from "mobx-react-lite"
|
|
11
15
|
import { useTranslation } from "react-i18next"
|
|
12
16
|
import XAxisIcon from "../../icons/axis-x.svg"
|
|
13
17
|
import YAxisIcon from "../../icons/axis-y.svg"
|
|
14
18
|
import ZAxisIcon from "../../icons/axis-z.svg"
|
|
15
19
|
import RotationIcon from "../../icons/rotation.svg"
|
|
20
|
+
import type { Vector3Simple } from "../../lib/JoggerConnection"
|
|
16
21
|
import { useReaction } from "../utils/hooks"
|
|
17
22
|
import { JoggingCartesianAxisControl } from "./JoggingCartesianAxisControl"
|
|
18
23
|
import { JoggingJointLimitDetector } from "./JoggingJointLimitDetector"
|
|
@@ -56,7 +61,7 @@ export const JoggingCartesianTab = observer(
|
|
|
56
61
|
() => {
|
|
57
62
|
store.jogger.motionStream.motionStateSocket.changeUrl(
|
|
58
63
|
store.jogger.nova.makeWebsocketURL(
|
|
59
|
-
`/motion-groups/${store.jogger.motionGroupId}/state-stream?tcp=${store.selectedTcpId}
|
|
64
|
+
`/controllers/${store.jogger.motionStream.controllerId}/motion-groups/${store.jogger.motionGroupId}/state-stream?tcp=${store.selectedTcpId}`,
|
|
60
65
|
),
|
|
61
66
|
)
|
|
62
67
|
},
|
|
@@ -70,8 +75,8 @@ export const JoggingCartesianTab = observer(
|
|
|
70
75
|
const jogger = await store.activate()
|
|
71
76
|
|
|
72
77
|
const tcpPose = jogger.motionStream.rapidlyChangingMotionState.tcp_pose
|
|
73
|
-
const jointPosition =
|
|
74
|
-
|
|
78
|
+
const jointPosition = jogger.motionStream.rapidlyChangingMotionState
|
|
79
|
+
.joint_position as Vector3Simple
|
|
75
80
|
if (!tcpPose) return
|
|
76
81
|
|
|
77
82
|
await store.withMotionLock(async () => {
|
|
@@ -117,13 +122,13 @@ export const JoggingCartesianTab = observer(
|
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
if (opts.motionType === "translate") {
|
|
120
|
-
await store.jogger.
|
|
125
|
+
await store.jogger.translateTCP({
|
|
121
126
|
axis: opts.axis,
|
|
122
127
|
direction: opts.direction,
|
|
123
128
|
velocityMmPerSec: store.translationVelocityMmPerSec,
|
|
124
129
|
})
|
|
125
130
|
} else {
|
|
126
|
-
await store.jogger.
|
|
131
|
+
await store.jogger.rotateTCP({
|
|
127
132
|
axis: opts.axis,
|
|
128
133
|
direction: opts.direction,
|
|
129
134
|
velocityRadsPerSec: store.rotationVelocityRadsPerSec,
|
|
@@ -189,10 +194,7 @@ export const JoggingCartesianTab = observer(
|
|
|
189
194
|
return (
|
|
190
195
|
<Stack flexGrow={1} gap={2} sx={{ padding: "18px 24px" }}>
|
|
191
196
|
<Stack gap={2}>
|
|
192
|
-
{/* Jogging options */}
|
|
193
197
|
<JoggingOptions store={store} />
|
|
194
|
-
|
|
195
|
-
{/* Velocity slider */}
|
|
196
198
|
<JoggingVelocitySlider store={store} />
|
|
197
199
|
<Divider />
|
|
198
200
|
</Stack>
|
|
@@ -257,7 +259,7 @@ export const JoggingCartesianTab = observer(
|
|
|
257
259
|
getDisplayedValue={() =>
|
|
258
260
|
formatMM(
|
|
259
261
|
store.jogger.motionStream.rapidlyChangingMotionState
|
|
260
|
-
.tcp_pose?.position[axis.id] || 0,
|
|
262
|
+
.tcp_pose?.position?.[XYZ_TO_VECTOR[axis.id]] || 0,
|
|
261
263
|
)
|
|
262
264
|
}
|
|
263
265
|
startJogging={(direction: "-" | "+") =>
|
|
@@ -301,7 +303,7 @@ export const JoggingCartesianTab = observer(
|
|
|
301
303
|
getDisplayedValue={() =>
|
|
302
304
|
formatDegrees(
|
|
303
305
|
store.jogger.motionStream.rapidlyChangingMotionState
|
|
304
|
-
.tcp_pose?.orientation?.[axis.id] || 0,
|
|
306
|
+
.tcp_pose?.orientation?.[XYZ_TO_VECTOR[axis.id]] || 0,
|
|
305
307
|
)
|
|
306
308
|
}
|
|
307
309
|
startJogging={(direction: "-" | "+") =>
|
|
@@ -17,14 +17,14 @@ export const JoggingJointLimitDetector = ({
|
|
|
17
17
|
const { t } = useTranslation()
|
|
18
18
|
|
|
19
19
|
const [jointLimitsReached, setJointLimitsReached] = useState(
|
|
20
|
-
store.jogger.motionStream.rapidlyChangingMotionState
|
|
20
|
+
store.jogger.motionStream.rapidlyChangingMotionState
|
|
21
21
|
.joint_limit_reached.limit_reached,
|
|
22
22
|
)
|
|
23
23
|
const jointLimitsReachedRef = useRef(jointLimitsReached)
|
|
24
24
|
|
|
25
25
|
useAnimationFrame(() => {
|
|
26
26
|
const newLimitsReached =
|
|
27
|
-
store.jogger.motionStream.rapidlyChangingMotionState
|
|
27
|
+
store.jogger.motionStream.rapidlyChangingMotionState
|
|
28
28
|
.joint_limit_reached.limit_reached
|
|
29
29
|
|
|
30
30
|
if (!isEqual(jointLimitsReachedRef.current, newLimitsReached)) {
|
|
@@ -16,7 +16,7 @@ export const JoggingJointTab = observer(
|
|
|
16
16
|
}) {
|
|
17
17
|
await store.activate()
|
|
18
18
|
|
|
19
|
-
await store.jogger.
|
|
19
|
+
await store.jogger.rotateJoints({
|
|
20
20
|
joint: opts.joint,
|
|
21
21
|
direction: opts.direction,
|
|
22
22
|
velocityRadsPerSec: store.rotationVelocityRadsPerSec,
|
|
@@ -37,12 +37,12 @@ export const JoggingJointTab = observer(
|
|
|
37
37
|
justifyContent="center"
|
|
38
38
|
alignItems="stretch"
|
|
39
39
|
sx={{ flexGrow: "1" }}
|
|
40
|
-
id="JointControls"
|
|
41
40
|
>
|
|
42
41
|
<Stack alignItems="center" gap="24px">
|
|
43
42
|
{store.jogger.motionStream.joints.map((joint) => {
|
|
44
43
|
const jointLimits =
|
|
45
|
-
store.
|
|
44
|
+
store.motionGroupDescription.operation_limits.auto_limits
|
|
45
|
+
?.joints?.[joint.index]?.position
|
|
46
46
|
const lowerLimitDegs =
|
|
47
47
|
jointLimits?.lower_limit !== undefined
|
|
48
48
|
? radiansToDegrees(jointLimits.lower_limit)
|
|
@@ -80,7 +80,7 @@ export const JoggingJointTab = observer(
|
|
|
80
80
|
getValueDegs={() => {
|
|
81
81
|
const value =
|
|
82
82
|
store.jogger.motionStream.rapidlyChangingMotionState
|
|
83
|
-
.
|
|
83
|
+
.joint_position[joint.index]
|
|
84
84
|
return value !== undefined
|
|
85
85
|
? radiansToDegrees(value)
|
|
86
86
|
: undefined
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Box, MenuItem } from "@mui/material"
|
|
2
2
|
import { observer } from "mobx-react-lite"
|
|
3
|
+
import { useId } from "react"
|
|
3
4
|
import { useTranslation } from "react-i18next"
|
|
4
5
|
import AdornedSelect from "../experimental/utils/AdornedSelect"
|
|
5
6
|
import {
|
|
@@ -11,6 +12,7 @@ import {
|
|
|
11
12
|
|
|
12
13
|
export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
|
|
13
14
|
const { t } = useTranslation()
|
|
15
|
+
const componentId = useId()
|
|
14
16
|
const joggingOptions: React.ReactElement[] = []
|
|
15
17
|
|
|
16
18
|
function translateOrientation(orientation: OrientationId): string {
|
|
@@ -28,7 +30,7 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
|
|
|
28
30
|
joggingOptions.push(
|
|
29
31
|
<AdornedSelect
|
|
30
32
|
key="coord"
|
|
31
|
-
labelId=
|
|
33
|
+
labelId={`jogging-coord-select-${componentId}`}
|
|
32
34
|
labelValue={t("Jogging.CoordinateSystem.hlb")}
|
|
33
35
|
value={store.selectedCoordSystemId}
|
|
34
36
|
size="small"
|
|
@@ -54,7 +56,7 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
|
|
|
54
56
|
joggingOptions.push(
|
|
55
57
|
<AdornedSelect
|
|
56
58
|
key="tcp"
|
|
57
|
-
labelId=
|
|
59
|
+
labelId={`jogging-tcp-select-${componentId}`}
|
|
58
60
|
labelValue="TCP"
|
|
59
61
|
value={store.selectedTcpId}
|
|
60
62
|
size="small"
|
|
@@ -78,8 +80,7 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
|
|
|
78
80
|
<AdornedSelect
|
|
79
81
|
key="orientation"
|
|
80
82
|
labelValue={t("Jogging.Cartesian.Orientation.lb")}
|
|
81
|
-
|
|
82
|
-
labelId="orientation-select"
|
|
83
|
+
labelId={`orientation-select-${componentId}`}
|
|
83
84
|
value={store.selectedOrientation}
|
|
84
85
|
onChange={(event) =>
|
|
85
86
|
store.setSelectedOrientation(event.target.value as OrientationId)
|
|
@@ -100,7 +101,7 @@ export const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {
|
|
|
100
101
|
<AdornedSelect
|
|
101
102
|
key="increment"
|
|
102
103
|
labelValue={t("Jogging.Increment.hlb")}
|
|
103
|
-
labelId=
|
|
104
|
+
labelId={`jogging-increment-select-${componentId}`}
|
|
104
105
|
size="small"
|
|
105
106
|
variant="filled"
|
|
106
107
|
value={store.activeDiscreteIncrement?.id || "continuous"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import MoveIcon from "@mui/icons-material/OpenWith"
|
|
2
2
|
import ShareIcon from "@mui/icons-material/Share"
|
|
3
3
|
import { Stack, Tab, Tabs, type SxProps } from "@mui/material"
|
|
4
|
-
import { NovaClient } from "@wandelbots/nova-js/
|
|
4
|
+
import { NovaClient } from "@wandelbots/nova-js/v2"
|
|
5
5
|
import { isString } from "lodash-es"
|
|
6
6
|
import { runInAction } from "mobx"
|
|
7
7
|
import { observer, useLocalObservable } from "mobx-react-lite"
|
|
8
8
|
import { useEffect } from "react"
|
|
9
9
|
import { useTranslation } from "react-i18next"
|
|
10
10
|
import { externalizeComponent } from "../../externalizeComponent"
|
|
11
|
+
import { JoggerConnection } from "../../lib/JoggerConnection"
|
|
11
12
|
import { LoadingCover } from "../LoadingCover"
|
|
13
|
+
import { JoggingBlocked } from "./JoggingBlocked"
|
|
12
14
|
import { JoggingCartesianTab } from "./JoggingCartesianTab"
|
|
13
15
|
import { JoggingJointTab } from "./JoggingJointTab"
|
|
14
16
|
import { JoggingStore } from "./JoggingStore"
|
|
@@ -58,7 +60,7 @@ export const JoggingPanel = externalizeComponent(
|
|
|
58
60
|
try {
|
|
59
61
|
let joggingStore = props.store
|
|
60
62
|
if (!joggingStore) {
|
|
61
|
-
const jogger = await
|
|
63
|
+
const jogger = await JoggerConnection.open(nova, props.motionGroupId)
|
|
62
64
|
joggingStore = await JoggingStore.loadFor(jogger)
|
|
63
65
|
}
|
|
64
66
|
runInAction(() => {
|
|
@@ -181,7 +183,6 @@ const JoggingPanelInner = observer(
|
|
|
181
183
|
)
|
|
182
184
|
})}
|
|
183
185
|
</Tabs>
|
|
184
|
-
|
|
185
186
|
{/* Current tab content */}
|
|
186
187
|
<Stack
|
|
187
188
|
flexGrow={1}
|
|
@@ -190,6 +191,8 @@ const JoggingPanelInner = observer(
|
|
|
190
191
|
>
|
|
191
192
|
{renderTabContent()}
|
|
192
193
|
</Stack>
|
|
194
|
+
{/* Overlay when jogging connection is blocked */}
|
|
195
|
+
{store.blocked && <JoggingBlocked store={store} />}
|
|
193
196
|
</Stack>
|
|
194
197
|
)
|
|
195
198
|
},
|