cd2025 協同產品設計實習

  • Home
    • SMap
    • reveal
    • blog
  • About
    • Summary
      • Tasks
      • Closing
      • Shooter
    • Product
    • Control
    • CPS
    • AI
    • Project
  • Topics
    • Wink
      • Fossil
    • Topic1
      • w1
      • Portable
      • repo
      • SSH
      • list
      • IPv6
    • Topic2
      • Compile
      • Onshape
    • Topic3
      • Fourbar2
      • boomer
    • Topic4
      • ROS2
  • HW
    • HW1
    • HW2
    • HW3
  • Exam
    • Exam1
    • Exam2
    • Exam3
  • Final
    • Webots
    • Rotate
  • Tutorial
    • Fourbar
      • w10
    • Stage1
      • Tutorial1
      • Tutorial2
    • Stage2
      • Tutorial3
      • Distancesensor
      • Tutorial4
      • Tutorial5
    • Stage3
      • Tutorial6
      • Tutorial7
      • Stream
      • Webots Server
    • Solvespace
      • Learn_Solvs
    • Mecanum
    • Pyslvs-UI
    • PICSimLab
    • Fossil SCM
    • Leo Editor
    • uv
    • Old
  • Brython
Tutorial3 << Previous Next >> Tutorial4

Distancesensor

https://cyberbotics.com/doc/reference/distancesensor

Derived from Device and Solid.

DistanceSensor {
  MFVec3f  lookupTable              [ 0 0 0, 0.1 1000 0 ] # lookup table
  SFString type                     "generic"             # {"generic", "infra-red", "sonar", "laser"}
  SFInt32  numberOfRays             1                     # [1, inf)
  SFFloat  aperture                 1.5708                # [0, 2*pi]
  SFFloat  gaussianWidth            1                     # [0, inf)
  SFFloat  resolution               -1                    # {-1, [0, inf)}
  SFFloat  redColorSensitivity      1                     # [0, inf)
}

在 Webots 的 DistanceSensor 設為紅外線(Infra-red, IR)模式時,lookupTable 欄位用於將感測器的原始輸出值(通常是類比值,例如AD值或電壓)對應到實際的距離(通常以米為單位)。這個對應關係並非線性,且會根據不同的紅外線感測器型號而有所不同,因此需要用 lookupTable 明確設定。

lookupTable 的格式說明

lookupTable 是一串三元組(triplet)組成的陣列,每個三元組代表:

[distance, value, standardDeviation]

distance:真實世界對應的距離(單位:公尺)。
value:感測器輸出的原始值(通常為電壓或AD值)。
standardDeviation:該點測量的誤差標準差(單位:公尺,非必需,可設為0)。


第一欄:輸入的距離(distance,單位:公尺)
第二欄:對應的感測器反應值(response value,通常是電壓或 AD 值)
第三欄:對應的標準差(standard deviation)

例如:

lookupTable [
  0.05 100 0.01
  0.20 400 0.01
  0.80 800 0.01
]

這代表:

當輸出值為 100 時,對應距離為 0.05 公尺。
當輸出值為 400 時,對應距離為 0.20 公尺。
... 以此類推。

Webots 會用這些點做線性內插,將感測器讀數(例如 350)對應到距離。

 設定 lookupTable 的方法

查閱感測器手冊:取得原廠提供的「輸出值 vs 距離」對照表。
選擇幾個代表性數值:通常選 3~5 組即可覆蓋感測範圍。
將其填入 lookupTable:

使用 lookupTable 設定的意義

lookupTable 告訴 Webots「當感測器輸出某值時,應該對應到什麼距離」。
因為紅外線測距不是線性的,所以線性內插比直接計算更準確。
這讓模擬更貼近真實感測器行為。


Tutorial3 << Previous Next >> Tutorial4

Copyright © All rights reserved | This template is made with by Colorlib