question about navgation in gazebo
hello everyone~ i am a beginner of ros , nowadays there are some questions frustrate me , most about robot navigation & gazebo.
the question is i want to write a robot (using urdf or sdf or xacro?) in gazebo and let it navigation themselves(by using gmapping , slam , locolization ros packages etc) , the first step to do this , i think i should make a robot description file and load it to gazebo , and "link" it to ROS , then at least i can get the odom information from ros message and use ros message like cmd_vel or teleop node to control the model move . but i found some question below:
i follow the tutorial "http://gazebosim.org/tutorials" and "http://sdformat.org/spec" to learn to write a robot model and added it to gazebo successful , but i don't understand the different between urdf & sdf & xacro , i saw some one add <gazebo> tag in urdf or xacro then it can also ues in gazebo - -, and i don't know where to find those xml format's specification , so if you know plz tell me ~
2.i also find a tutorial "http://guitarpenguin.is-programmer.com/posts/58100.html" that looks like this guy already added <diff_drive_plugin> to irobot and could use cmd_vel to control it move . but when i follow him ,add the <diff_drive_plugin> to my irobot sdf file ,it doesn't work well and when i spawn the robot the info in my terminal is :
3.when i read the tutorial , it seems like that i need add <ros_controller> & <plugin> to my robot description xml file (whatever urdf ? xacro ? sdf ?) i don't know much about ros_controller or plugin , what it is ? what it is use for? and how should i use it ?
if you know some thing , or have the same frustrate with me , welcome to comment~ thx ~