现在的位置: 首页 > 专题 > 机器人 > Robotics Studio > 设计中心 > 文档 > 专题 > 机器人 > 正文

Robotics Studio学习教程:第二十八天——Pursuit Camera

2014年05月17日 Robotics Studio, 文档, 机器人 ⁄ 转载:原文链接 ⁄ 共 1880字 ⁄ 字号 暂无评论 ⁄ 阅读 1,575 次
Robotics Studio学习教程

Robotics Studio学习教程

继之前分享的一篇《Robotics Studio学习教程:第二十七天——在VSE中使用CameraSprite》, 我们将继续分享下一篇《Robotics Studio学习教程:第二十八天——Pursuit Camera》,让我继续开始我们学习Visual Programming Language,以及使用Robotics Studio学习开发机器人应用的道路吧。

 

[Robotics Studio] Pursuit Camera -- Day28

之前在玩迷宫机器人的时候, 常常要一边移动机器人, 一边移动摄影机 (Camera) 画面, 很是累人...

尤其是建造了那么复杂的迷宫之后, 移动摄影机就更是累人了...

在解决问题之前, 先看看 Robotics Developer Studio 原本就提供的范例, 这样我们就知道有甚么好的解决办法了.

打开 VPL (Visual Programming Lanaguage), 点选 File, Open, 找到 RDS 安装目录下的samples\VplExamples\DriveSimFourByFour 下面, 打开这个项目:

clip_image002

你应该会看到:

clip_image004

执行它, 你会看到一个操控面板让你操控车子:

clip_image006

但更重要的是, 你可以在 VSE (Visual Simulation Environment) 当中找到 Camera - PursuitCamera

clip_image008

切换到 PursuitCamera, 然后移动车子...看到了吗, 这就是我们想要的,

clip_image010

我不是指翻车啦, 是摄影机会追着车子跑...这种摄影机就是我们玩游戏常看的摄影机, 这样才象样嘛...

ok, 打完收工, 那个 4x4 的车子已经领便当了...

甚么? 你说问题还没解决?

这就是我看那个 MsrsUserGuideExpress.chm 讨厌的地方, 问题都没解决就结束了..

最后只有这段话 :

"The Pursuit Camera consists of two components: a simulation entity and a service. You do not need to start the service to use the camera in the Simulator, but your application must programmatically add a Pursuit Camera entity.

...

By default, the camera entity name is PursuitCamera"

意思就是叫你自己生一个 PursuitCamera Entity 就好了...

还误导我一句, 有个预设名称叫做 PursuitCamera ...

(事实上我最后只能这样解释: 他是说这个范例里面的 PursuitCamera 默认值...)

好吧, 让我告诉各位我是怎么做的:

1. 在建造迷宫以及机器人那个项目当中, 参考 PursuitCamera.Y2008.M04.dll (在 RDS 安装目录的 bin 下面)

2. using 加上 using pursuitcamera = Microsoft.Robotics.Entities.PursuitCamera;

3. 产生机器人以后, 改一下函式, 把机器人的名称传回来, 然后加上下面的 code :

  1.  string robotname = AddPioneer3DX(new Vector3(1.5f, 0.1f, 0f), -90);
  2.  pursuitcamera.PursuitCameraEntity pcamera = new pursuitcamera.PursuitCameraEntity(robotname);
  3.  pcamera.State.Name = "PursuitCameraEntity";
  4.  SimulationEngine.GlobalInstancePort.Insert(pcamera);

 

这个 code 就是产生一个 PursuitCameraEntity (给他机器人的名称, 它就会开始追踪该机器人),  讨厌的地方就是它根本没有预设名称啊, 所以你要给一个名称, 不然会没办法加入  VSE 当中的...

那么, 加了这样的 code , 我们的 VSE 也就出现一个 PursuitCameraEntity 啰.

clip_image012

点选 PursuitCameraEntity , 你的摄影机就会跟着机器人跑啰:

clip_image014

这样就不算太混了吧?!

 

让我们继续一下章教程:

《Robotics Studio学习教程:第二十九天——使用XSLT来显示DDS Service State》

fgx

分享到:

Wopus问答

×