我是靠谱客的博主 紧张冰棍,最近开发中收集的这篇文章主要介绍ROS基础教程学习笔记4-理解ROS的节点1.安装模拟器2.图概念概述3.总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.安装模拟器

sudo apt-get install ros-kinetic-ros-tutorial

2.图概念概述

  • Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。

  • Messgaes:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。

  • Topic:话题,节点可以发布消息到话题,也可以订阅话题以接收消息。

  • Master:节点管理器,ROS名称服务 (比如帮助节点找到彼此)。

  • rosout: ROS中相当于stdout/stderr。

  • roscore: 主机+ rosout + 参数服务器 (参数服务器会在后面介绍)。

(1)节点

一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。例如咱们有一个机器人,和一个遥控器,那么这个机器人和遥控器开始工作后,就是两个节点。遥控器起到了下达指 令的作用;机器人负责监听遥控器下达的指令,完成相应动作。从这里我们可以看出,节点是一个能执行特定工作任 务的工作单元,并且能够相互通信,从而实现一个机器人系统整体的功能。在这里我们把遥控器和机器人简单定义为两个节点,实际上在机器人中根据控制器、传感器、执行机构等不同组成模块,还可以将其进一步细分为更多的节点,这个是根据用户编写的程序来定义的。)

(2)roscore

该命令是运行所有的ros程序前首先要执行的命令。

roscore

输出信息为:

... logging to /home/zbr/.ros/log/e485b1da-98cb-11e9-8580-34de1ad3110c/roslaunch-zbr-17016.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://zbr:33194/
ros_comm version 1.12.14


SUMMARY
========

PARAMETERS
 * /rosdistro: kinetic
 * /rosversion: 1.12.14

NODES

auto-starting new master
process[master]: started with pid [17026]
ROS_MASTER_URI=http://zbr:11311/

setting /run_id to e485b1da-98cb-11e9-8580-34de1ad3110c
process[rosout-1]: started with pid [17039]
started core service [/rosout]

(3)rosnode

可以显示当前运行的ros节点信息,打开一个新的终端键入

rosnode list

此时显示:

/rosout

然后可以查看节点详细信息:

rosnode info /rosuot

显示信息为:

--------------------------------------------------------------------------------
Node [/rosout]
Publications: 
 * /rosout_agg [rosgraph_msgs/Log]

Subscriptions: 
 * /rosout [unknown type]

Services: 
 * /rosout/get_loggers
 * /rosout/set_logger_level


contacting node http://zbr:38065/ ...
Pid: 17039

(4)rosrun

该命令 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。

//用法:
rosrun [package_name] [node_name]

打开一个新的终端键入:

rosrun turtlesim turtlesim_node

就会显示已一个小乌龟的界面出来:

然后在一个新的终端键入:

rosnode list

就会显示两个节点出来

/rosout
/turtlesim

ros还可以通过命令行重新配置名称

关闭 turtlesim 窗口停止运行节点 (或者回到rosrun turtlesim终端并使用`ctrl

-C`)。现在让我们重新运行它,并更名

rosrun turtlesim turtlesim_node __name:=my_turtle

然后在之前的窗口使用rosnode lsit

就会看见:

/rosout
/my_turtle

我们可以看到新的/my_turtle 节点。使用另外一个 rosnode 指令, ping, 来

测试:

rosnode ping my_turtle
rosnode: node is [/my_turtle]
pinging /my_turtle with a timeout of 3.0s
xmlrpc reply from http://zbr:43826/	time=0.399828ms
xmlrpc reply from http://zbr:43826/	time=0.949860ms
xmlrpc reply from http://zbr:43826/	time=0.884056ms
xmlrpc reply from http://zbr:43826/	time=0.923157ms
xmlrpc reply from http://zbr:43826/	time=0.936985ms
xmlrpc reply from http://zbr:43826/	time=1.018047ms
^Cping average: 0.851989ms

3.总结

  • roscore = ros+core : master (provides name service for ROS) + rosout
  • rosnode = ros+node : ROS tool to get information about a node.
  • rosrun = ros+run : runs a node from a given package.

参考文献:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes

最后

以上就是紧张冰棍为你收集整理的ROS基础教程学习笔记4-理解ROS的节点1.安装模拟器2.图概念概述3.总结的全部内容,希望文章能够帮你解决ROS基础教程学习笔记4-理解ROS的节点1.安装模拟器2.图概念概述3.总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部