ROS2 之 通过命令行传递参数.

3000阅读 0评论2020-06-18 iibull
分类:其他平台

ros2 run my_package node_executable --ros-args ...
使用选项  --ros-args
重命名 - name remmapping
    -r :=  节点内的话题名或者服务名重命名
    -r __node:= 节点名重命名
    -r __ns:= 命名空间重命名, 必须用 / 开始.
例如: 原来talker节点的名字为 talker, 发布 chatter 的话题. 
现在要换成 demo 命名空间, 节点名设置为
my_takler, 产生my_topic话题, (话题列出为 /demo/my_topic)
ros2 run demo_nodes_cpp talker --ros-args 
    -r __ns:=/demo  命名空间
    -r __node:=my_talker  节点名称重命名 
    -r chatter:=my_topic  话题重命名.
如果在一个进程中执行了多个node, 那么可以通过节点名的前缀指定. 例如
ros2 run composition manual_composition --ros-args 
    -r talker:__node:=my_talker 
    -r listener:__node:=my_listener
混合的一个例子. 说明节点名字重命名后, 如果要限定则要用新名字做限定.
ros2 run composition manual_composition --ros-args 
    -r talker:__node:=my_talker -r my_talker:chatter:=my_topic 
    -r listener:__node:=my_listener -r my_listener:chatter:=my_topic

---------------------------------------------------------------------------
设定日志级别
--log-level 命令项. DEBUGINFOWARNERROR, FATAL
ros2 run demo_nodes_cpp listener --ros-args --log-level DEBUG
当然也可卸载代码里边.
    rcutils_logging_set_logger_level("logger_name", RCUTILS_LOG_SEVERITY_DEBUG);
PYTHON:
    logger.set_level(rclpy.logging.LoggingSeverity.DEBUG) 
    rclpy.logging.set_logger_level('logger_name', rclpy.logging.LoggingSeverity.DEBUG)
#########################################################################
设置参数
--ros-args -p param_name:=param_value
例如
ros2 run demo_nodes_cpp parameter_blackboard 
    --ros-args 
        -p some_int:=42 
        -p "a_string:=Hello world" 
        -p "some_lists.some_integers:=[1, 2, 3, 4]" 
        -p "some_lists.some_doubles:=[3.14, 2.718]"

点击(此处)折叠或打开

  1. 如果参数是通过 YAML 引入的, 例如 yaml 内容
  2. parameter_blackboard:
  3.     ros__parameters:
  4.         some_int: 42
  5.         a_string: "Hello world"
  6.         some_lists:
  7.             some_integers: [1, 2, 3, 4]
  8.             some_doubles : [3.14, 2.718]
  9. 命令行的引入
  10. ros2 run demo_nodes_cpp parameter_blackboard --ros-args --params-file demo_params.yaml
###############################################################
命令行命令

点击(此处)折叠或打开

  1. ros2 --help
  2. Examples of sub-commands that are available include:
  3. daemon: Introspect/configure the ROS 2 daemon
  4. launch: Run a launch file
  5. lifecycle: Introspect/manage nodes with managed lifecycles
  6. msg: Introspect msg types
  7. node: Introspect ROS nodes
  8. param: Introspect/configure parameters on a node
  9. pkg: Introspect ROS packages
  10. run: Run ROS nodes
  11. security: Configure security settings
  12. service: Introspect/call ROS services
  13. srv: Introspect srv types
  14. topic: Introspect/publish ROS topics


上一篇:ROS2 之 使用 python Launch
下一篇:ROS2 中级之 RQt