RealSense L515について
現在研究でRealSenseのL515を使用しています。
L515は、
独自のMEMSミラースキャンテクノロジーを採用したSolid State式LiDAR深度カメラです。従来のToF方式の>LiDARと比べても高効率(※1)なレーザー出力が可能なモデルです。
※1:デプスストリーミングの消費電力が3.5W未満
(引用:スイッチサイエンス Intel RealSense LiDAR Camera L515)
です。
使用用途
使用用途を簡単に説明すると、車などのレバーをL515でセンシングし、現在のレバーの位置を推定するために使っています。
今回はL515で撮影した深度画像とテンプレートマッチングを使ってレバーの位置を推定します。
困っていたこと
Intel RealSense L515の製品サイトによるとMinimum Depth Distanceは0.25mと記載されています。
しかし実際に動作確認してみると、0.25m前後の物体は写すことができず、0.50m程度離さなければ物体を写すことができませんでした。
設置場所の都合上、できるだけ近くにL515を設置したい。
せめて仕様通り、0.25mから写したい。
だけど、ある程度距離を離さないと写せない。
こんな感じで困っていました。
解決方法
このIntel公式の記事に答えがありました。
照射するレーザーの強さを弱くすると、写すことのできる距離は短くなるがより近くの物体を写すことができるようになることが判明
あとは、レーザーの出力の強さを少し弱めに設定すれば解決です。
Python(pyrealsense2)を使用する際のレーザー設定方法は、SDKのGitHubのIssueに公式の人が回答してくれていたので、そちらを参考にしながら設定。
# ストリームの設定
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
# ストリーミング開始
pipeline = rs.pipeline()
profile = pipeline.start(config)
# レーザー出力・範囲の確認
depth_sensor = profile.get_device().first_depth_sensor()
laser_pwr = depth_sensor.get_option(rs.option.laser_power)
print("laser power = ", laser_pwr)
laser_range = depth_sensor.get_option_range(rs.option.laser_power)
print("laser power range = " , laser_range.min , "~", laser_range.max)
設定されているレーザー出力の強さと設定可能な範囲を確認してみると、
laser_pwr = 100.0
laser power range = 0.0 ~ 100.0
デフォルトでは、最大値の100
が設定されていました。
設定方法は下記の通りです。
set_laser = 10
depth_sensor.set_option(rs.option.laser_power, set_laser)
この設定をすることで、無事にL515で近くのものをセンシングすることができるようになりました。
環境構築について(おまけ)
Mac+PythonでRealSenseを扱いたい場合、環境構築も少しつまずく可能性があるので、私が環境構築する際に参考にしたものを共有しておきます。