diff --git a/URDFEditor.js b/URDFEditor.js
index 75c1d69..a83ba58 100644
--- a/URDFEditor.js
+++ b/URDFEditor.js
@@ -17,8 +17,8 @@ export class URDFEditor {
this.scene = new THREE.Scene();
this.scene.background = new THREE.Color(0xaaaaaa);
- this.camera = new THREE.PerspectiveCamera(45, canvas.clientWidth / canvas.clientHeight, 0.1, 100);
- this.camera.position.set(2, 2, 2);
+ this.camera = new THREE.PerspectiveCamera(60, canvas.clientWidth / canvas.clientHeight, 0.1, 100);
+ this.camera.position.set(-0.3, 0.5, -0.7);
this.camera.lookAt(0, 0, 0);
this.renderer = new THREE.WebGLRenderer({ canvas, antialias: true });
@@ -38,7 +38,7 @@ export class URDFEditor {
this.controls = new OrbitControls(this.camera, this.renderer.domElement);
- this.controls.target.set(0, 0.5, 0);
+ this.controls.target.set(0, 0.1, 0);
this.controls.update();
this.raycaster = new THREE.Raycaster();
@@ -230,6 +230,7 @@ export class URDFEditor {
console.log(lower, upper);
const jointTransmission = this.robot.joints[jointName].transmission;
+ if (!jointTransmission) return;
const encoderRange = jointTransmission.encoderRange / jointTransmission.mechanicalReduction;
const sector = createRotationSector(this.worldAxis, lower, upper, encoderRange);
const indicator = createAngleIndicator(this.worldAxis, this.jointAngles[jointName] ?? 0);
@@ -342,6 +343,10 @@ function radiansToTicks(radians, actuator) {
function getJointLimits(jointName, robot) {
const transmission = robot.joints[jointName].transmission;
+
+ if (!transmission) {
+ return { lower: -Math.PI, upper: Math.PI };
+ }
//console.log(transmission.encoderValidMin, transmission.encoderValidMax);
const lowerRad = ticksToRadians(transmission.encoderValidMin, transmission);
const upperRad = ticksToRadians(transmission.encoderValidMax, transmission);
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Arm_Left.glb b/robots/LittleSophia/meshes/Little_Sophia_Arm_Left.glb
new file mode 100644
index 0000000..c809016
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Arm_Left.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Arm_Right.glb b/robots/LittleSophia/meshes/Little_Sophia_Arm_Right.glb
new file mode 100644
index 0000000..52f5afc
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Arm_Right.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Hip_Left.glb b/robots/LittleSophia/meshes/Little_Sophia_Hip_Left.glb
new file mode 100644
index 0000000..456df94
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Hip_Left.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Hip_Right.glb b/robots/LittleSophia/meshes/Little_Sophia_Hip_Right.glb
new file mode 100644
index 0000000..85b7c64
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Hip_Right.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Lower_Leg_Left.glb b/robots/LittleSophia/meshes/Little_Sophia_Lower_Leg_Left.glb
new file mode 100644
index 0000000..4f3c332
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Lower_Leg_Left.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Lower_Leg_Right.glb b/robots/LittleSophia/meshes/Little_Sophia_Lower_Leg_Right.glb
new file mode 100644
index 0000000..438b957
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Lower_Leg_Right.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Torso.glb b/robots/LittleSophia/meshes/Little_Sophia_Torso.glb
new file mode 100644
index 0000000..b614fe2
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Torso.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Upper_Leg_Left.glb b/robots/LittleSophia/meshes/Little_Sophia_Upper_Leg_Left.glb
new file mode 100644
index 0000000..055516e
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Upper_Leg_Left.glb differ
diff --git a/robots/LittleSophia/meshes/Little_Sophia_Upper_Leg_Right.glb b/robots/LittleSophia/meshes/Little_Sophia_Upper_Leg_Right.glb
new file mode 100644
index 0000000..ee878f9
Binary files /dev/null and b/robots/LittleSophia/meshes/Little_Sophia_Upper_Leg_Right.glb differ
diff --git a/robots/LittleSophia/urdf/LittleSophia.urdf b/robots/LittleSophia/urdf/LittleSophia.urdf
index 72ac6fa..b7d53f2 100644
--- a/robots/LittleSophia/urdf/LittleSophia.urdf
+++ b/robots/LittleSophia/urdf/LittleSophia.urdf
@@ -3,14 +3,15 @@
-
-
+
+
-
+
-
+
@@ -25,50 +26,23 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
@@ -83,413 +57,314 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
+
@@ -501,232 +376,237 @@
-
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 200
+ 3500
+ 270
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 500
+ 4095
+ 270
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ PositionJointInterface
+
+
+ 1
+ PositionJointInterface
+ 4096
+ 500
+ 4095
+ 270
+
+
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 200
- 3500
- 270
-
-
-
- transmission_interface/SimpleTransmission
-
- PositionJointInterface
-
-
- 1
- PositionJointInterface
- 4096
- 500
- 4095
- 270
-
-
\ No newline at end of file
diff --git a/urdf/sample.urdf b/urdf/sample.urdf
index eeda94d..727e565 100644
--- a/urdf/sample.urdf
+++ b/urdf/sample.urdf
@@ -28,42 +28,15 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -146,8 +119,8 @@
-
-
+
+
@@ -443,8 +416,8 @@
-
-
+
+
@@ -506,9 +479,9 @@
-
+
transmission_interface/SimpleTransmission
-
+
PositionJointInterface
@@ -523,7 +496,7 @@
transmission_interface/SimpleTransmission
-
+
PositionJointInterface
@@ -568,7 +541,7 @@
transmission_interface/SimpleTransmission
-
+
PositionJointInterface
@@ -702,7 +675,7 @@
transmission_interface/SimpleTransmission
-
+
PositionJointInterface