当前位置:   article > 正文

在ROS中发布IMU数据_ros发布imu数据

ros发布imu数据

本文主要是来发布sensor_msgs/Imu类型的消息,其中IMu的数据为虚拟的。

1.在自己的工作空间中创建ros程序包 (这个包依靠std_msgs、roscpp、rospy)
catkin_create_pkg imu_publish std_msgs rospy roscpp

进入创建的程序包可以看到一下文件或文件夹

   CMakeLists.txt     include     package.xml    src
2.进入src文件夹内创建imu_data.cpp文件,并将一下代码复制

  1. // Step 1: Include Library Headers:
  2. //发布imu的数据到IMU_data
  3. #include <ros/ros.h>
  4. #include <sensor_msgs/Imu.h>
  5. int main(int argc, char** argv)
  6. {
  7. // Step 2: Initialization:
  8. ros::init(argc, argv, "imu");
  9. ros::NodeHandle n;
  10. ros::Publisher IMU_pub = n.advertise<sensor_msgs::Imu>("IMU_data", 20);
  11. ros::Rate loop_rate(50);
  12. while(ros::ok())
  13. {
  14. sensor_msgs::Imu imu_data;
  15. imu_data.header.stamp = ros::Time::now();
  16. imu_data.header.frame_id = "base_link";
  17. //四元数位姿,所有数据设为固定值,可以自己写代码获取IMU的数据,,然后进行传递
  18. imu_data.orientation.x = 0;
  19. imu_data.orientation.y = -1;
  20. imu_data.orientation.z = -5;
  21. imu_data.orientation.w = 6;
  22. //线加速度
  23. imu_data.linear_acceleration.x = 0.01;
  24. imu_data.linear_acceleration.y = 0.02;
  25. imu_data.linear_acceleration.z = 0.03;
  26. //角速度
  27. imu_data.angular_velocity.x = 0.05;
  28. imu_data.angular_velocity.y = 0.06;
  29. imu_data.angular_velocity.z = 0.07;
  30. IMU_pub.publish(imu_data);
  31. ros::spinOnce();
  32. loop_rate.sleep();
  33. }
  34. return 0;
  35. }

在CMakeLists.txt文件中添加

  1. add_executable(imu_data src/imu_data.cpp)
  2. target_link_libraries(imu_data ${catkin_LIBRARIES})

3.进入工作空间的根目录下编译(我的工作空间为catkin_ws)

 

catkin_make -DCATKIN_WHITELIST_PACKAGES="imu_publish" 

在这里我们只编译刚才创建的包。

4运行 

roscore

rosrun imu_pubilsh  imu_data

5.通过rostopic list查看发布的话题 如下

/IMU_data
/rosout
/rosout_agg

6 通过rostopic echo /IMU_data 查看发布话题的具体消息:

header:
  seq: 5277
  stamp:
    secs: 1530631669
    nsecs: 639033327
  frame_id: "base_link"
orientation:
  x: 0.0
  y: -1.0
  z: -5.0
  w: 6.0
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
  x: 0.05
  y: 0.06
  z: 0.07
angular_velocity_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
linear_acceleration:
  x: 0.01
  y: 0.02
  z: 0.03
linear_acceleration_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

7.也可以编写launch文件来运行  在imu_publish文件下新建launch文件夹,新建imu.launch,复制一下代码:

  1. <launch>
  2. <node name="imu_data" pkg="imu_publish" type="imu_data" output="screen">
  3. </node>
  4. </launch>
运行roslaunch imu_publish imu.launch


主要参考:

https://www.cnblogs.com/21207-iHome/p/7832355.html



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/885382
推荐阅读
相关标签
  

闽ICP备14008679号