LoginSignup
5
9

More than 3 years have passed since last update.

RealSense L515で近くの物体をセンシングしたかった話

Posted at

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 Distance0.25mと記載されています。

しかし実際に動作確認してみると、0.25m前後の物体は写すことができず、0.50m程度離さなければ物体を写すことができませんでした。

100.gif

設置場所の都合上、できるだけ近くに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で近くのものをセンシングすることができるようになりました。

10.gif

環境構築について(おまけ)

Mac+PythonでRealSenseを扱いたい場合、環境構築も少しつまずく可能性があるので、私が環境構築する際に参考にしたものを共有しておきます。
- macOS Installation
- Mac に pyrealsense2 をインストールする

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9