ROS的MATLAB远程访问

原创 2018年04月16日 19:02:53

1、准备

ROS是世面上使用最多的机器人操作系统,而MATLAB作为最强大的数据处理软件肯定也不能落后,在MATLAB的工具箱中,就是robotics这个东西,这个里面就包括的ROS操作系统的相关工具,从matlab2013版本后,这个工具箱都会自动安装。

首先,我们可以先看一看这个工具箱里有些什么好东西,再matlab中运行

help ros
之后会看到如下命令:
  ros (Robot Operating System)
    rosinit            - Initialize the ros system
    rosshutdown        - Shut down the ros system
 
    rosmessage         - Create a ros message
    rospublisher       - Create a ros publisher
    rossubscriber      - Create a ros subscriber
    rossvcclient       - Create a ros service client
    rossvcserver       - Create a ros service server
    rostype            - View available ros message types
 
    rosmsg             - Get information about messages and message types
    rosnode            - Get information about nodes in the ros network
    rosservice         - Get information about services in the ros network
    rostopic           - Get information about ros topics
 
    rosbag             - Open and parse a rosbag log file
    rosparam           - Get and set values on the parameter server
    rosrate            - Execute loop at fixed frequency using ros time
    rostf              - Receive, send, and apply ros transformations
    rostime            - Access ros time functionality
 
    ros functionality is part of Robotics System Toolbox.
    Type "help robotics" for more information.

这就是所有的可在matlab上使用的命令,如果没有,那么老铁非常不幸的告诉你你们安装工具箱,去matlab官网找吧,但建议重安,毕竟我们都没钱用正版。


对于这个工具包的文件的,都在\MATLAB\R2016a\toolbox\robotics这个文件夹下,当然不同人安装的前面的路径可能不同,里面也包含这非常丰富的例子程序,例如在robotexample\ros下的exampleHelperROSCreateSampleNetwork.m文件,就是一个简单的运行ros的例子,首先我们先要吧主节点跑起来,在ubuntu上是roscore,但在matlab里面,是rosinit。

>> rosinit
Initializing ROS master on http://ZYX-PC:11311/.
Initializing global node /matlab_global_node_33106 with NodeURI http://ZYX-PC:53069/

这样我们就启动完了主节点,之后运行自带例程exampleHelperROSCreateSampleNetwork

之后我们就卡一看启动的节点和和消息了

>> exampleHelperROSCreateSampleNetwork
>> rosnode list
/matlab_global_node_33106
/node_1
/node_2
/node_3
>> rostopic list
/pose  
/rosout
/scan  
>> rostopic echo /pose

  Linear     
    X :  0.3850088418
    Y :  0.2085110666
    Z :  -0.8725756156
  Angular    
    X :  0.7674659268
    Y :  0.7288981145
    Z :  0.9881213901
---

  Linear     
    X :  0.3677480297
    Y :  0.2331125395
    Z :  -0.8479404236
  Angular    
    X :  0.7348614232
    Y :  0.6906525947

有没有很熟悉的赶脚。

2、连接

以上都是准备,熟悉熟悉,最实用的还是通过远程连接到ROS

首先,既然是远程访问,那么我们需要知道ROS端的IP地址,通过左上角的连接信息可以直接看到


可以看到我的IP是192.168.2.73。

然后我们在cmd(命令提示符)值输入

ipconfig/all

通过这个找到matlab端的IP地址,我这里是192.168.2.10

总结一下,我的matlab端的IP地址是192.168.2.10,我的ROS端的IP地址是192.168.2.73,这个IP地址在下面要视你们自己的情况进行替换。

首先需要修改.bashrc文件!!!不修改最后matlab能看到节点,但读不到具体数据,所以一定要改!!!!

cd ~
gedit .bashrc

然后在最后面添加

export ROS_IP=192.168.2.73
export ROS_MASTER_URI=http://192.168.2.73:11311

就需要在ros上启动我们的主节点!!!(要不不好用)

roscore

我们在MATLAB中命令进行一下配置,

>> setenv('ROS_MASTER_URI','http://192.168.2.73:11311')
>> setenv('ROS_IP','192.168.2.10')
>> rosinit

之后我们的matlab就和我们的ROS系统连接到了一起,两边可以互相访问数据和发布话题节点。

