top of page

Creating ROS package for IMU sensor data broadcasting

sensor_msgs dependency is used to broadcast the sensor data in ROS. Where sensor_msgs/Imu.msg (http://docs.ros.org/api/sensor_msgs/html/msg/Imu.html) is used to broadcast the Accelerometer and Gyroscope data.


#!/usr/bin/env python

import rospy

from sensor_msgs.msg import Imu


import time

import board

import busio

from adafruit_lsm6ds import LSM6DSOX


i2c = busio.I2C(board.SCL, board.SDA)

sensor = LSM6DSOX(i2c)


def sensor_talker():

pub = rospy.Publisher('imu', Imu, queue_size=1)

rospy.init_node('imu', anonymous=True)

rate = rospy.Rate(10) # 10hz

while not rospy.is_shutdown():

imu_msg = Imu()

imu_msg.header.stamp = rospy.Time.now()

imu_msg.header.frame_id = "lsm6dsox"

imu_msg.linear_acceleration.x=sensor.acceleration[0]

imu_msg.linear_acceleration.y=sensor.acceleration[1]

imu_msg.linear_acceleration.z=sensor.acceleration[2]

imu_msg.angular_velocity.x=sensor.gyro[0]

imu_msg.angular_velocity.y=sensor.gyro[1]

imu_msg.angular_velocity.z=sensor.gyro[2]

pub.publish(imu_msg)

rate.sleep()

if __name__ == '__main__':

try:

sensor_talker()

except rospy.ROSInterruptException:

pass





Comentarios


Drop Me a Line, Let Me Know What You Think

Thanks for submitting!

© 2023 by Train of Thoughts. Proudly created with Wix.com

bottom of page