• 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和发送、接收

    可以实现接收了。

  • 相关阅读:
    从零搭建Spring Boot脚手架(4):手写Mybatis通用Mapper
    从零搭建Spring Boot脚手架(3):集成mybatis
    从零搭建Spring Boot脚手架(2):增加通用的功能
    从零搭建Spring Boot脚手架(1):开篇以及技术选型
    Hibernate Validator校验参数全攻略
    Spring Data R2DBC响应式操作MySQL
    Spring Security 实战干货:从零手写一个验证码登录
    Spring Security 实战干货:图解用户是如何登录的
    基于.NetCore3.1系列 —— 日志记录之日志核心要素揭秘
    基于.NetCore3.1系列 —— 日志记录之日志配置揭秘
  • 原文地址:https://www.cnblogs.com/fuhang/p/9635150.html
Copyright © 2020-2023  润新知