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

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

編輯:關於C語言

要了解模擬中需要哪些代碼,應首先查看隨 MSRS 提供的模擬教程。MSRS 安 裝程序的\samples\simulation教程目錄下提供的示例對應於 MSRS 安裝的菜單中 的模擬。例如,基本模擬環境與 SimulationTutorial1 項目相同。

如果使用 Visual Studio 2005 打開 SimulationTutorial1 項目,就可以查 看用於創建基本模擬環境的代碼。首先要注意的就是 Start 方法,啟動服務後將 自動調用此方法:

protected override void Start()
{
   base.Start();
   // Orient sim camera vIEw point
   SetupCamera();
   // Add objects (entitIEs) in our simulated world
   PopulateWorld();
}

您可以在 Start 方法中添加代碼來定義模擬環境。對於 Simulation­Tutorial1 項目,這包括設置攝影機和使用實體對象填充模擬場 景。

除了主攝影機外,基本模擬環境中還包含用於代表天空、地面、箱形物體和地 球儀的實體。用於插入地球儀(或帶有紋理的球體)的代碼已在圖 6 中列出。

圖 6 插入地球儀

void AddTexturedSphere(Vector3 position)
{
  SingleShapeEntity entity = new SingleShapeEntity(
    new SphereShape(
     new SphereShapePropertIEs(10, // mass in kg
     new Pose(), // pose of shape within entity
     1)), //default radius
    position);
  entity.State.Assets.Mesh = "earth.obj";
  entity.SphereShape.SphereState.Material =
    new MaterialPropertIEs("sphereMaterial", 0.5f, 0.4f, 0.5f);
  // Name the entity
  entity.State.Name = "detailed sphere";
  // Insert entity in simulation.
  SimulationEngine.GlobalInstancePort.Insert(entity);
}

AddTexturedSphere 方法中的第一行代碼用於創建 SingleShape­Entity 的一個實例。此類型代表具有單一幾何形狀的實體(例如球形),當需要添加具 有非常簡單的物理幾何體的實體時,它將非常有用。這樣,我就可以創建重 10 千克或大約 4.5 鎊的實體。

分配到此實體的網格是一個擴展名為 .obj 的對象文件。此對象文件使用 3D 圖形編輯工具創建,並以別名對象格式導出。MSRS 要求網格對象文件采用此格式 。您需要在 AddTexturedSphere 方法中實現的最後一項操作是向模擬環境插入球 體實體。

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