迁移脚本
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``(但可以使用
--log-config-file``来提供日志记录器配置文件)__ip
__hostname
__master
了解更多信息,请参阅 设计文档。
快速参考
特性 |
ROS 1 |
ROS 2 |
---|---|---|
重新映射 |
foo := bar |
-r foo := bar |
参数 |
_foo := bar |
-p foo := bar |
节点名称 |
__name := foo |
-r __node:=foo |
namespace |
__ns:=foo |
-r __ns:=foo |