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

可以实现接收了。

转载于:https://www.cnblogs.com/fuhang/p/9635150.html

ROS 用 roboware实现节点信息发送和接收相关推荐

  1. Android 短信模块分析(四) MMS之短信的发送与接收

     MMS之短信的发送与接收分析: 一.信息发送: com.android.mms.data.WorkingMessage.java 类 send()函数: public void send() { . ...

  2. Node ZooKeeper 服务发现获取服务节点信息并发送请求

    公司服务治理需通过 ZK 来做服务发现,Java都被集成,有封装好的包,直接注释器调用即可.Node还需自己手搓. 1. node-zookeeper-client 包连接 ZK 官方文档:https ...

  3. 服务器中显示存储设备,服务器节点信息集中显示方法、系统、设备及存储介质...

    1. 一种服务器节点信息集中显示方法,其特征在于,应用于CMC,包括: 获取M个BMC各自收集的参数信息数据,得到目标数据: 将所述目标数据发送至N个BMC,以使所述N个BMC中的任一BMC显示所述目 ...

  4. 【ROS入门-3】嘴对嘴讲解ROS的核心概念——节点与节点管理器

    文章目录 前言 ROS系列文章 ROS的通信机制 节点(Node) 节点管理器(Master) 简单运行 引用说明 参考 前言 我要给大家来介绍一下ROS当中一些核心的概念,帮助大家去在后面的ROS学 ...

  5. 获取BT节点信息bittorrent-discovery

    2019独角兽企业重金招聘Python工程师标准>>> 获取BT节点信息bittorrent-discovery BT/磁力都是常见的P2P下载方式.用户作为一个节点node从其他用 ...

  6. linux 节点信,DOM 节点信息

    DOM 节点信息 nodeName.nodeValue 和 nodeType 属性包含有关节点的信息. 尝试一下 - 实例 下面的实例使用 XML 文件 books.xml. 函数 loadXMLDo ...

  7. 查看tensorflow pb模型文件的节点信息

    查看tensorflow pb模型文件的节点信息: import tensorflow as tf with tf.Session() as sess:with open('./quantized_m ...

  8. JBoss EAP应用获取运行模式、相关路径及节点信息

    一.背景 某应用系统在JBoss EAP 7.0的standalone模式(单实例模式)下运行正常,但在切换到domain模式(域模式)后陆续发现一些问题.为解决这些问题产生了这样的需求:如何判断JB ...

  9. activiti根据当前节点获取下一个节点信息

    在流程中使用监听器判断当前节点是否需要经过,否则跳转到下一个节点,如下图 当提交申请之后,当前提交人为部门负责人,那么部门负责人节点就不需要走了,直接到下一个节点,但是下一个节点是什么并不知道,就可以 ...

最新文章

  1. yii2服务器无法加载文件,yii2查看服务器500错误的方法
  2. 无向完全图k6有几条边_漫画:什么是 “图”?
  3. matlab_exercise(4)----第一题
  4. dedecms织梦模板修改专题路径的方法
  5. MySQL服务器的构建与维护
  6. Java 8 - Optional实战
  7. 我的Android进阶之旅------Android Gusture 手势识别小案例
  8. 设备驱动模型之device-driver
  9. .net 面试题系列文章五(附答案)
  10. [学习笔记]Hadoop 配置调试错误收集
  11. jsp+easyui+DataGrid 例子
  12. C++11新特性之泛型编程与模板
  13. JS将数字转换为中文
  14. 历史上第一位从事游戏开发与设计的女程序员
  15. SpringCloud Alibaba - Nacos 作为配置中心 读取Properties配置信息
  16. MongoDB 安装与启动
  17. 数的计数【Noip2001】
  18. Android:Fragment官方文档
  19. 网页自动填表html,风越网页表单批量自动填写工具
  20. base URL是什么意思?干什么用的?

热门文章

  1. 激活函数之softmax介绍及C++实现
  2. OpenCV支持的图像格式
  3. Travis CI : 最小的分布式系统(二)
  4. linux哪个版本支持多线程,关于Linux操作系统的叙述错误的是()A、Linux是多用户、多任务、支持多线程的操作系统B、Linux的源...
  5. oracle dataguard 日志 很多no,oracle dataguard 日志传输原理
  6. imopen和bwmorph_MATLAB图像处理中的应用
  7. 台式电脑键盘按键错乱_Win7系统键盘数字错乱了应该如何解决?
  8. 【jQuery】jQuery知识点梳理(持续更新)
  9. 【eclipse】快速调整eclipse背景和格式的方法
  10. 初始化Mysql系统报错,begin failesd--conpilation aborted at scripts........