zoukankan      html  css  js  c++  java
  • ROS 用 roboware实现节点信息发送和接收

    在ros下实现节点编程,实现一个节点发送消息,另一个节点接收。实现方式有多种,可以直接在命令窗口创建工作空间包以及节点,用catkin_make进行编译,添加.bash路径,然后执行rosrun  package  node_name 。这种方式对于一个ROS初学者来说容易出错,而且很多网上的教程中出现了不同的问题,比如需要修改CMakeLists.txt和package.xml中的内容,相当繁琐。为了避免不必要的麻烦,初学者可以应用IDE进行节点编程,达到一定的水平后,再用上面的方式去实现。下面就介绍一下roboware 软件实现helloword的发送和接收。

    这个例子是在ROS能正常运行的情况下进行的,所以为了不必要的麻烦,最好先跑跑小乌龟的例子。

    1.下载安装roboware.

    去官网下载地址:http://www.roboware.me/#/home 

    选择Studio v1.2.64bit deb  下载 。如果是32位机选择v.2.0 32bit deb版本。

    傻瓜式安装,一直下一步。安装好以后如下所示:

    2.创建工作区

    打开软件后,选择新建工作区,这里要选择一个文件夹,这里最后选择主文件夹。然后在名称:robot

    robot 即为新建的工作空间名称。建好之后后出现一个src文件夹,和一个CMakeLists.txt文件。

    3.新建ROS包

    右键src文件夹选择“新建ROS包”在名称栏:test

    建好之后会出现一个test文件夹,下有一个SRC文件夹。

    4.新建ROS节点

    右键test文件夹,选择新建C++ROS节点。在名称:test

    建好之后文件内有两个.cpp文件,一个是test_pub.cpp ,用于发送helloworld 信息,称为发送者。 另一个是test_sub.cpp用于接收信息,称为订阅者。

    5.点击左上角的锤子编译文件,ROS节点界面会出现test节点。看到100%说明编译成功。

    以上就完成了整个工程的编译,这部分内容一般不会出现什么问题,接下来就要执行了,问题就来了。

    6.打开ROS master

    roscore

    7.rosrun执行节点

    rosrun test test_pub

    分析其原因可能是因为在安装ROS时已经创建了工作空间,新建的工作空间和之前的不同,所以需要将新建的工作空间的路径添加到bashrc文件中。

    于是执行下面的步骤:新开一个终端输入下面的命令打开文件bashrc

    gedit .bashrc

    在新建工作空间的devel 文件下找到setup.bash文件,查看其路径将其路径添加到bashrc文件的末尾,具体如下:

    然后关闭所有终端,重新打开终端执行

    roscore

    再打开一个终端:

    rosrun test test_pub

    出现:

    这里实现了发送

    8.执行接收节点

    rosrun test test_sub

    出现same name的问题。

    这是我们在创建节点时没有修改cpp文件中初始化文件名导致的。

    将名称改为test_pub和test_sub

    保存,重新编译。然后将所以终端全部关闭,重新执行打开master和发送、接收

    可以实现接收了。

  • 相关阅读:
    Beta 冲刺 (2/7)
    福大软工 · 第十次作业
    Beta 冲刺(1/7)
    BETA 版冲刺前准备
    福大软工 · 第十一次作业
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    2017-2018-1 20155321 《信息安全系统设计基础》第十四周学习总结
    2017-2018-1 20155321 《信息安全系统设计基础》实验五——实时系统
  • 原文地址:https://www.cnblogs.com/fuhang/p/9635150.html
Copyright © 2011-2022 走看看