在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

  1. roscore

7.rosrun执行节点

  1. rosrun test test_pub

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

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

  1. gedit .bashrc

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

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

  1. roscore

再打开一个终端:

  1. rosrun test test_pub

出现:

这里实现了发送

8.执行接收节点

  1. rosrun test test_sub

出现same name的问题。

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

将名称改为test_pub和test_sub

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

可以实现接收了。

ROS 用 roboware实现节点信息发送和接收的更多相关文章

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

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

  2. IIS将错误信息发送到浏览器

    本文版权归博客园和dige1993所有,访问作者博客:http://www.cnblogs.com/dige1993 最近又开始玩ASP了,调试的时候出现错误不清楚详细错误信息特别不方便,记得以前可以 ...

  3. 微博关注/QQ信息发送

    <!doctype html> <html lang="en" xmlns:wb=“http://open.weibo.com/wb”> <head& ...

  4. struts2是如何加载相关的package元素节点信息的

    这不是一篇纯技术文章,而是一篇分享我个人在前后端分离路上收获的点点滴滴的文章,以此来为准备尝试前后端分离或者想了解前后端分离的童鞋做一个大体的讲解. 上一家公司是家小公司,做了一年的全栈开发,对前端的 ...

  5. PHP自学4——通过mail函数将feedback界面用户填写表单信息发送至指定邮箱

    这一讲的内容依旧简单(谁叫PO主水平菜,依旧是个弱鸡ORZ),通过PHP的内置mail函数将一个反馈界面的信息发送到指定邮箱.在Windows平台不能直接需要使用该函数,需要下载一个sendmail并 ...

  6. ROS_Kinetic_26 使用rosserial_windows实现windows与ROS master发送与接收消息

    使用rosserial_windows实现windows与ROS master发送与接收消息(适用版本hydro,indigo,jade,kinetic) 官方wiki地址汇总请参考:http://b ...

  7. wx.createSelectorQuery() 获取节点信息 获取不到解决方法

    场景:一个气泡的宽度由加载来的数据填充所决定,不定宽,     wx.createSelectorQuery().selectAll('.talkbubble').boundingClientRect ...

  8. Python递归_打印节点信息

    Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...

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

    获取BT节点信息bittorrent-discovery   BT/磁力都是常见的P2P下载方式.用户作为一个节点node从其他用户node或者peer获取文件数据,以完成下载.bittorren-d ...

随机推荐

  1. 【html、CSS、javascript-1】html基础

    HTML   翻译成代码如下: web: import socket def handle_request(client): buf = client.recv(1024) client.sendal ...

  2. [转]web计时机制——performance对象

    页面性能一直都是Web开发人员比较关注的领域.但在实际应用中,度量页面性能的指标,是javascript的Date对象.Web Timing API改变了这个局面,让开发人员通过javascript就 ...

  3. win10 基础上装一个 ubuntu 双系统

    1.准备一个空闲的分区: 1)确定每个磁盘都已经是 EFI 分区格式,如果不是,可以使用分区工具,将分区都转成EFI  (例如 DiskGenius 工具挺好) 2)选择一个剩余空间较大的压缩空间,压 ...

  4. http方式nginx 访问不带www的域名301重定向跳转到www的域名帮助seo集中权重

    比如我需要吧gucanhui.com重定向301跳转到www.gucanhui.com 需要在nginx的con发文件中加入一段 server { listen ; server_name gucan ...

  5. wamp httpd-vhosts.conf

    配置Apache的httpd.conf文件 Include conf/extra/httpd-vhosts.conf 修改apache的vhost文件 <VirtualHost *:> D ...

  6. 定位真机运行能用但是打包成apk就不能用的解决方法

    打包apk的SHA1,与key的SHA1(这是多人开发的通病不同电脑共同开发一个app的常见错误之一)不一致.解决方法: 今天虽然离职了,但是今天遇到的是,当我在用高德地图开发的时候,在Android ...

  7. RegExp实例方法和字符串的模式匹配方法的总结

    RegExp实例方法 ECMAScript通过RegExp类型来支持正则表达式,创建正则表达式有两种方式: //使用字面量形式定义正则表达式 var pattern1 = /[bc]at/i //使用 ...

  8. POJ 2311 博弈

    #include<stdio.h> #include<string.h> #include<set> using namespace std; ][]; int s ...

  9. nginx反项代理的简单配置

    在ubuntu 16.04下安装nginx, apt-get install nginx就可以了. 然后安装了node, npm, 写了个简单的main.js,启动了一个http,并监听 8888 然 ...

  10. Codeforces Round #263 (Div. 2) A. Appleman and Easy Task【地图型搜索/判断一个点四周‘o’的个数的奇偶】

    A. Appleman and Easy Task time limit per test 1 second memory limit per test 256 megabytes input sta ...