ros节点

概念

节点实际上只不过是ROS软件包中的一个可执行文件。ROS节点使用ROS客户端库与其他节点通信。节点可以发布或订阅话题,也可以提供或使用服务。

roscore

roscore是你在运行所有ROS程序前首先要运行的命令。

roscore
# 如果roscore不能初始化并提示缺少权限,可能是因为~/.ros目录属于root用户(只有root用户才能访问),可以用以下命令递归地更改该目录的所有权:
sudo chown -R <your_username> ~/.ros

rosnode

rosnode显示当前正在运行的ROS节点信息。rosnode list命令会列出这些活动的节点:

rosnode list

而rosnode info命令返回的是某个指定节点的信息。

rosnode info /rosout
# rosout这个节点用于收集和记录节点的调试输出,所以它总是在运行的。

rosrun

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 list

输出为

/rosout
/my_turtle

使用另外一个rosnode指令,ping,来测试它是否正常:

rosnode ping my_turtle
posted @ 2023-11-04 11:24  不想要名字  阅读(18)  评论(0编辑  收藏  举报