realsenseのimuのデータ取得
realsense-viewerの2d表示とmotion moduleでaccelというのを見ると,realsenseの姿勢を表示していることが確認できる.
姿勢の取得方法についてメモ.
前提条件
rosでrealsenseが使える状態になっている.
使用したrealsense
- Intel RealSense LiDAR Camera l515
やり方
- realsenseをrealsense2_cameraで起動する.
起動方法はroslaunch realsense2_camera demo_pointcloud.launch
(ただし,<arg name="enable_accel" value="false"/>
を<arg name="enable_accel" value="true"/>
に変更) - 起動したあとに,こんな感じのスクリプトを実行する(あくまでも一例)
#!/usr/bin/env python
import rospy
from sensor_msgs.msg import Imu as msg_Imu
import math
def callback(data):
accel = data.linear_acceleration
def listener():
# in ROS, nodes are unique named. If two nodes with the same
# node are launched, the previous one is kicked off. The
# anonymous=True flag means that rospy will choose a unique
# name for our 'listener' node so that multiple listeners can
# run simultaenously.
rospy.init_node('listener', anonymous=True)
rospy.Subscriber("/camera/accel/sample", msg_Imu, callback)
# spin() simply keeps python from exiting until this node is stopped
rospy.spin()
if __name__ == '__main__':
listener()
取得したimuの個別の値を抽出する方法はrealsense2_camera/scripts/rs2_listener.py
のcallback(self, data)
を見るとなんとなくわかる.