美文网首页
ROS和Matlab的简单联调

ROS和Matlab的简单联调

作者: 王啟凡 | 来源:发表于2017-11-02 10:49 被阅读0次

(1)系统配置

ROS系统(Ubuntu),主机host,ip: 192.168.1.1 (ifconfig)。

matlab2015(Windows),从机,ip: 192.168.1.101 (ipconfig)。

(2) WINDOWS与Ubuntu是否通讯

为保证Matlab的Robotics System Toolbox与Ubuntu下ROS通信并工作,首先要创建局域网,将两主机置于同一子网内,用PING检测网络可达性。注意虚拟机要用HOST虚拟网卡。

同时要检查好防火墙,确保不对Matlab拦截。

(3) 设置ROS环境变量

Master以及两主机间各node之间的正确通信必须设置相应的环境变量,以保证node能找到master进行注册等操作,以及node使用正确的地址发布TOPIC和宣告SERVICE。所以需要在没有运行master的主机设置ROS_MASTER_URI变量,并在两主机上设置ROS_IP环境变量。ROS_IP而非ROS_HOSTNAME,是因为WINDOWS常常不能将计算机名解析成IP地址以致连接失败。两台机器都是Linux主机用ROS_HOSTNAME是木有问题的。

ROS_MASTER_URI:若roscore在其他机器上运行,则需要将ROS_MASTER_URI设置为运行roscore主机的ip,node就能以此与master建立连接进行通信及数据交互。

ROS_IP:变量对所运行的主机上的node起作用,node的TOPIC与SERVICE都发布到此地址上。

操作步骤:

在主机上,在~/.bashrc文件中添加:

export ROS_IP=192.168.1.101
保存退出,重开终端,运行master:

roscore
运行一个简单的turtle例程。

rosrun turtlesim turtlesim_node
在从机上,打开mablab,进行环境变量设置。在命令窗口输入:

rosrun turtlesim turtle_teleop_key %键盘控制

1
setenv('ROS_MASTER_URI','192.168.1.101')
2
setenv('ROS_IP','192.168.1.100')
初始化全局node:

1
rosinit()
(4)在matlab下操作ROS

文件:testROS.m

在matlab查阅下topic列表

rostopic list
会出现以下显示

/rosout
/rosout_agg
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
在matlab下显示topic内容
rostopic echo /turtle1/pose
若果出现以下内容,恭喜你!数据已经读到matlab里了。
X : 5.544444561
Y : 5.544444561
Theta : 0
LinearVelocity : 0
AngularVelocity : 0


注意,以上显示会刷屏,按ctrl+c停止显示。

查看topic数据类型等信息:

rostopic info /turtle1/cmd_vel
显示:
Type: geometry_msgs/Twist
Publishers:
Subscribers:

  • /turtlesim (http://192.168.1.101:37723/)
    接下来我们尝试下在matlab里发送消息给小海龟。
    首先设置消息类型为geometry_msgs/Twist
    cmdpub = rospublisher('/turtle1/cmd_vel',rostype.geometry_msgs_Twist)
    pause(3) % Wait to ensure publisher is setup
    cmdmsg = rosmessage(cmdpub);
    cmdmsg.Linear.X = 10;
    cmdmsg.Angular.Z = 15;
    send(cmdpub,cmdmsg)

之后就可以看见小海龟的

相关文章

  • ROS和Matlab的简单联调

    (1)系统配置 ROS系统(Ubuntu),主机host,ip: 192.168.1.1 (ifconfig)。 ...

  • ros::spin() 和 ros::spinOnce() 区别

    以下内容来自 ros::spin() 和 ros::spinOnce() 区别及详解 这俩兄弟学名叫ROS消息回调...

  • 2019-02-18

    6CCS3ROS作业代做、代做Matlab程序设计作业、Matlab语言作业代写、代写Robotic System...

  • Simulink生成ROS代码详细攻略

    前期准备 系统:Ubuntu 16.04 LTS 软件版本:ROS Kinetic、MATLAB 2018a li...

  • 开发联调神器dev-proxy

    开发联调神器 开发联调神器是一个http代理服务器,也可做为简单网关使用,设置简单,一个路由表设置可让流量打到内网...

  • 手机联调简单记录

    Android 只需要四个步骤: 1、先保证 是否安装了chrome浏览器 2、其次 ,保证 chrome 是否 ...

  • 【爬虫】(七)Python数据存储之MySQL(下)

    date: 2017-02-28 18:44:10 上一篇关于Python和MySQL的简单联调做了学习。这次主要...

  • 2019-09-25

    联调> 今天真的是想的太简单了,所以导致后面的联调如此艰难。 查了那么多的日志才发现,映射的字段没有在字典里做配置...

  • Flutter实践--flutter与iOS联调

    说明 由于使用VSCode和iOS进行联调步骤过于繁琐,所以这里联调所用到的开发工具为Android Studio...

  • Cartographer调参

    Cartographer算法调参 技术标签: Cartographer 根据Cartographer_ros文档翻...

网友评论

      本文标题:ROS和Matlab的简单联调

      本文链接:https://www.haomeiwen.com/subject/rilopxtx.html