【问题标题】:Unused args [...] for include of [...]- Error launching ROS file未使用的参数 [...] 用于包含 [...]- 启动 ROS 文件时出错
【发布时间】:2022-12-23 06:08:58
【问题描述】:

我正在尝试将参数传递给启动文件,但我一直收到错误消息。主启动文件如下所示:

<?xml version="1.0"?>
<launch>

  <arg name="logging" default="screen" />
  <arg name="ship_velocity" default="0.1" /> <!-- velocity between 0 and 5 m/s -->
  <arg name="ship_waypoints" default="[[2,6],[2,-4],[-2,-2],[4,-2],[-5,5],[4,4],[-6,-6]]" />
  <!-- <arg name="ship_waypoints" default="[[[8, 0], [6, 0], [4, 0] ,[2, 0] ,[0, 0], [2, 0], [4, 0], [6, 0], [8, 0]]]" /> -->
  <!-- Global as it is used by both ship_following_controller_node and ship_node -->
  <arg name="followed_epsilon" default="2.0"/>

  <include file="$(find flightgoggles)/launch/core.launch">
  </include>

  <include file="$(find visualizer)/launch/view.launch">
  </include>

  <include file="$(find flightcontroller)/launch/angle.launch">
  </include>

  <include file="$(find sensor_simulation)/launch/sensors.launch">
    <arg name="logging" default="$(arg logging)" />
    <arg name="ship_waypoints" default="$(arg ship_waypoints)" />
    <arg name="ship_velocity" default="$(arg ship_velocity)" />
    <arg name="followed_epsilon" default="$(arg followed_epsilon)" />
  </include>

  <node pkg="flightcontroller" type="attitude_thrust_controller.py" name="attitude_thrust_controller_node" output="screen">
  </node>

  <node pkg="simple_control" type="ship_following_controller.py" name="ship_following_controller_node" output="screen">
  <arg name="rate"/>
  <arg name="iz"/>
  <arg name="dz"/>
  <arg name="pz"/>
  <arg name="ixy"/>
  <arg name="dxy"/>
  <arg name="pxy"/>
  
  <param name="rate" type="int" value="$(arg rate)" />
  <param name="pxy" type="double" value="$(arg rate)" />
  <param name="pz" type="double" value="$(arg rate)" />
  <param name="dxy" type="double" value="$(arg rate)" />
  <param name="dz" type="double" value="$(arg rate)" />
  <param name="iz" type="double" value="$(arg rate)" />
  <param name="ixy" type="double" value="$(arg rate)" />
  </node>

</launch>

包含的文件如下所示:

<?xml version="1.0"?>
<launch>

  <include file="$(find flightcontroller)/launch/fly.launch">
    <arg name="ship_velocity" default="0.1" />
    <arg name="ship_waypoints" default="[[0, 0]]" />
    <arg name="rate" default="10" />
    <arg name="pxy" default="0.01" />
    <arg name="pz" default="0.5" />
    <arg name="dxy" default="1" />
    <arg name="dz" default="30" />
    <arg name="iz" default=".05" />
    <arg name="ixy" default="0.05" />

    <arg name="logging" default="log" />
  </include>

  <node name="debug_print_node" pkg="system_tests" type="print_node.py" output="screen"/>

  <test test-name="test_hovering" pkg="system_tests" type="drone_behavior_test.py" time-limit="120.0">
    <param name="duration" type="double" value="30.0" />
  </test>

</launch>

但是我不断收到此错误:

unused args [pxy, iz, dxy, pz, rate, ixy, dz] for include of [/root/CS4501-Labs/lab6_ws/src/flightcontroller/launch/fly.launch]

到底是怎么回事?

我尝试将参数添加为启动文件中的参数,如以下关于同一问题的帖子所示:https://answers.ros.org/question/239384/unused-args-for-include-of/ 它似乎不起作用,任何其他解决方案似乎也不起作用。

【问题讨论】:

    标签: python xml ros launch


    【解决方案1】:

    我认为问题可能出在您的主启动文件中。 在&lt;node pkg="simple_control" type="ship_following_controller.py" name="ship_following_controller_node" output="screen"&gt;你有一些奇怪的arg元素

    node 元素不支持 arg 元素。 你可以在这里查看 http://wiki.ros.org/roslaunch/XML/node

    node 元素仅支持这些。

    <env>
    <remap>
    <rosparam>
    <param>
    

    我不确定你的意图是什么,但我认为 fly.launch 的 include 应该在你的主启动文件中。第二个文件应该包含节点的定义,而不是包含启动。

    【讨论】:

      【解决方案2】:

      &lt;include&gt;只需要&lt;arg&gt;

      <!-- parent.launch -->
      <include file="child.launch">
        <arg name="my_arg" default="0"/>
      </include>
      

      &lt;node&gt;只需要&lt;param&gt;

      <!-- child.launch -->
      <arg name="my_arg" default="0"/>
      <node pkg="" type="" name="">
        <param name="my_arg" value="$(arg my_arg)"/>
      </node>
      

      请注意 &lt;arg&gt; 以上 &lt;node&gt; 它是必需的,因此您可以在 &lt;include&gt; 中传递来自父启动文件的参数


      在您的特定情况下,您将 &lt;arg&gt; 放在 &lt;node&gt; 内,这是不允许的 unused args [pxy, iz, dxy, pz, rate, ixy, dz]

      <node pkg="simple_control" type="ship_following_controller.py" name="ship_following_controller_node" output="screen">
        <arg name="rate"/>
        <arg name="iz"/>
        <arg name="dz"/>
        <arg name="pz"/>
        <arg name="ixy"/>
        <arg name="dxy"/>
        <arg name="pxy"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-03
        • 1970-01-01
        • 2012-02-03
        • 2017-03-12
        • 1970-01-01
        • 2014-08-19
        • 2017-08-20
        相关资源
        最近更新 更多