《精通ROS机器人编程(原书第2版) 》 —2.1.3 编译生成节点

举报
华章计算机 发表于 2020/02/10 14:32:50 2020/02/10
【摘要】 本节书摘来自华章计算机《精通ROS机器人编程(原书第2版) 》 一书中第2章,第2.1.3节,作者是[印度]郎坦·约瑟夫(Lentin Joseph)[意大利]乔纳森·卡卡切(Jonathan Cacace),张新宇 张志杰 等译 。

2.1.3 编译生成节点

我们必须编辑软件包中的CMakeLists.txt文件才能编译和构建源码。切换到mastering_ros_demo_pkg以查看现有的CMakeLists.txt文件。此文件中的下面这段代码将负责构建这两个节点:

 image.png

 

我们可以创建一个新的CMakeLists.txt文件,然后添加前面的代码,这样也可以编译这两个节点。

catkin_make命令是用来编译生成软件包的。首先我们需要切换到工作区根文件夹中:

 image.png

像下面这样来编译生成mastering_ros_demo_package软件包:

 image.png

或者我们可以使用前面的命令来编译整个工作区,也可以使用-DCATKIN_WHITELIST_PACKAGES选项。使用此选项可以设置一个或多个要编译的软件包:

 image.png

注意,必须还原此配置才能编译其他软件包或整个工作区。我们可以使用以下命令来完成这个操作:

 image.png

如果编译完成,我们就可以执行这个节点了。首先需要启动roscore:

 image.png

现在,在两个终端中分别运行这两个命令。运行发布者节点:

 image.png

运行订阅者节点:

 image.png

我们可以看到如图2-2所示的输出。

 image.png

图2-2 运行话题的发布者和订阅者节点

图2-3显示了节点间是如何相互通信的。我们可以看到demo_topic_publisher节点向/numbers话题发布信息,然后demo_topic_subscriber节点订阅这个话题:

 image.png

图2-3 发布者和订阅者节点间的通信图

我们可以使用rosnode和rostopic工具来调试和理解这两个节点的工作方式:

$ rosnode list:这将列出所有活动的节点。

$ rosnode info demo_topic_publisher:这将获取发布者节点的相关信息。

$ rostopic echo /numbers:这将显示发送到/numbers话题上的数据。

$ rostopic type /numbers:这将打印/numbers话题的消息类型。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。