【问题标题】:How to spawn multiple objects in gazebo using libgazebo_ros_camera.so如何使用 libgazebo_ros_camera.so 在凉亭中生成多个对象
【发布时间】:2020-11-27 07:18:05
【问题描述】:

在.sdf 文件中使用以下内容仅适用于生成一个对象。如果我尝试生成多个对象,则会发生错误,因为有两个对象在同一主题上“交谈”。

我怎样才能将这段 sdf 写得更通用,以便生成更多对象不再是问题?例如在主题名称中添加模型名称?

<plugin name="camera_controller" filename="libgazebo_ros_camera.so">
    <alwaysOn>true</alwaysOn>
    <updateRate>0.0</updateRate>  
    <cameraName>RCcar/camera1</cameraName>   
    <imageTopicName>image_raw</imageTopicName>    
    <cameraInfoTopicName>camera_info</cameraInfoTopicName>    
    <frameName>link_camera</frameName>    
    <hackBaseline>0.0</hackBaseline>    
    <distortionK1>0.0</distortionK1>    
    <distortionK2>0.0</distortionK2>    
    <distortionK3>0.0</distortionK3>    
    <distortionT1>0.0</distortionT1>    
    <distortionT2>0.0</distortionT2>    
    <robotNamespace>/</robotNamespace>    
</plugin>

【问题讨论】:

    标签: plugins ros gazebo-simu


    【解决方案1】:

    有一种方法不需要修改模型配置文件。

    在生成模型的 ROS 启动文件中,您可以添加“group ns”属性。这是一个例子:

    <!-- BEGIN ROBOT 1-->
      <group ns="robot1">
        <param name="tf_prefix" value="robot1_tf" />
        <include file="EXAMPLE_PATH/EXAMPLE_LAUNCH_FILE_FOR_ONE_ROBOT.launch" >
          (args ...)
        </include>
      </group>
    
      <!-- BEGIN ROBOT 2-->
      <group ns="robot2">
        <param name="tf_prefix" value="robot2_tf" />
        <include file="EXAMPLE_PATH/EXAMPLE_LAUNCH_FILE_FOR_ONE_ROBOT.launch" >
          (args ...)
        </include>
      </group>
    

    在“EXAMPLE_LAUNCH_FILE_FOR_ONE_ROBOT.launch”文件中,您可以启动一个机器人模型。

    那么 rostopics 将是:

    ...

    /robot1/topicXXX
    /robot2/topicXXX
    

    ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 2020-05-27
      • 2014-03-14
      相关资源
      最近更新 更多