cad2025 電腦輔助設計與實習

  • Home
    • SMap
    • reveal
    • blog
  • About
    • Mind-Map
    • AI
      • Teams
      • Prompts
    • Homework
      • HW2
      • Plotter
  • Topics
    • Network
    • ICMP
    • IPv6
    • DNS
    • Proxy
    • Web
      • Codespaces
  • Software
    • Git
    • CMSiMDE
      • Flask
    • Solvespace
      • Compile
    • NX2312
      • License
    • Onshape
    • Webots
      • Fourbar
      • TimeStep
      • Clouds
      • Talks
      • Blender
      • Ardupilot
  • Tutorial
    • Stage1
      • Tutorial1
      • Tutorial2
    • Stage2
      • Tutorial3
      • Distancesensor
      • Tutorial4
      • Tutorial5
    • Stage3
      • Tutorial6
      • Tutorial7
      • Stream
      • Webots Server
  • Projects
    • Control
    • Printer
    • Otto
    • Otto_ninja-1
      • Simplify
    • OpenDuck
    • Pupper
    • JetAcker
  • Brython
  • Ref
    • Reeborg
      • ex1
      • Otto_ninja-2
    • Pyodide
    • Pyodide_ex
    • Pyodide2
      • robot.py
      • Example2
    • Pyodide3
      • png_files
      • Harvest
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