zoukankan      html  css  js  c++  java
  • ros之launch文件

    ros之launch文件

    <launch>
      <arg name="model" default="model_name" doc="this is a model name"/>
      <arg name="param_path" default="$(find package_name)/data/" doc="this is a param path" />
      <group ns="group_name">
      <node pkg="package_name1" name="node_name1" type="node_type1" output="screen" >
        <param name="model" value="$(arg model)"/>
        <param name="param_path" value="$(arg param_path)/xx.xml" />
        <remap from="old_topic" to="new_topic"/>
      </node> 
      </group>
    
      <node pkg="package_name2" name="node_name2" type="node_type2" output="screen" >
        <param name="string" type="str" value="ABC" />
        <param name="int" type="int" value="6" />
        <rosparam param="min_in">[1, 1, 1]</rosparam>
        <rosparam param="paras">
          "a": 1
          "b": 2
        </rosparam>
      </node>
    
      <node pkg="rviz" name="rviz" type="rviz"  args="-d $(find package_name)/rviz/package_name.rviz">
      </node>
    </launch>
    
    • 对node设置组名
    <group ns="group_name">
    </group>
    
    • 对topic重映射
    <remap from="old_topic" to="new_topic"/>
    
    • 设置参数
    <param name="string_name" type="str" value="ABC" />
    <param name="int_name" type="int" value="6" />
    <param name="param_path" value="$(arg param_path)/xx.xml" />
    

    type="str|int|double|bool|yaml"(optional)
    注意:不支持float类型
    注意:是str, 不是string

    ros::NodeHandle priv_nh("~");
    std::string string_name;
    priv_nh.param<std::string>("string_name", string_name, "string_defalut");
    priv_nh.param<int>("int_name", int, "0");
    
    • 使用rosparam
    <rosparam param="range">[1, 1, 1]</rosparam>
    
       <rosparam param="paras">
          "a": 1
          "b": 2
        </rosparam>
    

    使用rosparam向node传输参数

    std::vector<double> v_range(3, 0);
    priv_nh.getParam("range", v_range);
    
    std::map<std::string, double> m_paras;
    priv_nh.getParam("paras", m_paras);
    
    • 在launch文件中启动其他launch文件
    <launch>
      <include file="$(find packagexx)/launch/111.launch" />
    </launch>
    
    • 在launch文件中录制rosbag包
    <launch>
      <node name="record" pkg="rosbag" type="record" output="screen" args="-o  $(find record_bag)/../../bag /topic_1 /topic_2 /topic_3"/>
    </launch>
    

    参考

    How to create a launch file? - ROS Answers: Open Source Q&A Forum
    roslaunch/XML - ROS Wiki

  • 相关阅读:
    Wx-小程序-使用canvas截图保存
    Wx-小程序-图片预览、保存
    CSS-文本溢出省略号表示
    Wx-小程序-长按复制文本
    Vue-组件通信
    JS-禁用浏览器前进后退
    JS-内置对象和方法
    JS-冒泡排序
    JS-常用方法合集
    Wx-小程序-组件式开发之Vant
  • 原文地址:https://www.cnblogs.com/ChrisCoder/p/9949643.html
Copyright © 2011-2022 走看看