DiffDrive odometry source is missing
Hello,
When i launch my simulation I get two warnings:
[ WARN] [1465156368.902100026, 1017.888000000]: DiffDrive(ns = //): missing <odometrySource> default is 1
[ WARN] [1465156368.902473604, 1017.888000000]: GazeboRosDiffDrive Plugin (ns = ) missing <publishTf>, defaults to 1
I try to run gazebo+ ros with pioneer robot. I don't know how to solve this issue.
That's how i use DiffDrive plugin pioneer.gazebo files:
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
</plugin>
</gazebo>
<gazebo>
<plugin filename="libgazebo_ros_diff_drive.so" name="differential_drive_controller">
<alwaysOn>true</alwaysOn>
<updateRate>100</updateRate>
<leftJoint>base_left_wheel_joint</leftJoint>
<rightJoint>base_right_wheel_joint</rightJoint>
<torque>5</torque><br />
<wheelSeparation>0.39</wheelSeparation>
<wheelDiameter>0.15</wheelDiameter>
<commandTopic>pioneer/cmd_vel</commandTopic>
<odometryTopic>odom</odometryTopic>
<odometryFrame>odom</odometryFrame>
<robotBaseFrame>base_link</robotBaseFrame>
<publishWheelTF>true</publishWheelTF>
<publishWheelJointState>true</publishWheelJointState>
<wheelAcceleration>0</wheelAcceleration>
<wheelTorque>5</wheelTorque>
<rosDebugLevel>na</rosDebugLevel>
</plugin>
</gazebo>
And here i attached my launch files:
<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"/>
<!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(find gazebo_worlds)/worlds/Factory_World.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>
<!-- No namespace here as we will share this description.
Access with slash at the beginning -->
<!-- Load the URDF into the ROS Parameter Server -->
<param name="robot_description"
command="$(find xacro)/xacro.py '$(find pioneer_description)/urdf/pioneer3dx.xacro'" />
<!-- BEGIN PIONEER 1-->
<include file="$(find pioneer_description)/launch/one_pioneer.launch" >
<arg name="init_pose" value="-x 0 -y -55 -z 0" />
</include>
<param name="/use_sim_time" value="true"/>
<!-- Run the map server -->
<node name="map_server" pkg="map_server" type="map_server" args="$(find gazebo_worlds)/maps/FactoryWorld.yaml" >
<param name="frame_id" value="/map" />
</node>
<param name="robot_description"
command="$(find xacro)/xacro.py '$(find pioneer_description)/urdf/pioneer3dx.xacro'" />
<!-- Show in Rviz -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find pioneer_description)/launch/pioneer.rviz"/>
</launch>
And one_pioneer.launch:
<launch>
<arg name="init_pose"/>
<!-- 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="$(arg init_pose) -urdf -model -param /robot_description"/>
<!-- send fake joint values -->
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" >
<param name="use_gui" value="FALSE"/>
<remap from="robot_description" to="/robot_description"/>
</node>
<!-- Combine joint values -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"/>
<!-- The odometry estimator, throttling, fake laser etc. go here -->
<!-- All the stuff as from usual robot launch file -->
</launch>
I think this is a really simple problem but i have no knowledge how to solve that issue.
Below I alsso attached all logs from gazebo etc. starting:
[ INFO] [1465156365.861468958, 1017.888000000]: Camera Plugin (robotNamespace = /), Info: Using the 'robotNamespace' param: '/'
[ INFO] [1465156366 ...
I don't see the warnings. A little update ? :)
Please format xml (launch files, urdf) and error messages with the Preformatted text button (the one with
101010
on it). Just select the text you want to format, then press the button (orctrl+k
). Otherwise your question is rather hard to read. Thanks.Hi, The description has been updated. I hope now it is more clear. Waiting for your response because I think this warning causes my problems with work of base_local_planner
Do you have an error ? These two warnings just tell you that you don't use the odometrySource and publishTf tags so it will use default values. Values for odometrySource are WORLD or ENCODER. You can set it by adding <odometrysource>WORLD</odometrysource> for example.
If you have a problem with a ros node and simulation, maybe you can use rqt_graph tool to see if all topics are correctly mapped.
No i don't have an error. In rqt_graph everything seems ok. According to your description I can conclude that such warning are not a problem. Am I right?
Also I add description "<odometrysource>WORLD</odometrysource>" to my pioneer.gazebo file and warnings are still the same.
These warnings are not a problem.
Sorry my bad, I made a mistake. It's odometrySource.
You can check what are the parameters of the plugins by checking the source code : git_gazebo