0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何初始化ROS并创立链接

麦辣鸡腿堡 来源:古月居 作者:敢敢のwings 2023-11-15 17:26 次阅读

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

图片

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

export ROS_IP=192.168.3.128

图片

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

图片

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

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

图片

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

    关注

    179

    文章

    2946

    浏览量

    229420
  • 机器人
    +关注

    关注

    210

    文章

    27817

    浏览量

    204446
  • 操作系统
    +关注

    关注

    37

    文章

    6540

    浏览量

    122703
  • ROS
    ROS
    +关注

    关注

    1

    文章

    276

    浏览量

    16879
收藏 人收藏

    评论

    相关推荐

    RT-Thread自动初始化详解

    我们知道,在写裸机程序时,当我们完成硬件初始化后,就需要在主函数中进行调用。当我们使用RT-Thread后,完全不需要这样做了,我们可以将硬件等自动初始化。 RT-Thread 自动初始化机制是指
    的头像 发表于 06-25 21:38 1w次阅读
    RT-Thread自动<b class='flag-5'>初始化</b>详解

    自动初始化机制原理详解

    自动初始化机制是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行。这篇文章就来探索一下其中的奥秘, 简单理解其原理!
    的头像 发表于 12-16 09:33 799次阅读
    自动<b class='flag-5'>初始化</b>机制原理详解

    动态链接初始化历程失败怎么解决

    我刚刚安装的labview在创建新的VI时显示动态链接初始化历程失败,请问谁知道怎么解决吗?指点一下
    发表于 02-19 20:35

    手机模块初始化向导

    手机模块初始化向导:为了刚好的对手机模块进行初始化,所以把最基本的向导写下来.本向导适用于本公司的西门子TC35I和华为GT9000模块。一、在初始化手机模块前,请先确定DT
    发表于 09-18 09:41 17次下载

    RDA1846S初始化设置

    RDA1846S初始化设置RDA1846S初始化设置RDA1846S初始化设置
    发表于 01-15 17:08 0次下载

    UCOS_III_配置与初始化

    UCOS_III_配置与初始化
    发表于 12-20 22:53 5次下载

    HX711初始化程序

    这是HX711的初始化程序
    发表于 02-08 01:51 89次下载

    ds1302时钟芯片初始化,自动决定DS1302是否需要初始化程序

    ds1302芯片时钟芯片大家都在问到底需要不需要初始化?这篇文章将会给大家一个程序,可以自动决定DS1302是否需要初始化
    发表于 10-19 19:19 8347次阅读

    8253初始化程序分享_8253应用案例

    本文首先介绍了8253概念及8253各通道的工作方式,其次详细介绍了8253初始化要求及编程,最后用一个例子介绍了8253的初始化程序。
    发表于 05-23 15:52 2.2w次阅读
    8253<b class='flag-5'>初始化</b>程序分享_8253应用案例

    在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决

    本文档的主要内容详细介绍的是在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决。
    发表于 08-20 17:31 0次下载
    在51平台下<b class='flag-5'>初始化</b>文件的引入导致全局变量无法<b class='flag-5'>初始化</b>的问题如何解决

    如何有效地对神经网络参数进行初始化

    确保均值为零,保持每层输入方差值不变,可以保证信号不会爆炸或消失。该方法既适用于前向传播(用于激活),也适用于向后传播(用于关于激活的成本梯度)。这里建议使用Xavier初始化(或其派生初始化方法),对于每个层l,有:
    的头像 发表于 05-15 08:59 4006次阅读
    如何有效地对神经网络参数进行<b class='flag-5'>初始化</b>

    神经网络如何正确初始化?

    初始化对训练深度神经网络的收敛性有重要影响。
    的头像 发表于 05-17 16:32 7996次阅读
    神经网络如何正确<b class='flag-5'>初始化</b>?

    C++之初始化列表学习的总结

    类中可以使用初始化列表对成员进行初始化
    的头像 发表于 12-24 17:39 733次阅读

    MPU6050初始化失败

    MPU6050初始化失败osDelay(1000); //上电uint8_t mpu_ok = MPU_init();uint8_t cnt = 0;while
    发表于 12-06 12:36 13次下载
    MPU6050<b class='flag-5'>初始化</b>失败

    RT-Thread自动初始化机制

      在分析之前首先查阅 RT-Thread 的官方文档 [RT-Thread 自动初始化机制](https://www.rt-thread.org/document/site
    的头像 发表于 06-17 08:52 2358次阅读
    RT-Thread自动<b class='flag-5'>初始化</b>机制