迁移脚本
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 |