主要内容

使用传感器

与仿真模型的基于用户行为或事件发生在虚拟世界中,您可以使用虚拟现实传感器。移动图形对象在虚拟世界中模拟或改变他们的外表,基于用户行为或事件,您可以:

  1. 定义一个传感器节点,生成事件和输出值取决于时间,导航和操作和距离场景的变化。例如,一个TouchSensor节点跟踪定位设备的位置和状态。传感器检测到当你点几何包含的TouchSensor节点母公司。看到添加传感器虚拟世界

  2. 添加一个虚拟现实来源块并选择传感器读取属性。看到使用MATLAB读取传感器的值

    请注意

    而不是使用虚拟现实来源块读取传感器的值,您可以编写一个函数或使用MATLAB函数块。

    如果你是在MATLAB®,你可以使用读取传感器的值vrnode对象属性。

  3. 使用读取传感器的值虚拟现实来源块的输出可用于驱动仿真的行为。

添加传感器虚拟世界

您可以设置一个接口模型万博1manbetx®框图传感器在虚拟现实场景。您还可以输入信号以编程方式从虚拟世界变成一个仿真模型。

的虚拟现实场景可以包含传感器节点生成事件和输出值取决于时间,导航和操作和距离场景的变化。这些节点添加交互性的虚拟世界。虚拟世界传感器类似于真实世界传感器,如超声波、激光雷达和触摸传感器。您可以使用万博1manbetx仿真软件3 d动画™函数来读取传感器字段值为仿真模型和控制仿真基于用户交互的虚拟场景。

方法可以使用传感器包括:

  • 使用传感器数据从一个虚拟世界来控制模拟。

  • 提供用户之间的交互性导航和交互虚拟世界的仿真模型。

  • 模拟对虚拟世界事件作出反应,如时间节拍或脚本的输出。

  • 使用静态来自虚拟世界的信息,比如一盒的大小,来控制模拟。

您可以使用碰撞检测精确模型物理约束的对象在现实世界中,通常在两个物体不能在同一时间在同一个地方。您可以使用碰撞检测节点输出:

  • 其他虚拟世界节点状态的变化。

  • 应用MATLAB算法碰撞数据。

  • 驱动仿真软件万博1manbetx模型。

例如,您可以使用几何传感器机器人建模。有关更多信息,请参见检测物体碰撞

您可以定义这些传感器在一个场景。

传感器 描述
CylinderSensor 地图指针运动(例如,一个鼠标)在一个看不见的旋转圆筒是一致的y设在当地的坐标系统。
PlaneSensor 指向设备运动映射到二维平面平行于翻译z= 0局部坐标系的平面。
ProximitySensor 生成事件当观众进入、退出和区域空间内的移动(定义为一个盒子)
SphereSensor 指向设备运动映射到球形旋转对局部坐标系的原点
TimeSensor 随着时间的推移产生事件
TouchSensor 跟踪定位设备和检测到的位置和状态当你点几何包含的TouchSensor节点母公司。
VisibilitySensor 检测能见度变化的矩形框导航世界。
PointPickSensor 使用点云检测的点是在碰撞几何图形
LinePickSensor 使用射线球迷或其他组线检测碰撞几何图形之间的距离
PrimitivePickSensor 原始的几何图形(如锥,球体,或箱),检测碰撞几何图形

读取传感器的值

你可以阅读来自传感器节点的值在一个虚拟世界通过使用:

使用VR源块读取传感器的值

您可以使用虚拟现实来源块之间的交互性用户导航虚拟世界和仿真软件的仿真模型。万博1manbetx的虚拟现实来源块注册用户交互的虚拟世界,并将数据模型影响的仿真模型。的虚拟现实来源块从虚拟世界中读取的值字段中指定块参数对话框,输入一个模型。

例如,您可以指定定位点(所需的位置)在虚拟世界中,这样用户可以指定虚拟世界交互对象的位置。然后模拟响应改变对象的位置。的虚拟现实来源块可以阅读到模型来自虚拟世界的事件,如时间节拍或脚本的输出。的虚拟现实来源块也可以读到模型静态虚拟世界的信息(例如,一盒的大小定义在虚拟世界中3 d文件)。

使用的例子虚拟现实来源块,看虚拟控制面板磁悬浮模型

使用S-Functions读取传感器的值

在仿真软件中使用定位点值模型,您可以编写一个函数或一个万博1manbetxMATLAB函数块,定期读取传感器的输出。这个例子使用一个功能。

  1. 右键单击虚拟传感器的读者磁悬浮模型(vrmaglev)模型和选择面具>看下面具

    vrmaglev / VR传感器读者模型显示。这个模型包含了vrextin块,这是一个功能块。的vrextin功能同步传感器领域设置方法和定期读取它的价值mdlUpdate方法。

  2. 检查功能参数。右键单击vrextin并选择功能参数

    掩码中定义的参数提供样品的时间,虚拟世界,节点和阅读。

指出关于vrextin s函数

  • 设置自己的块输出,而是vrextin功能集相邻的值不变value_holder。这个设置使虚拟传感器的读者块兼容万博1manbetx仿真软件编码器™代码生成模型可以运行万博1manbetx仿真软件编码器目标。

  • 用户操作之间的信号回路(球移动到所需的位置用鼠标)关闭通过相关的仿真软件模型万博1manbetxvrmaglev。抓住球,并将它移动到新的位置只能当模型运行时和当模型集的蓝色选择方法切换到虚拟现实传感器信号通路。体验的行为PlaneSensor使用虚拟场景,保存maglev.x3d文件在一个新的名字。删除注释符号(#)来启用这个文件的最后一行。这些行为激活传感器输出的直接路由到球翻译。然后你可以尝试新创建的场景,而不是原始的maglev.x3d世界。

    Grab_Sensor路线。翻译_changedTO Ball.translation
  • 您可以使用这种方法从所有节点字段输入信息的类型exposedFieldeventOut,而不是只有一个传感器eventOut字段。看到VRML数据类类型关于虚拟世界的更多信息数据类类型。

  • 领域类exposedField,您可以使用另一个名称使用的字段名称后缀,_changed。例如,翻译translation_changed是备用名称请求翻译字段值的吗Grab_Sensor节点。

另请参阅

相关的话题