如何初始化ROS并创立链接

描述

Simulink对机器人操作系统(ROS)的支持使我们能够创建与ROS网络一起工作的Simulink模型。ROS是一个通信层,允许机器人系统的不同组件以消息的形式交换信息。

组件通过将消息发布到特定的主题(如/odometry)来发送消息。其他组件通过订阅该主题来接收消息。本文内容基于慕羽★大佬文章进行了增删。

同时由于Simulink的使用在ROS1和ROS2中没有太多的改动,所以我们就仅对ROS1完成了介绍。

对ROS的Simulink支持包括一个Simulink块库,用于为指定的主题发送和接收消息。当您模拟模型时,Simulink连接到ROS网络,该网络可以与Simulink在同一台机器上运行,也可以在远程系统上运行。一旦建立了这个连接,Simulink就会与ROS网络交换消息,直到模拟结束。

如果安装了Simulink Coder,还可以从Simulink模型为独立ROS组件或节点生成c++代码。

同时ROS1的Simulink和ROS2的Simulink支持不太一样。ROS工具箱不支持Simulink中的以下ROS功能:ROSService服务端、ROS的行为以及TF树。

如果应用程序需要这些特性,就需要使用MATLAB的ROS功能。您可以使用MATLAB编写ROS节点,该节点可以将Service服务端、行为以及TF树作为ROS消息发布到主题。

然后,Simulink可以订阅该主题来处理这些消息。在MATLAB中使用以下函数来处理这些特征:

ROS服务服务器:rosservice、rosvcserver

ROS动作:rosaction, rosactionclient

转换树:rostf, transform, getTransform

  1. 初始化ROS并创立链接

1.在终端输入以下命令查看本机地址

ifconfig

ROS

2.将本机IP写入到.bashrc文件。打开home文件夹,按Ctrl+h显示隐藏的文件,选择.bashrc并打开打开后在最后加入以下命令(后面的IP改为你的电脑的IP),然后保存退出。

export ROS_IP=192.168.3.128

ROS

3.启动roscore,并获取ROS输出的IP。在终端输入roscore启动,可以发现此时roscore会输出一个IP如下图所示:

ROS

4.打开MATLAB,建立与ROS的连接。在MATLAB的命令行窗口输入以下语句,后半部分就是我们上一步得到的ROS输出的IP。

setenv(‘ROS_MASTER_URI’,‘http://jzx-virtual-machine:11311’) rosinit

ROS

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分