当前位置: 首页 > 编程日记 > 正文

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

可以实现接收了。

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

相关文章:

javah生成JNI头文件

Administratoribm /cygdrive/z/workspace/com.example.hellojni.hellojni/src <---- 从此文件夹执行 javah *************** project root dir ******************* *** source dir *** javah -jni -classpath . com.example.hellojni.HelloJni*** package name *** ** c…

【码书】一本经典且内容全面算法书籍,学算法必备

之前推荐了好几本算法书&#xff0c;有《啊哈&#xff01;算法》&#xff0c;有《算法图解》&#xff0c;有《漫画算法》&#xff0c;也有《我的第一本算法书》&#xff0c;很多粉丝不乐意了&#xff0c;觉得我推荐了这么多算法书籍&#xff0c;竟然没有经典算法书籍《算法导论…

Ubuntu16.04.1 安装Nginx

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的&#xff0c;第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证…

linux下jboss的安装配置

闲来无事突然间想到和tomcat相同的java容器jboss&#xff0c;就想测试一下jboss和tomcat性能的差异之处。但是之前只安装过tomcat&#xff0c;想来跟tomcat安装方式应该是相同的都需要jdk的支持。查找资料后进行了安装。一下是我安装jboss的一些步骤&#xff1a;Linux版本&…

RANSAC鲁棒参数估计

转自&#xff1a;http://blog.csdn.net/zhanglei8893/archive/2010/01/23/5249470.aspx RANSAC 是"RANdom SAmple Consensus"的缩写。该算法是用于从一组观测数据中估计数学模型参数的迭代方法&#xff0c;由Fischler and Bolles在1981 提出&#xff0c;它是一种非确…

AlphaGo之父DeepMind再出神作,PrediNet原理详解

作者 | beyondma转载自CSDN博客近期&#xff0c;DeepMind发表论文&#xff0c;称受Marta Garnelo和 Murray Shanahan的论文“Reconciling deep learning with symbolic artificial intelligence: representing objects and relations”启发&#xff0c;他们提出了一种新的架构…

php中file_get_contents如何读取大容量文件

php中file_get_contents如何读取大容量文件 一、总结 一句话总结&#xff1a;使用file_get_contents()进行分段读取&#xff0c;file_get_contents()函数可以分段读取 1、读取大文件是&#xff0c;file_get_contents()函数为什么会发生错误&#xff1f; 发生内存溢出而打开错误…

Vmware虚拟机的复制后无法使用的问题和解决

为什么80%的码农都做不了架构师&#xff1f;>>> 我在自己的机器上用Vmware安装的Ubuntu 12.04系统&#xff0c;并在里面部署了Openstack的开发环境&#xff0c;部署的过程有些复杂&#xff0c;不希望再次重复这个过程&#xff0c;于是就复制整个的虚拟机文件到其他…

Facebook频谱图模型生成比尔·盖茨声音,性能完胜WaveNet、MAESTRO

作者 | James Vincent 等编译 | 夕颜、Monanfei出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;计算机生成语音领域&#xff0c;正在酝酿着和一场革命。Facebook 工程师们设计创建的机器学习模型 MelNet 就是一个启示。下面这段听起来怪异的话像极了比尔盖茨是吧&…

数据表设计的原则

如何设计数据表&#xff1a; 三个范式 ER图

图像配准----Harris算子

Harris算子是C.Harris和M.J.Stephens在1988年提出的一种特征点提取算子。它用一阶偏导来描述亮度变化&#xff0c;这种算子受信号处理中自相关函数的启发&#xff0c;给出与自相关函数相联系的矩阵M。M矩阵的特征值是自相关函数的一阶曲率&#xff0c;如果两个曲率值都高&#…

关于ORA-01950: no privileges on tablespace 的解决

前天晚上&#xff0c;本想在家里搭一个公司项目的开发环境&#xff0c;以便在工作忙的时候做点“家庭作业”。下班之前&#xff0c;通过PLSQL Developer导数据库时&#xff0c;不知道什么原因&#xff0c;以.dmp格式导出时总不成功&#xff0c;于是选择以.sql格式导出&#xff…

继往开来!目标检测二十年技术综述

作者 | 周强来源 | 我爱计算机视觉&#xff08;id&#xff1a;aicvml&#xff09;计算机视觉中的目标检测&#xff0c;因其在真实世界的大量应用需求&#xff0c;比如自动驾驶、视频监控、机器人视觉等&#xff0c;而被研究学者广泛关注。几天前&#xff0c;arXiv新出一篇目标检…

python+selenium百度贴吧自动签到

#-*- coding:utf-8 -*- from selenium import webdriver import time import os import random from selenium.webdriver.common.action_chains import ActionChainsbrowser webdriver.Chrome()# 最大等待加载完的时间 max_loading 600 # 延时随机n秒执行 wait_time random.…

图像配准----NCC

在用Harris算子对图像进行角点提取后&#xff0c;两幅图像得到的角点个数不一定相等&#xff0c;这时就要先对它们进行处理&#xff0c;得出一一对应的角点对。 归一化互相关(Normalized Cross Correlation method, NCC)匹配算法是一种经典的统计匹配算法&#xff0c;通过计算模…

Ext Scheduler Web资源甘特图控件

