Fix non-encoder BB2B

This commit is contained in:
Pascal Serrarens 2025-05-12 14:16:05 +02:00
parent 8c7e7e03f7
commit ae1e43a332
3 changed files with 17 additions and 16 deletions

View File

@ -11,6 +11,7 @@ namespace RoboidControl {
public BB2B(Participant owner) : base(owner) {
this.name = "BB2B";
this.SetMotors(new Motor(this), new Motor(this));
this.SetDriveDimensions(0.064f, 0.128f);
// Is has a touch sensor at the front left of the roboid

View File

@ -52,6 +52,14 @@ namespace RoboidControl.Unity {
if (coreDrive.wheelRadius <= 0) // || coreDrive.wheelSeparation <= 0)
return;
// Destroy any (generic) thing with the same id
if (leftWheel == null) {
Thing[] things = FindObjectsOfType<Thing>();
foreach (Thing thing in things) {
if (thing.core.id == coreDrive.leftWheel.id)
Destroy(thing.gameObject);
}
}
if (leftWheel == null && coreDrive.leftWheel != null)
leftWheel = Wheel.Create(this.transform, coreDrive.leftWheel.id);
if (leftWheel != null) {
@ -61,6 +69,14 @@ namespace RoboidControl.Unity {
// leftWheelCollider.center = new Vector3(-coreDrive.wheelSeparation / 2, 0, 0);
}
// Destroy any (generic) thing with the same id
if (rightWheel == null) {
Thing[] things = FindObjectsOfType<Thing>();
foreach (Thing thing in things) {
if (thing.core.id == coreDrive.rightWheel.id)
Destroy(thing.gameObject);
}
}
if (rightWheel == null && coreDrive.rightWheel != null)
rightWheel = Wheel.Create(this.transform, coreDrive.rightWheel.id);
if (rightWheel != null) {

View File

@ -23,14 +23,6 @@ namespace RoboidControl.Unity {
GameObject gameObj = new(core.name);
Wheel component = gameObj.AddComponent<Wheel>();
component.Init(core);
// component.wheelCollider = gameObj.AddComponent<WheelCollider>();
// component.wheelCollider.mass = 0.1f;
// component.wheelCollider.suspensionDistance = 0.01f;
// component.wheelCollider.suspensionSpring = new JointSpring {
// spring = 100f, // Very high spring value to make it rigid
// damper = 10f, // Low damping (could be adjusted for slight 'bounciness')
// targetPosition = 0.5f // Neutral position (middle of the suspension travel)
// };
Debug.Log("Create " + core.name);
return component;
}
@ -61,14 +53,6 @@ namespace RoboidControl.Unity {
SphereCollider collider = gameObj.AddComponent<SphereCollider>();
collider.radius = 0.00001f;
collider.material = slidingWheel;
// component.wheelCollider = gameObj.AddComponent<WheelCollider>();
// component.wheelCollider.mass = 0.1f;
// component.wheelCollider.suspensionDistance = 0.01f;
// component.wheelCollider.suspensionSpring = new JointSpring {
// spring = 100f, // Very high spring value to make it rigid
// damper = 10f, // Low damping (could be adjusted for slight 'bounciness')
// targetPosition = 0.5f // Neutral position (middle of the suspension travel)
// };
Debug.Log("Create placeholder Wheel ");
return component;
}