第六节---ROS操作系统----理解ROS节点

来源:互联网 发布:算法入门经典训练指南 编辑:程序博客网 时间:2024/06/05 10:24

(一)图概念概述
1–Nodes——节点—-一个节点—即为一个—可执行文件,它可以通过ROS与其他节点进行通信
2–Messages—消息—消息是一种–ROS数据类型–用于订阅或发布到一个话题
3–Topic——话题—节点可以发布消息到话题,也可以订阅话题以接受消息
4–Master—–节点管理器—ROS名称服务—-比如帮助节点找到彼此
5–rosout—–ROS中相当于stdout/stderr
6–roscore—-主机+rosout+参数服务器


(二)各种ROS中的概念详解
1)节点
1–一个节点—-就是ROS程序包中的—–一个可执行文件.
2–ROS节点可以使用ROS客户库与其他节点通信
3–节点可以发布或接受一个消息
4–节点也可以提供或使用某种服务
2)客户端库
1–ROS客户端库–允许使用不同的编程语言—编写节点之间互相通信
2–rospy=python客户端库
roscpp=c++客户端看
3)roscore
1–roscore—是你在运行所有ROS程序前首先要运行的命令
2–运行roscore
4)使用rosnode
1–打开一个新终端,可以使用rosnode像运行roscore一样看看
注意:
当打开一个新的终端时,你的运行环境会复位,同时你的~/.bashrc文件会复原
5)rosnode list—-显示当前运行的ROS节点信息—rosnode list指令会列出活动的节点
示例:
rosnode list
你会看到:
/rosout
这表示当前只有一个节点在运行:rosout—因为这个节点用于收集和记录节点调试输出信息,所以它总是
运行的
6)rosnode info–命令返回的是关于一个特定节点的信息:
示例:
rosnode info/rosout

运行结果:

Node [/rosout]Publications:  * /rosout_agg [rosgraph_msgs/Log]Subscriptions:  * /rosout [unknown type]Services:  * /rosout/set_logger_level * /rosout/get_loggerscontacting node http://wei:53158/ ...Pid: 6561

现在,让我们看看更多的节点.为此,我们将使用rosrun弹出另一个节点
7)使用rosrun—-rosrun允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)
1–用法–rosrun [package_name] [node_name]
2–现在,我们可以运行turtlesim包中的turtlesim_node
3–然后,在一个新的终端运行:
rosrun turtlesim turtlesim_node
此时,你将会看见一个小海龟
4–在一个新的终端,运行:
rosnode list
你将会看见:
/rosout
/turtlesim
8)ROS一个强大的特性就是你可以通过命令行重新配置名称:
1– rosrun turtlesim turtlesim_node __name=my_turtle
2–现在,我们再次使用rosnode_list:
你将会看见:
/my_turtle
/rosout


(三)回顾
本节涉及的内容:
1–roscore=ros+core—provides name service for ROS
2–rosout(rosout/stderr)+parameter server
3–rosnode=ros+node–ROS tool to get infomation about a node
4–rosrun=ros+run—-runs a node form a given package
5–r如果想要关闭—请按下CTRL+C

0 0
原创粉丝点击