Ask Your Question

# Revision history [back]

### Multirobot + laser rviz

I have some troubles to see the laser_scan in a simulation with two robots which have the same description file (urdf) in different group with different namespace.

I launch both in gazebo and works quite good, the robots looks ok but when I launch rviz to see the laser, I select the fixed frame and the target frame of the robot one, I select the robot_description of the robot one and the tfprefix of the robot one. The tf looks great.

I see the robot one in the center of the visual space in rviz. When I try to see the laser_scan, I select the correct topic but I nothing appear, the error is the next:

Transform [sender=/gazebo]
For frame [hokuyo_laser_link]: Frame [hokuyo_laser_link] does not exist


I think the problem come to rviz. Rviz look for the frame described in the urdf robot description and not look for the tf_prefix.

Here my launch file and my tree of tf:

<launch>
<!-- send summit_xl.urdf to param server -->
<group ns="summit_one">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 0.0 -y 0.0 -z 0.5 -model summit_xl_one" respawn="false" output="screen"> </node> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_one_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <remap from="hokuyo_laser_link" to="summit_one/hokuyo_laser_link" /> <param name="tf_prefix" type="string" value="summit_one" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_one" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

<group ns="summit_two">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 2.0 -y 2.0 -z 0.5 -model summit_xl_two" respawn="false" output="screen" /> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_two_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <!--remap from="joint_states" to="summit_one/joint_states" /--> <param name="tf_prefix" type="string" value="summit_two" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_two" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

</launch>


tf:
http://tinypic.com/view.php?pic=xngh01&s=6

Someone who has the same problem? What should I do with the ghost frames? Is there any way to tell what frame rviz should choose?

Thanks a lot.

 2 retagged

### Multirobot + laser rviz

I have some troubles to see the laser_scan in a simulation with two robots which have the same description file (urdf) in different group with different namespace.

I launch both in gazebo and works quite good, the robots looks ok but when I launch rviz to see the laser, I select the fixed frame and the target frame of the robot one, I select the robot_description of the robot one and the tfprefix of the robot one. The tf looks great.

I see the robot one in the center of the visual space in rviz. When I try to see the laser_scan, I select the correct topic but I nothing appear, the error is the next:

Transform [sender=/gazebo]
For frame [hokuyo_laser_link]: Frame [hokuyo_laser_link] does not exist


I think the problem come to rviz. Rviz look for the frame described in the urdf robot description and not look for the tf_prefix.

Here my launch file and my tree of tf:

<launch>
<!-- send summit_xl.urdf to param server -->
<group ns="summit_one">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 0.0 -y 0.0 -z 0.5 -model summit_xl_one" respawn="false" output="screen"> </node> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_one_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <remap from="hokuyo_laser_link" to="summit_one/hokuyo_laser_link" /> <param name="tf_prefix" type="string" value="summit_one" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_one" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

<group ns="summit_two">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 2.0 -y 2.0 -z 0.5 -model summit_xl_two" respawn="false" output="screen" /> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_two_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <!--remap from="joint_states" to="summit_one/joint_states" /--> <param name="tf_prefix" type="string" value="summit_two" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_two" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

</launch>


tf:
http://tinypic.com/view.php?pic=xngh01&s=6

Someone who has the same problem? What should I do with the ghost frames? Is there any way to tell what frame rviz should choose?

Thanks a lot.

 3 retagged

### Multirobot + laser rviz

I have some troubles to see the laser_scan in a simulation with two robots which have the same description file (urdf) in different group with different namespace.

I launch both in gazebo and works quite good, the robots looks ok but when I launch rviz to see the laser, I select the fixed frame and the target frame of the robot one, I select the robot_description of the robot one and the tfprefix of the robot one. The tf looks great.

I see the robot one in the center of the visual space in rviz. When I try to see the laser_scan, I select the correct topic but I nothing appear, the error is the next:

Transform [sender=/gazebo]
For frame [hokuyo_laser_link]: Frame [hokuyo_laser_link] does not exist


I think the problem come to rviz. Rviz look for the frame described in the urdf robot description and not look for the tf_prefix.

Here my launch file and my tree of tf:

<launch>
<!-- send summit_xl.urdf to param server -->
<group ns="summit_one">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 0.0 -y 0.0 -z 0.5 -model summit_xl_one" respawn="false" output="screen"> </node> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_one_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <remap from="hokuyo_laser_link" to="summit_one/hokuyo_laser_link" /> <param name="tf_prefix" type="string" value="summit_one" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_one" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

<group ns="summit_two">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 2.0 -y 2.0 -z 0.5 -model summit_xl_two" respawn="false" output="screen" /> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_two_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <!--remap from="joint_states" to="summit_one/joint_states" /--> <param name="tf_prefix" type="string" value="summit_two" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_two" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

</launch>


tf:
http://tinypic.com/view.php?pic=xngh01&s=6

Someone who has the same problem? What should I do with the ghost frames? Is there any way to tell what frame rviz should choose?

Thanks a lot.

 4 retagged

### Multirobot + laser rviz

I have some troubles to see the laser_scan in a simulation with two robots which have the same description file (urdf) in different group with different namespace.

I launch both in gazebo and works quite good, the robots looks ok but when I launch rviz to see the laser, I select the fixed frame and the target frame of the robot one, I select the robot_description of the robot one and the tfprefix of the robot one. The tf looks great.

I see the robot one in the center of the visual space in rviz. When I try to see the laser_scan, I select the correct topic but I nothing appear, the error is the next:

Transform [sender=/gazebo]
For frame [hokuyo_laser_link]: Frame [hokuyo_laser_link] does not exist


I think the problem come to rviz. Rviz look for the frame described in the urdf robot description and not look for the tf_prefix.

Here my launch file and my tree of tf:

<launch>
<!-- send summit_xl.urdf to param server -->
<group ns="summit_one">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 0.0 -y 0.0 -z 0.5 -model summit_xl_one" respawn="false" output="screen"> </node> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_one_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <remap from="hokuyo_laser_link" to="summit_one/hokuyo_laser_link" /> <param name="tf_prefix" type="string" value="summit_one" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_one" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

<group ns="summit_two">
<param name="robot_description" textfile="$(find summit_xl_description)/urdf/summit_xl.urdf" /> <node name="spawn_summit" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -x 2.0 -y 2.0 -z 0.5 -model summit_xl_two" respawn="false" output="screen" /> <!-- Controller manager parameters --> <param name="pr2_controller_manager/mechanism_statistics_publish_rate" value="1.0" /> <param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" /> <!-- Robot state publisher --> <node pkg="robot_state_publisher" type="state_publisher" name="summit_two_state_publisher" output="screen"> <param name="publish_frequency" type="double" value="50.0" /> <!--remap from="joint_states" to="summit_one/joint_states" /--> <param name="tf_prefix" type="string" value="summit_two" /> </node> <!-- Diagnostics --> <node pkg="pr2_mechanism_diagnostics" type="pr2_mechanism_diagnostics" name="pr2_mechanism_diagnostics_two" /> <rosparam file="$(find summit_xl_ctrl)/summit_xl_ctrl.yaml" command="load"/>
<param name="pr2_controller_manager/joint_state_publish_rate" value="100.0" />
<node name="summit_xl_ctrl" pkg="pr2_controller_manager" type="spawner" args="summit_xl_ctrl" respawn="false" output="screen"/>
<node pkg="summit_xl_odometry" type="summit_xl_odometry" name="summit_xl_odometry_node" output="screen"/>
</group>

</launch>


tf:
http://tinypic.com/view.php?pic=xngh01&s=6

Someone who has the same problem? What should I do with the ghost frames? Is there any way to tell what frame rviz should choose?

Thanks a lot.