原文来自 http://www.fanganwang.com/Product-detail-item-1430.html欢迎转载。 关键字&#xff1a; 资源甘特图又叫负荷图&#xff0c;其纵轴不再列出活动&#xff0c;而是列出整个部门或特定的资源。 Ext Scheduler资源甘特图是基于Extjs核心库的开发的&#xff0c;基于WEB浏…

50行代码教AI实现动作平衡 | 附完整代码

作者 | Mike Shi译者 | linstancy责编 | Jane出品 | AI科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;【导读】本文将为大家展示如何通过 Numpy 库和 50行 Python 代码&#xff0c;使用标准的 OpenAI Gym平台创建智能体 (agent)&#xff0c;就教会机器处理推车杆问…

图像配准----双向匹配

由Harris提取出的两幅图像的角点个数或对应关系并不是一一对应的。为了后续的配准&#xff0c;需要先对提取出的角点进行初始匹配&#xff0c;双向匹配方法是比较简单的一种方法&#xff0c;它实现容易。 设参考图像特征点集为X {x1, x2, …,xp}, p > 3&#xff1b;待配准图…

[专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑【转】

本文转载自&#xff1a; 因为要做毕设需要安装caffe2&#xff0c;配置cuda8.0&#xff0c;但是安装nvidia驱动真的是把我难倒了&#xff0c;看了很多篇博文都没有效果&#xff0c;现在我自己重新总结了下几种 安装方法&#xff08;亲测有效&#xff09;&#xff0c;希望能帮到大…

IE下javascript的console方法

IE下javascript的console方法 FireFox 和 Chrome 下调试JS都有console&#xff0c;IE6下没有。特用此办法来兼容IE6. <br /><pre lang‘‘html‘‘> <!doctype html> <html> <head> <meta charset‘‘utf-8‘‘/> </head> <body&…

图像配准----RANSAC

对角点进行初始匹配后&#xff0c;所选定的角点并不能保证全部是正确的点&#xff0c;也可能有误点&#xff0c;因此&#xff0c;还需要进一步对所选定的角点进行精确匹配。 RANSAC(RANdom Sample And Consensus)方法是由Fischler和Bolles提出的一种鲁棒性的参数估计方法。它的…

教你用OpenCV实现机器学习最简单的k-NN算法

前言&#xff1a;OpenCV 的构建是为了提供计算机视觉的通用基础接口&#xff0c;现在已经成为经典和最优秀的计算机视觉和机器学习的综合算法工具集。作为一个开源项目&#xff0c;研究者、商业用户和政府部门都可以轻松利用和修改现成的代码。k-NN算法可以认为是最简单的机器学…

div 相同属性提取

把样式名或id写在一起&#xff0c;用逗号隔开 <!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>信息详情</title> <style type"text/css"> #box-1, #box-2, #box…

ehcache 简介

hCache 是一个纯Java的进程内缓存框架&#xff0c;具有快速、精干等特点&#xff0c;是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置&#xff1a; ehcache部署起来很简单&#xff0c;主要分两步&#xff1a; 1.首先要给他写个核心配置XML文件 <ehca…

【leetcode】30. Substring with Concatenation of All Words

题目如下&#xff1a; 解题思路&#xff1a;本题题干中有一个非常关键的前提&#xff0c;就是words中的所有word的长度一样&#xff0c;并且都要被使用到。所以&#xff0c;我们可以把输入的s按word的长度进行等分&#xff0c;以s "barfoothefoobarman",words [&qu…

图像配准----SIFT

SIFT算子(Scale Invariant Feature Transform)是David Lowe提出的一种基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子。SIFT特征提取的是极其细微、大量的特征点&#xff0c;即时少数物体、物体的一小部分也可以产生大量特征向量。 SIFT算法如…

终于把微软BING搜索-SPTAG算法的原理搞清了

作者 | beyondma转载自 CSDN 博客近日&#xff0c;微软在GitHub上开源了其BING的搜索算法SPTAG&#xff0c;github地址&#xff1a;https://github.com/microsoft/SPTAG。这个算法笔者简单看了一下&#xff0c;的确是很有价值可以看大家介绍下&#xff0c;这种称为SPTAG &#…

把握每天的第一个钟头

当我十七岁的时候&#xff0c;我读到一段话&#xff0c;它是这么说的&#xff1a;“如果你把每天都当做最后一天来活着&#xff0c;那么有一天你将会是对的。”这句话让我留下了深刻的印象&#xff0c;从那时候开始&#xff0c;过去的 33 年来&#xff0c;我每天早上都对着镜子…

向量叉积计算法

如果向量A为{a, b, c}&#xff0c;向量B为{m, n, p}&#xff0c;如何计算向量A与向量B的叉积呢&#xff1f; 用行列式&#xff1a; |i j k| |a b c| |m n p| (bp-cn)i (mc-pa)j (an-bm)k 例如用matlab实现两个向量的叉积&#xff1a; a [1 2 3]; …

你是个成熟的C位检测器了,应该可以自动找C位了

作者 | 李翔转载自视说AI&#xff08;ID:techtalkai&#xff09;写在前面C位是近年网络上一个比较热门的词&#xff0c;最早来源于DOTA等游戏领域&#xff0c;是核心位置&#xff08;Carry位&#xff09;的简称&#xff0c;代表的是能够在游戏前中期打钱发育并在游戏后期带领队…