Why does RVIZ complain that I have to transform from right_wheel to base_link?
Hello,
Here is my output from check_urdf:
---------- Successfully Parsed XML ---------------
root Link: base_link has 1 child(ren)
child(1): chassis
child(1): left_wheel_assembly
child(1): left_wheel
child(2): right_wheel_assembly
child(1): right_wheel
When I open my model in RVIZ, I add a robot model, then add the TF, then specify my fixed frame (base_link). But I have an error under RobotModel saying "No transform from [left_wheel] to [base_link]" and "No transform from [right_wheel] to [base_link].
I'm not sure what's causing the issue and I'm running out of ideas. Can anyone give me advice? Thanks. Here is my launch file and urdf model.
bot_empty.launch
<launch>
<!-- these are the arguments you can pass this launch file, for example paused:=true -->
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
<arg name="use_gui" value="true" />
<!-- Load joint controller configuration from YAML file to parameter server -->
<rosparam file="$(find ack_control)/config/ack_control.yaml" command="load" />
<!-- load the controllers -->
<node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen" ns="/ack" args="joint_rwh_position_controller joint_lwh_position_controller joint_state_controller"/>
<!-- convert joint states to TF transforms for rviz, etc -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"
respawn="false" output="screen">
<remap from="/joint_states" to="/ack/joint_states" />
</node>
<!-- Start Joint state publisher node which will publish the joint values -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
<!-- Load the URDF into the ROS Parameter Server
<param name="robot_description"
command="$(find xacro)/xacro.py '$(find ack_description)/urdf/ackermann_1.urdf'" /> -->
<param name="robot_description" textfile="$(find ack_description)/urdf/ackermann_1.urdf" />
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(find ack_gazebo)/worlds/empty.world"/>
<arg name="debug" value="$(arg debug)" />
<arg name="gui" value="$(arg gui)" />
<arg name="paused" value="$(arg paused)"/>
<arg name="use_sim_time" value="$(arg use_sim_time)"/>
<arg name="headless" value="$(arg headless)"/>
</include>
<!-- Run a python script to the send a service call to gazebo_ros to spawn a URDF robot -->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen" args="-urdf -model ackermann_1 -param robot_description"/>
<!-- Launch rviz -->
<node name="rviz" pkg="rviz" type="rviz"
args="-d $(find ack_description)/urdf.rviz" required="true" />
</launch>
ackermann_1.urdf
<?xml version="1.0"?>
<robot name="ackermann_1" xmlns:xacro="http://www.ros.org/wiki/xacro">
<!-- Base link -->
<link name="base_link">
<visual>
<geometry>
<box size="0.01 0.01 0.01"/>
</geometry>
</visual>
</link>
<!-- Chassis START-->
<joint name="base_joint" type="fixed">
<parent link="base_link"/>
<child link="chassis"/>
</joint>
<link name="chassis">
<collision>
<origin xyz="0 0 0.3" rpy="0 0 0"/>
<geometry>
<box size="1 0.2 0.1"/>
</geometry>
</collision>
<visual> ...
Can you please add the image of rqt_tf_tree
Hi Humpelstizchen, I've added a screenshot. Thanks.