【发布时间】:2019-03-23 14:06:12
【问题描述】:
根据教程here,我尝试创建启动以在凉亭中运行多个机器人。 每个机器人都有一个节点 [称为 stopper] 负责移动它。我希望每个机器人单独移动,所以我将发布到 {robot_name}/cmd_vel_mux/input/teleop 主题。
在运行“rostopic info /cmd_vel_mux/input/teleop”时,我注意到我只有 mobile_base_nodelet_manager 作为订阅者,没有发布者(发布者存在于 {robot_name}/cmd_vel_mux/input/teleop 主题中。 因此,我使用了remap,但它仍然不起作用,并且出现了同样的问题。
one_robot.lanuch
<?xml version="1.0"?>
<launch>
<arg name="robot_name"/>
<arg name="init_pose"/>
<node name="spawn_minibot_model" pkg="gazebo_ros" type="spawn_model"
args="$(arg init_pose) -urdf -param /robot_description -model $(arg robot_name)"
respawn="false" output="screen" />
<!-- Launch stopper node -->
<node name="stopper" pkg="stopper" type="stopper" output="screen" args="$(arg robot_name)">
<remap from="scan" to="$(arg robot_name)/scan"/>
<remap from="cmd_vel_mux/input/teleop" to="$(arg robot_name)/cmd_vel_mux/input/teleop"/>
</node>
</launch>
robots.launch
<?xml version="1.0"?>
<launch>
<!-- No namespace here as we will share this description.
Access with slash at the beginning -->
<param name="robot_description"
command="$(find xacro)/xacro.py $(find turtlebot_description)/robots/kobuki_hexagons_asus_xtion_pro.urdf.xacro"/>
<!-- BEGIN ROBOT 1-->
<group ns="robot1">
<param name="tf_prefix" value="robot1_tf" />
<include file="$(find stopper)/launch/one_robot.launch" >
<arg name="init_pose" value="-x 1 -y 1 -z 0" />
<arg name="robot_name" value="Robot1" />
</include>
</group>
<!-- BEGIN ROBOT 2-->
<group ns="robot2">
<param name="tf_prefix" value="robot2_tf" />
<include file="$(find stopper)/launch/one_robot.launch" >
<arg name="init_pose" value="-x -1 -y 1 -z 0" />
<arg name="robot_name" value="Robot2" />
</include>
</group>
</launch>
multiple_robots.launch
<?xml version="1.0"?>
<launch>
<param name="/use_sim_time" value="true" />
<!-- include our robots -->
<include file="$(find stopper)/launch/robots.launch"/>
<!-- start world -->
<include file="$(find turtlebot_gazebo)/launch/turtlebot_world.launch"/>
</launch>
- 看起来,我尝试在 one_robot.launch 中重新映射,但它仍然没有像我之前提到的那样工作。
我注意到重映射只有在我在
multiple_robots.launch中执行时才有效,但这对我来说是不可能的,因为我们不知道机器人名称,而只是在one_robot.launch中。
我想得到你的帮助来解决这个问题,我花了很多时间在这上面。非常感谢!
【问题讨论】:
标签: xml ros launch robotics robot