1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RealSenseからIMUの情報を取得する方法

Last updated at Posted at 2023-12-31

Intel RealSenseの一部には、内蔵されたIMUがあり、これを使用して加速度とジャイロスコープ(物体の角度、角速度、各加速度)のデータを取得することができます。本記事では、Pythonを使用してRealSenseからIMUの情報を取得する方法について取り扱っていきます。

↓実行結果
スクリーンショット 2023-12-31 182106.png

必要なもの
対応している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をサポートしているか確認してください。
・加速度センサーとジャイロスコープのデータは生データであり、使用する際には適切に処理する必要があります。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?