ros2启动文件中的exec和name有什么区别?

问题描述 投票:0回答:1
launch robotics ros2
1个回答
0
投票
  • exec:可执行文件的文件名
  • name:
    ros2 node list
    显示的名字

例如从启动文件中的教程比较

https://docs.ros.org/en/foxy/How-To-Guides/Launch-file-different-formats.html

有一行同时设置

name
exec

<node pkg="turtlesim" exec="turtlesim_node" name="sim" namespace="turtlesim2">

当我创建一个包来运行它时,会发生以下情况。

$ ros2 node list
/listener
/mimic
/my/chatter/ns/listener
/my/chatter/ns/talker
/talker
/turtlesim1/sim
/turtlesim2/sim

你可以看到节点名称是如何显示的,有一个额外的警告 - 因为命名空间也被添加,它显示为

<namespace>/<name>
.

现在,对于可执行文件,您可以在 ROS 安装目录中查看它。例如,在我运行

humble
的 Linux 计算机上,有可执行文件。我添加了
-l
以显示它是可执行的。

$ ls -l /opt/ros/humble/lib/turtlesim/turtlesim_node 
-rwxr-xr-x 1 root root 798384 Jan 17 18:00 /opt/ros/humble/lib/turtlesim/turtlesim_node

查找包中可执行文件的简单方法是通过带有

ros2 pkg executables <package_name>

的选项卡
$ ros2 pkg executables turtlesim
turtlesim draw_square
turtlesim mimic
turtlesim turtle_teleop_key
turtlesim turtlesim_node

你拥有两者的原因是因为你可能在 DDS 域中多次重复使用相同的可执行文件,所以

name
namespace
可以用来区分它们。

© www.soinside.com 2019 - 2024. All rights reserved.