Intel RealSenseの一部には、内蔵されたIMUがあり、これを使用して加速度とジャイロスコープ(物体の角度、角速度、各加速度)のデータを取得することができます。本記事では、Pythonを使用してRealSenseからIMUの情報を取得する方法について取り扱っていきます。
必要なもの
対応しているRealSenseデバイス: 例えばD435iなど、IMUが内蔵されているモデル。
RealSense SDK 2.0: 動作確認用にIntelの公式サイトからRealSense SDK 2.0をインストールしてください。(なくてもOK)
Python: Pythonがインストールされていることを確認してください。
pyrealsense2: Python用RealSenseライブラリをインストールしてください。
pip install pyrealsense2
1: ライブラリのインポート
import pyrealsense2 as rs
2: IMUストリームの設定
加速度センサーとジャイロスコープのストリームを有効にします。
# パイプラインの設定
pipeline = rs.pipeline()
config = rs.config()
# 加速度センサーのストリームを有効にする
config.enable_stream(rs.stream.accel)
# ジャイロスコープのストリームも有効にする場合
config.enable_stream(rs.stream.gyro)
# ストリーミング開始
pipeline.start(config)
3: 加速度データの取得と表示
加速度センサーからデータを取得し、それを表示します。
try:
while True:
# フレームセットを待機
frames = pipeline.wait_for_frames()
# 加速度センサーフレームを取得
accel_frame = frames[0].as_motion_frame()
if accel_frame:
accel_data = accel_frame.get_motion_data()
print("Accel:", accel_data.x, accel_data.y, accel_data.z)
# ジャイロスコープフレームも取得する場合
gyro_frame = frames[1].as_motion_frame()
if gyro_frame:
gyro_data = gyro_frame.get_motion_data()
print("Gyro:", gyro_data.x, gyro_data.y, gyro_data.z)
finally:
# ストリーミング停止
pipeline.stop()
上記のコードは、加速度センサーからのX, Y, Z軸のデータをリアルタイムでコマンドプロンプトに出力します。また、ジャイロスコープのデータも同様に取得して出力しています。
注意点
・すべてのRealSenseデバイスが内蔵IMUを持っているわけではないので、使用しているデバイスがIMUをサポートしているか確認してください。
・加速度センサーとジャイロスコープのデータは生データであり、使用する際には適切に処理する必要があります。