在ros下实现节点编程,实现一个节点发送消息,另外一个节点接收。实现方式有多种,能够直接在命令窗口建立工做空间包以及节点,用catkin_make进行编译,添加.bash路径,而后执行rosrun package node_name 。这种方式对于一个ROS初学者来讲容易出错,并且不少网上的教程中出现了不一样的问题,好比须要修改CMakeLists.txt和package.xml中的内容,至关繁琐。为了不没必要要的麻烦,初学者能够应用IDE进行节点编程,达到必定的水平后,再用上面的方式去实现。下面就介绍一下roboware 软件实现helloword的发送和接收。node
这个例子是在ROS能正常运行的状况下进行的,因此为了避免必要的麻烦,最好先跑跑小乌龟的例子。编程
1.下载安装roboware.bash
去官网下载地址:http://www.roboware.me/#/home code
选择Studio v1.2.64bit deb 下载 。若是是32位机选择v.2.0 32bit deb版本。xml
傻瓜式安装,一直下一步。安装好之后以下所示:blog
2.建立工做区教程
打开软件后,选择新建工做区,这里要选择一个文件夹,这里最后选择主文件夹。而后在名称:robotit
robot 即为新建的工做空间名称。建好以后后出现一个src文件夹,和一个CMakeLists.txt文件。io
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和发送、接收
能够实现接收了。