Ask Your Question

Revision history [back]

multiplexing between two topic

Hi i am using P3AT(USARSim simulator) and want to drive it from my ROS-Fuerte. what i want to do is,

  1. Driving the robot using keyboard (using teleop_twist_keyboard)

  2. Automated navigation of robot (using Navigation stack)

I want to drive the robot using keyboard but when i commit mistake(i.e. approaching to hit a wall) the automated behavior need to be activated.

by following this, i have my configuration file


  - name:        "Human_is_Driving"
    topic:       "teleop_cmd_vel"
    timeout:     0.5
    priority:    5
  - name:        "MACHINE_TAKES_OVER"
    topic:       "auto_cmd_vel"
    timeout:     0.5
    priority:    5
publisher:       "velocity_multiplexer/mux_cmd_vel"


  <node pkg="nodelet" type="nodelet" name="nodelet_manager" args="manager"/>
  <node pkg="nodelet" type="nodelet" name="velocity_multiplexer" args="load cmd_vel_mux/CmdVelMuxNodelet nodelet_manager">

    <param name="subscribers_cfg_file" value="$(find cmd_vel_mux)/param/example_cfg1.yaml"/>

    <remap from="cmd_vel_mux/mux_cmd_vel" to="mobile_base/commands/velocity"/>
    <remap from="cmd_vel_mux/web_cmd_vel" to="web_app_teleop"/>
    <remap from="cmd_vel_mux/key_cmd_vel" to="key_cmd_vel"/>
    <remap from="velocity_multiplexer/amcl_pose" to="amcl_pose" />
    <remap from="velocity_multiplexer/move_base_simple/goal" to="move_base_simple/goal" />


resulting rqt graphs of

  1. teleoperation

  2. automated navigation

i am not able to understand the complexity of the problem.

please help me to understand "how can i switch between cmd_vel used by teleop & cmd_vel used by move_base"