迁移脚本

ROS CLI

在 ROS 1 中,有单独的命令用于执行各种操作,例如“rosrun”、“rosparam”等。

在 ROS 2 中,有一个名为“ros2”的顶级命令,所有操作都是它的子命令,例如“ros2 run”、“ros2 param”等。

ROS CLI 参数

在 ROS 1 中,节点的参数直接在命令行上提供。

ROS 2 参数的范围应为“–ros-args”和尾随的“–”(如果后面没有参数,则可以省略尾随的双破折号)。

重新映射名称与 ROS 1 类似,采用“from:=to”的形式,不同之处在于它前面必须有一个“–remap”(或“-r”)标志。 例如:

ros2 run some_package some_ros_executable --ros-args -r foo:=bar

我们对参数使用类似的语法,使用“–param”(或“-p”)标志:

ros2 run some_package some_ros_executable --ros-args -p my_param:=value

请注意,这与在 ROS 1 中使用前导下划线不同。

要更改节点名称,请使用“__node”(ROS 1 等效于“__name”):

ros2 run some_package some_ros_executable --ros-args -r __node:=new_node_name

请注意“-r”标志的使用。 更改命名空间“__ns”需要相同的重新映射标志:

ros2 run some_package some_ros_executable --ros-args -r __ns:=/new/namespace

ROS 2 中没有与以下 ROS 1 密钥等效的密钥:

  • __log (but --log-config-file can be used to provide a logger configuration file)

  • __ip

  • __hostname

  • __master

有关更多信息,请参阅`设计文档<https://design.ros2.org/articles/ros_command_line_arguments.html>`_。

快速参考

Feature

ROS 1

ROS 2

remapping

foo:=bar

-r foo:=bar

parameters

_foo:=bar

-p foo:=bar

node name

__name:=foo

-r __node:=foo

namespace

__ns:=foo

-r __ns:=foo