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
ROS 用 roboware实现节点信息发送和接收相关推荐
- Android 短信模块分析(四) MMS之短信的发送与接收
MMS之短信的发送与接收分析: 一.信息发送: com.android.mms.data.WorkingMessage.java 类 send()函数: public void send() { . ...
- Node ZooKeeper 服务发现获取服务节点信息并发送请求
公司服务治理需通过 ZK 来做服务发现,Java都被集成,有封装好的包,直接注释器调用即可.Node还需自己手搓. 1. node-zookeeper-client 包连接 ZK 官方文档:https ...
- 服务器中显示存储设备,服务器节点信息集中显示方法、系统、设备及存储介质...
1. 一种服务器节点信息集中显示方法,其特征在于,应用于CMC,包括: 获取M个BMC各自收集的参数信息数据,得到目标数据: 将所述目标数据发送至N个BMC,以使所述N个BMC中的任一BMC显示所述目 ...
- 【ROS入门-3】嘴对嘴讲解ROS的核心概念——节点与节点管理器
文章目录 前言 ROS系列文章 ROS的通信机制 节点(Node) 节点管理器(Master) 简单运行 引用说明 参考 前言 我要给大家来介绍一下ROS当中一些核心的概念,帮助大家去在后面的ROS学 ...
- 获取BT节点信息bittorrent-discovery
2019独角兽企业重金招聘Python工程师标准>>> 获取BT节点信息bittorrent-discovery BT/磁力都是常见的P2P下载方式.用户作为一个节点node从其他用 ...
- linux 节点信,DOM 节点信息
DOM 节点信息 nodeName.nodeValue 和 nodeType 属性包含有关节点的信息. 尝试一下 - 实例 下面的实例使用 XML 文件 books.xml. 函数 loadXMLDo ...
- 查看tensorflow pb模型文件的节点信息
查看tensorflow pb模型文件的节点信息: import tensorflow as tf with tf.Session() as sess:with open('./quantized_m ...
- JBoss EAP应用获取运行模式、相关路径及节点信息
一.背景 某应用系统在JBoss EAP 7.0的standalone模式(单实例模式)下运行正常,但在切换到domain模式(域模式)后陆续发现一些问题.为解决这些问题产生了这样的需求:如何判断JB ...
- activiti根据当前节点获取下一个节点信息
在流程中使用监听器判断当前节点是否需要经过,否则跳转到下一个节点,如下图 当提交申请之后,当前提交人为部门负责人,那么部门负责人节点就不需要走了,直接到下一个节点,但是下一个节点是什么并不知道,就可以 ...
最新文章
- yii2服务器无法加载文件,yii2查看服务器500错误的方法
- 无向完全图k6有几条边_漫画:什么是 “图”?
- matlab_exercise(4)----第一题
- dedecms织梦模板修改专题路径的方法
- MySQL服务器的构建与维护
- Java 8 - Optional实战
- 我的Android进阶之旅------Android Gusture 手势识别小案例
- 设备驱动模型之device-driver
- .net 面试题系列文章五(附答案)
- [学习笔记]Hadoop 配置调试错误收集
- jsp+easyui+DataGrid 例子
- C++11新特性之泛型编程与模板
- JS将数字转换为中文
- 历史上第一位从事游戏开发与设计的女程序员
- SpringCloud Alibaba - Nacos 作为配置中心 读取Properties配置信息
- MongoDB 安装与启动
- 数的计数【Noip2001】
- Android:Fragment官方文档
- 网页自动填表html,风越网页表单批量自动填写工具
- base URL是什么意思?干什么用的?
热门文章
- 激活函数之softmax介绍及C++实现
- OpenCV支持的图像格式
- Travis CI : 最小的分布式系统(二)
- linux哪个版本支持多线程,关于Linux操作系统的叙述错误的是()A、Linux是多用户、多任务、支持多线程的操作系统B、Linux的源...
- oracle dataguard 日志 很多no,oracle dataguard 日志传输原理
- imopen和bwmorph_MATLAB图像处理中的应用
- 台式电脑键盘按键错乱_Win7系统键盘数字错乱了应该如何解决?
- 【jQuery】jQuery知识点梳理(持续更新)
- 【eclipse】快速调整eclipse背景和格式的方法
- 初始化Mysql系统报错,begin failesd--conpilation aborted at scripts........