• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用Matlab与ROS端通信以及绘制Odom里程计信息

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

转载:https://blog.csdn.net/shenghuaijing3314/article/details/78662327

Matlab中集成了ROS的扩展接口,实现了与ROS的通信,极大的方便了我们的调试,下面我先简单介绍下如何实现通信,方法一般都能百度的到,我就不详细的介绍了,首先,Matlab的版本最好新一点,貌似老版还不支持ROS,我用的版本是R2016a。

  1. 保证自己装有Matlab和ROS的两个pc保持在同一网端,当然Matlab和ROS装在同一pc上是OK的,我用的是一台装有Win10系统(安装了Matlab)和一台装有Ubuntu16.04(装有ROS)的PC,首先查看两台电脑的ip,windows可以进入cmd查看:ipconfig,ubuntu:ifconfig。
  2. 打开Matlab,新建或者直接在命令行窗口:
 `setenv('ROS_MASTER_URI','http://192.168.1.60:11311')
  setenv('ROS_IP','192.168.1.242')
  rosinit`

其中MASTER_URI后的ip是你装有ROS的ip,ROS_IP是你装有Matlab的ip,运行后如果能看到下面图片内容,说明配对成功了。

3.测试通信,在命令行窗口敲入

 rostopic list

这时你会看到目前的topic

## Matlab绘制Odom里程计信息 ##
ok,下面我就说说使用Matlab绘制Odom信息,当我在调试编码器和惯导模块融合ekf时只能用rviz去实时观看效果,这很麻烦,当然ROS里也提供了plot来绘制,但我觉得还是Matlab更直观,更方便点吧,尤其是在写论文的时候。

这是一幅我绘制编码器Odom和加上惯导模块ekf融合后的plot图,红色的是单编码器的里程计,蓝色则为融合后的,可以看出,一开始是重合的,后面开始有些变化了,单编码器还是存在累计误差的

filepath = fullfile('C:\Users\dell\Desktop\rosbag\20171115.bag');
bag = rosbag(filepath)
bagselect_odom = select(bag, 'Topic', '/odom')
bagselect_odom_combined = select(bag,'Topic','/robot_pose_ekf/odom_combined')
msgs_odom = readMessages(bagselect_odom);
ts_odom = timeseries(bagselect_odom, 'Pose.Pose.Position.X')
ts2_odom = timeseries(bagselect_odom,'Pose.Pose.Position.Y')
ts_odom_combined = timeseries(bagselect_odom_combined, 'Pose.Pose.Position.X')
ts2_odom_combined = timeseries(bagselect_odom_combined,'Pose.Pose.Position.Y')
a = ts_odom.data
b = ts2_odom.data
c = ts_odom_combined.data
d = ts2_odom_combined.data
plot(a,b,'b');
hold on;
plot(c,d,'r');
axis equal;
%axis([0 3.5 0 2.0]);

这里我是用的是rosbag的bagfile来绘制的,ros的rosbag和play真的是一个很好的机制,对我们调试提供了很大的方便,rosbag的使用也很简单,百度能找到很多,我就不介绍了,将fullfile后的文件夹改为自己的就ok了,代码应该很容易理解,通过解析不同的topic并将其中的数据提取出来,如果你想绘制其他topic,只许将topic和topic里对应的标头换下就ok了。
下面我把我的程序打包,其中包括了odom和odom_combined以及imu中的yaw的绘制。
代码


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
用Delphi实现网络视频编程发布时间:2022-07-18
下一篇:
matlab三维画图总结发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap