首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Microsoft Robotics Studio 模擬真實世界 (7):BoeBot 類別建構器深度解析

     編輯:關於C語言

BoeBot 類別定義

[DataContract]
public class BoeBot : DifferentialDriveEntity
{
    Port _notifications = new Port();

    public BoeBot() { } // XML 反序列化用

    public BoeBot(Vector3 initialPos)
    {
        MASS = 0.454f; // kg (約 1 磅)
        CHASSIS_DIMENSIONS = new Vector3(0.09f, 0.09f, 0.13f); // 寬、高、長 (米)
        FRONT_WHEEL_MASS = 0.01f;
        CHASSIS_CLEARANCE = 0.015f;
        FRONT_WHEEL_RADIUS = 0.025f;
        CASTER_WHEEL_RADIUS = 0.0125f;
        FRONT_WHEEL_WIDTH = 0.01f;
        CASTER_WHEEL_WIDTH = 0.008f;
        FRONT_AXLE_DEPTH_OFFSET = 0.01f;

        base.State.Name = "BoeBot";
        base.State.MassDensity.Mass = MASS;
        base.State.Pose.Position = initialPos;

        // 底盤形狀
        BoxShapeProperties motorBaseDesc = new BoxShapeProperties("BoeBot Body", MASS,
            new Pose(new Vector3(0, CHASSIS_CLEARANCE + CHASSIS_DIMENSIONS.Y / 2, 0.03f)),
            CHASSIS_DIMENSIONS);
        motorBaseDesc.Material = new MaterialProperties("high friction", 0.0f, 1.0f, 20.0f);
        motorBaseDesc.Name = "Chassis";
        ChassisShape = new BoxShape(motorBaseDesc);

        // 後輪 (萬向輪) 位置
        CASTER_WHEEL_POSITION = new Vector3(0, CASTER_WHEEL_RADIUS, CHASSIS_DIMENSIONS.Z / 2);
        // 前左右輪位置
        RIGHT_FRONT_WHEEL_POSITION = new Vector3(+CHASSIS_DIMENSIONS.X / 2, FRONT_WHEEL_RADIUS, FRONT_AXLE_DEPTH_OFFSET);
        LEFT_FRONT_WHEEL_POSITION  = new Vector3(-CHASSIS_DIMENSIONS.X / 2, FRONT_WHEEL_RADIUS, FRONT_AXLE_DEPTH_OFFSET);

        MotorTorqueScaling = 30;
        State.Assets.Mesh = "boe-bot.bos"; // 預設網格
    }
}

關鍵設計要點

  • 物理參數來自實測:質量、尺寸皆由實際機器人量測得出。
  • 右手座標系:MSRS 模擬引擎採用右手座標系,影響 Z 軸朝向。
  • 差速驅動模型:兩主輪 + 一後萬向輪,透過左右馬達扭矩差控制轉向,與實體機器人操作一致。
  • 程式碼可重用性:理論上模擬與實體機器人共用同套控制/感測程式碼,但模擬無法完全複製干擾因素(如障礙物位置誤差)。

模擬價值

低成本驗證機器人設計、模擬多機器人交互,極適合資源有限的教學與研究環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved