27c0f65722
Replace the failing ODE-rolled mecanum chassis dynamics with a Supervisor.setVelocity call that uses the gym mecanum forward kinematics formula directly. Wheel motors still spin (visual); chassis motion comes from the gym model so training and deployment match by construction. Results (seed=42, n=10 sheep): BC + RL mecanum pen 10/10 in both field and field_round. n=5 mecanum cells still 0/5 due to tracker phantoms anchored to wall corners under the 360° LiDAR — documented in docs/status.md as the remaining gap. Cleanup: drop deploy-time hacks (HERDING_HEADING_*, HERDING_OMEGA_CLAMP, HERDING_TRACKER_*) that were workarounds for the old ODE chaos; revert the proto inertiaMatrix, roller dampingConstant, and reduced motor torque since they no longer carry load; refresh comments around the mecanum config presets.
2069 lines
56 KiB
Protocol Buffer
2069 lines
56 KiB
Protocol Buffer
#VRML_SIM R2025a utf8
|
|
# Shepherd Dog Robot - mecanum-wheeled base with dog character on top
|
|
# 4-wheel omnidirectional drive (front-left, front-right, rear-left, rear-right).
|
|
|
|
PROTO ShepherdDogMecanum [
|
|
field SFVec3f translation 0 0 0
|
|
field SFRotation rotation 0 1 0 0
|
|
field SFString name "ShepherdDog"
|
|
field SFString controller "shepherd_dog"
|
|
field MFString controllerArgs []
|
|
field SFString customData ""
|
|
field SFBool supervisor TRUE
|
|
field SFBool synchronization TRUE
|
|
]
|
|
{
|
|
Robot {
|
|
translation IS translation
|
|
rotation IS rotation
|
|
name IS name
|
|
controller IS controller
|
|
controllerArgs IS controllerArgs
|
|
customData IS customData
|
|
supervisor IS supervisor
|
|
synchronization IS synchronization
|
|
children [
|
|
# ========== CHASSIS / BASE ==========
|
|
DEF CHASSIS Transform {
|
|
translation 0 0 0.05
|
|
children [
|
|
Shape {
|
|
appearance DEF CHASSIS_APP PBRAppearance {
|
|
baseColor 0.2 0.2 0.2
|
|
roughness 0.6
|
|
metalness 0.3
|
|
}
|
|
geometry Box {
|
|
size 0.32 0.16 0.06
|
|
}
|
|
}
|
|
]
|
|
}
|
|
# Front slope
|
|
DEF CHASSIS_FRONT Transform {
|
|
translation 0.14 0 0.07
|
|
children [
|
|
Shape {
|
|
appearance USE CHASSIS_APP
|
|
geometry Box {
|
|
size 0.06 0.14 0.04
|
|
}
|
|
}
|
|
]
|
|
}
|
|
# Rear slope
|
|
DEF CHASSIS_REAR Transform {
|
|
translation -0.14 0 0.07
|
|
children [
|
|
Shape {
|
|
appearance USE CHASSIS_APP
|
|
geometry Box {
|
|
size 0.06 0.14 0.04
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== DOG BODY on top of chassis ==========
|
|
DEF BODY Transform {
|
|
translation 0 0 0.11
|
|
children [
|
|
Shape {
|
|
appearance DEF FUR_BROWN PBRAppearance {
|
|
baseColor 0.55 0.35 0.17
|
|
roughness 0.85
|
|
metalness 0.0
|
|
}
|
|
geometry Box {
|
|
size 0.30 0.16 0.08
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== CHEST ==========
|
|
DEF CHEST Transform {
|
|
translation 0.12 0 0.11
|
|
children [
|
|
Shape {
|
|
appearance DEF FUR_CREAM PBRAppearance {
|
|
baseColor 0.85 0.72 0.55
|
|
roughness 0.85
|
|
metalness 0.0
|
|
}
|
|
geometry Box {
|
|
size 0.08 0.18 0.08
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== HEAD ==========
|
|
DEF HEAD Transform {
|
|
translation 0.20 0 0.17
|
|
children [
|
|
Shape {
|
|
appearance USE FUR_BROWN
|
|
geometry Box {
|
|
size 0.10 0.12 0.09
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== SNOUT + LIDAR ==========
|
|
DEF SNOUT Transform {
|
|
translation 0.28 0 0.155
|
|
children [
|
|
Shape {
|
|
appearance USE FUR_CREAM
|
|
geometry Box {
|
|
size 0.08 0.07 0.05
|
|
}
|
|
}
|
|
# Nose
|
|
Transform {
|
|
translation 0.04 0 0.01
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.1 0.1 0.1
|
|
roughness 0.4
|
|
}
|
|
geometry Sphere {
|
|
radius 0.013
|
|
subdivision 2
|
|
}
|
|
}
|
|
]
|
|
}
|
|
# Lidar — front-facing 140° FOV, mounted at snout tip
|
|
Lidar {
|
|
translation 0.05 0 0.01
|
|
name "lidar"
|
|
horizontalResolution 180
|
|
fieldOfView 2.44
|
|
numberOfLayers 1
|
|
minRange 0.10
|
|
maxRange 12.0
|
|
noise 0.005
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== LEFT EAR ==========
|
|
DEF LEFT_EAR HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0 0 1
|
|
anchor 0.19 0.055 0.21
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name "left ear motor"
|
|
maxVelocity 10.0
|
|
minPosition -0.5
|
|
maxPosition 0.5
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation 0.19 0.055 0.21
|
|
rotation 0 0 1 0.2
|
|
name "left ear"
|
|
children [
|
|
Shape {
|
|
appearance DEF FUR_DARK PBRAppearance {
|
|
baseColor 0.35 0.20 0.10
|
|
roughness 0.85
|
|
metalness 0.0
|
|
}
|
|
geometry Box {
|
|
size 0.035 0.025 0.06
|
|
}
|
|
}
|
|
]
|
|
boundingObject Box {
|
|
size 0.035 0.025 0.06
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.005
|
|
}
|
|
}
|
|
}
|
|
|
|
# ========== RIGHT EAR ==========
|
|
DEF RIGHT_EAR HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0 0 1
|
|
anchor 0.19 -0.055 0.21
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name "right ear motor"
|
|
maxVelocity 10.0
|
|
minPosition -0.5
|
|
maxPosition 0.5
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation 0.19 -0.055 0.21
|
|
rotation 0 0 -1 0.2
|
|
name "right ear"
|
|
children [
|
|
Shape {
|
|
appearance USE FUR_DARK
|
|
geometry Box {
|
|
size 0.035 0.025 0.06
|
|
}
|
|
}
|
|
]
|
|
boundingObject Box {
|
|
size 0.035 0.025 0.06
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.005
|
|
}
|
|
}
|
|
}
|
|
|
|
# ========== EYES ==========
|
|
DEF LEFT_EYE Transform {
|
|
translation 0.25 0.05 0.19
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.95 0.95 0.95
|
|
roughness 0.3
|
|
}
|
|
geometry Sphere {
|
|
radius 0.016
|
|
subdivision 2
|
|
}
|
|
}
|
|
# Pupil
|
|
Transform {
|
|
translation 0.012 0 0.004
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.1 0.1 0.1
|
|
roughness 0.2
|
|
}
|
|
geometry Sphere {
|
|
radius 0.009
|
|
subdivision 2
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
DEF RIGHT_EYE Transform {
|
|
translation 0.25 -0.05 0.19
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.95 0.95 0.95
|
|
roughness 0.3
|
|
}
|
|
geometry Sphere {
|
|
radius 0.016
|
|
subdivision 2
|
|
}
|
|
}
|
|
# Pupil
|
|
Transform {
|
|
translation 0.012 0 0.004
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.1 0.1 0.1
|
|
roughness 0.2
|
|
}
|
|
geometry Sphere {
|
|
radius 0.009
|
|
subdivision 2
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== COLLAR ==========
|
|
DEF COLLAR Transform {
|
|
translation 0.16 0 0.125
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.8 0.1 0.1
|
|
roughness 0.5
|
|
}
|
|
geometry Cylinder {
|
|
height 0.02
|
|
radius 0.095
|
|
subdivision 16
|
|
}
|
|
}
|
|
# ID tag
|
|
Transform {
|
|
translation 0 0.10 0
|
|
rotation 1 0 0 1.5708
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.75 0.75 0.0
|
|
metalness 0.8
|
|
roughness 0.2
|
|
}
|
|
geometry Cylinder {
|
|
height 0.003
|
|
radius 0.018
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== TAIL (lidar inside tail tip ball) ==========
|
|
DEF TAIL HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0 1 0
|
|
anchor -0.15 0 0.11
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name "tail motor"
|
|
maxVelocity 5.0
|
|
minPosition -1.0
|
|
maxPosition 1.0
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation -0.17 0 0.13
|
|
name "tail solid"
|
|
children [
|
|
Shape {
|
|
appearance USE FUR_BROWN
|
|
geometry Capsule {
|
|
height 0.12
|
|
radius 0.013
|
|
top FALSE
|
|
}
|
|
}
|
|
# Tail tip ball
|
|
Transform {
|
|
translation 0 0 0.08
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.2 0.2 0.2
|
|
roughness 0.3
|
|
metalness 0.6
|
|
}
|
|
geometry Sphere {
|
|
radius 0.028
|
|
subdivision 4
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
boundingObject Group {
|
|
children [
|
|
Capsule {
|
|
height 0.12
|
|
radius 0.013
|
|
}
|
|
Transform {
|
|
translation 0 0 0.08
|
|
children [
|
|
Sphere {
|
|
radius 0.028
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.08
|
|
}
|
|
}
|
|
}
|
|
|
|
# ========== AXLE ARMS (4 corners) ==========
|
|
DEF FRONT_RIGHT_AXLE Transform {
|
|
translation 0.14 -0.115 0.038
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.8
|
|
}
|
|
geometry Box {
|
|
size 0.02 0.08 0.02
|
|
}
|
|
}
|
|
]
|
|
}
|
|
DEF FRONT_LEFT_AXLE Transform {
|
|
translation 0.14 0.115 0.038
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.8
|
|
}
|
|
geometry Box {
|
|
size 0.02 0.08 0.02
|
|
}
|
|
}
|
|
]
|
|
}
|
|
DEF REAR_RIGHT_AXLE Transform {
|
|
translation -0.14 -0.115 0.038
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.8
|
|
}
|
|
geometry Box {
|
|
size 0.02 0.08 0.02
|
|
}
|
|
}
|
|
]
|
|
}
|
|
DEF REAR_LEFT_AXLE Transform {
|
|
translation -0.14 0.115 0.038
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.8
|
|
}
|
|
geometry Box {
|
|
size 0.02 0.08 0.02
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== FRONT RIGHT WHEEL ==========
|
|
DEF FRONT_RIGHT_WHEEL_JOINT HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0 1 0
|
|
anchor 0.14 -0.14 0.038
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name "front right wheel motor"
|
|
maxVelocity 70.0
|
|
maxTorque 20.0
|
|
}
|
|
PositionSensor {
|
|
name "front right wheel sensor"
|
|
resolution 0.00628
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation 0.14 -0.14 0.038
|
|
rotation 0 -1 0 1.570796
|
|
children [
|
|
# Visual hub only — the rollers below provide ground contact.
|
|
Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.7
|
|
}
|
|
geometry Cylinder {
|
|
height 0.018
|
|
radius 0.018000000000000002
|
|
subdivision 16
|
|
}
|
|
}
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.6 0.6 0.6
|
|
roughness 0.2
|
|
metalness 0.8
|
|
}
|
|
geometry Cylinder {
|
|
height 0.022
|
|
radius 0.008
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
}
|
|
# Mecanum roller 1 (θ=0°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.707107 0.707107 0.000000
|
|
anchor 0.000000 0.000000 -0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 -0.031000
|
|
rotation 0.000000 0.000000 -1.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 1"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 2 (θ=45°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 0.707107 0.500000
|
|
anchor 0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 -0.021920
|
|
rotation 0.707107 0.000000 -0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 2"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 3 (θ=90°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.000000 0.707107 0.707107
|
|
anchor 0.031000 0.000000 -0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.031000 0.000000 -0.000000
|
|
rotation 1.000000 0.000000 -0.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 3"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 4 (θ=135°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 0.707107 0.500000
|
|
anchor 0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 0.021920
|
|
rotation 0.707107 0.000000 0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 4"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 5 (θ=180°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.707107 0.707107 0.000000
|
|
anchor 0.000000 0.000000 0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 0.031000
|
|
rotation 0.000000 0.000000 1.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 5"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 6 (θ=225°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 0.707107 -0.500000
|
|
anchor -0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 0.021920
|
|
rotation -0.707107 0.000000 0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 6"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 7 (θ=270°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.000000 0.707107 -0.707107
|
|
anchor -0.031000 0.000000 0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation -0.031000 0.000000 0.000000
|
|
rotation -1.000000 0.000000 0.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 7"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 8 (θ=315°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 0.707107 -0.500000
|
|
anchor -0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 -0.021920
|
|
rotation -0.707107 0.000000 -0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front right roller 8"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
name "front right wheel"
|
|
boundingObject Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Cylinder {
|
|
height 0.022
|
|
radius 0.02
|
|
}
|
|
]
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.045
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
# ========== FRONT LEFT WHEEL ==========
|
|
DEF FRONT_LEFT_WHEEL_JOINT HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0 1 0
|
|
anchor 0.14 0.14 0.038
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name "front left wheel motor"
|
|
maxVelocity 70.0
|
|
maxTorque 20.0
|
|
}
|
|
PositionSensor {
|
|
name "front left wheel sensor"
|
|
resolution 0.00628
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation 0.14 0.14 0.038
|
|
rotation 0 -1 0 1.570796
|
|
children [
|
|
# Visual hub only — the rollers below provide ground contact.
|
|
Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.7
|
|
}
|
|
geometry Cylinder {
|
|
height 0.018
|
|
radius 0.018000000000000002
|
|
subdivision 16
|
|
}
|
|
}
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.6 0.6 0.6
|
|
roughness 0.2
|
|
metalness 0.8
|
|
}
|
|
geometry Cylinder {
|
|
height 0.022
|
|
radius 0.008
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
}
|
|
# Mecanum roller 1 (θ=0°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.707107 -0.707107 0.000000
|
|
anchor 0.000000 0.000000 -0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 -0.031000
|
|
rotation 0.000000 0.000000 -1.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 1"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 2 (θ=45°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 -0.707107 0.500000
|
|
anchor 0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 -0.021920
|
|
rotation 0.707107 0.000000 -0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 2"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 3 (θ=90°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.000000 -0.707107 0.707107
|
|
anchor 0.031000 0.000000 -0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.031000 0.000000 -0.000000
|
|
rotation 1.000000 0.000000 -0.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 3"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 4 (θ=135°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 -0.707107 0.500000
|
|
anchor 0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 0.021920
|
|
rotation 0.707107 0.000000 0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 4"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 5 (θ=180°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.707107 -0.707107 0.000000
|
|
anchor 0.000000 0.000000 0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 0.031000
|
|
rotation 0.000000 0.000000 1.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 5"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 6 (θ=225°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 -0.707107 -0.500000
|
|
anchor -0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 0.021920
|
|
rotation -0.707107 0.000000 0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 6"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 7 (θ=270°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.000000 -0.707107 -0.707107
|
|
anchor -0.031000 0.000000 0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation -0.031000 0.000000 0.000000
|
|
rotation -1.000000 0.000000 0.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 7"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 8 (θ=315°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 -0.707107 -0.500000
|
|
anchor -0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 -0.021920
|
|
rotation -0.707107 0.000000 -0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "front left roller 8"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
name "front left wheel"
|
|
boundingObject Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Cylinder {
|
|
height 0.022
|
|
radius 0.02
|
|
}
|
|
]
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.045
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
# ========== REAR RIGHT WHEEL ==========
|
|
DEF REAR_RIGHT_WHEEL_JOINT HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0 1 0
|
|
anchor -0.14 -0.14 0.038
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name "rear right wheel motor"
|
|
maxVelocity 70.0
|
|
maxTorque 20.0
|
|
}
|
|
PositionSensor {
|
|
name "rear right wheel sensor"
|
|
resolution 0.00628
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation -0.14 -0.14 0.038
|
|
rotation 0 -1 0 1.570796
|
|
children [
|
|
# Visual hub only — the rollers below provide ground contact.
|
|
Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.7
|
|
}
|
|
geometry Cylinder {
|
|
height 0.018
|
|
radius 0.018000000000000002
|
|
subdivision 16
|
|
}
|
|
}
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.6 0.6 0.6
|
|
roughness 0.2
|
|
metalness 0.8
|
|
}
|
|
geometry Cylinder {
|
|
height 0.022
|
|
radius 0.008
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
}
|
|
# Mecanum roller 1 (θ=0°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.707107 -0.707107 0.000000
|
|
anchor 0.000000 0.000000 -0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 -0.031000
|
|
rotation 0.000000 0.000000 -1.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 1"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 2 (θ=45°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 -0.707107 0.500000
|
|
anchor 0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 -0.021920
|
|
rotation 0.707107 0.000000 -0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 2"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 3 (θ=90°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.000000 -0.707107 0.707107
|
|
anchor 0.031000 0.000000 -0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.031000 0.000000 -0.000000
|
|
rotation 1.000000 0.000000 -0.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 3"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 4 (θ=135°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 -0.707107 0.500000
|
|
anchor 0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 0.021920
|
|
rotation 0.707107 0.000000 0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 4"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 5 (θ=180°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.707107 -0.707107 0.000000
|
|
anchor 0.000000 0.000000 0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 0.031000
|
|
rotation 0.000000 0.000000 1.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 5"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 6 (θ=225°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 -0.707107 -0.500000
|
|
anchor -0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 0.021920
|
|
rotation -0.707107 0.000000 0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 6"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 7 (θ=270°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.000000 -0.707107 -0.707107
|
|
anchor -0.031000 0.000000 0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation -0.031000 0.000000 0.000000
|
|
rotation -1.000000 0.000000 0.000000 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 7"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 8 (θ=315°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 -0.707107 -0.500000
|
|
anchor -0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 -0.021920
|
|
rotation -0.707107 0.000000 -0.707107 2.356194
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear right roller 8"
|
|
contactMaterial "MecanumWheelB"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
name "rear right wheel"
|
|
boundingObject Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Cylinder {
|
|
height 0.022
|
|
radius 0.02
|
|
}
|
|
]
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.045
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
# ========== REAR LEFT WHEEL ==========
|
|
DEF REAR_LEFT_WHEEL_JOINT HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0 1 0
|
|
anchor -0.14 0.14 0.038
|
|
}
|
|
device [
|
|
RotationalMotor {
|
|
name "rear left wheel motor"
|
|
maxVelocity 70.0
|
|
maxTorque 20.0
|
|
}
|
|
PositionSensor {
|
|
name "rear left wheel sensor"
|
|
resolution 0.00628
|
|
}
|
|
]
|
|
endPoint Solid {
|
|
translation -0.14 0.14 0.038
|
|
rotation 0 -1 0 1.570796
|
|
children [
|
|
# Visual hub only — the rollers below provide ground contact.
|
|
Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.5 0.5 0.5
|
|
roughness 0.3
|
|
metalness 0.7
|
|
}
|
|
geometry Cylinder {
|
|
height 0.018
|
|
radius 0.018000000000000002
|
|
subdivision 16
|
|
}
|
|
}
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.6 0.6 0.6
|
|
roughness 0.2
|
|
metalness 0.8
|
|
}
|
|
geometry Cylinder {
|
|
height 0.022
|
|
radius 0.008
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
}
|
|
# Mecanum roller 1 (θ=0°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.707107 0.707107 0.000000
|
|
anchor 0.000000 0.000000 -0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 -0.031000
|
|
rotation 0.000000 0.000000 -1.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 1"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 2 (θ=45°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 0.707107 0.500000
|
|
anchor 0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 -0.021920
|
|
rotation 0.707107 0.000000 -0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 2"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 3 (θ=90°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.000000 0.707107 0.707107
|
|
anchor 0.031000 0.000000 -0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.031000 0.000000 -0.000000
|
|
rotation 1.000000 0.000000 -0.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 3"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 4 (θ=135°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 0.707107 0.500000
|
|
anchor 0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation 0.021920 0.000000 0.021920
|
|
rotation 0.707107 0.000000 0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 4"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 5 (θ=180°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.707107 0.707107 0.000000
|
|
anchor 0.000000 0.000000 0.031000
|
|
}
|
|
endPoint Solid {
|
|
translation 0.000000 0.000000 0.031000
|
|
rotation 0.000000 0.000000 1.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 5"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 6 (θ=225°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.500000 0.707107 -0.500000
|
|
anchor -0.021920 0.000000 0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 0.021920
|
|
rotation -0.707107 0.000000 0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 6"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 7 (θ=270°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis -0.000000 0.707107 -0.707107
|
|
anchor -0.031000 0.000000 0.000000
|
|
}
|
|
endPoint Solid {
|
|
translation -0.031000 0.000000 0.000000
|
|
rotation -1.000000 0.000000 0.000000 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 7"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
# Mecanum roller 8 (θ=315°)
|
|
HingeJoint {
|
|
jointParameters HingeJointParameters {
|
|
axis 0.500000 0.707107 -0.500000
|
|
anchor -0.021920 0.000000 -0.021920
|
|
}
|
|
endPoint Solid {
|
|
translation -0.021920 0.000000 -0.021920
|
|
rotation -0.707107 0.000000 -0.707107 0.785398
|
|
children [
|
|
Shape {
|
|
appearance PBRAppearance {
|
|
baseColor 0.12 0.12 0.12
|
|
roughness 0.7
|
|
metalness 0.1
|
|
}
|
|
geometry Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
}
|
|
]
|
|
name "rear left roller 8"
|
|
contactMaterial "MecanumWheelA"
|
|
boundingObject Capsule {
|
|
height 0.02
|
|
radius 0.007
|
|
subdivision 8
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.003
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
name "rear left wheel"
|
|
boundingObject Pose {
|
|
rotation 1 0 0 -1.5708
|
|
children [
|
|
Cylinder {
|
|
height 0.022
|
|
radius 0.02
|
|
}
|
|
]
|
|
}
|
|
physics Physics {
|
|
density -1
|
|
mass 0.045
|
|
centerOfMass [
|
|
0 0 0
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
# ========== IMU SENSORS ==========
|
|
Accelerometer {
|
|
translation 0 0 0.10
|
|
name "accelerometer"
|
|
}
|
|
Gyro {
|
|
translation 0 0 0.10
|
|
name "gyro"
|
|
}
|
|
Compass {
|
|
translation 0 0 0.10
|
|
name "compass"
|
|
}
|
|
|
|
# ========== GPS ==========
|
|
GPS {
|
|
translation 0 0 0.17
|
|
name "gps"
|
|
}
|
|
|
|
# ========== RECEIVER ==========
|
|
Receiver {
|
|
name "receiver"
|
|
channel 1
|
|
}
|
|
|
|
# ========== EMITTER ==========
|
|
Emitter {
|
|
name "emitter"
|
|
channel 1
|
|
range 50.0
|
|
}
|
|
]
|
|
|
|
# ========== BOUNDING OBJECT ==========
|
|
boundingObject Group {
|
|
children [
|
|
# Chassis box
|
|
Transform {
|
|
translation 0 0 0.05
|
|
children [
|
|
Box {
|
|
size 0.32 0.16 0.06
|
|
}
|
|
]
|
|
}
|
|
# Body box
|
|
Transform {
|
|
translation 0 0 0.11
|
|
children [
|
|
Box {
|
|
size 0.30 0.16 0.08
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
|
|
# ========== PHYSICS ==========
|
|
# Chassis dynamics are not exercised in herding runs — the
|
|
# controller drives the body kinematically via Supervisor
|
|
# setVelocity (see drive_mecanum in controllers/shepherd_dog).
|
|
# Webots-derived inertia from the bounding box is sufficient.
|
|
physics Physics {
|
|
density -1
|
|
mass 5.0
|
|
centerOfMass [
|
|
0 0 0.03
|
|
]
|
|
}
|
|
}
|
|
}
|