《精通ROS机器人编程(原书第2版) 》 —2.1.3 编译生成节点
2.1.3 编译生成节点
我们必须编辑软件包中的CMakeLists.txt文件才能编译和构建源码。切换到mastering_ros_demo_pkg以查看现有的CMakeLists.txt文件。此文件中的下面这段代码将负责构建这两个节点:
我们可以创建一个新的CMakeLists.txt文件,然后添加前面的代码,这样也可以编译这两个节点。
catkin_make命令是用来编译生成软件包的。首先我们需要切换到工作区根文件夹中:
像下面这样来编译生成mastering_ros_demo_package软件包:
或者我们可以使用前面的命令来编译整个工作区,也可以使用-DCATKIN_WHITELIST_PACKAGES选项。使用此选项可以设置一个或多个要编译的软件包:
注意,必须还原此配置才能编译其他软件包或整个工作区。我们可以使用以下命令来完成这个操作:
如果编译完成,我们就可以执行这个节点了。首先需要启动roscore:
现在,在两个终端中分别运行这两个命令。运行发布者节点:
运行订阅者节点:
我们可以看到如图2-2所示的输出。
图2-2 运行话题的发布者和订阅者节点
图2-3显示了节点间是如何相互通信的。我们可以看到demo_topic_publisher节点向/numbers话题发布信息,然后demo_topic_subscriber节点订阅这个话题:
图2-3 发布者和订阅者节点间的通信图
我们可以使用rosnode和rostopic工具来调试和理解这两个节点的工作方式:
$ rosnode list:这将列出所有活动的节点。
$ rosnode info demo_topic_publisher:这将获取发布者节点的相关信息。
$ rostopic echo /numbers:这将显示发送到/numbers话题上的数据。
$ rostopic type /numbers:这将打印/numbers话题的消息类型。
- 点赞
- 收藏
- 关注作者
评论(0)