概述
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.总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复