本篇的目的是想解读gazebo_ros_control 以及 gazebo_ros.
因为gazebo本身是独立于ros的,通过教程Intermediate: Control plugin 以及教程 Category: Write a plugin 发现自己单纯的写c++ plugin就能控制model,获取sensor信息. 那么ros官方开发的那一套 gazebo_ros_control, gazebo_ros等等,肯定也是用同一种思路开发的, 只不过利用了ros自身的一些其他package, 例如ros_control 和 ros_controllers 进行了集成, 使使用起来更加方便, 毕竟很多robot的基本元素都是形同的, 没必要为每个robot或model开发一个新的plugin. 所以通过插件的形式,配合以yaml文件, 可以快速对一个新的robot模型定制一个专属的plugin.
gazebo_ros_control
这个其实就ros版本的 Model plugins
gazebo_ros
这个其实就是ros版本的 System Plugin
gazebo_tutorials
这个是在gazebo_ros_demos里的, 是一个 World plugins的例子.
至于gazebo还有的 SensorPlugin, ros中没有与之对于的实现, 可能有gazebo_ros_control 和 gazebo_ros 就够了吧.
joint_state_publisher
读取robot_description中所有非固定的joints, 然后发布这些joints的状态. 通常与