程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Robotics:使用Microsoft Robotics Studio模擬真實的世界(10)

Robotics:使用Microsoft Robotics Studio模擬真實的世界(10)

編輯:關於C語言

AddSky 和 AddGround 方法用於設置 BoeBot 周圍的環境。AddSky 方法將創 建一個新的 SkyDomeEntity 類型,並將其插入模擬中。此外,還要向模擬中插入 有向光線,用以代表太陽光(此方法的代碼如圖 10 所示)。

圖 10 添加天空

void AddSky() {
  // Add a sky using a static texture. We will use the sky texture
  // to do per pixel lighting on each simulation visual entity
  SkyDomeEntity sky = new SkyDomeEntity("skydome.dds", 
                     "sky_diff.dds");
  SimulationEngine.GlobalInstancePort.Insert(sky);
  // Add a directional light to simulate the sun.
  LightSourceEntity sun = new LightSourceEntity();
  sun.State.Name = "Sun";
  sun.Type = LightSourceEntityType.Directional;
  sun.Color = new Vector4(0.8f, 0.8f, 0.8f, 1);
  sun.Direction = new Vector3(0.5f, -.75f, 0.5f);
  SimulationEngine.GlobalInstancePort.Insert(sun);
}

AddGround 方法使用 HeightFIEldEntity 類型在零海拔處創建廣闊的地面。 隨 MSRS 安裝提供的紋理圖像用於代表地面。此方法的代碼如下所示:

void AddGround()
{
  // create a large horizontal plane, at zero elevation.
  HeightFieldEntity ground = new HeightFIEldEntity(
    "simple ground", // name
    "03RamIESc.dds", // texture image
    new MaterialPropertIEs("ground",
      0.2f, // restitution
      0.5f, // dynamic friction
      0.5f) // static friction
    );
  SimulationEngine.GlobalInstancePort.Insert(ground);
}

下一個要添加的是 Boe-Bot 實體。AddBoeBot 方法接受傳入 Vector3 參數, 此參數用於表示機器人的位置。此位置將傳遞給先前創建的 BoeBot 實體構造函 數。AddBoeBot 方法也將啟動模擬的 Boe-Bot 驅動器服務作為實體合作伙伴。此 方法的代碼如下所示:

void AddBoeBot(Vector3 pos)
{
   BoeBot boeBot = new BoeBot(pos);
   boeBot.State.Name = "SimulatedBoeBot";
   // Start simulated Boe-Bot Drive service
   CreateService(
    drive.Contract.IdentifIEr,
     Microsoft.Robotics.Simulation.Partners.CreateEntityPartner (
      "http://localhost/" + boeBot.State.Name));
   SimulationEngine.GlobalInstancePort.Insert(boeBot);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved