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

【ROS】实现ROS与MATLAB之间的相互通信

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

MATLAB与ROS实现通信时将运行matlab的计算机当作一个ROS节点,同通过同一个局域网,实现与另一台运行有节点管理器的计算机建立通讯连接,从而实现与ROS网络中的所有节点的通讯连接。Ubuntu中用ifconfig查看IP,Windows中用ipconfig查看IP地址.注意虚拟机的话要训责桥接的网络模式,才可以在局域网中有个不冲突的IP

下面是步骤:

  1. 在Ubuntu的终端中输入以下命令打开~/.bashrc文件

    sudo gedit ~/.bashrc
    
  2. 在打开的.bashrc文件的末尾增加下面的命令

    export ROS_IP=192.168.1.117 (该IP是Ubuntu系统的IP)
    
  3. 在Windows的Matlab的命令窗口输入以下命令

    setenv(\'ROS_MASTER_URI\',\'http://192.168.1.117:11311\')  (该IP还是上述的Ubuntu系统的IP,最后的数字11311是端口号,是固定的这个值,不用改)
    
  4. 在Ubuntu中运行roscore命令,然后在Matlab中运行rosinit命令,此时就因该可以和Master主节点建立通讯.

  5. 可以运行简单的例子来测验一下,在Ubuntu中运行小乌龟,如下.

    rosrun turtlesim turtlesim_node
    rosrun turtlesim turtle_teleop_key
    
  6. 然后在matlab中输入以下命令,等待ROS传回消息.

    rostopic echo /turtle1/pose
    
  7. 此时再在ROS平台上用键盘操控小乌龟的走向就可以将位置信息传回给matlab了,matlab会自动不断显示位置信息.

  8. 上面两个步骤是ROS操控传回消息到Matlab,下面通过在matlab上运行命令,实时操作ROS上的小乌龟.同样现在ROS上运行roscore,再打开小乌龟节点.

  9. 在matlab建立如下的脚本文件,并运行,就可以看到ROS平台上的小乌龟的运动了.

    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)
     
    chatterpub = rospublisher(\'/chatter\',rostype.std_msgs_String)
     
    pause(3)% Wait to ensure publisher is setup
     
    chattermsg = rosmessage(chatterpub);
     
    chattermsg.Data = \'hello world\'
     
    send(chatterpub,chattermsg)
     
    pause(5)
    

上述的步骤中实现了matlab到ROS的通信,和ROS到matlab的双向通信问题.

注意:在每次运行Matlab后都要在命令窗口之中运行下面两句命令

setenv(\'ROS_MASTER_URI\',\'http://192.168.1.117:11311\') 
rosinit

鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
使用Delphi对象(声明、实例化、构造、释放)发布时间:2022-07-18
下一篇:
Delphi高手突破第二章(3),封装,继承,多态发布时间: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