3、测试

我们可以使用我们的小乌龟测试一下,

首先我们要在ROS系统开启小乌龟和方向键

在一个终端输入

rosrun turtlesim turtlesim_node

开启小乌龟节点。

再在一个终端输入

rosrun turtlesim turtle_teleop_key

开启键盘控制节点。

这样我们就可以通过键盘控制小乌龟的移动。

下面我们再matlab的命令行输入

rostopic list

我们可以看到目前开启的各个节点

然后在输入

rostopic echo /turtle1/cmd_vel

我们再ROS端通过上下左右移动乌龟,我们可以在matlab端看到发出的数据


我们可以按Ctrl+C中断matlab端的接收。

如果matlab端rostopic echo没有数据,但是可以看到rostopic list有节点显示,那么一定要按照以上教程操作!!!

ROS_MATLAB

ROBOT FORGE: TEACHING AND LEARNING 2014/03/21 ...
  • linuxarmsummary
  • linuxarmsummary
  • 2014年10月20日 13:31
  • 2782

ROS与Matlab协同进行运动控制

Matlab拥有强大的数据处理、可视化绘图能力以及众多成熟的算法函数,非常适合算法开发;在控制系统设计中,Simulink也是普遍使用的设计和仿真工具。而ROS系统,则是一种新的标准化机器人系统软件框...
  • mountzf
  • mountzf
  • 2016年06月19日 15:14
  • 2669

用Matlab通过ROS控制实际机器人

Matlab:强大的数据处理,可视化绘图,成熟的算法函数,Simulink控制系统设计。 ROS:标准化机器人系统软件框架。可以使用大量的示例代码和开源程序轻松地完成机器人编程和控制任务。 ...
  • hustfzt
  • hustfzt
  • 2016年07月29日 11:21
  • 3847

ROS和MATLAB通信的一个测试

测试环境: Ubuntu版本:14.04,ROS版本:indigo,MATLAB版本:R2015b; 要求: ROS主机和MATLAB从机要在同一个局域网下。 windows下的ip地址查看方法...
  • m0_37343696
  • m0_37343696
  • 2017年11月14日 09:59
  • 272

ros+matlab

matlab与ros使用matlab与ros,可以充分发挥matlab在控制上的优势,尤其是simulink,对机器人算法的开发更加快捷。1 建立连接 windows安装matlab2015a以上版...
  • wangtaonice
  • wangtaonice
  • 2017年05月02日 21:47
  • 597

相机标定 matlab opencv ROS三种方法标定步骤(3)

三 ,  ROS 环境下 如何进行相机标定     刚开始做到的时候遇到一些问题没有记录下来,现在回头写的时候都是没有错误的结果了,首先使用ROS标定相机,   要知道如何查看节点之间的流程图  ro...
  • u013019296
  • u013019296
  • 2017年04月11日 13:52
  • 599

ubuntu14.04+ROS(Indigo)+matlab2015b

Win7下的matlab和装在Win7下Vmware中的ROS通讯
  • wx545644217
  • wx545644217
  • 2017年03月08日 11:35
  • 587

Matlab协助调试ROS程序: matlab2015b + ros indigo

Matlab协助调试ROS程序: matlab2015b + ros indigo
  • zyh821351004
  • zyh821351004
  • 2016年04月11日 20:39
  • 7326

ros使用ssh配置远程

本人使用的是indigo版本和turtlebot机器人,下面的配置是把程序放在桌面电脑上面,通过在桌面电脑上面操作来控制机器人,这样做的目的就是方便编程和测试。其实也可以把程序放在机器人电脑上面,但是...
  • deyuzhi
  • deyuzhi
  • 2016年07月14日 22:23
  • 2876

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

Matlab中集成了ROS的扩展接口,实现了与ROS的通信,极大的方便了我们的调试,下面我先简单介绍下如何实现通信,方法一般都能百度的到,我就不详细的介绍了,首先,Matlab的版本最好新一点,貌似老...
  • shenghuaijing3314
  • shenghuaijing3314
  • 2017年11月29日 10:24
  • 157
收藏助手
不良信息举报
您举报文章:ROS的MATLAB远程访问
举报原因:
原因补充:

(最多只允许输入30个字)