[gazebo] 01/04: Imported Upstream version 7.8.1

Jose Luis Rivero jrivero-guest at moszumanska.debian.org
Tue Sep 5 19:26:27 UTC 2017


This is an automated email from the git hooks/post-receive script.

jrivero-guest pushed a commit to branch master
in repository gazebo.

commit f14ad5ec0a278a1f0ff818e196bcf4bab87a15cf
Author: Jose Luis Rivero <jrivero at osrfoundation.org>
Date:   Tue Sep 5 20:59:54 2017 +0200

    Imported Upstream version 7.8.1
---
 .hg_archival.txt                                   |    8 +-
 CMakeLists.txt                                     |    4 +-
 CONTRIBUTING.md                                    |  341 ++++
 Changelog.md                                       |  108 +-
 LICENSE                                            |    2 +-
 Migration.md                                       |   19 +
 cmake/SearchForStuff.cmake                         |    3 +-
 deps/opende/src/io.cpp                             |    2 +
 deps/opende/src/step_bullet_inc.h                  |    2 +-
 deps/opende/src/step_bullet_lemke_wrapper.cpp      |    2 +-
 deps/opende/src/step_bullet_lemke_wrapper.h        |    2 +-
 deps/opende/src/step_bullet_pgs_wrapper.cpp        |    2 +-
 deps/opende/src/step_bullet_pgs_wrapper.h          |    2 +-
 deps/opende/src/step_dart_pgs_wrapper.cpp          |    2 +-
 deps/opende/src/step_dart_pgs_wrapper.h            |    2 +-
 examples/ignition/angle.cc                         |    2 +-
 examples/ignition/box.cc                           |    2 +-
 examples/ignition/vector3.cc                       |    2 +-
 examples/plugins/animate_joints/animate_joints.cc  |    2 +-
 examples/plugins/animate_pose/animate_pose.cc      |    2 +-
 examples/plugins/camera/camera_dump.cc             |    2 +-
 examples/plugins/camera/camera_move.cc             |    2 +-
 .../plugins/custom_messages/custom_messages.cc     |    2 +-
 examples/plugins/factory/factory.cc                |    2 +-
 .../GUIExampleSpawnWidget.cc                       |    2 +-
 .../GUIExampleSpawnWidget.hh                       |    2 +-
 .../GUIExampleTimeWidget.cc                        |    2 +-
 .../GUIExampleTimeWidget.hh                        |    2 +-
 examples/plugins/hello_world/hello_world.cc        |    2 +-
 .../mainwindow_example/MainWindowExampleWidget.cc  |    2 +-
 .../mainwindow_example/MainWindowExampleWidget.hh  |    2 +-
 examples/plugins/model_move/model_move.cc          |    2 +-
 examples/plugins/model_move/model_move.hh          |    2 +-
 examples/plugins/model_move/path_publisher.cc      |    2 +-
 examples/plugins/model_push/model_push.cc          |    2 +-
 examples/plugins/model_visuals/model_visuals.cc    |    2 +-
 examples/plugins/parameters/parameters.cc          |    2 +-
 examples/plugins/pr2_pose_test.cc                  |    2 +-
 examples/plugins/presentation.cc                   |    2 +-
 examples/plugins/projector/projector.cc            |    2 +-
 examples/plugins/ray_test.cc                       |    2 +-
 examples/plugins/system_gui_plugin/system_gui.cc   |    2 +-
 examples/plugins/world_edit/world_edit.cc          |    2 +-
 examples/stand_alone/actuator/main.cc              |    2 +-
 examples/stand_alone/animated_box/animated_box.cc  |    2 +-
 .../animated_box/independent_listener.cc           |    2 +-
 .../stand_alone/animated_box/integrated_main.cc    |    2 +-
 .../stand_alone/arrange/arrange_plugin_test.cc     |    2 +-
 examples/stand_alone/clone_simulation/cloner.cc    |    2 +-
 examples/stand_alone/custom_main/custom_main.cc    |    2 +-
 .../stand_alone/custom_main/custom_main_vector.cc  |    2 +-
 .../custom_main_pkgconfig/custom_main.cc           |    2 +-
 examples/stand_alone/listener/listener.cc          |    2 +-
 examples/stand_alone/publisher/publisher.cc        |    2 +-
 examples/stand_alone/test_fixture/test.cc          |    2 +-
 examples/stand_alone/transporter/transporter.cc    |    2 +-
 gazebo/Master.cc                                   |    2 +-
 gazebo/Master.hh                                   |    2 +-
 gazebo/Server.cc                                   |   19 +-
 gazebo/Server.hh                                   |    2 +-
 gazebo/common/Animation.cc                         |    2 +-
 gazebo/common/Animation.hh                         |    2 +-
 gazebo/common/Animation_TEST.cc                    |    2 +-
 gazebo/common/Assert.cc                            |    2 +-
 gazebo/common/Assert.hh                            |    2 +-
 gazebo/common/AudioDecoder.cc                      |    2 +-
 gazebo/common/AudioDecoder.hh                      |    2 +-
 gazebo/common/AudioDecoder_TEST.cc                 |    2 +-
 gazebo/common/BVHLoader.cc                         |    2 +-
 gazebo/common/BVHLoader.hh                         |    2 +-
 gazebo/common/Base64.cc                            |    2 +-
 gazebo/common/Base64.hh                            |    2 +-
 gazebo/common/Battery.cc                           |    2 +-
 gazebo/common/Battery.hh                           |    2 +-
 gazebo/common/BatteryPrivate.hh                    |    2 +-
 gazebo/common/Battery_TEST.cc                      |    2 +-
 gazebo/common/ColladaExporter.cc                   |    2 +-
 gazebo/common/ColladaExporter.hh                   |    2 +-
 gazebo/common/ColladaExporterPrivate.hh            |    2 +-
 gazebo/common/ColladaExporter_TEST.cc              |    2 +-
 gazebo/common/ColladaLoader.cc                     |    2 +-
 gazebo/common/ColladaLoader.hh                     |    2 +-
 gazebo/common/ColladaLoaderPrivate.hh              |    2 +-
 gazebo/common/ColladaLoader_TEST.cc                |    2 +-
 gazebo/common/Color.cc                             |    2 +-
 gazebo/common/Color.hh                             |    2 +-
 gazebo/common/Color_TEST.cc                        |    2 +-
 gazebo/common/CommonIface.cc                       |    2 +-
 gazebo/common/CommonIface.hh                       |    2 +-
 gazebo/common/CommonIface_TEST.cc                  |    2 +-
 gazebo/common/CommonTypes.hh                       |    2 +-
 gazebo/common/Console.cc                           |    2 +-
 gazebo/common/Console.hh                           |    2 +-
 gazebo/common/Console_TEST.cc                      |    2 +-
 gazebo/common/Dem.cc                               |    2 +-
 gazebo/common/Dem.hh                               |    2 +-
 gazebo/common/DemPrivate.hh                        |    2 +-
 gazebo/common/Dem_TEST.cc                          |    2 +-
 gazebo/common/EnumIface.hh                         |    2 +-
 gazebo/common/EnumIface_TEST.cc                    |    2 +-
 gazebo/common/Event.cc                             |    2 +-
 gazebo/common/Event.hh                             |    2 +-
 gazebo/common/Event_TEST.cc                        |    2 +-
 gazebo/common/Events.cc                            |    2 +-
 gazebo/common/Events.hh                            |    2 +-
 gazebo/common/Exception.cc                         |    2 +-
 gazebo/common/Exception.hh                         |    2 +-
 gazebo/common/Exception_TEST.cc                    |    2 +-
 gazebo/common/GTSMeshUtils.cc                      |    2 +-
 gazebo/common/GTSMeshUtils.hh                      |    2 +-
 gazebo/common/GTSMeshUtils_TEST.cc                 |    2 +-
 gazebo/common/HeightmapData.hh                     |    2 +-
 gazebo/common/Image.cc                             |    2 +-
 gazebo/common/Image.hh                             |    2 +-
 gazebo/common/ImageHeightmap.cc                    |    2 +-
 gazebo/common/ImageHeightmap.hh                    |    2 +-
 gazebo/common/ImageHeightmap_TEST.cc               |    2 +-
 gazebo/common/Image_TEST.cc                        |    2 +-
 gazebo/common/KeyEvent.cc                          |    2 +-
 gazebo/common/KeyEvent.hh                          |    2 +-
 gazebo/common/KeyFrame.cc                          |    2 +-
 gazebo/common/KeyFrame.hh                          |    2 +-
 gazebo/common/Material.cc                          |    2 +-
 gazebo/common/Material.hh                          |    2 +-
 gazebo/common/Material_TEST.cc                     |    2 +-
 gazebo/common/Mesh.cc                              |    2 +-
 gazebo/common/Mesh.hh                              |    2 +-
 gazebo/common/MeshCSG.cc                           |    2 +-
 gazebo/common/MeshCSG.hh                           |    2 +-
 gazebo/common/MeshExporter.cc                      |    2 +-
 gazebo/common/MeshExporter.hh                      |    2 +-
 gazebo/common/MeshLoader.cc                        |    2 +-
 gazebo/common/MeshLoader.hh                        |    2 +-
 gazebo/common/MeshManager.cc                       |    2 +-
 gazebo/common/MeshManager.hh                       |    2 +-
 gazebo/common/MeshManager_TEST.cc                  |    2 +-
 gazebo/common/Mesh_TEST.cc                         |    2 +-
 gazebo/common/ModelDatabase.cc                     |    2 +-
 gazebo/common/ModelDatabase.hh                     |    2 +-
 gazebo/common/ModelDatabasePrivate.hh              |    2 +-
 gazebo/common/MouseEvent.cc                        |    2 +-
 gazebo/common/MouseEvent.hh                        |    2 +-
 gazebo/common/MouseEventPrivate.hh                 |    2 +-
 gazebo/common/MouseEvent_TEST.cc                   |    2 +-
 gazebo/common/MovingWindowFilter.hh                |    2 +-
 gazebo/common/MovingWindowFilter_TEST.cc           |    2 +-
 gazebo/common/PID.cc                               |    2 +-
 gazebo/common/PID.hh                               |    2 +-
 gazebo/common/Plugin.cc                            |    2 +-
 gazebo/common/Plugin.hh                            |    2 +-
 gazebo/common/STLLoader.cc                         |    2 +-
 gazebo/common/STLLoader.hh                         |    2 +-
 gazebo/common/SVGLoader.cc                         |    2 +-
 gazebo/common/SVGLoader.hh                         |    2 +-
 gazebo/common/SVGLoaderPrivate.hh                  |    2 +-
 gazebo/common/SVGLoader_TEST.cc                    |    2 +-
 gazebo/common/SingletonT.hh                        |    2 +-
 gazebo/common/Skeleton.cc                          |    2 +-
 gazebo/common/Skeleton.hh                          |    2 +-
 gazebo/common/SkeletonAnimation.cc                 |    2 +-
 gazebo/common/SkeletonAnimation.hh                 |    2 +-
 gazebo/common/SphericalCoordinates.cc              |    2 +-
 gazebo/common/SphericalCoordinates.hh              |    2 +-
 gazebo/common/SphericalCoordinatesPrivate.hh       |    2 +-
 gazebo/common/SphericalCoordinates_TEST.cc         |    2 +-
 gazebo/common/SystemPaths.cc                       |    2 +-
 gazebo/common/SystemPaths.hh                       |    2 +-
 gazebo/common/SystemPaths_TEST.cc                  |    2 +-
 gazebo/common/Time.cc                              |    2 +-
 gazebo/common/Time.hh                              |    2 +-
 gazebo/common/Time_TEST.cc                         |    2 +-
 gazebo/common/Timer.cc                             |    2 +-
 gazebo/common/Timer.hh                             |    2 +-
 gazebo/common/Timer_TEST.cc                        |    2 +-
 gazebo/common/UpdateInfo.hh                        |    2 +-
 gazebo/common/Video.cc                             |    2 +-
 gazebo/common/Video.hh                             |    2 +-
 gazebo/common/ffmpeg_inc.cc                        |    2 +-
 gazebo/common/ffmpeg_inc.h                         |    2 +-
 gazebo/common/template_TEST.cc                     |    2 +-
 gazebo/gazebo.1.ronn                               |    4 +
 gazebo/gazebo.cc                                   |    2 +-
 gazebo/gazebo.hh                                   |    2 +-
 gazebo/gazebo_client.cc                            |    2 +-
 gazebo/gazebo_client.hh                            |    2 +-
 gazebo/gazebo_core.hh                              |    2 +-
 gazebo/gazebo_main.cc                              |    5 +-
 gazebo/gazebo_shared.cc                            |    2 +-
 gazebo/gazebo_shared.hh                            |    2 +-
 gazebo/gui/Actions.cc                              |    2 +-
 gazebo/gui/Actions.hh                              |    2 +-
 gazebo/gui/AlignWidget.cc                          |    2 +-
 gazebo/gui/AlignWidget.hh                          |    2 +-
 gazebo/gui/AlignWidgetPrivate.hh                   |    2 +-
 gazebo/gui/ApplyWrenchDialog.cc                    |    2 +-
 gazebo/gui/ApplyWrenchDialog.hh                    |    2 +-
 gazebo/gui/ApplyWrenchDialogPrivate.hh             |    2 +-
 gazebo/gui/ApplyWrenchDialog_TEST.cc               |    2 +-
 gazebo/gui/ApplyWrenchDialog_TEST.hh               |    2 +-
 gazebo/gui/BuildingEditor_TEST.cc                  |    2 +-
 gazebo/gui/BuildingEditor_TEST.hh                  |    2 +-
 gazebo/gui/CloneWindow.cc                          |    2 +-
 gazebo/gui/CloneWindow.hh                          |    2 +-
 gazebo/gui/CloneWindowPrivate.hh                   |    2 +-
 gazebo/gui/ConfigWidget.cc                         |    2 +-
 gazebo/gui/ConfigWidget.hh                         |    2 +-
 gazebo/gui/ConfigWidgetPrivate.hh                  |    2 +-
 gazebo/gui/ConfigWidget_TEST.cc                    |    2 +-
 gazebo/gui/ConfigWidget_TEST.hh                    |    2 +-
 gazebo/gui/Conversions.cc                          |    2 +-
 gazebo/gui/Conversions.hh                          |    2 +-
 gazebo/gui/Conversions_TEST.cc                     |    2 +-
 gazebo/gui/DataLogger.cc                           |    2 +-
 gazebo/gui/DataLogger.hh                           |    2 +-
 gazebo/gui/DataLoggerPrivate.hh                    |    2 +-
 gazebo/gui/DataLogger_TEST.cc                      |    9 +-
 gazebo/gui/DataLogger_TEST.hh                      |    2 +-
 gazebo/gui/Diagnostics.cc                          |    2 +-
 gazebo/gui/Diagnostics.hh                          |    2 +-
 gazebo/gui/DiagnosticsPrivate.hh                   |    2 +-
 gazebo/gui/Editor.cc                               |    2 +-
 gazebo/gui/Editor.hh                               |    2 +-
 gazebo/gui/EntityMaker.cc                          |    2 +-
 gazebo/gui/EntityMaker.hh                          |    2 +-
 gazebo/gui/EntityMakerPrivate.hh                   |    2 +-
 gazebo/gui/GLWidget.cc                             |    5 +-
 gazebo/gui/GLWidget.hh                             |    2 +-
 gazebo/gui/GLWidgetPrivate.hh                      |    2 +-
 gazebo/gui/GLWidget_TEST.cc                        |    2 +-
 gazebo/gui/GLWidget_TEST.hh                        |    2 +-
 gazebo/gui/GLWidget_TEST2.cc                       |    2 +-
 gazebo/gui/GLWidget_TEST2.hh                       |    2 +-
 gazebo/gui/GuiEvents.cc                            |    2 +-
 gazebo/gui/GuiEvents.hh                            |    2 +-
 gazebo/gui/GuiIface.cc                             |    2 +-
 gazebo/gui/GuiIface.hh                             |    2 +-
 gazebo/gui/GuiIface_TEST.cc                        |    2 +-
 gazebo/gui/GuiIface_TEST.hh                        |    2 +-
 gazebo/gui/GuiPlugin.hh                            |    2 +-
 gazebo/gui/GuiTypes.hh                             |    2 +-
 gazebo/gui/HotkeyDialog.cc                         |    2 +-
 gazebo/gui/HotkeyDialog.hh                         |    2 +-
 gazebo/gui/IncrementalPlot.cc                      |    2 +-
 gazebo/gui/IncrementalPlot.hh                      |    2 +-
 gazebo/gui/InsertModelWidget.cc                    |    2 +-
 gazebo/gui/InsertModelWidget.hh                    |    2 +-
 gazebo/gui/InsertModelWidgetPrivate.hh             |    2 +-
 gazebo/gui/JointControlWidget.cc                   |    2 +-
 gazebo/gui/JointControlWidget.hh                   |    2 +-
 gazebo/gui/JointControlWidgetPrivate.hh            |    2 +-
 gazebo/gui/KeyEventHandler.cc                      |    2 +-
 gazebo/gui/KeyEventHandler.hh                      |    2 +-
 gazebo/gui/KeyEventHandlerPrivate.hh               |    2 +-
 gazebo/gui/LaserVisualization_TEST.cc              |    2 +-
 gazebo/gui/LaserVisualization_TEST.hh              |    2 +-
 gazebo/gui/LayersWidget.cc                         |    2 +-
 gazebo/gui/LayersWidget.hh                         |    2 +-
 gazebo/gui/LayersWidgetPrivate.hh                  |    2 +-
 gazebo/gui/LayersWidget_TEST.cc                    |    2 +-
 gazebo/gui/LayersWidget_TEST.hh                    |    2 +-
 gazebo/gui/LightMaker.cc                           |    2 +-
 gazebo/gui/LightMaker.hh                           |    2 +-
 gazebo/gui/LightMakerPrivate.hh                    |    2 +-
 gazebo/gui/LightMaker_TEST.cc                      |    2 +-
 gazebo/gui/LightMaker_TEST.hh                      |    2 +-
 gazebo/gui/LogPlayWidget.cc                        |    2 +-
 gazebo/gui/LogPlayWidget.hh                        |    2 +-
 gazebo/gui/LogPlayWidgetPrivate.hh                 |    2 +-
 gazebo/gui/MainWindow.cc                           |    2 +-
 gazebo/gui/MainWindow.hh                           |    2 +-
 gazebo/gui/MainWindowPrivate.hh                    |    2 +-
 gazebo/gui/MainWindow_TEST.cc                      |    2 +-
 gazebo/gui/MainWindow_TEST.hh                      |    2 +-
 gazebo/gui/ModelAlign.cc                           |    2 +-
 gazebo/gui/ModelAlign.hh                           |    2 +-
 gazebo/gui/ModelAlignPrivate.hh                    |    2 +-
 gazebo/gui/ModelAlign_TEST.cc                      |    2 +-
 gazebo/gui/ModelAlign_TEST.hh                      |    2 +-
 gazebo/gui/ModelListWidget.cc                      |    2 +-
 gazebo/gui/ModelListWidget.hh                      |    2 +-
 gazebo/gui/ModelListWidgetPrivate.hh               |    2 +-
 gazebo/gui/ModelListWidget_TEST.cc                 |    2 +-
 gazebo/gui/ModelListWidget_TEST.hh                 |    2 +-
 gazebo/gui/ModelMaker.cc                           |    2 +-
 gazebo/gui/ModelMaker.hh                           |    2 +-
 gazebo/gui/ModelMakerPrivate.hh                    |    2 +-
 gazebo/gui/ModelMaker_TEST.cc                      |    2 +-
 gazebo/gui/ModelMaker_TEST.hh                      |    2 +-
 gazebo/gui/ModelManipulator.cc                     |    2 +-
 gazebo/gui/ModelManipulator.hh                     |    2 +-
 gazebo/gui/ModelManipulatorPrivate.hh              |    2 +-
 gazebo/gui/ModelRightMenu.cc                       |    2 +-
 gazebo/gui/ModelRightMenu.hh                       |    2 +-
 gazebo/gui/ModelSnap.cc                            |    2 +-
 gazebo/gui/ModelSnap.hh                            |    2 +-
 gazebo/gui/ModelSnapPrivate.hh                     |    2 +-
 gazebo/gui/ModelSnap_TEST.cc                       |    2 +-
 gazebo/gui/ModelSnap_TEST.hh                       |    2 +-
 gazebo/gui/MouseEventHandler.cc                    |    2 +-
 gazebo/gui/MouseEventHandler.hh                    |    2 +-
 gazebo/gui/OculusWindow.cc                         |    2 +-
 gazebo/gui/OculusWindow.hh                         |    2 +-
 gazebo/gui/Projection_TEST.cc                      |    2 +-
 gazebo/gui/Projection_TEST.hh                      |    2 +-
 gazebo/gui/QTestFixture.cc                         |    2 +-
 gazebo/gui/QTestFixture.hh                         |    2 +-
 gazebo/gui/RenderWidget.cc                         |    2 +-
 gazebo/gui/RenderWidget.hh                         |    2 +-
 gazebo/gui/RenderWidget_TEST.cc                    |    2 +-
 gazebo/gui/RenderWidget_TEST.hh                    |    2 +-
 gazebo/gui/SaveDialog.cc                           |    2 +-
 gazebo/gui/SaveDialog.hh                           |    2 +-
 gazebo/gui/SaveDialogPrivate.hh                    |    2 +-
 gazebo/gui/SaveDialog_TEST.cc                      |    2 +-
 gazebo/gui/SaveDialog_TEST.hh                      |    2 +-
 gazebo/gui/SpaceNav.cc                             |    2 +-
 gazebo/gui/SpaceNav.hh                             |    2 +-
 gazebo/gui/SpaceNavPrivate.hh                      |    2 +-
 gazebo/gui/SplashScreen.cc                         |    2 +-
 gazebo/gui/SplashScreen.hh                         |    2 +-
 gazebo/gui/SplashScreenPrivate.hh                  |    2 +-
 gazebo/gui/SplashScreen_TEST.cc                    |    2 +-
 gazebo/gui/SplashScreen_TEST.hh                    |    2 +-
 gazebo/gui/TimePanel.cc                            |    2 +-
 gazebo/gui/TimePanel.hh                            |    2 +-
 gazebo/gui/TimePanelPrivate.hh                     |    2 +-
 gazebo/gui/TimePanel_TEST.cc                       |    2 +-
 gazebo/gui/TimePanel_TEST.hh                       |    2 +-
 gazebo/gui/TimeWidget.cc                           |    2 +-
 gazebo/gui/TimeWidget.hh                           |    2 +-
 gazebo/gui/TimeWidgetPrivate.hh                    |    2 +-
 gazebo/gui/TimeWidget_TEST.cc                      |    2 +-
 gazebo/gui/TimeWidget_TEST.hh                      |    2 +-
 gazebo/gui/ToolsWidget.cc                          |    2 +-
 gazebo/gui/ToolsWidget.hh                          |    2 +-
 gazebo/gui/TopToolbar.cc                           |    2 +-
 gazebo/gui/TopToolbar.hh                           |    2 +-
 gazebo/gui/TopToolbarPrivate.hh                    |    2 +-
 gazebo/gui/TopToolbar_TEST.cc                      |    2 +-
 gazebo/gui/TopToolbar_TEST.hh                      |    2 +-
 gazebo/gui/TopicSelector.cc                        |    2 +-
 gazebo/gui/TopicSelector.hh                        |    2 +-
 gazebo/gui/UserCmdHistory.cc                       |    2 +-
 gazebo/gui/UserCmdHistory.hh                       |    2 +-
 gazebo/gui/UserCmdHistoryPrivate.hh                |    2 +-
 gazebo/gui/ViewAngleWidget.cc                      |    2 +-
 gazebo/gui/ViewAngleWidget.hh                      |    2 +-
 gazebo/gui/ViewAngleWidgetPrivate.hh               |    2 +-
 gazebo/gui/ViewAngleWidget_TEST.cc                 |    2 +-
 gazebo/gui/ViewAngleWidget_TEST.hh                 |    2 +-
 gazebo/gui/building/BaseInspectorDialog.cc         |    2 +-
 gazebo/gui/building/BaseInspectorDialog.hh         |    2 +-
 gazebo/gui/building/BaseInspectorDialogPrivate.hh  |    2 +-
 gazebo/gui/building/BuildingEditor.cc              |    2 +-
 gazebo/gui/building/BuildingEditor.hh              |    2 +-
 gazebo/gui/building/BuildingEditorEvents.cc        |    2 +-
 gazebo/gui/building/BuildingEditorEvents.hh        |    2 +-
 gazebo/gui/building/BuildingEditorPalette.cc       |    2 +-
 gazebo/gui/building/BuildingEditorPalette.hh       |    2 +-
 .../gui/building/BuildingEditorPalettePrivate.hh   |    2 +-
 gazebo/gui/building/BuildingEditorWidget.cc        |    2 +-
 gazebo/gui/building/BuildingEditorWidget.hh        |    2 +-
 gazebo/gui/building/BuildingEditorWidgetPrivate.hh |    2 +-
 gazebo/gui/building/BuildingMaker.cc               |    2 +-
 gazebo/gui/building/BuildingMaker.hh               |    2 +-
 gazebo/gui/building/BuildingMakerPrivate.hh        |    2 +-
 gazebo/gui/building/BuildingMaker_TEST.cc          |    2 +-
 gazebo/gui/building/BuildingMaker_TEST.hh          |    2 +-
 gazebo/gui/building/BuildingModelManip.cc          |    2 +-
 gazebo/gui/building/BuildingModelManip.hh          |    2 +-
 gazebo/gui/building/BuildingModelManipPrivate.hh   |    2 +-
 gazebo/gui/building/DoorItem.cc                    |    2 +-
 gazebo/gui/building/DoorItem.hh                    |    2 +-
 gazebo/gui/building/DoorItemPrivate.hh             |    2 +-
 gazebo/gui/building/EditorItem.cc                  |    2 +-
 gazebo/gui/building/EditorItem.hh                  |    2 +-
 gazebo/gui/building/EditorItemPrivate.hh           |    2 +-
 gazebo/gui/building/EditorView.cc                  |    2 +-
 gazebo/gui/building/EditorView.hh                  |    2 +-
 gazebo/gui/building/FloorItem.cc                   |    2 +-
 gazebo/gui/building/FloorItem.hh                   |    2 +-
 gazebo/gui/building/FloorItemPrivate.hh            |    2 +-
 gazebo/gui/building/GrabberHandle.cc               |    2 +-
 gazebo/gui/building/GrabberHandle.hh               |    2 +-
 gazebo/gui/building/GrabberHandlePrivate.hh        |    2 +-
 gazebo/gui/building/GridLines.cc                   |    2 +-
 gazebo/gui/building/GridLines.hh                   |    2 +-
 gazebo/gui/building/GridLinesPrivate.hh            |    2 +-
 gazebo/gui/building/ImportImageDialog.cc           |    2 +-
 gazebo/gui/building/ImportImageDialog.hh           |    2 +-
 gazebo/gui/building/ImportImageDialogPrivate.hh    |    2 +-
 gazebo/gui/building/ImportImageView.cc             |    2 +-
 gazebo/gui/building/ImportImageView.hh             |    2 +-
 gazebo/gui/building/ImportImageViewPrivate.hh      |    2 +-
 gazebo/gui/building/LevelInspectorDialog.cc        |    2 +-
 gazebo/gui/building/LevelInspectorDialog.hh        |    2 +-
 gazebo/gui/building/LevelInspectorDialogPrivate.hh |    2 +-
 gazebo/gui/building/LevelWidget.cc                 |    2 +-
 gazebo/gui/building/LevelWidget.hh                 |    2 +-
 gazebo/gui/building/LevelWidgetPrivate.hh          |    2 +-
 gazebo/gui/building/MeasureItem.cc                 |    2 +-
 gazebo/gui/building/MeasureItem.hh                 |    2 +-
 gazebo/gui/building/MeasureItemPrivate.hh          |    2 +-
 gazebo/gui/building/RectItem.cc                    |    2 +-
 gazebo/gui/building/RectItem.hh                    |    2 +-
 gazebo/gui/building/RectItemPrivate.hh             |    2 +-
 gazebo/gui/building/RotateHandle.cc                |    2 +-
 gazebo/gui/building/RotateHandle.hh                |    2 +-
 gazebo/gui/building/RotateHandlePrivate.hh         |    2 +-
 gazebo/gui/building/ScaleWidget.cc                 |    2 +-
 gazebo/gui/building/ScaleWidget.hh                 |    2 +-
 gazebo/gui/building/SegmentItem.cc                 |    2 +-
 gazebo/gui/building/SegmentItem.hh                 |    2 +-
 gazebo/gui/building/SegmentItemPrivate.hh          |    2 +-
 gazebo/gui/building/StairsInspectorDialog.cc       |    2 +-
 gazebo/gui/building/StairsInspectorDialog.hh       |    2 +-
 .../gui/building/StairsInspectorDialogPrivate.hh   |    2 +-
 gazebo/gui/building/StairsItem.cc                  |    2 +-
 gazebo/gui/building/StairsItem.hh                  |    2 +-
 gazebo/gui/building/StairsItemPrivate.hh           |    2 +-
 gazebo/gui/building/WallInspectorDialog.cc         |    2 +-
 gazebo/gui/building/WallInspectorDialog.hh         |    2 +-
 gazebo/gui/building/WallInspectorDialogPrivate.hh  |    2 +-
 gazebo/gui/building/WallSegmentItem.cc             |    2 +-
 gazebo/gui/building/WallSegmentItem.hh             |    2 +-
 gazebo/gui/building/WallSegmentItemPrivate.hh      |    2 +-
 gazebo/gui/building/WindowDoorInspectorDialog.cc   |    2 +-
 gazebo/gui/building/WindowDoorInspectorDialog.hh   |    2 +-
 .../building/WindowDoorInspectorDialogPrivate.hh   |    2 +-
 gazebo/gui/building/WindowItem.cc                  |    2 +-
 gazebo/gui/building/WindowItem.hh                  |    2 +-
 gazebo/gui/building/WindowItemPrivate.hh           |    2 +-
 gazebo/gui/main.cc                                 |    2 +-
 gazebo/gui/model/CollisionConfig.cc                |    2 +-
 gazebo/gui/model/CollisionConfig.hh                |    2 +-
 gazebo/gui/model/CollisionConfig_TEST.cc           |    2 +-
 gazebo/gui/model/CollisionConfig_TEST.hh           |    2 +-
 gazebo/gui/model/EditorMaterialSwitcher.cc         |    2 +-
 gazebo/gui/model/EditorMaterialSwitcher.hh         |    2 +-
 gazebo/gui/model/EditorMaterialSwitcher_TEST.cc    |    2 +-
 gazebo/gui/model/EditorMaterialSwitcher_TEST.hh    |    2 +-
 gazebo/gui/model/ExtrudeDialog.cc                  |    2 +-
 gazebo/gui/model/ExtrudeDialog.hh                  |    2 +-
 gazebo/gui/model/ExtrudeDialogPrivate.hh           |    2 +-
 gazebo/gui/model/ExtrudeDialog_TEST.cc             |   14 +-
 gazebo/gui/model/ExtrudeDialog_TEST.hh             |    2 +-
 gazebo/gui/model/GraphScene.cc                     |    2 +-
 gazebo/gui/model/GraphScene.hh                     |    2 +-
 gazebo/gui/model/GraphScene_TEST.cc                |    2 +-
 gazebo/gui/model/GraphScene_TEST.hh                |    2 +-
 gazebo/gui/model/GraphView.cc                      |    2 +-
 gazebo/gui/model/GraphView.hh                      |    2 +-
 gazebo/gui/model/ImportDialog.cc                   |    2 +-
 gazebo/gui/model/ImportDialog.hh                   |    2 +-
 gazebo/gui/model/JointCreationDialog.cc            |    2 +-
 gazebo/gui/model/JointCreationDialog.hh            |    2 +-
 gazebo/gui/model/JointCreationDialogPrivate.hh     |    2 +-
 gazebo/gui/model/JointCreationDialog_TEST.cc       |    2 +-
 gazebo/gui/model/JointCreationDialog_TEST.hh       |    2 +-
 gazebo/gui/model/JointInspector.cc                 |    2 +-
 gazebo/gui/model/JointInspector.hh                 |    2 +-
 gazebo/gui/model/JointInspectorPrivate.hh          |    2 +-
 gazebo/gui/model/JointInspector_TEST.cc            |    2 +-
 gazebo/gui/model/JointInspector_TEST.hh            |    2 +-
 gazebo/gui/model/JointMaker.cc                     |    2 +-
 gazebo/gui/model/JointMaker.hh                     |    2 +-
 gazebo/gui/model/JointMakerPrivate.hh              |    2 +-
 gazebo/gui/model/JointMaker_TEST.cc                |    2 +-
 gazebo/gui/model/JointMaker_TEST.hh                |    2 +-
 gazebo/gui/model/LinkConfig.cc                     |    2 +-
 gazebo/gui/model/LinkConfig.hh                     |    2 +-
 gazebo/gui/model/LinkConfig_TEST.cc                |    2 +-
 gazebo/gui/model/LinkConfig_TEST.hh                |    2 +-
 gazebo/gui/model/LinkInspector.cc                  |    2 +-
 gazebo/gui/model/LinkInspector.hh                  |    2 +-
 gazebo/gui/model/LinkInspectorPrivate.hh           |    2 +-
 gazebo/gui/model/LinkInspector_TEST.cc             |    2 +-
 gazebo/gui/model/LinkInspector_TEST.hh             |    2 +-
 gazebo/gui/model/ModelCreator.cc                   |    2 +-
 gazebo/gui/model/ModelCreator.hh                   |    2 +-
 gazebo/gui/model/ModelCreator_TEST.cc              |    2 +-
 gazebo/gui/model/ModelCreator_TEST.hh              |    2 +-
 gazebo/gui/model/ModelData.cc                      |    2 +-
 gazebo/gui/model/ModelData.hh                      |    2 +-
 gazebo/gui/model/ModelData_TEST.cc                 |    2 +-
 gazebo/gui/model/ModelData_TEST.hh                 |    2 +-
 gazebo/gui/model/ModelEditor.cc                    |    2 +-
 gazebo/gui/model/ModelEditor.hh                    |    2 +-
 gazebo/gui/model/ModelEditorEvents.cc              |    2 +-
 gazebo/gui/model/ModelEditorEvents.hh              |    2 +-
 gazebo/gui/model/ModelEditorPalette.cc             |    2 +-
 gazebo/gui/model/ModelEditorPalette.hh             |    2 +-
 gazebo/gui/model/ModelEditorPalette_TEST.cc        |    2 +-
 gazebo/gui/model/ModelEditorPalette_TEST.hh        |    2 +-
 gazebo/gui/model/ModelEditorPrivate.hh             |    2 +-
 gazebo/gui/model/ModelEditorTypes.hh               |    2 +-
 gazebo/gui/model/ModelEditor_TEST.cc               |    2 +-
 gazebo/gui/model/ModelEditor_TEST.hh               |    2 +-
 gazebo/gui/model/ModelPluginInspector.cc           |    2 +-
 gazebo/gui/model/ModelPluginInspector.hh           |    2 +-
 gazebo/gui/model/ModelPluginInspectorPrivate.hh    |    2 +-
 gazebo/gui/model/ModelPluginInspector_TEST.cc      |    2 +-
 gazebo/gui/model/ModelPluginInspector_TEST.hh      |    2 +-
 gazebo/gui/model/ModelTreeWidget.cc                |    2 +-
 gazebo/gui/model/ModelTreeWidget.hh                |    2 +-
 gazebo/gui/model/ModelTreeWidget_TEST.cc           |    2 +-
 gazebo/gui/model/ModelTreeWidget_TEST.hh           |    2 +-
 gazebo/gui/model/SchematicViewWidget.cc            |    2 +-
 gazebo/gui/model/SchematicViewWidget.hh            |    2 +-
 gazebo/gui/model/SchematicViewWidget_TEST.cc       |    2 +-
 gazebo/gui/model/SchematicViewWidget_TEST.hh       |    2 +-
 gazebo/gui/model/VisualConfig.cc                   |    2 +-
 gazebo/gui/model/VisualConfig.hh                   |    2 +-
 gazebo/gui/model/VisualConfig_TEST.cc              |    2 +-
 gazebo/gui/model/VisualConfig_TEST.hh              |    2 +-
 gazebo/gui/qt.h                                    |    2 +-
 gazebo/gui/qt_test.h                               |    2 +-
 gazebo/gui/terrain/TerrainEditor.cc                |    2 +-
 gazebo/gui/terrain/TerrainEditor.hh                |    2 +-
 gazebo/gui/terrain/TerrainEditorPalette.cc         |    2 +-
 gazebo/gui/terrain/TerrainEditorPalette.hh         |    2 +-
 gazebo/gui/terrain/TerrainEditorPalettePrivate.hh  |    2 +-
 gazebo/gui/terrain/TerrainEditorPrivate.hh         |    2 +-
 gazebo/gui/viewers/ImageFrame.cc                   |    2 +-
 gazebo/gui/viewers/ImageFrame.hh                   |    2 +-
 gazebo/gui/viewers/ImageFramePrivate.hh            |    2 +-
 gazebo/gui/viewers/ImageView.cc                    |    2 +-
 gazebo/gui/viewers/ImageView.hh                    |    2 +-
 gazebo/gui/viewers/ImageViewPrivate.hh             |    2 +-
 gazebo/gui/viewers/ImagesView.cc                   |    2 +-
 gazebo/gui/viewers/ImagesView.hh                   |    2 +-
 gazebo/gui/viewers/ImagesViewPrivate.hh            |    2 +-
 gazebo/gui/viewers/ImagesView_TEST.cc              |    2 +-
 gazebo/gui/viewers/ImagesView_TEST.hh              |    2 +-
 gazebo/gui/viewers/LaserView.cc                    |    7 +-
 gazebo/gui/viewers/LaserView.hh                    |    2 +-
 gazebo/gui/viewers/LaserView_TEST.cc               |    2 +-
 gazebo/gui/viewers/LaserView_TEST.hh               |    2 +-
 gazebo/gui/viewers/TextView.cc                     |    2 +-
 gazebo/gui/viewers/TextView.hh                     |    2 +-
 gazebo/gui/viewers/TopicView.cc                    |    2 +-
 gazebo/gui/viewers/TopicView.hh                    |    2 +-
 gazebo/gui/viewers/ViewFactory.cc                  |    2 +-
 gazebo/gui/viewers/ViewFactory.hh                  |    2 +-
 gazebo/gzserver.1.ronn                             |    4 +
 gazebo/math/Angle.cc                               |    2 +-
 gazebo/math/Angle.hh                               |    2 +-
 gazebo/math/Angle_TEST.cc                          |    2 +-
 gazebo/math/Box.cc                                 |    2 +-
 gazebo/math/Box.hh                                 |    2 +-
 gazebo/math/Box_TEST.cc                            |    2 +-
 gazebo/math/Filter.hh                              |    2 +-
 gazebo/math/Helpers.cc                             |    2 +-
 gazebo/math/Helpers.hh                             |    2 +-
 gazebo/math/Helpers_TEST.cc                        |    2 +-
 gazebo/math/Kmeans.cc                              |    2 +-
 gazebo/math/Kmeans.hh                              |    2 +-
 gazebo/math/Kmeans_TEST.cc                         |    2 +-
 gazebo/math/MathTypes.hh                           |    2 +-
 gazebo/math/Matrix3.cc                             |    2 +-
 gazebo/math/Matrix3.hh                             |    2 +-
 gazebo/math/Matrix3_TEST.cc                        |    2 +-
 gazebo/math/Matrix4.cc                             |    2 +-
 gazebo/math/Matrix4.hh                             |    2 +-
 gazebo/math/Plane.cc                               |    2 +-
 gazebo/math/Plane.hh                               |    2 +-
 gazebo/math/Plane_TEST.cc                          |    2 +-
 gazebo/math/Pose.cc                                |    2 +-
 gazebo/math/Pose.hh                                |    2 +-
 gazebo/math/Pose_TEST.cc                           |    2 +-
 gazebo/math/Quaternion.cc                          |    2 +-
 gazebo/math/Quaternion.hh                          |    2 +-
 gazebo/math/Quaternion_TEST.cc                     |    2 +-
 gazebo/math/Rand.cc                                |    2 +-
 gazebo/math/Rand.hh                                |    2 +-
 gazebo/math/Rand_TEST.cc                           |    2 +-
 gazebo/math/RotationSpline.cc                      |    2 +-
 gazebo/math/RotationSpline.hh                      |    2 +-
 gazebo/math/RotationSpline_TEST.cc                 |    2 +-
 gazebo/math/SignalStats.cc                         |    2 +-
 gazebo/math/SignalStats.hh                         |    2 +-
 gazebo/math/SignalStatsPrivate.hh                  |    2 +-
 gazebo/math/SignalStats_TEST.cc                    |    2 +-
 gazebo/math/Spline.cc                              |    2 +-
 gazebo/math/Spline.hh                              |    2 +-
 gazebo/math/Spline_TEST.cc                         |    2 +-
 gazebo/math/Vector2d.cc                            |    2 +-
 gazebo/math/Vector2d.hh                            |    2 +-
 gazebo/math/Vector2d_TEST.cc                       |    2 +-
 gazebo/math/Vector2i.cc                            |    2 +-
 gazebo/math/Vector2i.hh                            |    2 +-
 gazebo/math/Vector2i_TEST.cc                       |    2 +-
 gazebo/math/Vector3.cc                             |    2 +-
 gazebo/math/Vector3.hh                             |    2 +-
 gazebo/math/Vector3Stats.cc                        |    2 +-
 gazebo/math/Vector3Stats.hh                        |    2 +-
 gazebo/math/Vector3StatsPrivate.hh                 |    2 +-
 gazebo/math/Vector3Stats_TEST.cc                   |    2 +-
 gazebo/math/Vector3_TEST.cc                        |    2 +-
 gazebo/math/Vector4.cc                             |    2 +-
 gazebo/math/Vector4.hh                             |    2 +-
 gazebo/math/Vector4_TEST.cc                        |    2 +-
 gazebo/msgs/MsgFactory.cc                          |    2 +-
 gazebo/msgs/MsgFactory.hh                          |    2 +-
 gazebo/msgs/MsgFactory_TEST.cc                     |    2 +-
 gazebo/msgs/generator/GazeboGenerator.cc           |    2 +-
 gazebo/msgs/generator/GazeboGenerator.hh           |    2 +-
 gazebo/msgs/generator/gazebo_generator.cc          |    2 +-
 gazebo/msgs/msgs.cc                                |    4 +-
 gazebo/msgs/msgs.hh                                |    2 +-
 gazebo/msgs/msgs_TEST.cc                           |    2 +-
 gazebo/physics/Actor.cc                            |    2 +-
 gazebo/physics/Actor.hh                            |    2 +-
 gazebo/physics/BallJoint.hh                        |    2 +-
 gazebo/physics/Base.cc                             |    2 +-
 gazebo/physics/Base.hh                             |    2 +-
 gazebo/physics/BoxShape.cc                         |    2 +-
 gazebo/physics/BoxShape.hh                         |    2 +-
 gazebo/physics/BoxShape_TEST.cc                    |    2 +-
 gazebo/physics/Collision.cc                        |   10 +-
 gazebo/physics/Collision.hh                        |    7 +-
 gazebo/physics/CollisionState.cc                   |    2 +-
 gazebo/physics/CollisionState.hh                   |    2 +-
 gazebo/physics/Contact.cc                          |    2 +-
 gazebo/physics/Contact.hh                          |    2 +-
 gazebo/physics/ContactManager.cc                   |    2 +-
 gazebo/physics/ContactManager.hh                   |    2 +-
 gazebo/physics/ContactManager_TEST.cc              |    2 +-
 gazebo/physics/CylinderShape.cc                    |    2 +-
 gazebo/physics/CylinderShape.hh                    |    2 +-
 gazebo/physics/CylinderShape_TEST.cc               |    2 +-
 gazebo/physics/Entity.cc                           |    2 +-
 gazebo/physics/Entity.hh                           |    2 +-
 gazebo/physics/FixedJoint.hh                       |    2 +-
 gazebo/physics/GearboxJoint.hh                     |    2 +-
 gazebo/physics/Gripper.cc                          |    2 +-
 gazebo/physics/Gripper.hh                          |    2 +-
 gazebo/physics/HeightmapShape.cc                   |    2 +-
 gazebo/physics/HeightmapShape.hh                   |    2 +-
 gazebo/physics/Hinge2Joint.hh                      |    2 +-
 gazebo/physics/HingeJoint.hh                       |    2 +-
 gazebo/physics/Inertial.cc                         |    2 +-
 gazebo/physics/Inertial.hh                         |    2 +-
 gazebo/physics/Inertial_TEST.cc                    |    2 +-
 gazebo/physics/Joint.cc                            |    2 +-
 gazebo/physics/Joint.hh                            |    2 +-
 gazebo/physics/JointController.cc                  |    2 +-
 gazebo/physics/JointController.hh                  |    2 +-
 gazebo/physics/JointControllerPrivate.hh           |    2 +-
 gazebo/physics/JointController_TEST.cc             |    2 +-
 gazebo/physics/JointState.cc                       |    2 +-
 gazebo/physics/JointState.hh                       |    2 +-
 gazebo/physics/JointWrench.hh                      |    2 +-
 gazebo/physics/Light.cc                            |    2 +-
 gazebo/physics/Light.hh                            |    2 +-
 gazebo/physics/LightState.cc                       |    2 +-
 gazebo/physics/LightState.hh                       |    2 +-
 gazebo/physics/LightState_TEST.cc                  |    2 +-
 gazebo/physics/Light_TEST.cc                       |    2 +-
 gazebo/physics/Link.cc                             |    2 +-
 gazebo/physics/Link.hh                             |    2 +-
 gazebo/physics/LinkState.cc                        |   18 +-
 gazebo/physics/LinkState.hh                        |   53 +-
 gazebo/physics/MapShape.cc                         |    2 +-
 gazebo/physics/MapShape.hh                         |    2 +-
 gazebo/physics/MeshShape.cc                        |    2 +-
 gazebo/physics/MeshShape.hh                        |    2 +-
 gazebo/physics/Model.cc                            |   34 +-
 gazebo/physics/Model.hh                            |   17 +-
 gazebo/physics/ModelState.cc                       |    2 +-
 gazebo/physics/ModelState.hh                       |   26 +-
 gazebo/physics/ModelState_TEST.cc                  |    2 +-
 gazebo/physics/Model_TEST.cc                       |   28 +-
 gazebo/physics/MultiRayShape.cc                    |    2 +-
 gazebo/physics/MultiRayShape.hh                    |    2 +-
 gazebo/physics/PhysicsEngine.cc                    |    2 +-
 gazebo/physics/PhysicsEngine.hh                    |    2 +-
 gazebo/physics/PhysicsEngine_TEST.cc               |    2 +-
 gazebo/physics/PhysicsFactory.cc                   |    2 +-
 gazebo/physics/PhysicsFactory.hh                   |    2 +-
 gazebo/physics/PhysicsIface.cc                     |    2 +-
 gazebo/physics/PhysicsIface.hh                     |    2 +-
 gazebo/physics/PhysicsTypes.hh                     |    2 +-
 gazebo/physics/PlaneShape.cc                       |    2 +-
 gazebo/physics/PlaneShape.hh                       |    2 +-
 gazebo/physics/PolylineShape.cc                    |    2 +-
 gazebo/physics/PolylineShape.hh                    |    2 +-
 gazebo/physics/Population.cc                       |    2 +-
 gazebo/physics/Population.hh                       |    2 +-
 gazebo/physics/PopulationPrivate.hh                |    2 +-
 gazebo/physics/PresetManager.cc                    |    2 +-
 gazebo/physics/PresetManager.hh                    |    2 +-
 gazebo/physics/PresetManagerPrivate.hh             |    2 +-
 gazebo/physics/PresetManager_TEST.cc               |    2 +-
 gazebo/physics/RayShape.cc                         |    2 +-
 gazebo/physics/RayShape.hh                         |    2 +-
 gazebo/physics/Road.cc                             |    2 +-
 gazebo/physics/Road.hh                             |    2 +-
 gazebo/physics/Road_TEST.cc                        |    2 +-
 gazebo/physics/ScrewJoint.hh                       |    2 +-
 gazebo/physics/Shape.cc                            |    2 +-
 gazebo/physics/Shape.hh                            |    2 +-
 gazebo/physics/SliderJoint.hh                      |    2 +-
 gazebo/physics/SphereShape.cc                      |    2 +-
 gazebo/physics/SphereShape.hh                      |    2 +-
 gazebo/physics/SphereShape_TEST.cc                 |    2 +-
 gazebo/physics/State.cc                            |    2 +-
 gazebo/physics/State.hh                            |    2 +-
 gazebo/physics/SurfaceParams.cc                    |    2 +-
 gazebo/physics/SurfaceParams.hh                    |    2 +-
 gazebo/physics/UniversalJoint.hh                   |    2 +-
 gazebo/physics/UserCmdManager.cc                   |    2 +-
 gazebo/physics/UserCmdManager.hh                   |    2 +-
 gazebo/physics/UserCmdManagerPrivate.hh            |    2 +-
 gazebo/physics/UserCmdManager_TEST.cc              |    2 +-
 gazebo/physics/World.cc                            |   79 +-
 gazebo/physics/World.hh                            |    2 +-
 gazebo/physics/WorldPrivate.hh                     |    9 +-
 gazebo/physics/WorldState.cc                       |   57 +-
 gazebo/physics/WorldState.hh                       |   10 +-
 gazebo/physics/WorldState_TEST.cc                  |   74 +-
 gazebo/physics/bullet/BulletBallJoint.cc           |    2 +-
 gazebo/physics/bullet/BulletBallJoint.hh           |    2 +-
 gazebo/physics/bullet/BulletBoxShape.hh            |    2 +-
 gazebo/physics/bullet/BulletCollision.cc           |   50 +-
 gazebo/physics/bullet/BulletCollision.hh           |    2 +-
 gazebo/physics/bullet/BulletCylinderShape.hh       |    2 +-
 gazebo/physics/bullet/BulletFixedJoint.cc          |    2 +-
 gazebo/physics/bullet/BulletFixedJoint.hh          |    2 +-
 gazebo/physics/bullet/BulletHeightmapShape.cc      |    2 +-
 gazebo/physics/bullet/BulletHeightmapShape.hh      |    2 +-
 gazebo/physics/bullet/BulletHinge2Joint.cc         |    2 +-
 gazebo/physics/bullet/BulletHinge2Joint.hh         |    2 +-
 gazebo/physics/bullet/BulletHingeJoint.cc          |    2 +-
 gazebo/physics/bullet/BulletHingeJoint.hh          |    2 +-
 gazebo/physics/bullet/BulletJoint.cc               |    2 +-
 gazebo/physics/bullet/BulletJoint.hh               |    2 +-
 gazebo/physics/bullet/BulletLink.cc                |   29 +-
 gazebo/physics/bullet/BulletLink.hh                |    5 +-
 gazebo/physics/bullet/BulletMesh.cc                |    2 +-
 gazebo/physics/bullet/BulletMesh.hh                |    2 +-
 gazebo/physics/bullet/BulletMeshShape.cc           |    2 +-
 gazebo/physics/bullet/BulletMeshShape.hh           |    2 +-
 gazebo/physics/bullet/BulletMotionState.cc         |    2 +-
 gazebo/physics/bullet/BulletMotionState.hh         |    2 +-
 gazebo/physics/bullet/BulletMultiRayShape.cc       |    2 +-
 gazebo/physics/bullet/BulletMultiRayShape.hh       |    2 +-
 gazebo/physics/bullet/BulletPhysics.cc             |   18 +-
 gazebo/physics/bullet/BulletPhysics.hh             |    2 +-
 gazebo/physics/bullet/BulletPhysics_TEST.cc        |    2 +-
 gazebo/physics/bullet/BulletPlaneShape.hh          |    2 +-
 gazebo/physics/bullet/BulletPolylineShape.cc       |    2 +-
 gazebo/physics/bullet/BulletPolylineShape.hh       |    2 +-
 gazebo/physics/bullet/BulletRayShape.cc            |    2 +-
 gazebo/physics/bullet/BulletRayShape.hh            |    2 +-
 gazebo/physics/bullet/BulletScrewJoint.cc          |    2 +-
 gazebo/physics/bullet/BulletScrewJoint.hh          |    2 +-
 gazebo/physics/bullet/BulletSliderJoint.cc         |    2 +-
 gazebo/physics/bullet/BulletSliderJoint.hh         |    2 +-
 gazebo/physics/bullet/BulletSphereShape.hh         |    2 +-
 gazebo/physics/bullet/BulletSurfaceParams.cc       |    2 +-
 gazebo/physics/bullet/BulletSurfaceParams.hh       |    2 +-
 gazebo/physics/bullet/BulletTypes.hh               |    2 +-
 gazebo/physics/bullet/BulletTypes_TEST.cc          |    2 +-
 gazebo/physics/bullet/BulletUniversalJoint.cc      |    2 +-
 gazebo/physics/bullet/BulletUniversalJoint.hh      |    2 +-
 gazebo/physics/bullet/bullet_inc.h                 |    2 +-
 gazebo/physics/bullet/bullet_math_inc.h            |    2 +-
 gazebo/physics/bullet/gzBtUniversalConstraint.cc   |    2 +-
 gazebo/physics/bullet/gzBtUniversalConstraint.hh   |    2 +-
 gazebo/physics/dart/DARTBallJoint.cc               |    2 +-
 gazebo/physics/dart/DARTBallJoint.hh               |    2 +-
 gazebo/physics/dart/DARTBoxShape.cc                |    2 +-
 gazebo/physics/dart/DARTBoxShape.hh                |    2 +-
 gazebo/physics/dart/DARTBoxShapePrivate.hh         |    2 +-
 gazebo/physics/dart/DARTCollision.cc               |    2 +-
 gazebo/physics/dart/DARTCollision.hh               |    2 +-
 gazebo/physics/dart/DARTCollisionPrivate.hh        |    2 +-
 gazebo/physics/dart/DARTCylinderShape.cc           |    2 +-
 gazebo/physics/dart/DARTCylinderShape.hh           |    2 +-
 gazebo/physics/dart/DARTCylinderShapePrivate.hh    |    2 +-
 gazebo/physics/dart/DARTFixedJoint.cc              |    2 +-
 gazebo/physics/dart/DARTFixedJoint.hh              |    2 +-
 gazebo/physics/dart/DARTHeightmapShape.cc          |    2 +-
 gazebo/physics/dart/DARTHeightmapShape.hh          |    2 +-
 gazebo/physics/dart/DARTHeightmapShapePrivate.hh   |    2 +-
 gazebo/physics/dart/DARTHinge2Joint.cc             |    2 +-
 gazebo/physics/dart/DARTHinge2Joint.hh             |    2 +-
 gazebo/physics/dart/DARTHingeJoint.cc              |    2 +-
 gazebo/physics/dart/DARTHingeJoint.hh              |    2 +-
 gazebo/physics/dart/DARTJoint.cc                   |    2 +-
 gazebo/physics/dart/DARTJoint.hh                   |    2 +-
 gazebo/physics/dart/DARTJointPrivate.hh            |    2 +-
 gazebo/physics/dart/DARTLink.cc                    |    2 +-
 gazebo/physics/dart/DARTLink.hh                    |    2 +-
 gazebo/physics/dart/DARTLinkPrivate.hh             |    2 +-
 gazebo/physics/dart/DARTMesh.cc                    |    2 +-
 gazebo/physics/dart/DARTMesh.hh                    |    2 +-
 gazebo/physics/dart/DARTMeshPrivate.hh             |    2 +-
 gazebo/physics/dart/DARTMeshShape.cc               |    2 +-
 gazebo/physics/dart/DARTMeshShape.hh               |    2 +-
 gazebo/physics/dart/DARTMeshShapePrivate.hh        |    2 +-
 gazebo/physics/dart/DARTModel.cc                   |    2 +-
 gazebo/physics/dart/DARTModel.hh                   |    2 +-
 gazebo/physics/dart/DARTModelPrivate.hh            |    2 +-
 gazebo/physics/dart/DARTMultiRayShape.cc           |    2 +-
 gazebo/physics/dart/DARTMultiRayShape.hh           |    2 +-
 gazebo/physics/dart/DARTMultiRayShapePrivate.hh    |    2 +-
 gazebo/physics/dart/DARTPhysics.cc                 |    2 +-
 gazebo/physics/dart/DARTPhysics.hh                 |    2 +-
 gazebo/physics/dart/DARTPhysicsPrivate.hh          |    2 +-
 gazebo/physics/dart/DARTPlaneShape.cc              |    2 +-
 gazebo/physics/dart/DARTPlaneShape.hh              |    2 +-
 gazebo/physics/dart/DARTPlaneShapePrivate.hh       |    2 +-
 gazebo/physics/dart/DARTPolylineShape.cc           |    2 +-
 gazebo/physics/dart/DARTPolylineShape.hh           |    2 +-
 gazebo/physics/dart/DARTPolylineShapePrivate.hh    |    2 +-
 gazebo/physics/dart/DARTRayShape.cc                |    2 +-
 gazebo/physics/dart/DARTRayShape.hh                |    2 +-
 gazebo/physics/dart/DARTRayShapePrivate.hh         |    2 +-
 gazebo/physics/dart/DARTScrewJoint.cc              |    2 +-
 gazebo/physics/dart/DARTScrewJoint.hh              |    2 +-
 gazebo/physics/dart/DARTSliderJoint.cc             |    2 +-
 gazebo/physics/dart/DARTSliderJoint.hh             |    2 +-
 gazebo/physics/dart/DARTSphereShape.cc             |    2 +-
 gazebo/physics/dart/DARTSphereShape.hh             |    2 +-
 gazebo/physics/dart/DARTSphereShapePrivate.hh      |    2 +-
 gazebo/physics/dart/DARTSurfaceParams.cc           |    2 +-
 gazebo/physics/dart/DARTSurfaceParams.hh           |    2 +-
 gazebo/physics/dart/DARTSurfaceParamsPrivate.hh    |    2 +-
 gazebo/physics/dart/DARTTypes.hh                   |    2 +-
 gazebo/physics/dart/DARTUniversalJoint.cc          |    2 +-
 gazebo/physics/dart/DARTUniversalJoint.hh          |    2 +-
 gazebo/physics/dart/dart_inc.h                     |    2 +-
 gazebo/physics/ode/ODEBallJoint.cc                 |    2 +-
 gazebo/physics/ode/ODEBallJoint.hh                 |    2 +-
 gazebo/physics/ode/ODEBoxShape.hh                  |    2 +-
 gazebo/physics/ode/ODECollision.cc                 |    2 +-
 gazebo/physics/ode/ODECollision.hh                 |    2 +-
 gazebo/physics/ode/ODECylinderShape.hh             |    2 +-
 gazebo/physics/ode/ODEFixedJoint.cc                |    2 +-
 gazebo/physics/ode/ODEFixedJoint.hh                |    2 +-
 gazebo/physics/ode/ODEGearboxJoint.cc              |    2 +-
 gazebo/physics/ode/ODEGearboxJoint.hh              |    2 +-
 gazebo/physics/ode/ODEHeightmapShape.cc            |    2 +-
 gazebo/physics/ode/ODEHeightmapShape.hh            |    2 +-
 gazebo/physics/ode/ODEHinge2Joint.cc               |    2 +-
 gazebo/physics/ode/ODEHinge2Joint.hh               |    2 +-
 gazebo/physics/ode/ODEHingeJoint.cc                |    2 +-
 gazebo/physics/ode/ODEHingeJoint.hh                |    2 +-
 gazebo/physics/ode/ODEJoint.cc                     |    2 +-
 gazebo/physics/ode/ODEJoint.hh                     |    2 +-
 gazebo/physics/ode/ODEJoint_TEST.cc                |    2 +-
 gazebo/physics/ode/ODELink.cc                      |    2 +-
 gazebo/physics/ode/ODELink.hh                      |    2 +-
 gazebo/physics/ode/ODEMesh.cc                      |    2 +-
 gazebo/physics/ode/ODEMesh.hh                      |    2 +-
 gazebo/physics/ode/ODEMeshShape.cc                 |    2 +-
 gazebo/physics/ode/ODEMeshShape.hh                 |    2 +-
 gazebo/physics/ode/ODEMultiRayShape.cc             |    2 +-
 gazebo/physics/ode/ODEMultiRayShape.hh             |    2 +-
 gazebo/physics/ode/ODEPhysics.cc                   |   16 +-
 gazebo/physics/ode/ODEPhysics.hh                   |    2 +-
 gazebo/physics/ode/ODEPhysicsPrivate.hh            |    2 +-
 gazebo/physics/ode/ODEPhysics_TEST.cc              |    2 +-
 gazebo/physics/ode/ODEPlaneShape.hh                |    2 +-
 gazebo/physics/ode/ODEPolylineShape.cc             |    2 +-
 gazebo/physics/ode/ODEPolylineShape.hh             |    2 +-
 gazebo/physics/ode/ODERayShape.cc                  |    2 +-
 gazebo/physics/ode/ODERayShape.hh                  |    2 +-
 gazebo/physics/ode/ODEScrewJoint.cc                |    2 +-
 gazebo/physics/ode/ODEScrewJoint.hh                |    2 +-
 gazebo/physics/ode/ODESliderJoint.cc               |    2 +-
 gazebo/physics/ode/ODESliderJoint.hh               |    2 +-
 gazebo/physics/ode/ODESphereShape.hh               |    2 +-
 gazebo/physics/ode/ODESurfaceParams.cc             |    2 +-
 gazebo/physics/ode/ODESurfaceParams.hh             |    2 +-
 gazebo/physics/ode/ODETypes.hh                     |    2 +-
 gazebo/physics/ode/ODEUniversalJoint.cc            |    2 +-
 gazebo/physics/ode/ODEUniversalJoint.hh            |    2 +-
 gazebo/physics/ode/ode_inc.h                       |    2 +-
 gazebo/physics/simbody/SimbodyBallJoint.cc         |    2 +-
 gazebo/physics/simbody/SimbodyBallJoint.hh         |    2 +-
 gazebo/physics/simbody/SimbodyBoxShape.hh          |    2 +-
 gazebo/physics/simbody/SimbodyCollision.cc         |    2 +-
 gazebo/physics/simbody/SimbodyCollision.hh         |    2 +-
 gazebo/physics/simbody/SimbodyCylinderShape.hh     |    2 +-
 gazebo/physics/simbody/SimbodyFixedJoint.cc        |    2 +-
 gazebo/physics/simbody/SimbodyFixedJoint.hh        |    2 +-
 gazebo/physics/simbody/SimbodyHeightmapShape.cc    |    2 +-
 gazebo/physics/simbody/SimbodyHeightmapShape.hh    |    2 +-
 gazebo/physics/simbody/SimbodyHinge2Joint.cc       |    2 +-
 gazebo/physics/simbody/SimbodyHinge2Joint.hh       |    2 +-
 gazebo/physics/simbody/SimbodyHingeJoint.cc        |    2 +-
 gazebo/physics/simbody/SimbodyHingeJoint.hh        |    2 +-
 gazebo/physics/simbody/SimbodyJoint.cc             |    2 +-
 gazebo/physics/simbody/SimbodyJoint.hh             |    2 +-
 gazebo/physics/simbody/SimbodyLink.cc              |    2 +-
 gazebo/physics/simbody/SimbodyLink.hh              |    2 +-
 gazebo/physics/simbody/SimbodyMesh.cc              |    2 +-
 gazebo/physics/simbody/SimbodyMesh.hh              |    2 +-
 gazebo/physics/simbody/SimbodyMeshShape.cc         |    2 +-
 gazebo/physics/simbody/SimbodyMeshShape.hh         |    2 +-
 gazebo/physics/simbody/SimbodyModel.cc             |    2 +-
 gazebo/physics/simbody/SimbodyModel.hh             |    2 +-
 gazebo/physics/simbody/SimbodyMultiRayShape.cc     |    2 +-
 gazebo/physics/simbody/SimbodyMultiRayShape.hh     |    2 +-
 gazebo/physics/simbody/SimbodyPhysics.cc           |    2 +-
 gazebo/physics/simbody/SimbodyPhysics.hh           |    2 +-
 gazebo/physics/simbody/SimbodyPlaneShape.cc        |    2 +-
 gazebo/physics/simbody/SimbodyPlaneShape.hh        |    2 +-
 gazebo/physics/simbody/SimbodyPolylineShape.cc     |    2 +-
 gazebo/physics/simbody/SimbodyPolylineShape.hh     |    2 +-
 gazebo/physics/simbody/SimbodyRayShape.cc          |    2 +-
 gazebo/physics/simbody/SimbodyRayShape.hh          |    2 +-
 gazebo/physics/simbody/SimbodyScrewJoint.cc        |    2 +-
 gazebo/physics/simbody/SimbodyScrewJoint.hh        |    2 +-
 gazebo/physics/simbody/SimbodySliderJoint.cc       |    2 +-
 gazebo/physics/simbody/SimbodySliderJoint.hh       |    2 +-
 gazebo/physics/simbody/SimbodySphereShape.hh       |    2 +-
 gazebo/physics/simbody/SimbodyTypes.hh             |    2 +-
 gazebo/physics/simbody/SimbodyUniversalJoint.cc    |    2 +-
 gazebo/physics/simbody/SimbodyUniversalJoint.hh    |    2 +-
 gazebo/physics/simbody/simbody_inc.h               |    2 +-
 gazebo/rendering/ApplyWrenchVisual.cc              |    2 +-
 gazebo/rendering/ApplyWrenchVisual.hh              |    2 +-
 gazebo/rendering/ApplyWrenchVisualPrivate.hh       |    2 +-
 gazebo/rendering/ArrowVisual.cc                    |    2 +-
 gazebo/rendering/ArrowVisual.hh                    |    2 +-
 gazebo/rendering/ArrowVisualPrivate.hh             |    2 +-
 gazebo/rendering/AxisVisual.cc                     |    2 +-
 gazebo/rendering/AxisVisual.hh                     |    2 +-
 gazebo/rendering/AxisVisualPrivate.hh              |    2 +-
 gazebo/rendering/CMakeLists.txt                    |    1 +
 gazebo/rendering/COMVisual.cc                      |    2 +-
 gazebo/rendering/COMVisual.hh                      |    2 +-
 gazebo/rendering/COMVisualPrivate.hh               |    2 +-
 gazebo/rendering/COMVisual_TEST.cc                 |    2 +-
 gazebo/rendering/Camera.cc                         |    4 +-
 gazebo/rendering/Camera.hh                         |    2 +-
 gazebo/rendering/CameraLensPrivate.hh              |    2 +-
 gazebo/rendering/CameraPrivate.hh                  |    2 +-
 gazebo/rendering/CameraVisual.cc                   |    2 +-
 gazebo/rendering/CameraVisual.hh                   |    2 +-
 gazebo/rendering/CameraVisualPrivate.hh            |    2 +-
 gazebo/rendering/ContactVisual.cc                  |    2 +-
 gazebo/rendering/ContactVisual.hh                  |    2 +-
 gazebo/rendering/ContactVisualPrivate.hh           |    2 +-
 gazebo/rendering/Conversions.cc                    |    2 +-
 gazebo/rendering/Conversions.hh                    |    2 +-
 gazebo/rendering/DepthCamera.cc                    |    2 +-
 gazebo/rendering/DepthCamera.hh                    |    2 +-
 gazebo/rendering/DepthCameraPrivate.hh             |    2 +-
 gazebo/rendering/Distortion.cc                     |  385 ++--
 gazebo/rendering/Distortion.hh                     |   30 +-
 gazebo/rendering/DistortionPrivate.hh              |   17 +-
 gazebo/rendering/Distortion_TEST.cc                |  123 ++
 gazebo/rendering/DynamicLines.cc                   |    2 +-
 gazebo/rendering/DynamicLines.hh                   |    2 +-
 gazebo/rendering/DynamicRenderable.cc              |    2 +-
 gazebo/rendering/DynamicRenderable.hh              |    2 +-
 gazebo/rendering/FPSViewController.cc              |    2 +-
 gazebo/rendering/FPSViewController.hh              |    2 +-
 gazebo/rendering/GpuLaser.cc                       |    2 +-
 gazebo/rendering/GpuLaser.hh                       |    2 +-
 gazebo/rendering/GpuLaserPrivate.hh                |    2 +-
 gazebo/rendering/GpuLaser_TEST.cc                  |    2 +-
 gazebo/rendering/Grid.cc                           |    2 +-
 gazebo/rendering/Grid.hh                           |    2 +-
 gazebo/rendering/Heightmap.cc                      |  274 ++-
 gazebo/rendering/Heightmap.hh                      |   29 +-
 gazebo/rendering/HeightmapPrivate.hh               |   28 +-
 gazebo/rendering/Heightmap_TEST.cc                 |   26 +-
 gazebo/rendering/InertiaVisual.cc                  |    2 +-
 gazebo/rendering/InertiaVisual.hh                  |    2 +-
 gazebo/rendering/InertiaVisualPrivate.hh           |    2 +-
 gazebo/rendering/JointVisual.cc                    |    2 +-
 gazebo/rendering/JointVisual.hh                    |    2 +-
 gazebo/rendering/JointVisualPrivate.hh             |    2 +-
 gazebo/rendering/JointVisual_TEST.cc               |    2 +-
 gazebo/rendering/LaserVisual.cc                    |    7 +-
 gazebo/rendering/LaserVisual.hh                    |    2 +-
 gazebo/rendering/LaserVisualPrivate.hh             |    2 +-
 gazebo/rendering/Light.cc                          |    2 +-
 gazebo/rendering/Light.hh                          |    2 +-
 gazebo/rendering/LightPrivate.hh                   |    2 +-
 gazebo/rendering/LinkFrameVisual.cc                |    2 +-
 gazebo/rendering/LinkFrameVisual.hh                |    2 +-
 gazebo/rendering/LinkFrameVisualPrivate.hh         |    2 +-
 gazebo/rendering/LinkFrameVisual_TEST.cc           |    2 +-
 gazebo/rendering/LogicalCameraVisual.cc            |    2 +-
 gazebo/rendering/LogicalCameraVisual.hh            |    2 +-
 gazebo/rendering/Material.cc                       |    2 +-
 gazebo/rendering/Material.hh                       |    2 +-
 gazebo/rendering/MovableText.cc                    |    2 +-
 gazebo/rendering/MovableText.hh                    |    2 +-
 gazebo/rendering/OculusCamera.cc                   |    2 +-
 gazebo/rendering/OculusCamera.hh                   |    2 +-
 gazebo/rendering/OculusCameraPrivate.hh            |    2 +-
 gazebo/rendering/OrbitViewController.cc            |    2 +-
 gazebo/rendering/OrbitViewController.hh            |    2 +-
 gazebo/rendering/OriginVisual.cc                   |    2 +-
 gazebo/rendering/OriginVisual.hh                   |    2 +-
 gazebo/rendering/OriginVisualPrivate.hh            |    2 +-
 gazebo/rendering/OriginVisual_TEST.cc              |    2 +-
 gazebo/rendering/OrthoViewController.cc            |    2 +-
 gazebo/rendering/OrthoViewController.hh            |    2 +-
 gazebo/rendering/OrthoViewControllerPrivate.hh     |    2 +-
 gazebo/rendering/Projector.cc                      |    2 +-
 gazebo/rendering/Projector.hh                      |    2 +-
 gazebo/rendering/RFIDTagVisual.cc                  |    2 +-
 gazebo/rendering/RFIDTagVisual.hh                  |    2 +-
 gazebo/rendering/RFIDTagVisualPrivate.hh           |    2 +-
 gazebo/rendering/RFIDVisual.cc                     |    2 +-
 gazebo/rendering/RFIDVisual.hh                     |    2 +-
 gazebo/rendering/RFIDVisualPrivate.hh              |    2 +-
 gazebo/rendering/RTShaderSystem.cc                 |   36 +-
 gazebo/rendering/RTShaderSystem.hh                 |   12 +-
 gazebo/rendering/RTShaderSystemPrivate.hh          |    6 +-
 gazebo/rendering/RayQuery.cc                       |    2 +-
 gazebo/rendering/RayQuery.hh                       |    2 +-
 gazebo/rendering/RayQueryPrivate.hh                |    2 +-
 gazebo/rendering/RenderEngine.cc                   |    2 +-
 gazebo/rendering/RenderEngine.hh                   |    2 +-
 gazebo/rendering/RenderEnginePrivate.hh            |    2 +-
 gazebo/rendering/RenderEvents.cc                   |    2 +-
 gazebo/rendering/RenderEvents.hh                   |    2 +-
 gazebo/rendering/RenderTypes.hh                    |    2 +-
 gazebo/rendering/RenderingConversions_TEST.cc      |    2 +-
 gazebo/rendering/RenderingIface.cc                 |    2 +-
 gazebo/rendering/RenderingIface.hh                 |    2 +-
 gazebo/rendering/Road2d.cc                         |    2 +-
 gazebo/rendering/Road2d.hh                         |    2 +-
 gazebo/rendering/Scene.cc                          |  143 +-
 gazebo/rendering/Scene.hh                          |   33 +-
 gazebo/rendering/ScenePrivate.hh                   |    8 +-
 gazebo/rendering/Scene_TEST.cc                     |   57 +-
 gazebo/rendering/SelectionObj.cc                   |    2 +-
 gazebo/rendering/SelectionObj.hh                   |    2 +-
 gazebo/rendering/SelectionObjPrivate.hh            |    2 +-
 gazebo/rendering/SelectionObj_TEST.cc              |    2 +-
 gazebo/rendering/SonarVisual.cc                    |    2 +-
 gazebo/rendering/SonarVisual.hh                    |    2 +-
 gazebo/rendering/SonarVisualPrivate.hh             |    2 +-
 gazebo/rendering/SonarVisual_TEST.cc               |    2 +-
 gazebo/rendering/TransmitterVisual.cc              |    2 +-
 gazebo/rendering/TransmitterVisual.hh              |    2 +-
 gazebo/rendering/TransmitterVisualPrivate.hh       |    2 +-
 gazebo/rendering/TransmitterVisual_TEST.cc         |    2 +-
 gazebo/rendering/UserCamera.cc                     |    2 +-
 gazebo/rendering/UserCamera.hh                     |    2 +-
 gazebo/rendering/UserCameraPrivate.hh              |    2 +-
 gazebo/rendering/VideoVisual.cc                    |    2 +-
 gazebo/rendering/VideoVisual.hh                    |    2 +-
 gazebo/rendering/VideoVisualPrivate.hh             |    2 +-
 gazebo/rendering/ViewController.cc                 |    2 +-
 gazebo/rendering/ViewController.hh                 |    2 +-
 gazebo/rendering/Visual.cc                         |    2 +-
 gazebo/rendering/Visual.hh                         |    2 +-
 gazebo/rendering/VisualPrivate.hh                  |    2 +-
 gazebo/rendering/Visual_TEST.cc                    |    2 +-
 gazebo/rendering/WideAngleCamera.cc                |   18 +-
 gazebo/rendering/WideAngleCamera.hh                |    2 +-
 gazebo/rendering/WideAngleCameraPrivate.hh         |    2 +-
 gazebo/rendering/WindowManager.cc                  |    2 +-
 gazebo/rendering/WindowManager.hh                  |    2 +-
 gazebo/rendering/WindowManagerPrivate.hh           |    2 +-
 gazebo/rendering/WireBox.cc                        |    2 +-
 gazebo/rendering/WireBox.hh                        |    2 +-
 gazebo/rendering/WireBoxPrivate.hh                 |    2 +-
 gazebo/rendering/WrenchVisual.cc                   |  105 +-
 gazebo/rendering/WrenchVisual.hh                   |   13 +-
 gazebo/rendering/WrenchVisualPrivate.hh            |   10 +-
 gazebo/rendering/deferred_shading/AmbientLight.hh  |    2 +-
 gazebo/rendering/deferred_shading/DeferredLight.cc |    2 +-
 gazebo/rendering/deferred_shading/DeferredLight.hh |    2 +-
 .../rendering/deferred_shading/DeferredLightCP.hh  |    2 +-
 .../deferred_shading/GBufferMaterialGenerator.cc   |    2 +-
 .../deferred_shading/GBufferMaterialGenerator.hh   |    2 +-
 .../deferred_shading/GBufferSchemeHandler.cc       |    2 +-
 .../deferred_shading/GBufferSchemeHandler.hh       |    2 +-
 gazebo/rendering/deferred_shading/GeomUtils.cc     |    2 +-
 gazebo/rendering/deferred_shading/GeomUtils.hh     |    2 +-
 .../deferred_shading/LightMaterialGenerator.hh     |    2 +-
 .../deferred_shading/ListenerFactoryLogic.hh       |    2 +-
 .../deferred_shading/MaterialGenerator.cc          |    2 +-
 .../deferred_shading/MaterialGenerator.hh          |    2 +-
 gazebo/rendering/deferred_shading/MergeCP.hh       |    2 +-
 .../deferred_shading/MergeMaterialGenerator.cc     |    2 +-
 .../deferred_shading/MergeMaterialGenerator.hh     |    2 +-
 .../deferred_shading/MergeSchemeHandler.cc         |    2 +-
 .../deferred_shading/MergeSchemeHandler.hh         |    2 +-
 .../deferred_shading/NullSchemeHandler.hh          |    2 +-
 gazebo/rendering/deferred_shading/SSAOLogic.cc     |    2 +-
 gazebo/rendering/deferred_shading/SSAOLogic.hh     |    2 +-
 .../deferred_shading/TechniqueDefinitions.hh       |    2 +-
 gazebo/rendering/ogre_gazebo.h                     |    2 +-
 .../rendering/selection_buffer/MaterialSwitcher.cc |    2 +-
 .../rendering/selection_buffer/MaterialSwitcher.hh |    2 +-
 .../rendering/selection_buffer/SelectionBuffer.cc  |    2 +-
 .../rendering/selection_buffer/SelectionBuffer.hh  |    2 +-
 .../selection_buffer/SelectionRenderListener.cc    |    2 +-
 .../selection_buffer/SelectionRenderListener.hh    |    2 +-
 gazebo/sensors/AltimeterSensor.cc                  |    2 +-
 gazebo/sensors/AltimeterSensor.hh                  |    2 +-
 gazebo/sensors/AltimeterSensorPrivate.hh           |    2 +-
 gazebo/sensors/AltimeterSensor_TEST.cc             |    2 +-
 gazebo/sensors/CameraSensor.cc                     |    2 +-
 gazebo/sensors/CameraSensor.hh                     |    2 +-
 gazebo/sensors/CameraSensorPrivate.hh              |    2 +-
 gazebo/sensors/CameraSensor_TEST.cc                |    2 +-
 gazebo/sensors/ContactSensor.cc                    |    2 +-
 gazebo/sensors/ContactSensor.hh                    |    2 +-
 gazebo/sensors/ContactSensorPrivate.hh             |    2 +-
 gazebo/sensors/DepthCameraSensor.cc                |    2 +-
 gazebo/sensors/DepthCameraSensor.hh                |    2 +-
 gazebo/sensors/DepthCameraSensorPrivate.hh         |    2 +-
 gazebo/sensors/ForceTorqueSensor.cc                |    2 +-
 gazebo/sensors/ForceTorqueSensor.hh                |    2 +-
 gazebo/sensors/ForceTorqueSensorPrivate.hh         |    2 +-
 gazebo/sensors/ForceTorqueSensor_TEST.cc           |    2 +-
 gazebo/sensors/GaussianNoiseModel.cc               |    2 +-
 gazebo/sensors/GaussianNoiseModel.hh               |    2 +-
 gazebo/sensors/GpsSensor.cc                        |    2 +-
 gazebo/sensors/GpsSensor.hh                        |    2 +-
 gazebo/sensors/GpsSensorPrivate.hh                 |    2 +-
 gazebo/sensors/GpsSensor_TEST.cc                   |    2 +-
 gazebo/sensors/GpuRaySensor.cc                     |    2 +-
 gazebo/sensors/GpuRaySensor.hh                     |    2 +-
 gazebo/sensors/GpuRaySensorPrivate.hh              |    2 +-
 gazebo/sensors/GpuRaySensor_TEST.cc                |    2 +-
 gazebo/sensors/ImuSensor.cc                        |    2 +-
 gazebo/sensors/ImuSensor.hh                        |    2 +-
 gazebo/sensors/ImuSensorPrivate.hh                 |    2 +-
 gazebo/sensors/ImuSensor_TEST.cc                   |    2 +-
 gazebo/sensors/LogicalCameraSensor.cc              |    2 +-
 gazebo/sensors/LogicalCameraSensor.hh              |    2 +-
 gazebo/sensors/LogicalCameraSensorPrivate.hh       |    2 +-
 gazebo/sensors/MagnetometerSensor.cc               |    2 +-
 gazebo/sensors/MagnetometerSensor.hh               |    2 +-
 gazebo/sensors/MagnetometerSensorPrivate.hh        |    2 +-
 gazebo/sensors/MagnetometerSensor_TEST.cc          |    2 +-
 gazebo/sensors/MultiCameraSensor.cc                |    2 +-
 gazebo/sensors/MultiCameraSensor.hh                |    2 +-
 gazebo/sensors/MultiCameraSensorPrivate.hh         |    2 +-
 gazebo/sensors/Noise.cc                            |    2 +-
 gazebo/sensors/Noise.hh                            |    2 +-
 gazebo/sensors/Noise_TEST.cc                       |    2 +-
 gazebo/sensors/RFIDSensor.cc                       |    2 +-
 gazebo/sensors/RFIDSensor.hh                       |    2 +-
 gazebo/sensors/RFIDSensorPrivate.hh                |    2 +-
 gazebo/sensors/RFIDTag.cc                          |    2 +-
 gazebo/sensors/RFIDTag.hh                          |    2 +-
 gazebo/sensors/RFIDTagPrivate.hh                   |    2 +-
 gazebo/sensors/RaySensor.cc                        |    2 +-
 gazebo/sensors/RaySensor.hh                        |    2 +-
 gazebo/sensors/RaySensorPrivate.hh                 |    2 +-
 gazebo/sensors/RaySensor_TEST.cc                   |    2 +-
 gazebo/sensors/Sensor.cc                           |    6 +-
 gazebo/sensors/Sensor.hh                           |    2 +-
 gazebo/sensors/SensorFactory.cc                    |    2 +-
 gazebo/sensors/SensorFactory.hh                    |    2 +-
 gazebo/sensors/SensorManager.cc                    |    2 +-
 gazebo/sensors/SensorManager.hh                    |    2 +-
 gazebo/sensors/SensorManager_TEST.cc               |    2 +-
 gazebo/sensors/SensorPrivate.hh                    |    2 +-
 gazebo/sensors/SensorTypes.cc                      |    2 +-
 gazebo/sensors/SensorTypes.hh                      |    2 +-
 gazebo/sensors/Sensor_TEST.cc                      |    2 +-
 gazebo/sensors/SensorsIface.cc                     |    2 +-
 gazebo/sensors/SensorsIface.hh                     |    2 +-
 gazebo/sensors/SonarSensor.cc                      |    2 +-
 gazebo/sensors/SonarSensor.hh                      |    2 +-
 gazebo/sensors/SonarSensorPrivate.hh               |    2 +-
 gazebo/sensors/SonarSensor_TEST.cc                 |    2 +-
 gazebo/sensors/WideAngleCameraSensor.cc            |    2 +-
 gazebo/sensors/WideAngleCameraSensor.hh            |    2 +-
 gazebo/sensors/WideAngleCameraSensorPrivate.hh     |    2 +-
 gazebo/sensors/WirelessReceiver.cc                 |    2 +-
 gazebo/sensors/WirelessReceiver.hh                 |    2 +-
 gazebo/sensors/WirelessReceiverPrivate.hh          |    2 +-
 gazebo/sensors/WirelessReceiver_TEST.cc            |    2 +-
 gazebo/sensors/WirelessTransceiver.cc              |    2 +-
 gazebo/sensors/WirelessTransceiver.hh              |    2 +-
 gazebo/sensors/WirelessTransmitter.cc              |    2 +-
 gazebo/sensors/WirelessTransmitter.hh              |    2 +-
 gazebo/sensors/WirelessTransmitterPrivate.hh       |    2 +-
 gazebo/sensors/WirelessTransmitter_TEST.cc         |    2 +-
 gazebo/server_main.cc                              |    2 +-
 gazebo/test/ServerFixture.cc                       |    2 +-
 gazebo/test/ServerFixture.hh                       |    2 +-
 gazebo/test/ServerFixtureRecord.cc                 |    2 +-
 gazebo/test/helper_physics_generator.hh            |    2 +-
 gazebo/transport/CallbackHelper.cc                 |    2 +-
 gazebo/transport/CallbackHelper.hh                 |    2 +-
 gazebo/transport/Connection.cc                     |    2 +-
 gazebo/transport/Connection.hh                     |    2 +-
 gazebo/transport/ConnectionManager.cc              |    2 +-
 gazebo/transport/ConnectionManager.hh              |    2 +-
 gazebo/transport/Connection_TEST.cc                |    2 +-
 gazebo/transport/IOManager.cc                      |    2 +-
 gazebo/transport/IOManager.hh                      |    2 +-
 gazebo/transport/Node.cc                           |    2 +-
 gazebo/transport/Node.hh                           |    2 +-
 gazebo/transport/Publication.cc                    |    2 +-
 gazebo/transport/Publication.hh                    |    2 +-
 gazebo/transport/PublicationTransport.cc           |    2 +-
 gazebo/transport/PublicationTransport.hh           |    2 +-
 gazebo/transport/Publisher.cc                      |    2 +-
 gazebo/transport/Publisher.hh                      |    2 +-
 gazebo/transport/SubscribeOptions.hh               |    2 +-
 gazebo/transport/Subscriber.cc                     |    2 +-
 gazebo/transport/Subscriber.hh                     |    2 +-
 gazebo/transport/SubscriptionTransport.cc          |    2 +-
 gazebo/transport/SubscriptionTransport.hh          |    2 +-
 gazebo/transport/TopicManager.cc                   |    2 +-
 gazebo/transport/TopicManager.hh                   |    2 +-
 gazebo/transport/TransportIface.cc                 |    2 +-
 gazebo/transport/TransportIface.hh                 |    2 +-
 gazebo/transport/TransportTypes.hh                 |    2 +-
 gazebo/util/Diagnostics.cc                         |    2 +-
 gazebo/util/Diagnostics.hh                         |    2 +-
 gazebo/util/DiagnosticsPrivate.hh                  |    2 +-
 gazebo/util/Diagnostics_TEST.cc                    |    2 +-
 gazebo/util/LogPlay.cc                             |    2 +-
 gazebo/util/LogPlay.hh                             |    2 +-
 gazebo/util/LogPlayPrivate.hh                      |    2 +-
 gazebo/util/LogPlay_TEST.cc                        |    2 +-
 gazebo/util/LogRecord.cc                           |   34 +-
 gazebo/util/LogRecord.hh                           |   40 +-
 gazebo/util/LogRecordPrivate.hh                    |    8 +-
 gazebo/util/LogRecord_TEST.cc                      |   28 +-
 gazebo/util/OpenAL.cc                              |    2 +-
 gazebo/util/OpenAL.hh                              |    2 +-
 gazebo/util/OpenALPrivate.hh                       |    2 +-
 gazebo/util/OpenAL_TEST.cc                         |    2 +-
 gazebo/util/UtilTypes.hh                           |    2 +-
 gazebo/util/system.hh                              |    2 +-
 interfaces/player/ActarrayInterface.cc             |    2 +-
 interfaces/player/ActarrayInterface.hh             |    2 +-
 interfaces/player/BumperInterface.cc               |    2 +-
 interfaces/player/BumperInterface.hh               |    2 +-
 interfaces/player/CameraInterface.cc               |    2 +-
 interfaces/player/CameraInterface.hh               |    2 +-
 interfaces/player/FiducialInterface.cc             |    2 +-
 interfaces/player/FiducialInterface.hh             |    2 +-
 interfaces/player/GazeboClient.cc                  |    2 +-
 interfaces/player/GazeboClient.hh                  |    2 +-
 interfaces/player/GazeboDriver.cc                  |    2 +-
 interfaces/player/GazeboDriver.hh                  |    2 +-
 interfaces/player/GazeboInterface.cc               |    2 +-
 interfaces/player/GazeboInterface.hh               |    2 +-
 interfaces/player/GazeboTime.cc                    |    2 +-
 interfaces/player/GazeboTime.hh                    |    2 +-
 interfaces/player/GpsInterface.cc                  |    2 +-
 interfaces/player/GpsInterface.hh                  |    2 +-
 interfaces/player/Graphics3dInterface.cc           |    2 +-
 interfaces/player/Graphics3dInterface.hh           |    2 +-
 interfaces/player/GripperInterface.cc              |    2 +-
 interfaces/player/GripperInterface.hh              |    2 +-
 interfaces/player/IRInterface.cc                   |    2 +-
 interfaces/player/IRInterface.hh                   |    2 +-
 interfaces/player/LaserInterface.cc                |    2 +-
 interfaces/player/LaserInterface.hh                |    2 +-
 interfaces/player/OpaqueInterface.cc               |    2 +-
 interfaces/player/OpaqueInterface.hh               |    2 +-
 interfaces/player/PTZInterface.cc                  |    2 +-
 interfaces/player/PTZInterface.hh                  |    2 +-
 interfaces/player/Position2dInterface.cc           |    2 +-
 interfaces/player/Position2dInterface.hh           |    2 +-
 interfaces/player/Position3dInterface.cc           |    2 +-
 interfaces/player/Position3dInterface.hh           |    2 +-
 interfaces/player/PowerInterface.cc                |    2 +-
 interfaces/player/PowerInterface.hh                |    2 +-
 interfaces/player/SimulationInterface.cc           |    2 +-
 interfaces/player/SimulationInterface.hh           |    2 +-
 interfaces/player/SonarInterface.cc                |    2 +-
 interfaces/player/SonarInterface.hh                |    2 +-
 interfaces/player/player.h                         |    2 +-
 .../programs/camera_distortion_map_fs.glsl         |    2 +-
 media/materials/programs/wide_lens_map_fp.glsl     |    2 +-
 media/materials/programs/wide_lens_map_vs.glsl     |    2 +-
 plugins/ActuatorPlugin.cc                          |    2 +-
 plugins/ActuatorPlugin.hh                          |    2 +-
 plugins/ArrangePlugin.cc                           |    2 +-
 plugins/ArrangePlugin.hh                           |    2 +-
 plugins/AttachLightPlugin.cc                       |  137 ++
 plugins/AttachLightPlugin.hh                       |   55 +
 plugins/BreakableJointPlugin.cc                    |    2 +-
 plugins/BreakableJointPlugin.hh                    |    2 +-
 plugins/BuoyancyPlugin.cc                          |    2 +-
 plugins/BuoyancyPlugin.hh                          |    2 +-
 plugins/CMakeLists.txt                             |    3 +
 plugins/CameraPlugin.cc                            |    2 +-
 plugins/CameraPlugin.hh                            |    2 +-
 plugins/CartDemoPlugin.cc                          |    2 +-
 plugins/CartDemoPlugin.hh                          |    2 +-
 plugins/CessnaGUIPlugin.cc                         |    2 +-
 plugins/CessnaGUIPlugin.hh                         |    2 +-
 plugins/CessnaPlugin.cc                            |    2 +-
 plugins/CessnaPlugin.hh                            |    2 +-
 plugins/ContactPlugin.cc                           |    2 +-
 plugins/ContactPlugin.hh                           |    2 +-
 plugins/DepthCameraPlugin.cc                       |    2 +-
 plugins/DepthCameraPlugin.hh                       |    2 +-
 plugins/DiffDrivePlugin.cc                         |    2 +-
 plugins/DiffDrivePlugin.hh                         |    2 +-
 plugins/ElevatorPlugin.cc                          |    2 +-
 plugins/ElevatorPlugin.hh                          |    2 +-
 plugins/ElevatorPluginPrivate.hh                   |    2 +-
 plugins/ForceTorquePlugin.cc                       |    2 +-
 plugins/ForceTorquePlugin.hh                       |    2 +-
 plugins/GpuRayPlugin.cc                            |    2 +-
 plugins/GpuRayPlugin.hh                            |    2 +-
 plugins/HarnessPlugin.cc                           |   32 +-
 plugins/HarnessPlugin.hh                           |    4 +-
 plugins/HeightmapLODPlugin.cc                      |   64 +
 plugins/HeightmapLODPlugin.hh                      |   46 +
 plugins/HydraDemoPlugin.cc                         |    2 +-
 plugins/HydraDemoPlugin.hh                         |    2 +-
 plugins/HydraPlugin.cc                             |    2 +-
 plugins/HydraPlugin.hh                             |    2 +-
 plugins/ImuSensorPlugin.cc                         |    2 +-
 plugins/ImuSensorPlugin.hh                         |    2 +-
 plugins/InitialVelocityPlugin.cc                   |    2 +-
 plugins/InitialVelocityPlugin.hh                   |    2 +-
 plugins/JointTrajectoryPlugin.cc                   |    2 +-
 plugins/JointTrajectoryPlugin.hh                   |    2 +-
 plugins/LiftDragPlugin.cc                          |    2 +-
 plugins/LiftDragPlugin.hh                          |    2 +-
 plugins/LinearBatteryConsumerPlugin.cc             |    2 +-
 plugins/LinearBatteryConsumerPlugin.hh             |    2 +-
 plugins/LinearBatteryPlugin.cc                     |    2 +-
 plugins/LinearBatteryPlugin.hh                     |    2 +-
 plugins/ModelPropShop.cc                           |    2 +-
 plugins/ModelPropShop.hh                           |    2 +-
 plugins/MudPlugin.cc                               |    2 +-
 plugins/MudPlugin.hh                               |    2 +-
 plugins/PressurePlugin.cc                          |    2 +-
 plugins/PressurePlugin.hh                          |    2 +-
 plugins/RandomVelocityPlugin.cc                    |    2 +-
 plugins/RandomVelocityPlugin.hh                    |    2 +-
 plugins/RandomVelocityPluginPrivate.hh             |    2 +-
 plugins/RayPlugin.cc                               |    2 +-
 plugins/RayPlugin.hh                               |    2 +-
 plugins/RaySensorNoisePlugin.cc                    |    2 +-
 plugins/RaySensorNoisePlugin.hh                    |    2 +-
 plugins/RubblePlugin.cc                            |    2 +-
 plugins/RubblePlugin.hh                            |    2 +-
 plugins/SkidSteerDrivePlugin.cc                    |    2 +-
 plugins/SkidSteerDrivePlugin.hh                    |    2 +-
 plugins/SonarPlugin.cc                             |    2 +-
 plugins/SonarPlugin.hh                             |    2 +-
 plugins/SphereAtlasDemoPlugin.cc                   |    2 +-
 plugins/SphereAtlasDemoPlugin.hh                   |    2 +-
 plugins/TimerGUIPlugin.cc                          |    2 +-
 plugins/TimerGUIPlugin.hh                          |    2 +-
 plugins/TouchPlugin.cc                             |  235 +++
 plugins/TouchPlugin.hh                             |  110 ++
 plugins/TransporterPlugin.cc                       |    2 +-
 plugins/TransporterPlugin.hh                       |    2 +-
 plugins/TransporterPluginPrivate.hh                |    2 +-
 plugins/VehiclePlugin.cc                           |    2 +-
 plugins/VehiclePlugin.hh                           |    2 +-
 plugins/events/EventSource.cc                      |    2 +-
 plugins/events/EventSource.hh                      |    2 +-
 plugins/events/ExistenceEventSource.cc             |    2 +-
 plugins/events/ExistenceEventSource.hh             |    2 +-
 plugins/events/InRegionEventSource.cc              |    2 +-
 plugins/events/InRegionEventSource.hh              |    2 +-
 plugins/events/JointEventSource.cc                 |    2 +-
 plugins/events/JointEventSource.hh                 |    2 +-
 plugins/events/OccupiedEventSource.cc              |    2 +-
 plugins/events/OccupiedEventSource.hh              |    2 +-
 plugins/events/Region.cc                           |    2 +-
 plugins/events/Region.hh                           |    2 +-
 plugins/events/RegionEventBoxPlugin.cc             |    2 +-
 plugins/events/RegionEventBoxPlugin.hh             |    2 +-
 plugins/events/SimEventsException.hh               |    2 +-
 plugins/events/SimEventsPlugin.cc                  |    2 +-
 plugins/events/SimEventsPlugin.hh                  |    2 +-
 plugins/events/SimStateEventSource.cc              |    2 +-
 plugins/events/SimStateEventSource.hh              |    2 +-
 plugins/rest_web/RestApi.cc                        |    2 +-
 plugins/rest_web/RestApi.hh                        |    2 +-
 plugins/rest_web/RestException.hh                  |    2 +-
 plugins/rest_web/RestUiLoginDialog.cc              |    2 +-
 plugins/rest_web/RestUiLoginDialog.hh              |    2 +-
 plugins/rest_web/RestUiPlugin.cc                   |    2 +-
 plugins/rest_web/RestUiPlugin.hh                   |    2 +-
 plugins/rest_web/RestUiWidget.cc                   |    2 +-
 plugins/rest_web/RestUiWidget.hh                   |    2 +-
 plugins/rest_web/RestWebPlugin.cc                  |    2 +-
 plugins/rest_web/RestWebPlugin.hh                  |    2 +-
 test/cmake/config-cmake.cc                         |    2 +-
 test/data/pr2_state_log_expected.h                 |    2 +-
 test/examples/examples_build.cc                    |    2 +-
 test/integration/CMakeLists.txt                    |    4 +
 test/integration/SimplePendulumIntegrator.hh       |    2 +-
 test/integration/aero_plugin.cc                    |    2 +-
 test/integration/attach_light_plugin.cc            |  108 +
 test/integration/bandwidth.cc                      |    2 +-
 test/integration/camera.cc                         |    2 +-
 test/integration/camera_sensor.cc                  |  134 +-
 test/integration/concave_mesh.cc                   |    2 +-
 test/integration/contact_sensor.cc                 |    2 +-
 test/integration/dem.cc                            |    2 +-
 test/integration/elastic_modulus.cc                |    2 +-
 test/integration/factory.cc                        |    2 +-
 test/integration/file_handling.cc                  |    2 +-
 test/integration/force_torque_visualization.cc     |   84 +
 .../integration/force_torque_visualization.hh      |   15 +-
 test/integration/gpu_laser.cc                      |    2 +-
 test/integration/gripper.cc                        |    2 +-
 test/integration/gz_camera.cc                      |    2 +-
 test/integration/gz_joint.cc                       |    2 +-
 test/integration/gz_log.cc                         |  102 +-
 test/integration/gz_model.cc                       |    2 +-
 test/integration/gz_physics.cc                     |    2 +-
 test/integration/gz_world.cc                       |    2 +-
 test/integration/harness.cc                        |    2 +-
 test/integration/heightmap.cc                      |  127 +-
 test/integration/heights_cmp.h                     |    2 +-
 test/integration/images_cmp.h                      |    2 +-
 test/integration/imu.cc                            |    2 +-
 test/integration/insert_model.cc                   |    2 +-
 test/integration/insert_model.hh                   |    2 +-
 test/integration/joint_controller.cc               |    2 +-
 test/integration/joint_force_torque.cc             |    2 +-
 test/integration/joint_gearbox.cc                  |    2 +-
 test/integration/joint_get_force_torque.cc         |    2 +-
 test/integration/joint_revolute.cc                 |    2 +-
 test/integration/joint_screw.cc                    |    2 +-
 test/integration/joint_set_position_test.cc        |    2 +-
 test/integration/joint_spawn.cc                    |    2 +-
 test/integration/joint_test.cc                     |    2 +-
 test/integration/joint_test.hh                     |    2 +-
 test/integration/joint_universal.cc                |    2 +-
 test/integration/laser.cc                          |    2 +-
 test/integration/logical_camera_sensor.cc          |    2 +-
 test/integration/manpages.cc                       |    2 +-
 test/integration/model.cc                          |    2 +-
 test/integration/model_database.cc                 |    2 +-
 test/integration/model_editor.cc                   |    2 +-
 test/integration/model_editor.hh                   |    2 +-
 test/integration/multicamera_sensor.cc             |    2 +-
 test/integration/nested_model.cc                   |    2 +-
 test/integration/noise.cc                          |    2 +-
 test/integration/nondefault_world.cc               |    2 +-
 test/integration/ogre_log.cc                       |    2 +-
 test/integration/physics.cc                        |    2 +-
 .../physics_basic_controller_response.cc           |    2 +-
 test/integration/physics_collision.cc              |  106 +-
 test/integration/physics_friction.cc               |  314 ++-
 test/integration/physics_inertia_ratio.cc          |    2 +-
 test/integration/physics_link.cc                   |    2 +-
 test/integration/physics_msgs.cc                   |    2 +-
 test/integration/physics_msgs_inertia.cc           |    2 +-
 test/integration/physics_presets.cc                |    2 +-
 test/integration/physics_solver.cc                 |    2 +-
 test/integration/physics_thread_safe.cc            |    2 +-
 test/integration/physics_torsional_friction.cc     |    2 +-
 test/integration/pioneer2dx.cc                     |    2 +-
 test/integration/player/player.cc                  |    2 +-
 test/integration/plugin.cc                         |    2 +-
 test/integration/polyline.cc                       |    2 +-
 test/integration/pr2.cc                            |    2 +-
 test/integration/projector.cc                      |    2 +-
 test/integration/region_events.cc                  |    2 +-
 test/integration/rendering_sensor.cc               |    2 +-
 test/integration/rest_web.cc                       |    2 +-
 test/integration/road.cc                           |    2 +-
 test/integration/saving_and_loading.cc             |    2 +-
 test/integration/scans_cmp.h                       |    2 +-
 test/integration/sdf.cc                            |    2 +-
 test/integration/sensor.cc                         |    2 +-
 test/integration/server_fixture.cc                 |    2 +-
 test/integration/sim_events.cc                     |    2 +-
 test/integration/speed.cc                          |    2 +-
 test/integration/speed_pr2.cc                      |    2 +-
 test/integration/speed_thread_pr2.cc               |    2 +-
 test/integration/state_log.cc                      |    2 +-
 test/integration/stress_spawn_models.cc            |    2 +-
 test/integration/surface_properties.cc             |   35 +-
 test/integration/swarm.cc                          |    2 +-
 test/integration/touch_plugin.cc                   |  252 +++
 test/integration/transceiver.cc                    |    2 +-
 test/integration/transport.cc                      |    2 +-
 test/integration/transport_stress_nodes.cc         |    2 +-
 test/integration/transporter.cc                    |    2 +-
 test/integration/undo.cc                           |    2 +-
 test/integration/undo.hh                           |    2 +-
 test/integration/view_control.cc                   |    4 +-
 test/integration/visual_pose.cc                    |    2 +-
 test/integration/visual_pose.hh                    |    2 +-
 test/integration/world.cc                          |    2 +-
 test/integration/world_clone.cc                    |    2 +-
 test/integration/world_entity_below_point.cc       |    2 +-
 test/integration/world_playback.cc                 |    2 +-
 test/integration/world_population.cc               |    2 +-
 test/integration/world_reset.cc                    |    2 +-
 test/integration/worlds_installed.cc               |    2 +-
 .../materials/scripts/heightmap_custom.material    |   86 +
 .../materials/scripts/heightmap_custom_fp.glsl     |  108 +
 .../materials/scripts/heightmap_custom_vp.glsl     |   39 +
 test/performance/RAMLibrary.hh                     |    2 +-
 test/performance/RAMLibrary_TEST.cc                |    2 +-
 test/performance/factory_stress.cc                 |    2 +-
 test/performance/gz_stress.cc                      |    2 +-
 test/performance/image_convert_stress.cc           |    2 +-
 test/performance/sensor_stress.cc                  |    2 +-
 test/performance/set_world_pose.cc                 |    2 +-
 test/performance/transport_stress.cc               |    2 +-
 test/pkgconfig/config-pkgconfig.cc                 |    2 +-
 test/plugins/ExceptionModelPluginConstructor.cc    |    2 +-
 test/plugins/ExceptionModelPluginConstructor.hh    |    2 +-
 test/plugins/ExceptionModelPluginInit.cc           |    2 +-
 test/plugins/ExceptionModelPluginInit.hh           |    2 +-
 test/plugins/ExceptionModelPluginLoad.cc           |    2 +-
 test/plugins/ExceptionModelPluginLoad.hh           |    2 +-
 test/plugins/ForceTorqueModelRemovalTestPlugin.cc  |    2 +-
 test/plugins/ForceTorqueModelRemovalTestPlugin.hh  |    2 +-
 test/plugins/Issue1208Plugin.cc                    |    2 +-
 test/plugins/Issue1208Plugin.hh                    |    2 +-
 test/plugins/ModelTrajectoryTestPlugin.cc          |    2 +-
 test/plugins/ModelTrajectoryTestPlugin.hh          |    2 +-
 test/plugins/SpringTestPlugin.cc                   |    2 +-
 test/plugins/SpringTestPlugin.hh                   |    2 +-
 test/regression/1082_pid_limits.cc                 |    2 +-
 test/regression/1112_force_torque_model_removal.cc |    2 +-
 test/regression/1124_collision_pose.cc             |    2 +-
 test/regression/1146_collision_bounding_box.cc     |    2 +-
 test/regression/1208_world_plugin_init.cc          |    2 +-
 test/regression/1375_world_reset.cc                |    2 +-
 test/regression/1569_hydra_crash.cc                |    2 +-
 test/regression/1694_world_accel.cc                |    2 +-
 test/regression/1702_remove_model_scene_nodes.cc   |    2 +-
 test/regression/1782_unadvertise.cc                |    2 +-
 test/regression/346_save_lights.cc                 |    2 +-
 test/regression/351_world_step.cc                  |    2 +-
 test/regression/494_joint_axis_frame.cc            |    2 +-
 test/regression/602_unsubscribe_segfault.cc        |    2 +-
 test/regression/624_collision_world_pose.cc        |    2 +-
 test/regression/846_typo_in_camera.cc              |    2 +-
 test/regression/876_random_number_generator.cc     |    2 +-
 test/regression/940_force_torque_sensor_frame.cc   |    2 +-
 test/regression/978_joint_anchor.cc                |    2 +-
 test/testfiles/hello_world.cc                      |    2 +-
 test/util.hh                                       |    2 +-
 test/worlds/collide_bitmask.world                  |    6 +-
 test/worlds/collision_pose_offset.world            |  174 ++
 test/worlds/collision_pose_offset.world.erb        |  195 ++
 test/worlds/deeply_nested_models.world             |   26 +
 test/worlds/friction_cone.world                    | 1597 +++++++++++++++
 test/worlds/friction_cone.world.erb                |  108 +
 test/worlds/friction_dir_test.world                | 2067 ++++++++++++++++++++
 test/worlds/friction_dir_test.world.erb            |  265 +++
 test/worlds/friction_spheres.world                 | 1568 +++++++++++++++
 test/worlds/friction_spheres.world.erb             |  182 ++
 ...p_material.world => heightmap_lod_plugin.world} |    9 +-
 test/worlds/heightmap_material.world               |    5 +
 ...erial.world => heightmap_material_shader.world} |    9 +-
 test/worlds/inertia_rotations.world                |    1 +
 test/worlds/inertia_rotations.world.erb            |    1 +
 test/worlds/pendulum_axes.world                    |    1 +
 test/worlds/pendulum_axes.world.erb                |    1 +
 test/worlds/torsional_friction_test.world          |    1 +
 test/worlds/torsional_friction_test.world.erb      |    1 +
 tools/gz.cc                                        |    2 +-
 tools/gz.hh                                        |    2 +-
 tools/gz_TEST.cc                                   |    2 +-
 tools/gz_log.cc                                    |    2 +-
 tools/gz_log.hh                                    |    2 +-
 tools/gz_log_TEST.cc                               |    8 +-
 tools/gz_topic.cc                                  |    2 +-
 tools/gz_topic.hh                                  |    2 +-
 tools/gzprop.1.ronn                                |    2 +-
 tools/sdf2pov.cc                                   |    2 +-
 tools/website/backup.rb                            |    2 +-
 tools/website/gazebo_install.run                   |    2 +-
 worlds/attach_lights.world                         |   83 +
 worlds/touch_plugin_demo.world                     |  227 +++
 1582 files changed, 12058 insertions(+), 2208 deletions(-)

diff --git a/.hg_archival.txt b/.hg_archival.txt
index 7ab69b8..a547987 100644
--- a/.hg_archival.txt
+++ b/.hg_archival.txt
@@ -1,6 +1,6 @@
 repo: e803bb5fe03c1370cbb9f434912cd73fd1e7942d
-node: 9e29536e741ecafd5b7389e491153316f673ba78
+node: a24b331f8ebfd712a226ba73b7f43d2d4c14fe15
 branch: gazebo7
-latesttag: gazebo7_7.4.0
-latesttagdistance: 107
-changessincelatesttag: 213
+latesttag: gazebo7_7.8.0
+latesttagdistance: 12
+changessincelatesttag: 29
diff --git a/CMakeLists.txt b/CMakeLists.txt
index acc07a5..fc5384d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,11 +10,11 @@ string (TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
 string (TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPER)
 
 set (GAZEBO_MAJOR_VERSION 7)
-set (GAZEBO_MINOR_VERSION 5)
+set (GAZEBO_MINOR_VERSION 8)
 # The patch version may have been bumped for prerelease purposes; be sure to
 # check gazebo-release/ubuntu/debian/changelog at default to determine what the
 # next patch version should be for a regular release.
-set (GAZEBO_PATCH_VERSION 0)
+set (GAZEBO_PATCH_VERSION 1)
 
 set (GAZEBO_VERSION ${GAZEBO_MAJOR_VERSION}.${GAZEBO_MINOR_VERSION})
 set (GAZEBO_VERSION_FULL ${GAZEBO_MAJOR_VERSION}.${GAZEBO_MINOR_VERSION}.${GAZEBO_PATCH_VERSION})
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..ed09a46
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,341 @@
+# Introduction
+
+Interested in developing new features, fixing bugs, or making any other
+kind of contribution which touches Gazebo's codebase? Read on to find out how!
+
+## Development process
+
+We follow a development process designed to reduce errors, encourage
+collaboration, and make high quality code. The process may seem rigid and
+tedious, but every step is worth the effort.
+
+### Steps to follow
+
+1. Are you sure?
+
+    Run through this mental checklist before getting started.
+
+    1. Has your idea already been done, or maybe someone is already working on it?
+
+        Check [answers.gazebosim.org](http://answers.gazebosim.org) and the [issue tracker](https://bitbucket.org/osrf/gazebo/issues).
+
+    1. Get feedback from the Gazebo core team.
+
+        Send an email to the
+        [mailing list](https://groups.google.com/a/osrfoundation.org/forum/#!forum/gazebo),
+        post a question on [Gazebo Answers](http://answers.gazebosim.org), or use the
+        [issue tracker](https://bitbucket.org/osrf/gazebo/issues) to get feedback from
+        Gazebo developers.
+
+1. [Fork Gazebo](https://bitbucket.org/osrf/gazebo/fork)
+
+    This will create your own personal copy of Gazebo. All of your development
+    should take place in your fork.
+
+1. Choose a base branch
+
+    If your changes will break API or ABI, then base your new branch off of
+    `default`. If your changes don't break API/ABI and you would like them
+    to be released to an existing gazebo release with major version `N`,
+    then use branch `gazeboN` as the base.
+
+1. Work out of a branch
+
+    Always work out of a new branch, never off of the base branch. This is a
+    good habit to get in, and will make your life easier.
+
+1. Write your code.
+
+    This is the fun part.
+
+1. Write tests
+
+    In most cases, a pull request will only be accepted if it has tests. See the
+    "Write tests" section below for more information.
+
+1. Compiler warnings
+
+    Code must have zero compile warnings, or at least make sure your pull
+    request is not adding new warnings.
+
+1. Style
+
+    Static code checking analyzes your code for bugs, such as potential memory
+    leaks, and style. Gazebo's static code checker uses `cppcheck`, and a
+    modified `cpplint`. You'll need to install cppcheck on your system. Ubuntu
+    users can install via:
+
+        sudo apt-get install cppcheck
+
+    To check your code, run the following script from the root of the Gazebo
+    sources:
+
+        sh tools/code_check.sh
+
+    It takes a few minutes to run. Fix all errors and warnings until the output
+    looks like:
+
+        Total errors found: 0
+
+    The tool does not catch all style errors. See the "Style" section below for
+    more information.
+
+1. Tests pass
+
+    There must be no failing tests. You can check by running `make test` in
+    your build directory.
+
+    Running all tests in Gazebo may take a long time. If you expect your changes
+    to only affect a few different tests, it should be enough to run each one
+    of them individually from the build directory, for example:
+
+        ./test/integration/INTEGRATION_world
+
+1. Documentation.
+
+    Document all your code. Every class, function, member variable must have
+    doxygen comments. All code in source files must have documentation that
+    describes the functionality. This will help reviewers and future developers.
+
+1. Review your code.
+
+    Before submitting your code through a pull request, take some time to
+    review everything line-by-line. The review process will go much faster if
+    you make sure everything is perfect before other people look at your code.
+    There is a bit of the human-condition involved here. Folks are less likely
+    to spend time reviewing your code if it's sloppy.
+
+1. Small pull requests
+
+    A large pull request is hard to review, and will take a long time. It is
+    worth your time to split a large pull request into multiple smaller pull
+    requests. For reference, here are a few examples:
+
+    * [Small, very nice](https://bitbucket.org/osrf/gazebo/pull-request/1732)
+
+    * [Medium, still okay](https://bitbucket.org/osrf/gazebo/pull-request/1700/)
+
+    * [Too large](https://bitbucket.org/osrf/gazebo/pull-request/30)
+
+1. [Make a pull request](https://bitbucket.org/osrf/gazebo/pull-request/new)
+
+    Submit a pull request when you're ready.
+
+1. Continuous integration
+
+    The moment you make a pull request, a few jobs in our
+    [continuous integration](http://build.osrfoundation.org/)
+    server will be started. These jobs will build your branch on Linux, Mac and
+    Windows, run all tests and check for warnings.
+
+    Your pull request will be updated with the status of these builds. Take some
+    time to check these builds and see if you've introduced test failures,
+    warnings or broke some build. If you did and know how to fix it, do so. If
+    you don't know, speak up and someone may try to help you.
+
+1. Review
+
+    At least two other people have to approve your pull request before it can
+    be merged. Please be responsive to any questions and comments.
+
+1. Done, phew.
+
+    Once you have met all the requirements, you're code will be merged. Thanks
+    for improving Gazebo!
+
+### Internal Developers
+
+This section is targeted mostly at people who have commit access to the main
+repositories.
+
+In addition to the general development process, please follow these steps
+before submitting a pull request. Each step is pass/fail, where the test or
+check must pass before continuing to the next step.
+
+1. Run the style checker on your personal computer
+1. Run all, or only relevant, tests on your personal computer
+1. Run your branch through a Jenkins Linux no-gpu build
+1. Run your branch through a Jenkins Linux Nvidia build
+1. Run your branch through a Jenkins Homebrew build
+1. Run your branch through a Jenkins Windows build
+1. Run your branch through the ABI/API checker if targeting a release branch
+1. Submit the pull request, and make sure the following are included
+(a set of jenkins jobs will run automatically once the pull request is created,
+if not included automatically, you must add them manually):
+  1. Link to a coverage report
+  1. Link to a passing Homebrew build
+  1. Link to a passing Linux no-gpu build
+  1. Link to a passing Linux Nvidia build
+  1. Link to a passing Windows build
+  1. Link to a passing ABI/API report if the pull request is targeted at a release branch
+
+# Style
+
+In general, we follow [Google's style guide](https://google.github.io/styleguide/cppguide.html). However, we add in some extras.
+
+1. **This pointer**
+> All class attributes and member functions must be accessed using the `this->` pointer. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Base.cc#cl-40).
+
+1. **Underscore function parameters**
+> All function parameters must start with an underscore. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Base.cc#cl-77).
+
+1. **Do not cuddle braces**
+> All braces must be on their own line. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Base.cc#cl-131).
+
+1. **Multi-line code blocks**
+> If a block of code spans multiple lines and is part of a flow control statement, such as an `if`, then it must be wrapped in braces. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Base.cc#cl-249)
+
+1. **++ operator**
+> This occurs mostly in `for` loops. Prefix the `++` operator, which is [slightly more efficient than postfix in some cases](http://programmers.stackexchange.com/questions/59880/avoid-postfix-increment-operator).
+
+1. **PIMPL/Opaque pointer**
+> If you are writing a new class, it must use a private data pointer. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/World.hh?at=default#cl-479), and you can read more [here](https://en.wikipedia.org/wiki/Opaque_pointer).
+
+1. **const functions**
+> Any class function that does not change a member variable should be marked as `const`. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Entity.cc?at=default#cl-175).
+
+1. **const parameters**
+> All parameters that are not modified by a function should be marked as `const`. This applies to parameters that are passed by reference, pointer, and value. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Entity.cc?at=default#cl-217).
+
+1. **Pointer and reference variables**
+> Place the `*` and `&` next to the varaible name, not next to the type. For example: `int &variable` is good, but `int& variable` is not. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Entity.cc?at=default#cl-217).
+
+1. **Camel case**
+> In general, everything should use camel case. Exceptions include SDF element names, and protobuf variable names. Here is an [example](https://bitbucket.org/osrf/gazebo/src/default/gazebo/physics/Entity.cc?at=default#cl-217).
+
+1. **Class function names**
+> Class functions must start with a capital letter, and capitalize every word.
+>
+> `void MyFunction();` : Good
+>
+> `void myFunction();` : Bad
+>
+> `void my_function();` : Bad
+
+1. **Variable names**
+> Variables must start with a lower case letter, and capitalize every word thereafter.
+>
+> `int myVariable;` : Good
+>
+> `int myvariable;` : Bad
+>
+> `int my_variable;` : Bad
+
+1. **No inline comments**
+> `//` style comments may not be placed on the same line as code.
+>
+> `speed *= 0.44704;  // miles per hour to meters per second` : Bad
+
+# Write tests
+
+Gazebo uses [GTest](http://code.google.com/p/googletest) for general testing
+and [QTest](http://doc.qt.io/qt-5/qtest.html) for GUI tests. There are a few
+kinds of tests:
+
+1. Unit tests: all classes should have corresponding unit tests. These live
+in the same directory as the source code and are prefixed by `_TEST`.
+
+1. Integration tests: tests which verify how many classes are working together
+go under the `tests/integration` directory.
+
+1. Regression tests: tests which fix broken features go under `tests/regression`
+and are prefixed by the issue number on Gazebo's
+[issue tracker](https://bitbucket.org/osrf/gazebo/issues).
+
+Before creating a new integration or regression test file, check the current
+test files. If one closely matches the topic of your new code, simply add a new
+test function to the file. Otherwise, create a new test file, and write your
+test.
+
+## Test coverage
+
+The goal is to achieve 100% line and branch coverage. However, this is not
+always possible due to complexity issues, analysis tools misreporting
+coverage, and time constraints. Try to write as complete of a test suite as
+possible, and use the coverage analysis tools as guide. If you have trouble
+writing a test please ask for help in your pull request.
+
+Gazebo has a build target called `make coverage` that will produce a code
+coverage report. You'll need to have
+[lcov](http://ltp.sourceforge.net/coverage/lcov.php) and
+[gcov](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html) installed.
+
+1. In your `build` folder, compile Gazebo with `-DCMAKE_BUILD_TYPE=Coverage`
+
+        cmake -DCMAKE_BUILD_TYPE=Coverage ..\
+        make
+
+1. Run a single test, or all the tests
+
+        make test
+
+1. Make the coverage report
+
+        make coverage
+
+1. View the coverage report
+
+        firefox coverage/index.html
+
+## Gazebo assertions
+
+### What is an assertion?
+
+An assertion is a check, which always produces a boolean result, that
+developers place in the code when want to be sure that check is always true.
+They are aimed to detect programming errors and should check for impossible
+situations in the code. If the assertion check failed, the assertion will
+stop the program immediately.
+
+     Object * p = some_crazy_function()
+     GZ_ASSERT(p != nullptr, "Object from some_crazy_function should never point to NULL")
+     p->run()
+
+### Gazebo runtime assertions: GZ_ASSERT
+
+In Gazebo, the GZ_ASSERT macro id designed to handle all our runtime assertions
+
+     GZ_ASSERT(<condition to check>,<fail msg>)
+
+* `condition-to-check`: anything returning a boolean value that should always be true.
+* `fail msg`: message displayed when assertion is thrown
+
+### Benefits of the assertions
+
+Some of the benefits of using the assertions:
+
+* They are really useful for not having to debug all kind of weird and unexpected errors, especially in runtime. Exact failure point appears when pass by an assertion.
+* Developer can be sure that some conditions are met at a given code point. Code turns more reliable.
+* Help to detect no so obvious errors happening (affecting performance for example)
+
+### Difference between Assertion and Exception
+
+While assertions are aimed at impossible situations generated from
+programming errors, exceptions handle all kind of expected errors and unusual
+but logically possible code situations.
+
+Lets review an example: suppose we are writing a math library and created a really fast method to calculate square roots but it only works for positive numbers. Something declared as:
+
+     double sqrt_for_positives(double number)
+
+So what could be an assertion and what an exception for our revolutionary function?
+
+* Exception: if the incoming number is negative (our function only accepts positive numbers), then we will thrown an exception. It was an error by the user but we should consider it a possible scenario since we are offering a public interface.
+
+* Assertion: our square root should never return a negative number. This is not a logical error, it's a completely unexpected error.
+
+## Debugging Gazebo
+
+### Meaningful backtraces
+
+In order to provide meaningful backtraces when using a debugger, such as GDB, Gazebo should be compiled with debugging support enabled. When using the ubuntu packages, specially the ''-dbg'' package, this support is limited but could be enough in most of the situations. This are the three level of traces which can be obtained:
+
+**Maximum level of debugging support**
+:This only can be obtained compiling Gazebo from source and setting the `CMAKE_BUILD_TYPE` to `DEBUG`. This will set up no optimizations and debugging symbols. It can be required by developers in situations specially difficult to reproduce.
+
+**Medium level of debugging support**
+:This can be obtained installing the ''gazebo-dbg'' package (since 1.4 version) or compiling Gazebo from source using the `RELWITHDEBINFO` `CMAKE_BUILD_TYPE` mode (which is the default if no mode is provided). This will set up ''-O2'' optimization level but provide debugging symbols. This should be the default when firing up gdb to explore errors and submit traces.
+
+**Minimum level of debugging support**
+:This one is present in package versions previous to 1.4 (no ''-dbg'' package present) or compiling Gazebo from source using the `RELEASE` `CMAKE_BUILD_TYPE` option. This will set up the maximum level of optimizations and does not provide any debugging symbol information. This traces are particularly difficult to follow.
+
diff --git a/Changelog.md b/Changelog.md
index f447b47..d7d4400 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,8 +1,80 @@
 ## Gazebo 7
 
-## Gazebo 7.x.x (2016-xx-xx)
+## Gazebo 7.x.x (2017-xx-xx)
 
-1. Don't use qt4 webkit for HotkeyDialog
+## Gazebo 7.8.1 (2017-06-08)
+
+1. ODE slip parameter example world and test
+    * [Pull request 2717](https://bitbucket.org/osrf/gazebo/pull-request/2717)
+
+1. Fix inserted mesh scale during log playback
+    * [Pull request #2723](https://bitbucket.org/osrf/gazebo/pull-request/2723)
+
+## Gazebo 7.8.0 (2017-06-02)
+
+1. Add log record filter options
+    * [Pull request 2715](https://bitbucket.org/osrf/gazebo/pull-request/2715)
+
+1. Backport wide angle camera VM FSAA fix
+    * [Pull request 2711](https://bitbucket.org/osrf/gazebo/pull-request/2711)
+
+1. Add function to retrieve scoped sensors name in multi-nested model
+    * [Pull request #2676](https://bitbucket.org/osrf/gazebo/pull-request/2674)
+
+## Gazebo 7.7.0 (2017-05-04)
+
+1. Fix race condition during Detach of HarnessPlugin
+    * [Pull request 2696](https://bitbucket.org/osrf/gazebo/pull-request/2696)
+
+1. Added support for pincushion distortion model; fixed bug where
+   cameras with different distortion models would have the same distortion.
+    * [Pull request 2678](https://bitbucket.org/osrf/gazebo/pull-requests/2678)
+
+1. Added <collide_bitmask> support to bullet
+    * [Pull request 2649](https://bitbucket.org/osrf/gazebo/pull-request/2649)
+
+1. Fix linking when using HDF5_INSTRUMENT for logging ODE data
+    * [Pull request 2669](https://bitbucket.org/osrf/gazebo/pull-request/2669)
+
+1. Subdivide large heightmaps to fix LOD and support global texture mapping
+    * [Pull request 2655](https://bitbucket.org/osrf/gazebo/pull-request/2655)
+
+## Gazebo 7.6.0 (2017-03-20)
+
+1. Force / torque sensor visualization using WrenchVisual
+    * [Pull request 2653](https://bitbucket.org/osrf/gazebo/pull-request/2653)
+
+1. Cache heightmap tile data
+    * [Pull request 2645](https://bitbucket.org/osrf/gazebo/pull-request/2645)
+
+1. Add plugin for attaching lights to links in a model
+    * [Pull request 2647](https://bitbucket.org/osrf/gazebo/pull-request/2647)
+
+1. Support Heightmap LOD
+    * [Pull request 2636](https://bitbucket.org/osrf/gazebo/pull-request/2636)
+
+1. Support setting shadow texture size
+    * [Pull request 2644](https://bitbucket.org/osrf/gazebo/pull-request/2644)
+
+1. Fix deprecated sdf warnings produced by PluginToSDF
+    * [Pull request 2646](https://bitbucket.org/osrf/gazebo/pull-request/2646)
+
+1. Added TouchPlugin, which checks if a model has been in contact with another
+   model exclusively for a certain time.
+    * [Pull request 2651](https://bitbucket.org/osrf/gazebo/pull-request/2651)
+
+1. Fixes -inf laser reading being displayed as +inf
+    * [Pull request 2641](https://bitbucket.org/osrf/gazebo/pull-request/2641)
+
+1. Fix memory leaks in tests
+    * [Pull request 2639](https://bitbucket.org/osrf/gazebo/pull-request/2639)
+
+1. Remove end year from copyright
+    * [Pull request 2614](https://bitbucket.org/osrf/gazebo/pull-request/2614)
+
+## Gazebo 7.5.0 (2017-01-11)
+
+1. Remove qt4 webkit in gazebo7 (used for HotkeyDialog).
     * [Pull request 2584](https://bitbucket.org/osrf/gazebo/pull-request/2584)
 
 1. Support configuring heightmap sampling level
@@ -678,14 +750,34 @@ using the same arguments used in the command line.
 
 ## Gazebo 6.0
 
-### Gazebo 6.X.X (201X-XX-XX)
+### Gazebo 6.7.0 (201X-01-12)
 
-1. Fix buoyancy plugin when multiple link tags are used within the plugin
-    * [Pull request 2369](https://bitbucket.org/osrf/gazebo/pull-request/2369)
+1. Add vector3 and quaternion rendering conversions
+    * [Pull request 2276](https://bitbucket.org/osrf/gazebo/pull-request/2276)
+
+1. Reverse view angle widget left and right view
+    * [Pull request 2265](https://bitbucket.org/osrf/gazebo/pull-request/2265)
+    * [Issue 1924](https://bitbucket.org/osrf/gazebo/issue/1924)
 
 1. Fix race condition in ~TimePanelPrivate (#1919)
     * [Pull request 2250](https://bitbucket.org/osrf/gazebo/pull-request/2250)
 
+1. Prevent orthographic camera from resetting zoom after animation
+    * [Pull request 2267](https://bitbucket.org/osrf/gazebo/pull-request/2267)
+    * [Issue #1927](https://bitbucket.org/osrf/gazebo/issues/1927)
+
+1. Fix MeshToSDF missing scale issue
+    * [Pull request 2258](https://bitbucket.org/osrf/gazebo/pull-request/2258)
+    * [Issue #1925](https://bitbucket.org/osrf/gazebo/issues/1925)
+
+1. Register Qt metatypes in gui tests
+    * [Pull request 2273](https://bitbucket.org/osrf/gazebo/pull-request/2273)
+
+1. Fix resetting model to initial pose
+    * [Pull request 2307](https://bitbucket.org/osrf/gazebo/pull-request/2307)
+    * [Issue #1960](https://bitbucket.org/osrf/gazebo/issues/1960)
+
+
 ### Gazebo 6.6.0 (2016-04-07)
 
 1. fix: remove back projection
@@ -1171,7 +1263,11 @@ compilation on Windows.
 
 ## Gazebo 5.0
 
-### Gazebo 5.x.x
+### Gazebo 5.4.0 (2017-01-17)
+
+1. Check FSAA support when creating camera render textures
+    * [Pull request 2442](https://bitbucket.org/osrf/gazebo/pull-request/2442)
+    * [Issue #1837](https://bitbucket.org/osrf/gazebo/issue/1837)
 
 1. Fix mouse picking with transparent visuals
     * [Pull request 2305](https://bitbucket.org/osrf/gazebo/pull-request/2305)
diff --git a/LICENSE b/LICENSE
index efd313c..a473db6 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 Software License Agreement (Apache License)
 
-Copyright (C) 2012-2016 Open Source Robotics Foundation
+Copyright (C) 2012 Open Source Robotics Foundation
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/Migration.md b/Migration.md
index 22caa0f..bf43583 100644
--- a/Migration.md
+++ b/Migration.md
@@ -5,6 +5,25 @@ Deprecated code produces compile-time warnings. These warning serve as
 notification to users that their code should be upgraded. The next major
 release will remove the deprecated code.
 
+## Gazebo 7.9.0 to 7.X
+
+### Modifications
+
+1. **gazebo/physics/ode/ODEPhysics.cc**
+   `ODEPhysics::Collide` combines surface slip parameters with a sum
+   instead of `std::min`.
+   Please see [Pull request 2717](https://bitbucket.org/osrf/gazebo/pull-request/2717)
+   for more details.
+
+## Gazebo 7.8.0 to 7.X
+
+### Modifications
+
+1. **gz log**
+   Gazebo log files no longer store velocity data and have reduced floating point precision.
+   See [pull request 2715](https://bitbucket.org/osrf/gazebo/pull-requests/2715/add-log-record-filter-options)
+   for further details.
+
 ## Gazebo 7.3.1 to 7.X
 
 ### Deprecations
diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
index 951810e..97ec91f 100644
--- a/cmake/SearchForStuff.cmake
+++ b/cmake/SearchForStuff.cmake
@@ -80,8 +80,7 @@ else ()
 endif ()
 
 ########################################
-include (FindHDF5)
-find_package(HDF5)
+find_package(HDF5 COMPONENTS C CXX)
 
 if (NOT HDF5_FOUND)
   BUILD_WARNING("HDF5 not found")
diff --git a/deps/opende/src/io.cpp b/deps/opende/src/io.cpp
index 0fa3de0..00c6966 100644
--- a/deps/opende/src/io.cpp
+++ b/deps/opende/src/io.cpp
@@ -377,7 +377,9 @@ void h5dump::dump(bool first)
 
   Group  gp = append_problem(F, "mbs_frame");
   if (first )
+  {
     //dump_string(gp, "toolkit", "This example was generated by the ODE toolkit");
+  }
 
   dump_scalar(gp, "timestep",    step_size);
 
diff --git a/deps/opende/src/step_bullet_inc.h b/deps/opende/src/step_bullet_inc.h
index 0a57c5c..65cca63 100644
--- a/deps/opende/src/step_bullet_inc.h
+++ b/deps/opende/src/step_bullet_inc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/opende/src/step_bullet_lemke_wrapper.cpp b/deps/opende/src/step_bullet_lemke_wrapper.cpp
index cdaf565..25f74f5 100644
--- a/deps/opende/src/step_bullet_lemke_wrapper.cpp
+++ b/deps/opende/src/step_bullet_lemke_wrapper.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/opende/src/step_bullet_lemke_wrapper.h b/deps/opende/src/step_bullet_lemke_wrapper.h
index e98659d..322cb90 100644
--- a/deps/opende/src/step_bullet_lemke_wrapper.h
+++ b/deps/opende/src/step_bullet_lemke_wrapper.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/opende/src/step_bullet_pgs_wrapper.cpp b/deps/opende/src/step_bullet_pgs_wrapper.cpp
index 4178516..9670ba1 100644
--- a/deps/opende/src/step_bullet_pgs_wrapper.cpp
+++ b/deps/opende/src/step_bullet_pgs_wrapper.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/opende/src/step_bullet_pgs_wrapper.h b/deps/opende/src/step_bullet_pgs_wrapper.h
index 2d1aa0b..86c07d6 100644
--- a/deps/opende/src/step_bullet_pgs_wrapper.h
+++ b/deps/opende/src/step_bullet_pgs_wrapper.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/opende/src/step_dart_pgs_wrapper.cpp b/deps/opende/src/step_dart_pgs_wrapper.cpp
index 9d28a73..5caa89e 100644
--- a/deps/opende/src/step_dart_pgs_wrapper.cpp
+++ b/deps/opende/src/step_dart_pgs_wrapper.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/deps/opende/src/step_dart_pgs_wrapper.h b/deps/opende/src/step_dart_pgs_wrapper.h
index ea65cf8..1922965 100644
--- a/deps/opende/src/step_dart_pgs_wrapper.h
+++ b/deps/opende/src/step_dart_pgs_wrapper.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/ignition/angle.cc b/examples/ignition/angle.cc
index c2afcfa..7c46d60 100644
--- a/examples/ignition/angle.cc
+++ b/examples/ignition/angle.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/ignition/box.cc b/examples/ignition/box.cc
index 985eda8..78e5423 100644
--- a/examples/ignition/box.cc
+++ b/examples/ignition/box.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/ignition/vector3.cc b/examples/ignition/vector3.cc
index 4e72319..c695a68 100644
--- a/examples/ignition/vector3.cc
+++ b/examples/ignition/vector3.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/animate_joints/animate_joints.cc b/examples/plugins/animate_joints/animate_joints.cc
index ab05eb4..eed5d27 100644
--- a/examples/plugins/animate_joints/animate_joints.cc
+++ b/examples/plugins/animate_joints/animate_joints.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/animate_pose/animate_pose.cc b/examples/plugins/animate_pose/animate_pose.cc
index 305d36b..5bbb31d 100644
--- a/examples/plugins/animate_pose/animate_pose.cc
+++ b/examples/plugins/animate_pose/animate_pose.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/camera/camera_dump.cc b/examples/plugins/camera/camera_dump.cc
index 7cceaad..f1a424f 100644
--- a/examples/plugins/camera/camera_dump.cc
+++ b/examples/plugins/camera/camera_dump.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/camera/camera_move.cc b/examples/plugins/camera/camera_move.cc
index b906963..eb7c15e 100644
--- a/examples/plugins/camera/camera_move.cc
+++ b/examples/plugins/camera/camera_move.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/custom_messages/custom_messages.cc b/examples/plugins/custom_messages/custom_messages.cc
index 4d5ad0a..a8d91e3 100644
--- a/examples/plugins/custom_messages/custom_messages.cc
+++ b/examples/plugins/custom_messages/custom_messages.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/factory/factory.cc b/examples/plugins/factory/factory.cc
index fe6e9c8..3197eb1 100644
--- a/examples/plugins/factory/factory.cc
+++ b/examples/plugins/factory/factory.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.cc b/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.cc
index 7c2144a..50fc388 100644
--- a/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.cc
+++ b/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.hh b/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.hh
index d77265b..e98dc7f 100644
--- a/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.hh
+++ b/examples/plugins/gui_overlay_plugin_spawn/GUIExampleSpawnWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.cc b/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.cc
index 2971165..88455c6 100644
--- a/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.cc
+++ b/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.hh b/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.hh
index 3626fb9..cedd406 100644
--- a/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.hh
+++ b/examples/plugins/gui_overlay_plugin_time/GUIExampleTimeWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/hello_world/hello_world.cc b/examples/plugins/hello_world/hello_world.cc
index eee1579..30cdab3 100644
--- a/examples/plugins/hello_world/hello_world.cc
+++ b/examples/plugins/hello_world/hello_world.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/mainwindow_example/MainWindowExampleWidget.cc b/examples/plugins/mainwindow_example/MainWindowExampleWidget.cc
index 1c04e42..394ab68 100644
--- a/examples/plugins/mainwindow_example/MainWindowExampleWidget.cc
+++ b/examples/plugins/mainwindow_example/MainWindowExampleWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/mainwindow_example/MainWindowExampleWidget.hh b/examples/plugins/mainwindow_example/MainWindowExampleWidget.hh
index 67a776f..bb30ae0 100644
--- a/examples/plugins/mainwindow_example/MainWindowExampleWidget.hh
+++ b/examples/plugins/mainwindow_example/MainWindowExampleWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/model_move/model_move.cc b/examples/plugins/model_move/model_move.cc
index a3a831c..96dbf03 100644
--- a/examples/plugins/model_move/model_move.cc
+++ b/examples/plugins/model_move/model_move.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/model_move/model_move.hh b/examples/plugins/model_move/model_move.hh
index dd525d9..b46b935 100644
--- a/examples/plugins/model_move/model_move.hh
+++ b/examples/plugins/model_move/model_move.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/model_move/path_publisher.cc b/examples/plugins/model_move/path_publisher.cc
index 576aa76..dea3086 100644
--- a/examples/plugins/model_move/path_publisher.cc
+++ b/examples/plugins/model_move/path_publisher.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/model_push/model_push.cc b/examples/plugins/model_push/model_push.cc
index daea0f8..10473bd 100644
--- a/examples/plugins/model_push/model_push.cc
+++ b/examples/plugins/model_push/model_push.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/model_visuals/model_visuals.cc b/examples/plugins/model_visuals/model_visuals.cc
index 322b05f..e6531de 100644
--- a/examples/plugins/model_visuals/model_visuals.cc
+++ b/examples/plugins/model_visuals/model_visuals.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/parameters/parameters.cc b/examples/plugins/parameters/parameters.cc
index f0cd149..b7003e1 100644
--- a/examples/plugins/parameters/parameters.cc
+++ b/examples/plugins/parameters/parameters.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/pr2_pose_test.cc b/examples/plugins/pr2_pose_test.cc
index fbf9114..953cb72 100644
--- a/examples/plugins/pr2_pose_test.cc
+++ b/examples/plugins/pr2_pose_test.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/presentation.cc b/examples/plugins/presentation.cc
index e5975c4..2145c1c 100644
--- a/examples/plugins/presentation.cc
+++ b/examples/plugins/presentation.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/projector/projector.cc b/examples/plugins/projector/projector.cc
index dbb68d6..a0b32e9 100644
--- a/examples/plugins/projector/projector.cc
+++ b/examples/plugins/projector/projector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/ray_test.cc b/examples/plugins/ray_test.cc
index 8ac7d17..894137a 100644
--- a/examples/plugins/ray_test.cc
+++ b/examples/plugins/ray_test.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/system_gui_plugin/system_gui.cc b/examples/plugins/system_gui_plugin/system_gui.cc
index cf01a3b..5495553 100644
--- a/examples/plugins/system_gui_plugin/system_gui.cc
+++ b/examples/plugins/system_gui_plugin/system_gui.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/plugins/world_edit/world_edit.cc b/examples/plugins/world_edit/world_edit.cc
index 751f9bd..aa50940 100644
--- a/examples/plugins/world_edit/world_edit.cc
+++ b/examples/plugins/world_edit/world_edit.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/actuator/main.cc b/examples/stand_alone/actuator/main.cc
index 2e4c211..80737a7 100644
--- a/examples/stand_alone/actuator/main.cc
+++ b/examples/stand_alone/actuator/main.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/animated_box/animated_box.cc b/examples/stand_alone/animated_box/animated_box.cc
index f10e038..8ae5278 100644
--- a/examples/stand_alone/animated_box/animated_box.cc
+++ b/examples/stand_alone/animated_box/animated_box.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/animated_box/independent_listener.cc b/examples/stand_alone/animated_box/independent_listener.cc
index a243c95..8de87dc 100644
--- a/examples/stand_alone/animated_box/independent_listener.cc
+++ b/examples/stand_alone/animated_box/independent_listener.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/animated_box/integrated_main.cc b/examples/stand_alone/animated_box/integrated_main.cc
index 9d56637..312566a 100644
--- a/examples/stand_alone/animated_box/integrated_main.cc
+++ b/examples/stand_alone/animated_box/integrated_main.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/arrange/arrange_plugin_test.cc b/examples/stand_alone/arrange/arrange_plugin_test.cc
index 6202349..1583619 100644
--- a/examples/stand_alone/arrange/arrange_plugin_test.cc
+++ b/examples/stand_alone/arrange/arrange_plugin_test.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/clone_simulation/cloner.cc b/examples/stand_alone/clone_simulation/cloner.cc
index aa04d74..271b731 100644
--- a/examples/stand_alone/clone_simulation/cloner.cc
+++ b/examples/stand_alone/clone_simulation/cloner.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/custom_main/custom_main.cc b/examples/stand_alone/custom_main/custom_main.cc
index 9d8cda3..1b7bedd 100644
--- a/examples/stand_alone/custom_main/custom_main.cc
+++ b/examples/stand_alone/custom_main/custom_main.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/custom_main/custom_main_vector.cc b/examples/stand_alone/custom_main/custom_main_vector.cc
index 9f6dcb5..a326290 100644
--- a/examples/stand_alone/custom_main/custom_main_vector.cc
+++ b/examples/stand_alone/custom_main/custom_main_vector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/custom_main_pkgconfig/custom_main.cc b/examples/stand_alone/custom_main_pkgconfig/custom_main.cc
index 9d8cda3..1b7bedd 100644
--- a/examples/stand_alone/custom_main_pkgconfig/custom_main.cc
+++ b/examples/stand_alone/custom_main_pkgconfig/custom_main.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/listener/listener.cc b/examples/stand_alone/listener/listener.cc
index 3acd150..2e390ee 100644
--- a/examples/stand_alone/listener/listener.cc
+++ b/examples/stand_alone/listener/listener.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/publisher/publisher.cc b/examples/stand_alone/publisher/publisher.cc
index b459b18..e1a0666 100644
--- a/examples/stand_alone/publisher/publisher.cc
+++ b/examples/stand_alone/publisher/publisher.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/test_fixture/test.cc b/examples/stand_alone/test_fixture/test.cc
index 142a795..24f50d8 100644
--- a/examples/stand_alone/test_fixture/test.cc
+++ b/examples/stand_alone/test_fixture/test.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/examples/stand_alone/transporter/transporter.cc b/examples/stand_alone/transporter/transporter.cc
index c59dc85..4036e44 100644
--- a/examples/stand_alone/transporter/transporter.cc
+++ b/examples/stand_alone/transporter/transporter.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/Master.cc b/gazebo/Master.cc
index e815ea8..9078d43 100644
--- a/gazebo/Master.cc
+++ b/gazebo/Master.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/Master.hh b/gazebo/Master.hh
index 246e4f4..41ec26d 100644
--- a/gazebo/Master.hh
+++ b/gazebo/Master.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/Server.cc b/gazebo/Server.cc
index 4854f23..3a245d9 100644
--- a/gazebo/Server.cc
+++ b/gazebo/Server.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -155,6 +155,10 @@ bool Server::ParseArgs(int _argc, char **_argv)
      "Compression encoding format for log data (zlib|bz2|txt).")
     ("record_path", po::value<std::string>()->default_value(""),
      "Absolute path in which to store state data")
+    ("record_period", po::value<double>()->default_value(-1),
+     "Recording period (seconds).")
+    ("record_filter", po::value<std::string>()->default_value(""),
+     "Recording filter (supports wildcard and regular expression).")
     ("seed",  po::value<double>(), "Start with a given random number seed.")
     ("iters",  po::value<unsigned int>(), "Number of iterations to simulate.")
     ("minimal_comms", "Reduce the TCP/IP traffic output by gzserver")
@@ -252,9 +256,9 @@ bool Server::ParseArgs(int _argc, char **_argv)
   if (this->dataPtr->vm.count("record"))
   {
     this->dataPtr->params["record"] =
-        this->dataPtr->vm["record_path"].as<std::string>();
+      this->dataPtr->vm["record_path"].as<std::string>();
     this->dataPtr->params["record_encoding"] =
-        this->dataPtr->vm["record_encoding"].as<std::string>();
+      this->dataPtr->vm["record_encoding"].as<std::string>();
   }
 
   if (this->dataPtr->vm.count("iters"))
@@ -612,8 +616,13 @@ void Server::ProcessParams()
     }
     else if (iter->first == "record")
     {
-      util::LogRecord::Instance()->Start(
-          this->dataPtr->params["record_encoding"], iter->second);
+      util::LogRecordParams params;
+
+      params.encoding = this->dataPtr->params["record_encoding"];
+      params.path = iter->second;
+      params.period = this->dataPtr->vm["record_period"].as<double>();
+      params.filter = this->dataPtr->vm["record_filter"].as<std::string>();
+      util::LogRecord::Instance()->Start(params);
     }
   }
 }
diff --git a/gazebo/Server.hh b/gazebo/Server.hh
index fab75d0..9e3b5ce 100644
--- a/gazebo/Server.hh
+++ b/gazebo/Server.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Animation.cc b/gazebo/common/Animation.cc
index af9b6cf..f960fcd 100644
--- a/gazebo/common/Animation.cc
+++ b/gazebo/common/Animation.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Animation.hh b/gazebo/common/Animation.hh
index 7c3e9e5..e75a7de 100644
--- a/gazebo/common/Animation.hh
+++ b/gazebo/common/Animation.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Animation_TEST.cc b/gazebo/common/Animation_TEST.cc
index 4a2bf13..4ea5bf0 100644
--- a/gazebo/common/Animation_TEST.cc
+++ b/gazebo/common/Animation_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Assert.cc b/gazebo/common/Assert.cc
index 08f0178..d6f071c 100644
--- a/gazebo/common/Assert.cc
+++ b/gazebo/common/Assert.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Assert.hh b/gazebo/common/Assert.hh
index be1a89b..7c609d8 100644
--- a/gazebo/common/Assert.hh
+++ b/gazebo/common/Assert.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/AudioDecoder.cc b/gazebo/common/AudioDecoder.cc
index 40f0970..8b5a77f 100644
--- a/gazebo/common/AudioDecoder.cc
+++ b/gazebo/common/AudioDecoder.cc
@@ -1,5 +1,5 @@
 /*
-* Copyright (C) 2012-2016 Open Source Robotics Foundation
+* Copyright (C) 2012 Open Source Robotics Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/AudioDecoder.hh b/gazebo/common/AudioDecoder.hh
index e99e25a..45238ed 100644
--- a/gazebo/common/AudioDecoder.hh
+++ b/gazebo/common/AudioDecoder.hh
@@ -1,5 +1,5 @@
 /*
-* Copyright (C) 2012-2016 Open Source Robotics Foundation
+* Copyright (C) 2012 Open Source Robotics Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/AudioDecoder_TEST.cc b/gazebo/common/AudioDecoder_TEST.cc
index bd65e9e..02c3e0d 100644
--- a/gazebo/common/AudioDecoder_TEST.cc
+++ b/gazebo/common/AudioDecoder_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/BVHLoader.cc b/gazebo/common/BVHLoader.cc
index 4a8fef5..ac0d203 100644
--- a/gazebo/common/BVHLoader.cc
+++ b/gazebo/common/BVHLoader.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/BVHLoader.hh b/gazebo/common/BVHLoader.hh
index 9f53c45..29da2cb 100644
--- a/gazebo/common/BVHLoader.hh
+++ b/gazebo/common/BVHLoader.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Base64.cc b/gazebo/common/Base64.cc
index 3b65ff6..a8e5100 100644
--- a/gazebo/common/Base64.cc
+++ b/gazebo/common/Base64.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Base64.hh b/gazebo/common/Base64.hh
index 818baa7..2107994 100644
--- a/gazebo/common/Base64.hh
+++ b/gazebo/common/Base64.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Battery.cc b/gazebo/common/Battery.cc
index df1437d..50d2ef8 100644
--- a/gazebo/common/Battery.cc
+++ b/gazebo/common/Battery.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Battery.hh b/gazebo/common/Battery.hh
index aa544bc..d7efbd8 100644
--- a/gazebo/common/Battery.hh
+++ b/gazebo/common/Battery.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/BatteryPrivate.hh b/gazebo/common/BatteryPrivate.hh
index 07e4d71..a9ce60c 100644
--- a/gazebo/common/BatteryPrivate.hh
+++ b/gazebo/common/BatteryPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Battery_TEST.cc b/gazebo/common/Battery_TEST.cc
index 43edab7..9ecdae1 100644
--- a/gazebo/common/Battery_TEST.cc
+++ b/gazebo/common/Battery_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaExporter.cc b/gazebo/common/ColladaExporter.cc
index c3d83ac..00ea3db 100644
--- a/gazebo/common/ColladaExporter.cc
+++ b/gazebo/common/ColladaExporter.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaExporter.hh b/gazebo/common/ColladaExporter.hh
index 5a52c59..44cee2c 100644
--- a/gazebo/common/ColladaExporter.hh
+++ b/gazebo/common/ColladaExporter.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaExporterPrivate.hh b/gazebo/common/ColladaExporterPrivate.hh
index 3df3c98..31f5a30 100644
--- a/gazebo/common/ColladaExporterPrivate.hh
+++ b/gazebo/common/ColladaExporterPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaExporter_TEST.cc b/gazebo/common/ColladaExporter_TEST.cc
index a359a77..0225099 100644
--- a/gazebo/common/ColladaExporter_TEST.cc
+++ b/gazebo/common/ColladaExporter_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaLoader.cc b/gazebo/common/ColladaLoader.cc
index 118806e..9842d21 100644
--- a/gazebo/common/ColladaLoader.cc
+++ b/gazebo/common/ColladaLoader.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaLoader.hh b/gazebo/common/ColladaLoader.hh
index ec625fb..5709c14 100644
--- a/gazebo/common/ColladaLoader.hh
+++ b/gazebo/common/ColladaLoader.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaLoaderPrivate.hh b/gazebo/common/ColladaLoaderPrivate.hh
index e28c6fd..e48d6f2 100644
--- a/gazebo/common/ColladaLoaderPrivate.hh
+++ b/gazebo/common/ColladaLoaderPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ColladaLoader_TEST.cc b/gazebo/common/ColladaLoader_TEST.cc
index 03364c4..ba779ee 100644
--- a/gazebo/common/ColladaLoader_TEST.cc
+++ b/gazebo/common/ColladaLoader_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Color.cc b/gazebo/common/Color.cc
index f6aab26..ea1b6bc 100644
--- a/gazebo/common/Color.cc
+++ b/gazebo/common/Color.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Color.hh b/gazebo/common/Color.hh
index f3d3d6b..f2f6c8f 100644
--- a/gazebo/common/Color.hh
+++ b/gazebo/common/Color.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Color_TEST.cc b/gazebo/common/Color_TEST.cc
index 1345503..04e230d 100644
--- a/gazebo/common/Color_TEST.cc
+++ b/gazebo/common/Color_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/CommonIface.cc b/gazebo/common/CommonIface.cc
index 7074b94..2ee873d 100644
--- a/gazebo/common/CommonIface.cc
+++ b/gazebo/common/CommonIface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/CommonIface.hh b/gazebo/common/CommonIface.hh
index b7d5b8a..3af3bb1 100644
--- a/gazebo/common/CommonIface.hh
+++ b/gazebo/common/CommonIface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/CommonIface_TEST.cc b/gazebo/common/CommonIface_TEST.cc
index 90de119..4764c50 100644
--- a/gazebo/common/CommonIface_TEST.cc
+++ b/gazebo/common/CommonIface_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/CommonTypes.hh b/gazebo/common/CommonTypes.hh
index b0b4518..9a61f92 100644
--- a/gazebo/common/CommonTypes.hh
+++ b/gazebo/common/CommonTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Console.cc b/gazebo/common/Console.cc
index bd00977..e53e9e7 100644
--- a/gazebo/common/Console.cc
+++ b/gazebo/common/Console.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Console.hh b/gazebo/common/Console.hh
index 5b4996c..5b66632 100644
--- a/gazebo/common/Console.hh
+++ b/gazebo/common/Console.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Console_TEST.cc b/gazebo/common/Console_TEST.cc
index 35921e5..3052b9b 100644
--- a/gazebo/common/Console_TEST.cc
+++ b/gazebo/common/Console_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Dem.cc b/gazebo/common/Dem.cc
index 2f5d69e..eca9644 100644
--- a/gazebo/common/Dem.cc
+++ b/gazebo/common/Dem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Dem.hh b/gazebo/common/Dem.hh
index 80142a9..bf409d2 100644
--- a/gazebo/common/Dem.hh
+++ b/gazebo/common/Dem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/DemPrivate.hh b/gazebo/common/DemPrivate.hh
index 81e96d0..1a00f9b 100644
--- a/gazebo/common/DemPrivate.hh
+++ b/gazebo/common/DemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Dem_TEST.cc b/gazebo/common/Dem_TEST.cc
index a50376d..63d8b50 100644
--- a/gazebo/common/Dem_TEST.cc
+++ b/gazebo/common/Dem_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/EnumIface.hh b/gazebo/common/EnumIface.hh
index 32d2e9a..806d6cf 100644
--- a/gazebo/common/EnumIface.hh
+++ b/gazebo/common/EnumIface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/EnumIface_TEST.cc b/gazebo/common/EnumIface_TEST.cc
index a776719..1f9108e 100644
--- a/gazebo/common/EnumIface_TEST.cc
+++ b/gazebo/common/EnumIface_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Event.cc b/gazebo/common/Event.cc
index c694147..a3f69c8 100644
--- a/gazebo/common/Event.cc
+++ b/gazebo/common/Event.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Event.hh b/gazebo/common/Event.hh
index 2a732c4..49d7586 100644
--- a/gazebo/common/Event.hh
+++ b/gazebo/common/Event.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Event_TEST.cc b/gazebo/common/Event_TEST.cc
index 9bf10f9..bbd236c 100644
--- a/gazebo/common/Event_TEST.cc
+++ b/gazebo/common/Event_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Events.cc b/gazebo/common/Events.cc
index 6d3dbc5..2193ca7 100644
--- a/gazebo/common/Events.cc
+++ b/gazebo/common/Events.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Events.hh b/gazebo/common/Events.hh
index 9f6ea09..32a1e56 100644
--- a/gazebo/common/Events.hh
+++ b/gazebo/common/Events.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Exception.cc b/gazebo/common/Exception.cc
index aed8826..0af65b0 100644
--- a/gazebo/common/Exception.cc
+++ b/gazebo/common/Exception.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Exception.hh b/gazebo/common/Exception.hh
index 45882b5..e0844c1 100644
--- a/gazebo/common/Exception.hh
+++ b/gazebo/common/Exception.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Exception_TEST.cc b/gazebo/common/Exception_TEST.cc
index 5de886f..9c0b113 100644
--- a/gazebo/common/Exception_TEST.cc
+++ b/gazebo/common/Exception_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/GTSMeshUtils.cc b/gazebo/common/GTSMeshUtils.cc
index 7d9866a..2ae3cf1 100644
--- a/gazebo/common/GTSMeshUtils.cc
+++ b/gazebo/common/GTSMeshUtils.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/GTSMeshUtils.hh b/gazebo/common/GTSMeshUtils.hh
index 1b28337..e0b0423 100644
--- a/gazebo/common/GTSMeshUtils.hh
+++ b/gazebo/common/GTSMeshUtils.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/GTSMeshUtils_TEST.cc b/gazebo/common/GTSMeshUtils_TEST.cc
index 7631a2f..096fa46 100644
--- a/gazebo/common/GTSMeshUtils_TEST.cc
+++ b/gazebo/common/GTSMeshUtils_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/HeightmapData.hh b/gazebo/common/HeightmapData.hh
index cdf7adb..c4fe76e 100644
--- a/gazebo/common/HeightmapData.hh
+++ b/gazebo/common/HeightmapData.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Image.cc b/gazebo/common/Image.cc
index 9215a41..8802583 100644
--- a/gazebo/common/Image.cc
+++ b/gazebo/common/Image.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Image.hh b/gazebo/common/Image.hh
index 12d1c02..c1ae748 100644
--- a/gazebo/common/Image.hh
+++ b/gazebo/common/Image.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ImageHeightmap.cc b/gazebo/common/ImageHeightmap.cc
index 60ed8b2..164e012 100644
--- a/gazebo/common/ImageHeightmap.cc
+++ b/gazebo/common/ImageHeightmap.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ImageHeightmap.hh b/gazebo/common/ImageHeightmap.hh
index 8086d3d..502c9c7 100644
--- a/gazebo/common/ImageHeightmap.hh
+++ b/gazebo/common/ImageHeightmap.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ImageHeightmap_TEST.cc b/gazebo/common/ImageHeightmap_TEST.cc
index ffa62cf..7d8dcd6 100644
--- a/gazebo/common/ImageHeightmap_TEST.cc
+++ b/gazebo/common/ImageHeightmap_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Image_TEST.cc b/gazebo/common/Image_TEST.cc
index ff1abb3..b0d6283 100644
--- a/gazebo/common/Image_TEST.cc
+++ b/gazebo/common/Image_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/KeyEvent.cc b/gazebo/common/KeyEvent.cc
index 408f050..706b24d 100644
--- a/gazebo/common/KeyEvent.cc
+++ b/gazebo/common/KeyEvent.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/KeyEvent.hh b/gazebo/common/KeyEvent.hh
index 5d4fbdb..bd3d01c 100644
--- a/gazebo/common/KeyEvent.hh
+++ b/gazebo/common/KeyEvent.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/KeyFrame.cc b/gazebo/common/KeyFrame.cc
index a45ac9a..f865303 100644
--- a/gazebo/common/KeyFrame.cc
+++ b/gazebo/common/KeyFrame.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/KeyFrame.hh b/gazebo/common/KeyFrame.hh
index b62cd0c..3ecc24d 100644
--- a/gazebo/common/KeyFrame.hh
+++ b/gazebo/common/KeyFrame.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Material.cc b/gazebo/common/Material.cc
index a492a51..48fe907 100644
--- a/gazebo/common/Material.cc
+++ b/gazebo/common/Material.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Material.hh b/gazebo/common/Material.hh
index f5cbece..4d1eb3d 100644
--- a/gazebo/common/Material.hh
+++ b/gazebo/common/Material.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Material_TEST.cc b/gazebo/common/Material_TEST.cc
index 7b473c8..ad58bf3 100644
--- a/gazebo/common/Material_TEST.cc
+++ b/gazebo/common/Material_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
diff --git a/gazebo/common/Mesh.cc b/gazebo/common/Mesh.cc
index 00f8ee4..03ba659 100644
--- a/gazebo/common/Mesh.cc
+++ b/gazebo/common/Mesh.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Mesh.hh b/gazebo/common/Mesh.hh
index 9336cad..5def916 100644
--- a/gazebo/common/Mesh.hh
+++ b/gazebo/common/Mesh.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshCSG.cc b/gazebo/common/MeshCSG.cc
index 452d662..f8fcc2e 100644
--- a/gazebo/common/MeshCSG.cc
+++ b/gazebo/common/MeshCSG.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshCSG.hh b/gazebo/common/MeshCSG.hh
index d4e7b61..38ab7d3 100644
--- a/gazebo/common/MeshCSG.hh
+++ b/gazebo/common/MeshCSG.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshExporter.cc b/gazebo/common/MeshExporter.cc
index fdf3609..e71b0b6 100644
--- a/gazebo/common/MeshExporter.cc
+++ b/gazebo/common/MeshExporter.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshExporter.hh b/gazebo/common/MeshExporter.hh
index f6513a8..63a8147 100644
--- a/gazebo/common/MeshExporter.hh
+++ b/gazebo/common/MeshExporter.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshLoader.cc b/gazebo/common/MeshLoader.cc
index b0d6e9d..c599f9a 100644
--- a/gazebo/common/MeshLoader.cc
+++ b/gazebo/common/MeshLoader.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshLoader.hh b/gazebo/common/MeshLoader.hh
index 8a9fc56..1fc7069 100644
--- a/gazebo/common/MeshLoader.hh
+++ b/gazebo/common/MeshLoader.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshManager.cc b/gazebo/common/MeshManager.cc
index 087aaa7..9fde786 100644
--- a/gazebo/common/MeshManager.cc
+++ b/gazebo/common/MeshManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshManager.hh b/gazebo/common/MeshManager.hh
index 0b760d9..257fd41 100644
--- a/gazebo/common/MeshManager.hh
+++ b/gazebo/common/MeshManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MeshManager_TEST.cc b/gazebo/common/MeshManager_TEST.cc
index 6894793..b50a6f3 100644
--- a/gazebo/common/MeshManager_TEST.cc
+++ b/gazebo/common/MeshManager_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Mesh_TEST.cc b/gazebo/common/Mesh_TEST.cc
index b48e265..584f816 100644
--- a/gazebo/common/Mesh_TEST.cc
+++ b/gazebo/common/Mesh_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ModelDatabase.cc b/gazebo/common/ModelDatabase.cc
index 1e04d41..a16cf6f 100644
--- a/gazebo/common/ModelDatabase.cc
+++ b/gazebo/common/ModelDatabase.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ModelDatabase.hh b/gazebo/common/ModelDatabase.hh
index cb0d7a4..a710eb5 100644
--- a/gazebo/common/ModelDatabase.hh
+++ b/gazebo/common/ModelDatabase.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ModelDatabasePrivate.hh b/gazebo/common/ModelDatabasePrivate.hh
index ad84647..7d3a04f 100644
--- a/gazebo/common/ModelDatabasePrivate.hh
+++ b/gazebo/common/ModelDatabasePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MouseEvent.cc b/gazebo/common/MouseEvent.cc
index 5925846..2e4fd95 100644
--- a/gazebo/common/MouseEvent.cc
+++ b/gazebo/common/MouseEvent.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License")
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MouseEvent.hh b/gazebo/common/MouseEvent.hh
index 6e9a95e..8a1f3d6 100644
--- a/gazebo/common/MouseEvent.hh
+++ b/gazebo/common/MouseEvent.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MouseEventPrivate.hh b/gazebo/common/MouseEventPrivate.hh
index 20b23fc..171b6fc 100644
--- a/gazebo/common/MouseEventPrivate.hh
+++ b/gazebo/common/MouseEventPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MouseEvent_TEST.cc b/gazebo/common/MouseEvent_TEST.cc
index e7ea2b1..fd85cac 100644
--- a/gazebo/common/MouseEvent_TEST.cc
+++ b/gazebo/common/MouseEvent_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MovingWindowFilter.hh b/gazebo/common/MovingWindowFilter.hh
index 9e9c34f..ad691bb 100644
--- a/gazebo/common/MovingWindowFilter.hh
+++ b/gazebo/common/MovingWindowFilter.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/MovingWindowFilter_TEST.cc b/gazebo/common/MovingWindowFilter_TEST.cc
index f3d05fc..195348c 100644
--- a/gazebo/common/MovingWindowFilter_TEST.cc
+++ b/gazebo/common/MovingWindowFilter_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/PID.cc b/gazebo/common/PID.cc
index 6a51341..ba4defc 100644
--- a/gazebo/common/PID.cc
+++ b/gazebo/common/PID.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/PID.hh b/gazebo/common/PID.hh
index c4f464e..06ac072 100644
--- a/gazebo/common/PID.hh
+++ b/gazebo/common/PID.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Plugin.cc b/gazebo/common/Plugin.cc
index 79e7e40..4eb9336 100644
--- a/gazebo/common/Plugin.cc
+++ b/gazebo/common/Plugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Plugin.hh b/gazebo/common/Plugin.hh
index 2c2839d..cda6eea 100644
--- a/gazebo/common/Plugin.hh
+++ b/gazebo/common/Plugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/STLLoader.cc b/gazebo/common/STLLoader.cc
index 46f060f..5e4287e 100644
--- a/gazebo/common/STLLoader.cc
+++ b/gazebo/common/STLLoader.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/STLLoader.hh b/gazebo/common/STLLoader.hh
index 6050dc4..9e431b3 100644
--- a/gazebo/common/STLLoader.hh
+++ b/gazebo/common/STLLoader.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SVGLoader.cc b/gazebo/common/SVGLoader.cc
index 8a712b8..c75153c 100644
--- a/gazebo/common/SVGLoader.cc
+++ b/gazebo/common/SVGLoader.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SVGLoader.hh b/gazebo/common/SVGLoader.hh
index 1b45561..a6f794d 100644
--- a/gazebo/common/SVGLoader.hh
+++ b/gazebo/common/SVGLoader.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SVGLoaderPrivate.hh b/gazebo/common/SVGLoaderPrivate.hh
index 4fa6e8c..b96b1cb 100644
--- a/gazebo/common/SVGLoaderPrivate.hh
+++ b/gazebo/common/SVGLoaderPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SVGLoader_TEST.cc b/gazebo/common/SVGLoader_TEST.cc
index 7a459ce..f27ca1e 100644
--- a/gazebo/common/SVGLoader_TEST.cc
+++ b/gazebo/common/SVGLoader_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SingletonT.hh b/gazebo/common/SingletonT.hh
index cc540ff..ced4850 100644
--- a/gazebo/common/SingletonT.hh
+++ b/gazebo/common/SingletonT.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Skeleton.cc b/gazebo/common/Skeleton.cc
index 15add64..8b2a520 100644
--- a/gazebo/common/Skeleton.cc
+++ b/gazebo/common/Skeleton.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Skeleton.hh b/gazebo/common/Skeleton.hh
index 60aced0..8271bdb 100644
--- a/gazebo/common/Skeleton.hh
+++ b/gazebo/common/Skeleton.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SkeletonAnimation.cc b/gazebo/common/SkeletonAnimation.cc
index df3e876..d580157 100644
--- a/gazebo/common/SkeletonAnimation.cc
+++ b/gazebo/common/SkeletonAnimation.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SkeletonAnimation.hh b/gazebo/common/SkeletonAnimation.hh
index d3975ba..43956a1 100644
--- a/gazebo/common/SkeletonAnimation.hh
+++ b/gazebo/common/SkeletonAnimation.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SphericalCoordinates.cc b/gazebo/common/SphericalCoordinates.cc
index 1948ff9..f3fc16f 100644
--- a/gazebo/common/SphericalCoordinates.cc
+++ b/gazebo/common/SphericalCoordinates.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SphericalCoordinates.hh b/gazebo/common/SphericalCoordinates.hh
index de41a18..3da3f21 100644
--- a/gazebo/common/SphericalCoordinates.hh
+++ b/gazebo/common/SphericalCoordinates.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SphericalCoordinatesPrivate.hh b/gazebo/common/SphericalCoordinatesPrivate.hh
index 03e480d..dd0ea76 100644
--- a/gazebo/common/SphericalCoordinatesPrivate.hh
+++ b/gazebo/common/SphericalCoordinatesPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SphericalCoordinates_TEST.cc b/gazebo/common/SphericalCoordinates_TEST.cc
index 282d097..9edffc0 100644
--- a/gazebo/common/SphericalCoordinates_TEST.cc
+++ b/gazebo/common/SphericalCoordinates_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SystemPaths.cc b/gazebo/common/SystemPaths.cc
index a485dd9..af22caf 100644
--- a/gazebo/common/SystemPaths.cc
+++ b/gazebo/common/SystemPaths.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SystemPaths.hh b/gazebo/common/SystemPaths.hh
index 4d43d7e..2196b0b 100644
--- a/gazebo/common/SystemPaths.hh
+++ b/gazebo/common/SystemPaths.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/SystemPaths_TEST.cc b/gazebo/common/SystemPaths_TEST.cc
index b3e4de7..afb810b 100644
--- a/gazebo/common/SystemPaths_TEST.cc
+++ b/gazebo/common/SystemPaths_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Time.cc b/gazebo/common/Time.cc
index a26e5b2..8e4f8fa 100644
--- a/gazebo/common/Time.cc
+++ b/gazebo/common/Time.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Time.hh b/gazebo/common/Time.hh
index d65a178..66d31fd 100644
--- a/gazebo/common/Time.hh
+++ b/gazebo/common/Time.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Time_TEST.cc b/gazebo/common/Time_TEST.cc
index e006507..4275145 100644
--- a/gazebo/common/Time_TEST.cc
+++ b/gazebo/common/Time_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Timer.cc b/gazebo/common/Timer.cc
index 1b8dc2b..c855ae6 100644
--- a/gazebo/common/Timer.cc
+++ b/gazebo/common/Timer.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Timer.hh b/gazebo/common/Timer.hh
index e77433e..679c5c8 100644
--- a/gazebo/common/Timer.hh
+++ b/gazebo/common/Timer.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Timer_TEST.cc b/gazebo/common/Timer_TEST.cc
index d8d469c..93159ca 100644
--- a/gazebo/common/Timer_TEST.cc
+++ b/gazebo/common/Timer_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/UpdateInfo.hh b/gazebo/common/UpdateInfo.hh
index 74921d1..4593ec8 100644
--- a/gazebo/common/UpdateInfo.hh
+++ b/gazebo/common/UpdateInfo.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Video.cc b/gazebo/common/Video.cc
index bd702d8..8355de1 100644
--- a/gazebo/common/Video.cc
+++ b/gazebo/common/Video.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/Video.hh b/gazebo/common/Video.hh
index 888b83c..41418ed 100644
--- a/gazebo/common/Video.hh
+++ b/gazebo/common/Video.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ffmpeg_inc.cc b/gazebo/common/ffmpeg_inc.cc
index 6faa000..233416e 100644
--- a/gazebo/common/ffmpeg_inc.cc
+++ b/gazebo/common/ffmpeg_inc.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/ffmpeg_inc.h b/gazebo/common/ffmpeg_inc.h
index a5e8cd1..8ed29e5 100644
--- a/gazebo/common/ffmpeg_inc.h
+++ b/gazebo/common/ffmpeg_inc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/common/template_TEST.cc b/gazebo/common/template_TEST.cc
index 2e2d26a..11d9b7b 100644
--- a/gazebo/common/template_TEST.cc
+++ b/gazebo/common/template_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gazebo.1.ronn b/gazebo/gazebo.1.ronn
index fa0ce9c..7185e5a 100644
--- a/gazebo/gazebo.1.ronn
+++ b/gazebo/gazebo.1.ronn
@@ -29,6 +29,10 @@ Gazebo server runs simulation and handles commandline options, starts a Master,
  Compression encoding format for log data (zlib|bz2|txt).
 * --record_path arg :
  Absolute path in which to store state data.
+* --record_period arg (=-1) :
+ Recording period (seconds).
+* --record_filter arg :
+ Recording filter (supports wildcard and regular expression).
 * --seed arg :
  Start with a given random number seed.
 * --iters arg :
diff --git a/gazebo/gazebo.cc b/gazebo/gazebo.cc
index c95e617..cfc40e4 100644
--- a/gazebo/gazebo.cc
+++ b/gazebo/gazebo.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gazebo.hh b/gazebo/gazebo.hh
index d6451ae..73eec9f 100644
--- a/gazebo/gazebo.hh
+++ b/gazebo/gazebo.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gazebo_client.cc b/gazebo/gazebo_client.cc
index 32e708c..b567fde 100644
--- a/gazebo/gazebo_client.cc
+++ b/gazebo/gazebo_client.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gazebo_client.hh b/gazebo/gazebo_client.hh
index 03644af..10e454c 100644
--- a/gazebo/gazebo_client.hh
+++ b/gazebo/gazebo_client.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gazebo_core.hh b/gazebo/gazebo_core.hh
index cd7fcda..334c5f9 100644
--- a/gazebo/gazebo_core.hh
+++ b/gazebo/gazebo_core.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gazebo_main.cc b/gazebo/gazebo_main.cc
index 95146a3..fb76e67 100644
--- a/gazebo/gazebo_main.cc
+++ b/gazebo/gazebo_main.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -54,6 +54,9 @@ void help()
   << "                                (zlib|bz2|txt).\n"
   << "  --record_path arg             Absolute path in which to store "
   << "state data.\n"
+  << "  --record_period arg (=-1)     Recording period (seconds).\n"
+  << "  --record_filter arg           Recording filter (supports wildcard and "
+  << "regular expression).\n"
   << "  --seed arg                    Start with a given random number seed.\n"
   << "  --iters arg                   Number of iterations to simulate.\n"
   << "  --minimal_comms               Reduce the TCP/IP traffic output by "
diff --git a/gazebo/gazebo_shared.cc b/gazebo/gazebo_shared.cc
index 40d3273..eaeab4d 100644
--- a/gazebo/gazebo_shared.cc
+++ b/gazebo/gazebo_shared.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gazebo_shared.hh b/gazebo/gazebo_shared.hh
index e6f1238..26f7092 100644
--- a/gazebo/gazebo_shared.hh
+++ b/gazebo/gazebo_shared.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Actions.cc b/gazebo/gui/Actions.cc
index 0d946a5..076c104 100644
--- a/gazebo/gui/Actions.cc
+++ b/gazebo/gui/Actions.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Actions.hh b/gazebo/gui/Actions.hh
index 2339ea3..560ac6b 100644
--- a/gazebo/gui/Actions.hh
+++ b/gazebo/gui/Actions.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/AlignWidget.cc b/gazebo/gui/AlignWidget.cc
index cd5e78c..ddf239f 100644
--- a/gazebo/gui/AlignWidget.cc
+++ b/gazebo/gui/AlignWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/AlignWidget.hh b/gazebo/gui/AlignWidget.hh
index 996e0f7..166f6fa 100644
--- a/gazebo/gui/AlignWidget.hh
+++ b/gazebo/gui/AlignWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/AlignWidgetPrivate.hh b/gazebo/gui/AlignWidgetPrivate.hh
index 513f078..63b3572 100644
--- a/gazebo/gui/AlignWidgetPrivate.hh
+++ b/gazebo/gui/AlignWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ApplyWrenchDialog.cc b/gazebo/gui/ApplyWrenchDialog.cc
index 10d2286..3539cea 100644
--- a/gazebo/gui/ApplyWrenchDialog.cc
+++ b/gazebo/gui/ApplyWrenchDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015-2016 Open Source Robotics Foundation
+ * Copyright 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ApplyWrenchDialog.hh b/gazebo/gui/ApplyWrenchDialog.hh
index a9c8de5..5164e89 100644
--- a/gazebo/gui/ApplyWrenchDialog.hh
+++ b/gazebo/gui/ApplyWrenchDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015-2016 Open Source Robotics Foundation
+ * Copyright 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ApplyWrenchDialogPrivate.hh b/gazebo/gui/ApplyWrenchDialogPrivate.hh
index 1e5e10d..5bae7fc 100644
--- a/gazebo/gui/ApplyWrenchDialogPrivate.hh
+++ b/gazebo/gui/ApplyWrenchDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ApplyWrenchDialog_TEST.cc b/gazebo/gui/ApplyWrenchDialog_TEST.cc
index e98ca89..908629d 100644
--- a/gazebo/gui/ApplyWrenchDialog_TEST.cc
+++ b/gazebo/gui/ApplyWrenchDialog_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ApplyWrenchDialog_TEST.hh b/gazebo/gui/ApplyWrenchDialog_TEST.hh
index a67a4c3..95de31b 100644
--- a/gazebo/gui/ApplyWrenchDialog_TEST.hh
+++ b/gazebo/gui/ApplyWrenchDialog_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/BuildingEditor_TEST.cc b/gazebo/gui/BuildingEditor_TEST.cc
index a3fd8a7..078e5e2 100644
--- a/gazebo/gui/BuildingEditor_TEST.cc
+++ b/gazebo/gui/BuildingEditor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/BuildingEditor_TEST.hh b/gazebo/gui/BuildingEditor_TEST.hh
index 6314dfb..b84e7b9 100644
--- a/gazebo/gui/BuildingEditor_TEST.hh
+++ b/gazebo/gui/BuildingEditor_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/CloneWindow.cc b/gazebo/gui/CloneWindow.cc
index 9cc6b19..15ce883 100644
--- a/gazebo/gui/CloneWindow.cc
+++ b/gazebo/gui/CloneWindow.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/CloneWindow.hh b/gazebo/gui/CloneWindow.hh
index 2a7874e..b09d217 100644
--- a/gazebo/gui/CloneWindow.hh
+++ b/gazebo/gui/CloneWindow.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/CloneWindowPrivate.hh b/gazebo/gui/CloneWindowPrivate.hh
index b5f2ee9..43b9a78 100644
--- a/gazebo/gui/CloneWindowPrivate.hh
+++ b/gazebo/gui/CloneWindowPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ConfigWidget.cc b/gazebo/gui/ConfigWidget.cc
index 0942814..69f03de 100644
--- a/gazebo/gui/ConfigWidget.cc
+++ b/gazebo/gui/ConfigWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ConfigWidget.hh b/gazebo/gui/ConfigWidget.hh
index 0405a0b..8c15c75 100644
--- a/gazebo/gui/ConfigWidget.hh
+++ b/gazebo/gui/ConfigWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ConfigWidgetPrivate.hh b/gazebo/gui/ConfigWidgetPrivate.hh
index 25d3be2..7c282bd 100644
--- a/gazebo/gui/ConfigWidgetPrivate.hh
+++ b/gazebo/gui/ConfigWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ConfigWidget_TEST.cc b/gazebo/gui/ConfigWidget_TEST.cc
index 996713a..3abf721 100644
--- a/gazebo/gui/ConfigWidget_TEST.cc
+++ b/gazebo/gui/ConfigWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ConfigWidget_TEST.hh b/gazebo/gui/ConfigWidget_TEST.hh
index be82b4f..ad39656 100644
--- a/gazebo/gui/ConfigWidget_TEST.hh
+++ b/gazebo/gui/ConfigWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Conversions.cc b/gazebo/gui/Conversions.cc
index a370a3d..6e6b8ca 100644
--- a/gazebo/gui/Conversions.cc
+++ b/gazebo/gui/Conversions.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Conversions.hh b/gazebo/gui/Conversions.hh
index 3c55f59..0ca90a1 100644
--- a/gazebo/gui/Conversions.hh
+++ b/gazebo/gui/Conversions.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Conversions_TEST.cc b/gazebo/gui/Conversions_TEST.cc
index f289020..6982f30 100644
--- a/gazebo/gui/Conversions_TEST.cc
+++ b/gazebo/gui/Conversions_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/DataLogger.cc b/gazebo/gui/DataLogger.cc
index 62b7b4e..bd15c53 100644
--- a/gazebo/gui/DataLogger.cc
+++ b/gazebo/gui/DataLogger.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/DataLogger.hh b/gazebo/gui/DataLogger.hh
index 5d489b2..d30bfed 100644
--- a/gazebo/gui/DataLogger.hh
+++ b/gazebo/gui/DataLogger.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/DataLoggerPrivate.hh b/gazebo/gui/DataLoggerPrivate.hh
index 0da08b3..f97e4ef 100644
--- a/gazebo/gui/DataLoggerPrivate.hh
+++ b/gazebo/gui/DataLoggerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/DataLogger_TEST.cc b/gazebo/gui/DataLogger_TEST.cc
index f439aab..5d2524e 100644
--- a/gazebo/gui/DataLogger_TEST.cc
+++ b/gazebo/gui/DataLogger_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  *
 */
 
+#include <memory>
 #include <boost/filesystem.hpp>
 #include "gazebo/common/SystemPaths.hh"
 #include "gazebo/gui/DataLogger.hh"
@@ -29,7 +30,8 @@ void DataLogger_TEST::RecordButton()
     this->Load("worlds/empty.world");
 
     // Create a new data logger widget
-    gazebo::gui::DataLogger *dataLogger = new gazebo::gui::DataLogger;
+    std::unique_ptr<gazebo::gui::DataLogger> dataLogger(
+        new gazebo::gui::DataLogger);
     dataLogger->show();
     QCoreApplication::processEvents();
 
@@ -171,7 +173,8 @@ void DataLogger_TEST::StressTest()
     pub->Publish(msg);
 
     // Create a new data logger widget
-    gazebo::gui::DataLogger *dataLogger = new gazebo::gui::DataLogger;
+    std::unique_ptr<gazebo::gui::DataLogger> dataLogger(
+        new gazebo::gui::DataLogger);
 
     // Get the record button
     QToolButton *recordButton = dataLogger->findChild<QToolButton*>(
diff --git a/gazebo/gui/DataLogger_TEST.hh b/gazebo/gui/DataLogger_TEST.hh
index 83ac6b1..08e486f 100644
--- a/gazebo/gui/DataLogger_TEST.hh
+++ b/gazebo/gui/DataLogger_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Diagnostics.cc b/gazebo/gui/Diagnostics.cc
index 26ce926..62e629e 100644
--- a/gazebo/gui/Diagnostics.cc
+++ b/gazebo/gui/Diagnostics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Diagnostics.hh b/gazebo/gui/Diagnostics.hh
index 18c6439..ff918b6 100644
--- a/gazebo/gui/Diagnostics.hh
+++ b/gazebo/gui/Diagnostics.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/DiagnosticsPrivate.hh b/gazebo/gui/DiagnosticsPrivate.hh
index 0a13faf..498235a 100644
--- a/gazebo/gui/DiagnosticsPrivate.hh
+++ b/gazebo/gui/DiagnosticsPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Editor.cc b/gazebo/gui/Editor.cc
index 4ca5f97..022a4ff 100644
--- a/gazebo/gui/Editor.cc
+++ b/gazebo/gui/Editor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Editor.hh b/gazebo/gui/Editor.hh
index 41222a2..ebcb3af 100644
--- a/gazebo/gui/Editor.hh
+++ b/gazebo/gui/Editor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/EntityMaker.cc b/gazebo/gui/EntityMaker.cc
index 479abc1..14818c9 100644
--- a/gazebo/gui/EntityMaker.cc
+++ b/gazebo/gui/EntityMaker.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/EntityMaker.hh b/gazebo/gui/EntityMaker.hh
index 6e95205..0a5f797 100644
--- a/gazebo/gui/EntityMaker.hh
+++ b/gazebo/gui/EntityMaker.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/EntityMakerPrivate.hh b/gazebo/gui/EntityMakerPrivate.hh
index f67bda7..ba90af6 100644
--- a/gazebo/gui/EntityMakerPrivate.hh
+++ b/gazebo/gui/EntityMakerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GLWidget.cc b/gazebo/gui/GLWidget.cc
index 70ff3bb..1f71014 100644
--- a/gazebo/gui/GLWidget.cc
+++ b/gazebo/gui/GLWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -878,6 +878,9 @@ void GLWidget::ViewScene(rendering::ScenePtr _scene)
   this->dataPtr->userCamera->SetDefaultPose(math::Pose(camPos,
         math::Vector3(0, pitch, yaw)));
 
+  // client side heightmap configuration
+  _scene->SetHeightmapLOD(gazebo::gui::getINIProperty<int>("heightmap.lod", 0));
+
   // Update at the camera's update rate
   this->dataPtr->updateTimer->start(
       static_cast<int>(
diff --git a/gazebo/gui/GLWidget.hh b/gazebo/gui/GLWidget.hh
index 37b1582..fac46f5 100644
--- a/gazebo/gui/GLWidget.hh
+++ b/gazebo/gui/GLWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GLWidgetPrivate.hh b/gazebo/gui/GLWidgetPrivate.hh
index e44712a..92167af 100644
--- a/gazebo/gui/GLWidgetPrivate.hh
+++ b/gazebo/gui/GLWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GLWidget_TEST.cc b/gazebo/gui/GLWidget_TEST.cc
index 14e5d89..1b9a938 100644
--- a/gazebo/gui/GLWidget_TEST.cc
+++ b/gazebo/gui/GLWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GLWidget_TEST.hh b/gazebo/gui/GLWidget_TEST.hh
index a7bfdda..d6f4439 100644
--- a/gazebo/gui/GLWidget_TEST.hh
+++ b/gazebo/gui/GLWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GLWidget_TEST2.cc b/gazebo/gui/GLWidget_TEST2.cc
index e46bac0..3a20056 100644
--- a/gazebo/gui/GLWidget_TEST2.cc
+++ b/gazebo/gui/GLWidget_TEST2.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GLWidget_TEST2.hh b/gazebo/gui/GLWidget_TEST2.hh
index c2f6454..8975759 100644
--- a/gazebo/gui/GLWidget_TEST2.hh
+++ b/gazebo/gui/GLWidget_TEST2.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiEvents.cc b/gazebo/gui/GuiEvents.cc
index e81709f..fc491ab 100644
--- a/gazebo/gui/GuiEvents.cc
+++ b/gazebo/gui/GuiEvents.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiEvents.hh b/gazebo/gui/GuiEvents.hh
index 360542d..4db8ddf 100644
--- a/gazebo/gui/GuiEvents.hh
+++ b/gazebo/gui/GuiEvents.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiIface.cc b/gazebo/gui/GuiIface.cc
index 6e4be00..cf32b38 100644
--- a/gazebo/gui/GuiIface.cc
+++ b/gazebo/gui/GuiIface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiIface.hh b/gazebo/gui/GuiIface.hh
index 8069e14..f3447ba 100644
--- a/gazebo/gui/GuiIface.hh
+++ b/gazebo/gui/GuiIface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiIface_TEST.cc b/gazebo/gui/GuiIface_TEST.cc
index 4e16b2c..41d696a 100644
--- a/gazebo/gui/GuiIface_TEST.cc
+++ b/gazebo/gui/GuiIface_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiIface_TEST.hh b/gazebo/gui/GuiIface_TEST.hh
index 63dc6bb..5789479 100644
--- a/gazebo/gui/GuiIface_TEST.hh
+++ b/gazebo/gui/GuiIface_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiPlugin.hh b/gazebo/gui/GuiPlugin.hh
index 6f03690..6d3b9df 100644
--- a/gazebo/gui/GuiPlugin.hh
+++ b/gazebo/gui/GuiPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/GuiTypes.hh b/gazebo/gui/GuiTypes.hh
index f63e05b..c522256 100644
--- a/gazebo/gui/GuiTypes.hh
+++ b/gazebo/gui/GuiTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/HotkeyDialog.cc b/gazebo/gui/HotkeyDialog.cc
index 671cd6c..fab7c8b 100644
--- a/gazebo/gui/HotkeyDialog.cc
+++ b/gazebo/gui/HotkeyDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/HotkeyDialog.hh b/gazebo/gui/HotkeyDialog.hh
index 7efb10f..ea66754 100644
--- a/gazebo/gui/HotkeyDialog.hh
+++ b/gazebo/gui/HotkeyDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/IncrementalPlot.cc b/gazebo/gui/IncrementalPlot.cc
index c3067da..0eaa1d9 100644
--- a/gazebo/gui/IncrementalPlot.cc
+++ b/gazebo/gui/IncrementalPlot.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/IncrementalPlot.hh b/gazebo/gui/IncrementalPlot.hh
index 912ea0e..32e445f 100644
--- a/gazebo/gui/IncrementalPlot.hh
+++ b/gazebo/gui/IncrementalPlot.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/InsertModelWidget.cc b/gazebo/gui/InsertModelWidget.cc
index 13fb121..5f2b3ea 100644
--- a/gazebo/gui/InsertModelWidget.cc
+++ b/gazebo/gui/InsertModelWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/InsertModelWidget.hh b/gazebo/gui/InsertModelWidget.hh
index e432add..59c9238 100644
--- a/gazebo/gui/InsertModelWidget.hh
+++ b/gazebo/gui/InsertModelWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/InsertModelWidgetPrivate.hh b/gazebo/gui/InsertModelWidgetPrivate.hh
index 8720555..9f0febc 100644
--- a/gazebo/gui/InsertModelWidgetPrivate.hh
+++ b/gazebo/gui/InsertModelWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/JointControlWidget.cc b/gazebo/gui/JointControlWidget.cc
index 50ddb78..f4aa1a9 100644
--- a/gazebo/gui/JointControlWidget.cc
+++ b/gazebo/gui/JointControlWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/JointControlWidget.hh b/gazebo/gui/JointControlWidget.hh
index f9f71fa..4f9795d 100644
--- a/gazebo/gui/JointControlWidget.hh
+++ b/gazebo/gui/JointControlWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/JointControlWidgetPrivate.hh b/gazebo/gui/JointControlWidgetPrivate.hh
index 8c390d3..e9d9946 100644
--- a/gazebo/gui/JointControlWidgetPrivate.hh
+++ b/gazebo/gui/JointControlWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/KeyEventHandler.cc b/gazebo/gui/KeyEventHandler.cc
index 64bc8fa..c6867cf 100644
--- a/gazebo/gui/KeyEventHandler.cc
+++ b/gazebo/gui/KeyEventHandler.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/KeyEventHandler.hh b/gazebo/gui/KeyEventHandler.hh
index 86f6d1d..496cd66 100644
--- a/gazebo/gui/KeyEventHandler.hh
+++ b/gazebo/gui/KeyEventHandler.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/KeyEventHandlerPrivate.hh b/gazebo/gui/KeyEventHandlerPrivate.hh
index 713b572..8f4a3b0 100644
--- a/gazebo/gui/KeyEventHandlerPrivate.hh
+++ b/gazebo/gui/KeyEventHandlerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LaserVisualization_TEST.cc b/gazebo/gui/LaserVisualization_TEST.cc
index fcdaf04..91edd75 100644
--- a/gazebo/gui/LaserVisualization_TEST.cc
+++ b/gazebo/gui/LaserVisualization_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LaserVisualization_TEST.hh b/gazebo/gui/LaserVisualization_TEST.hh
index e957068..6a7c6f1 100644
--- a/gazebo/gui/LaserVisualization_TEST.hh
+++ b/gazebo/gui/LaserVisualization_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LayersWidget.cc b/gazebo/gui/LayersWidget.cc
index bb93149..21402ab 100644
--- a/gazebo/gui/LayersWidget.cc
+++ b/gazebo/gui/LayersWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LayersWidget.hh b/gazebo/gui/LayersWidget.hh
index 5f2b242..960f362 100644
--- a/gazebo/gui/LayersWidget.hh
+++ b/gazebo/gui/LayersWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LayersWidgetPrivate.hh b/gazebo/gui/LayersWidgetPrivate.hh
index b604f42..a00bbe4 100644
--- a/gazebo/gui/LayersWidgetPrivate.hh
+++ b/gazebo/gui/LayersWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LayersWidget_TEST.cc b/gazebo/gui/LayersWidget_TEST.cc
index 958e92a..2b6e53c 100644
--- a/gazebo/gui/LayersWidget_TEST.cc
+++ b/gazebo/gui/LayersWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LayersWidget_TEST.hh b/gazebo/gui/LayersWidget_TEST.hh
index d3beba9..115378b 100644
--- a/gazebo/gui/LayersWidget_TEST.hh
+++ b/gazebo/gui/LayersWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LightMaker.cc b/gazebo/gui/LightMaker.cc
index 333db2c..f20fbea 100644
--- a/gazebo/gui/LightMaker.cc
+++ b/gazebo/gui/LightMaker.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LightMaker.hh b/gazebo/gui/LightMaker.hh
index 90d3ddd..248247d 100644
--- a/gazebo/gui/LightMaker.hh
+++ b/gazebo/gui/LightMaker.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LightMakerPrivate.hh b/gazebo/gui/LightMakerPrivate.hh
index 6b43b21..e19e583 100644
--- a/gazebo/gui/LightMakerPrivate.hh
+++ b/gazebo/gui/LightMakerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LightMaker_TEST.cc b/gazebo/gui/LightMaker_TEST.cc
index f610105..91d4b08 100644
--- a/gazebo/gui/LightMaker_TEST.cc
+++ b/gazebo/gui/LightMaker_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LightMaker_TEST.hh b/gazebo/gui/LightMaker_TEST.hh
index ab79c43..26accfb 100644
--- a/gazebo/gui/LightMaker_TEST.hh
+++ b/gazebo/gui/LightMaker_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LogPlayWidget.cc b/gazebo/gui/LogPlayWidget.cc
index 6f99edf..09aaa86 100644
--- a/gazebo/gui/LogPlayWidget.cc
+++ b/gazebo/gui/LogPlayWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LogPlayWidget.hh b/gazebo/gui/LogPlayWidget.hh
index a6690da..d3faca2 100644
--- a/gazebo/gui/LogPlayWidget.hh
+++ b/gazebo/gui/LogPlayWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/LogPlayWidgetPrivate.hh b/gazebo/gui/LogPlayWidgetPrivate.hh
index 7c61304..610fd2d 100644
--- a/gazebo/gui/LogPlayWidgetPrivate.hh
+++ b/gazebo/gui/LogPlayWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/MainWindow.cc b/gazebo/gui/MainWindow.cc
index bfc447b..e3cd5b2 100644
--- a/gazebo/gui/MainWindow.cc
+++ b/gazebo/gui/MainWindow.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/MainWindow.hh b/gazebo/gui/MainWindow.hh
index faa9308..c78f3ef 100644
--- a/gazebo/gui/MainWindow.hh
+++ b/gazebo/gui/MainWindow.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/MainWindowPrivate.hh b/gazebo/gui/MainWindowPrivate.hh
index 0d8e197..d5a7eef 100644
--- a/gazebo/gui/MainWindowPrivate.hh
+++ b/gazebo/gui/MainWindowPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/MainWindow_TEST.cc b/gazebo/gui/MainWindow_TEST.cc
index d6f3bf1..246df79 100644
--- a/gazebo/gui/MainWindow_TEST.cc
+++ b/gazebo/gui/MainWindow_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/MainWindow_TEST.hh b/gazebo/gui/MainWindow_TEST.hh
index 553a243..d3a46d9 100644
--- a/gazebo/gui/MainWindow_TEST.hh
+++ b/gazebo/gui/MainWindow_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelAlign.cc b/gazebo/gui/ModelAlign.cc
index dace319..4814287 100644
--- a/gazebo/gui/ModelAlign.cc
+++ b/gazebo/gui/ModelAlign.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelAlign.hh b/gazebo/gui/ModelAlign.hh
index db7efac..e10a4dd 100644
--- a/gazebo/gui/ModelAlign.hh
+++ b/gazebo/gui/ModelAlign.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelAlignPrivate.hh b/gazebo/gui/ModelAlignPrivate.hh
index c65b174..385d771 100644
--- a/gazebo/gui/ModelAlignPrivate.hh
+++ b/gazebo/gui/ModelAlignPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelAlign_TEST.cc b/gazebo/gui/ModelAlign_TEST.cc
index 539f416..d05b629 100644
--- a/gazebo/gui/ModelAlign_TEST.cc
+++ b/gazebo/gui/ModelAlign_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelAlign_TEST.hh b/gazebo/gui/ModelAlign_TEST.hh
index e7c95ca..2efd11c 100644
--- a/gazebo/gui/ModelAlign_TEST.hh
+++ b/gazebo/gui/ModelAlign_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelListWidget.cc b/gazebo/gui/ModelListWidget.cc
index c688598..cb33a4d 100644
--- a/gazebo/gui/ModelListWidget.cc
+++ b/gazebo/gui/ModelListWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelListWidget.hh b/gazebo/gui/ModelListWidget.hh
index 0748994..a469253 100644
--- a/gazebo/gui/ModelListWidget.hh
+++ b/gazebo/gui/ModelListWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelListWidgetPrivate.hh b/gazebo/gui/ModelListWidgetPrivate.hh
index eaecf69..79f5a3d 100644
--- a/gazebo/gui/ModelListWidgetPrivate.hh
+++ b/gazebo/gui/ModelListWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelListWidget_TEST.cc b/gazebo/gui/ModelListWidget_TEST.cc
index 49ebd57..672b748 100644
--- a/gazebo/gui/ModelListWidget_TEST.cc
+++ b/gazebo/gui/ModelListWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelListWidget_TEST.hh b/gazebo/gui/ModelListWidget_TEST.hh
index b55e56a..880b2e2 100644
--- a/gazebo/gui/ModelListWidget_TEST.hh
+++ b/gazebo/gui/ModelListWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelMaker.cc b/gazebo/gui/ModelMaker.cc
index ec21bd3..21fb71f 100644
--- a/gazebo/gui/ModelMaker.cc
+++ b/gazebo/gui/ModelMaker.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelMaker.hh b/gazebo/gui/ModelMaker.hh
index f7677df..774d984 100644
--- a/gazebo/gui/ModelMaker.hh
+++ b/gazebo/gui/ModelMaker.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelMakerPrivate.hh b/gazebo/gui/ModelMakerPrivate.hh
index 63d6ebd..a8b7335 100644
--- a/gazebo/gui/ModelMakerPrivate.hh
+++ b/gazebo/gui/ModelMakerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelMaker_TEST.cc b/gazebo/gui/ModelMaker_TEST.cc
index 7bac022..41b8e35 100644
--- a/gazebo/gui/ModelMaker_TEST.cc
+++ b/gazebo/gui/ModelMaker_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelMaker_TEST.hh b/gazebo/gui/ModelMaker_TEST.hh
index 3f23737..04b8c0b 100644
--- a/gazebo/gui/ModelMaker_TEST.hh
+++ b/gazebo/gui/ModelMaker_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelManipulator.cc b/gazebo/gui/ModelManipulator.cc
index 622f333..69b564b 100644
--- a/gazebo/gui/ModelManipulator.cc
+++ b/gazebo/gui/ModelManipulator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelManipulator.hh b/gazebo/gui/ModelManipulator.hh
index a0e24fc..6ec20c6 100644
--- a/gazebo/gui/ModelManipulator.hh
+++ b/gazebo/gui/ModelManipulator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelManipulatorPrivate.hh b/gazebo/gui/ModelManipulatorPrivate.hh
index 4f0dede..0dca322 100644
--- a/gazebo/gui/ModelManipulatorPrivate.hh
+++ b/gazebo/gui/ModelManipulatorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelRightMenu.cc b/gazebo/gui/ModelRightMenu.cc
index c1866d3..8f4d1c3 100644
--- a/gazebo/gui/ModelRightMenu.cc
+++ b/gazebo/gui/ModelRightMenu.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelRightMenu.hh b/gazebo/gui/ModelRightMenu.hh
index fbb630d..8dd2690 100644
--- a/gazebo/gui/ModelRightMenu.hh
+++ b/gazebo/gui/ModelRightMenu.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelSnap.cc b/gazebo/gui/ModelSnap.cc
index b685eaf..a73126b 100644
--- a/gazebo/gui/ModelSnap.cc
+++ b/gazebo/gui/ModelSnap.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelSnap.hh b/gazebo/gui/ModelSnap.hh
index ea37f49..7391616 100644
--- a/gazebo/gui/ModelSnap.hh
+++ b/gazebo/gui/ModelSnap.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelSnapPrivate.hh b/gazebo/gui/ModelSnapPrivate.hh
index 0112ee5..7e5c32b 100644
--- a/gazebo/gui/ModelSnapPrivate.hh
+++ b/gazebo/gui/ModelSnapPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelSnap_TEST.cc b/gazebo/gui/ModelSnap_TEST.cc
index 977bc2c..465ad10 100644
--- a/gazebo/gui/ModelSnap_TEST.cc
+++ b/gazebo/gui/ModelSnap_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ModelSnap_TEST.hh b/gazebo/gui/ModelSnap_TEST.hh
index fcb9f7b..6229881 100644
--- a/gazebo/gui/ModelSnap_TEST.hh
+++ b/gazebo/gui/ModelSnap_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/MouseEventHandler.cc b/gazebo/gui/MouseEventHandler.cc
index af6e7e9..e6cfc46 100644
--- a/gazebo/gui/MouseEventHandler.cc
+++ b/gazebo/gui/MouseEventHandler.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/MouseEventHandler.hh b/gazebo/gui/MouseEventHandler.hh
index a0fe70b..6b3f0ca 100644
--- a/gazebo/gui/MouseEventHandler.hh
+++ b/gazebo/gui/MouseEventHandler.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/OculusWindow.cc b/gazebo/gui/OculusWindow.cc
index 97b5a45..c5da447 100644
--- a/gazebo/gui/OculusWindow.cc
+++ b/gazebo/gui/OculusWindow.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/OculusWindow.hh b/gazebo/gui/OculusWindow.hh
index a545254..2fe35b2 100644
--- a/gazebo/gui/OculusWindow.hh
+++ b/gazebo/gui/OculusWindow.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Projection_TEST.cc b/gazebo/gui/Projection_TEST.cc
index 0d974f8..be13f49 100644
--- a/gazebo/gui/Projection_TEST.cc
+++ b/gazebo/gui/Projection_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/Projection_TEST.hh b/gazebo/gui/Projection_TEST.hh
index ed6a71f..df1c53d 100644
--- a/gazebo/gui/Projection_TEST.hh
+++ b/gazebo/gui/Projection_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/QTestFixture.cc b/gazebo/gui/QTestFixture.cc
index 9400ab6..ad9aea7 100644
--- a/gazebo/gui/QTestFixture.cc
+++ b/gazebo/gui/QTestFixture.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/QTestFixture.hh b/gazebo/gui/QTestFixture.hh
index 8a4738b..38ce7b4 100644
--- a/gazebo/gui/QTestFixture.hh
+++ b/gazebo/gui/QTestFixture.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/RenderWidget.cc b/gazebo/gui/RenderWidget.cc
index 4bcc5b1..3d81ef0 100644
--- a/gazebo/gui/RenderWidget.cc
+++ b/gazebo/gui/RenderWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/RenderWidget.hh b/gazebo/gui/RenderWidget.hh
index be19591..6dcfd4d 100644
--- a/gazebo/gui/RenderWidget.hh
+++ b/gazebo/gui/RenderWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/RenderWidget_TEST.cc b/gazebo/gui/RenderWidget_TEST.cc
index 4542aa6..dc30d04 100644
--- a/gazebo/gui/RenderWidget_TEST.cc
+++ b/gazebo/gui/RenderWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/RenderWidget_TEST.hh b/gazebo/gui/RenderWidget_TEST.hh
index 8a1b1c1..85093ae 100644
--- a/gazebo/gui/RenderWidget_TEST.hh
+++ b/gazebo/gui/RenderWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SaveDialog.cc b/gazebo/gui/SaveDialog.cc
index aacecd6..1ddc6e6 100644
--- a/gazebo/gui/SaveDialog.cc
+++ b/gazebo/gui/SaveDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SaveDialog.hh b/gazebo/gui/SaveDialog.hh
index 9a18939..eb84f14 100644
--- a/gazebo/gui/SaveDialog.hh
+++ b/gazebo/gui/SaveDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SaveDialogPrivate.hh b/gazebo/gui/SaveDialogPrivate.hh
index f85b84c..4bb31d6 100644
--- a/gazebo/gui/SaveDialogPrivate.hh
+++ b/gazebo/gui/SaveDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SaveDialog_TEST.cc b/gazebo/gui/SaveDialog_TEST.cc
index d9f1cb8..36dd73c 100644
--- a/gazebo/gui/SaveDialog_TEST.cc
+++ b/gazebo/gui/SaveDialog_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SaveDialog_TEST.hh b/gazebo/gui/SaveDialog_TEST.hh
index 38abe12..2e50c9c 100644
--- a/gazebo/gui/SaveDialog_TEST.hh
+++ b/gazebo/gui/SaveDialog_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SpaceNav.cc b/gazebo/gui/SpaceNav.cc
index 745288d..9b2932b 100644
--- a/gazebo/gui/SpaceNav.cc
+++ b/gazebo/gui/SpaceNav.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SpaceNav.hh b/gazebo/gui/SpaceNav.hh
index 835d7e1..8461d2f 100644
--- a/gazebo/gui/SpaceNav.hh
+++ b/gazebo/gui/SpaceNav.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SpaceNavPrivate.hh b/gazebo/gui/SpaceNavPrivate.hh
index 3ad2dfd..10ba3a0 100644
--- a/gazebo/gui/SpaceNavPrivate.hh
+++ b/gazebo/gui/SpaceNavPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SplashScreen.cc b/gazebo/gui/SplashScreen.cc
index 99d4733..9cfb8e3 100644
--- a/gazebo/gui/SplashScreen.cc
+++ b/gazebo/gui/SplashScreen.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SplashScreen.hh b/gazebo/gui/SplashScreen.hh
index be855e2..71e19fd 100644
--- a/gazebo/gui/SplashScreen.hh
+++ b/gazebo/gui/SplashScreen.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SplashScreenPrivate.hh b/gazebo/gui/SplashScreenPrivate.hh
index 9467a6e..4927214 100644
--- a/gazebo/gui/SplashScreenPrivate.hh
+++ b/gazebo/gui/SplashScreenPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SplashScreen_TEST.cc b/gazebo/gui/SplashScreen_TEST.cc
index c9919cb..e350f81 100644
--- a/gazebo/gui/SplashScreen_TEST.cc
+++ b/gazebo/gui/SplashScreen_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/SplashScreen_TEST.hh b/gazebo/gui/SplashScreen_TEST.hh
index 098ee1b..afced21 100644
--- a/gazebo/gui/SplashScreen_TEST.hh
+++ b/gazebo/gui/SplashScreen_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimePanel.cc b/gazebo/gui/TimePanel.cc
index 0e52b61..191c987 100644
--- a/gazebo/gui/TimePanel.cc
+++ b/gazebo/gui/TimePanel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimePanel.hh b/gazebo/gui/TimePanel.hh
index 9296a02..6b8b8a8 100644
--- a/gazebo/gui/TimePanel.hh
+++ b/gazebo/gui/TimePanel.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimePanelPrivate.hh b/gazebo/gui/TimePanelPrivate.hh
index 320dc3b..1601c20 100644
--- a/gazebo/gui/TimePanelPrivate.hh
+++ b/gazebo/gui/TimePanelPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimePanel_TEST.cc b/gazebo/gui/TimePanel_TEST.cc
index 83fe30b..d75b101 100644
--- a/gazebo/gui/TimePanel_TEST.cc
+++ b/gazebo/gui/TimePanel_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimePanel_TEST.hh b/gazebo/gui/TimePanel_TEST.hh
index a3eeb5c..d60454a 100644
--- a/gazebo/gui/TimePanel_TEST.hh
+++ b/gazebo/gui/TimePanel_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimeWidget.cc b/gazebo/gui/TimeWidget.cc
index af4253c..e0e523b 100644
--- a/gazebo/gui/TimeWidget.cc
+++ b/gazebo/gui/TimeWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimeWidget.hh b/gazebo/gui/TimeWidget.hh
index b3086eb..cae9add 100644
--- a/gazebo/gui/TimeWidget.hh
+++ b/gazebo/gui/TimeWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimeWidgetPrivate.hh b/gazebo/gui/TimeWidgetPrivate.hh
index f7d1bde..f856256 100644
--- a/gazebo/gui/TimeWidgetPrivate.hh
+++ b/gazebo/gui/TimeWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimeWidget_TEST.cc b/gazebo/gui/TimeWidget_TEST.cc
index 17aa69b..14968c6 100644
--- a/gazebo/gui/TimeWidget_TEST.cc
+++ b/gazebo/gui/TimeWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TimeWidget_TEST.hh b/gazebo/gui/TimeWidget_TEST.hh
index a59e1c1..993fd91 100644
--- a/gazebo/gui/TimeWidget_TEST.hh
+++ b/gazebo/gui/TimeWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ToolsWidget.cc b/gazebo/gui/ToolsWidget.cc
index 3f90f95..881c61e 100644
--- a/gazebo/gui/ToolsWidget.cc
+++ b/gazebo/gui/ToolsWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ToolsWidget.hh b/gazebo/gui/ToolsWidget.hh
index 2af19ed..c56e762 100644
--- a/gazebo/gui/ToolsWidget.hh
+++ b/gazebo/gui/ToolsWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TopToolbar.cc b/gazebo/gui/TopToolbar.cc
index dbe7e0a..b7b7bb7 100644
--- a/gazebo/gui/TopToolbar.cc
+++ b/gazebo/gui/TopToolbar.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TopToolbar.hh b/gazebo/gui/TopToolbar.hh
index f02ef19..224eb81 100644
--- a/gazebo/gui/TopToolbar.hh
+++ b/gazebo/gui/TopToolbar.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TopToolbarPrivate.hh b/gazebo/gui/TopToolbarPrivate.hh
index 439216e..bd03f36 100644
--- a/gazebo/gui/TopToolbarPrivate.hh
+++ b/gazebo/gui/TopToolbarPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TopToolbar_TEST.cc b/gazebo/gui/TopToolbar_TEST.cc
index 16f7890..96524ae 100644
--- a/gazebo/gui/TopToolbar_TEST.cc
+++ b/gazebo/gui/TopToolbar_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TopToolbar_TEST.hh b/gazebo/gui/TopToolbar_TEST.hh
index a6048bf..0d91519 100644
--- a/gazebo/gui/TopToolbar_TEST.hh
+++ b/gazebo/gui/TopToolbar_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TopicSelector.cc b/gazebo/gui/TopicSelector.cc
index 0d2435f..2f635a3 100644
--- a/gazebo/gui/TopicSelector.cc
+++ b/gazebo/gui/TopicSelector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/TopicSelector.hh b/gazebo/gui/TopicSelector.hh
index 69e8a61..1bce980 100644
--- a/gazebo/gui/TopicSelector.hh
+++ b/gazebo/gui/TopicSelector.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/UserCmdHistory.cc b/gazebo/gui/UserCmdHistory.cc
index 9df52a1..a61e75e 100644
--- a/gazebo/gui/UserCmdHistory.cc
+++ b/gazebo/gui/UserCmdHistory.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/UserCmdHistory.hh b/gazebo/gui/UserCmdHistory.hh
index 63c0ac1..9122410 100644
--- a/gazebo/gui/UserCmdHistory.hh
+++ b/gazebo/gui/UserCmdHistory.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/UserCmdHistoryPrivate.hh b/gazebo/gui/UserCmdHistoryPrivate.hh
index f739af9..043252f 100644
--- a/gazebo/gui/UserCmdHistoryPrivate.hh
+++ b/gazebo/gui/UserCmdHistoryPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ViewAngleWidget.cc b/gazebo/gui/ViewAngleWidget.cc
index cd3e462..ad3a57e 100644
--- a/gazebo/gui/ViewAngleWidget.cc
+++ b/gazebo/gui/ViewAngleWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ViewAngleWidget.hh b/gazebo/gui/ViewAngleWidget.hh
index 5e748de..29af447 100644
--- a/gazebo/gui/ViewAngleWidget.hh
+++ b/gazebo/gui/ViewAngleWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ViewAngleWidgetPrivate.hh b/gazebo/gui/ViewAngleWidgetPrivate.hh
index 773578b..3c6b7a3 100644
--- a/gazebo/gui/ViewAngleWidgetPrivate.hh
+++ b/gazebo/gui/ViewAngleWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ViewAngleWidget_TEST.cc b/gazebo/gui/ViewAngleWidget_TEST.cc
index c42faf8..637f62c 100644
--- a/gazebo/gui/ViewAngleWidget_TEST.cc
+++ b/gazebo/gui/ViewAngleWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/ViewAngleWidget_TEST.hh b/gazebo/gui/ViewAngleWidget_TEST.hh
index 5619559..39f2917 100644
--- a/gazebo/gui/ViewAngleWidget_TEST.hh
+++ b/gazebo/gui/ViewAngleWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BaseInspectorDialog.cc b/gazebo/gui/building/BaseInspectorDialog.cc
index 9db7f61..a5ae596 100644
--- a/gazebo/gui/building/BaseInspectorDialog.cc
+++ b/gazebo/gui/building/BaseInspectorDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BaseInspectorDialog.hh b/gazebo/gui/building/BaseInspectorDialog.hh
index db9ed87..bf5b193 100644
--- a/gazebo/gui/building/BaseInspectorDialog.hh
+++ b/gazebo/gui/building/BaseInspectorDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BaseInspectorDialogPrivate.hh b/gazebo/gui/building/BaseInspectorDialogPrivate.hh
index 2691aca..6042b9e 100644
--- a/gazebo/gui/building/BaseInspectorDialogPrivate.hh
+++ b/gazebo/gui/building/BaseInspectorDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditor.cc b/gazebo/gui/building/BuildingEditor.cc
index 60e25c3..6131e79 100644
--- a/gazebo/gui/building/BuildingEditor.cc
+++ b/gazebo/gui/building/BuildingEditor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditor.hh b/gazebo/gui/building/BuildingEditor.hh
index feccc56..e57b9a8 100644
--- a/gazebo/gui/building/BuildingEditor.hh
+++ b/gazebo/gui/building/BuildingEditor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorEvents.cc b/gazebo/gui/building/BuildingEditorEvents.cc
index 7c2eb34..4d2889e 100644
--- a/gazebo/gui/building/BuildingEditorEvents.cc
+++ b/gazebo/gui/building/BuildingEditorEvents.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorEvents.hh b/gazebo/gui/building/BuildingEditorEvents.hh
index af82f56..841ce81 100644
--- a/gazebo/gui/building/BuildingEditorEvents.hh
+++ b/gazebo/gui/building/BuildingEditorEvents.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorPalette.cc b/gazebo/gui/building/BuildingEditorPalette.cc
index 2493b8c..a1c7272 100644
--- a/gazebo/gui/building/BuildingEditorPalette.cc
+++ b/gazebo/gui/building/BuildingEditorPalette.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorPalette.hh b/gazebo/gui/building/BuildingEditorPalette.hh
index 2e9b335..6baf22d 100644
--- a/gazebo/gui/building/BuildingEditorPalette.hh
+++ b/gazebo/gui/building/BuildingEditorPalette.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorPalettePrivate.hh b/gazebo/gui/building/BuildingEditorPalettePrivate.hh
index 9a45a46..d3da321 100644
--- a/gazebo/gui/building/BuildingEditorPalettePrivate.hh
+++ b/gazebo/gui/building/BuildingEditorPalettePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorWidget.cc b/gazebo/gui/building/BuildingEditorWidget.cc
index d7cd45e..97b1086 100644
--- a/gazebo/gui/building/BuildingEditorWidget.cc
+++ b/gazebo/gui/building/BuildingEditorWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorWidget.hh b/gazebo/gui/building/BuildingEditorWidget.hh
index b6a0440..3d9b7e7 100644
--- a/gazebo/gui/building/BuildingEditorWidget.hh
+++ b/gazebo/gui/building/BuildingEditorWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingEditorWidgetPrivate.hh b/gazebo/gui/building/BuildingEditorWidgetPrivate.hh
index f7d7ce2..189d0fc 100644
--- a/gazebo/gui/building/BuildingEditorWidgetPrivate.hh
+++ b/gazebo/gui/building/BuildingEditorWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingMaker.cc b/gazebo/gui/building/BuildingMaker.cc
index 2a42973..b81f062 100644
--- a/gazebo/gui/building/BuildingMaker.cc
+++ b/gazebo/gui/building/BuildingMaker.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingMaker.hh b/gazebo/gui/building/BuildingMaker.hh
index 9fd2889..5b365a4 100644
--- a/gazebo/gui/building/BuildingMaker.hh
+++ b/gazebo/gui/building/BuildingMaker.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingMakerPrivate.hh b/gazebo/gui/building/BuildingMakerPrivate.hh
index 6d51a9e..bcfae46 100644
--- a/gazebo/gui/building/BuildingMakerPrivate.hh
+++ b/gazebo/gui/building/BuildingMakerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingMaker_TEST.cc b/gazebo/gui/building/BuildingMaker_TEST.cc
index 12715a1..99fdedb 100644
--- a/gazebo/gui/building/BuildingMaker_TEST.cc
+++ b/gazebo/gui/building/BuildingMaker_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingMaker_TEST.hh b/gazebo/gui/building/BuildingMaker_TEST.hh
index dc5ff42..9131a0a 100644
--- a/gazebo/gui/building/BuildingMaker_TEST.hh
+++ b/gazebo/gui/building/BuildingMaker_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingModelManip.cc b/gazebo/gui/building/BuildingModelManip.cc
index 357818b..0990350 100644
--- a/gazebo/gui/building/BuildingModelManip.cc
+++ b/gazebo/gui/building/BuildingModelManip.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingModelManip.hh b/gazebo/gui/building/BuildingModelManip.hh
index fdcafb2..ddfc1d6 100644
--- a/gazebo/gui/building/BuildingModelManip.hh
+++ b/gazebo/gui/building/BuildingModelManip.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/BuildingModelManipPrivate.hh b/gazebo/gui/building/BuildingModelManipPrivate.hh
index cee27a7..9f3ab40 100644
--- a/gazebo/gui/building/BuildingModelManipPrivate.hh
+++ b/gazebo/gui/building/BuildingModelManipPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/DoorItem.cc b/gazebo/gui/building/DoorItem.cc
index 10f9274..1bdd293 100644
--- a/gazebo/gui/building/DoorItem.cc
+++ b/gazebo/gui/building/DoorItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/DoorItem.hh b/gazebo/gui/building/DoorItem.hh
index 5b3d473..2919557 100644
--- a/gazebo/gui/building/DoorItem.hh
+++ b/gazebo/gui/building/DoorItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/DoorItemPrivate.hh b/gazebo/gui/building/DoorItemPrivate.hh
index 012b776..d4f8370 100644
--- a/gazebo/gui/building/DoorItemPrivate.hh
+++ b/gazebo/gui/building/DoorItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/EditorItem.cc b/gazebo/gui/building/EditorItem.cc
index f491d3d..fc221a4 100644
--- a/gazebo/gui/building/EditorItem.cc
+++ b/gazebo/gui/building/EditorItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/EditorItem.hh b/gazebo/gui/building/EditorItem.hh
index 0bfa55b..c82b15c 100644
--- a/gazebo/gui/building/EditorItem.hh
+++ b/gazebo/gui/building/EditorItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/EditorItemPrivate.hh b/gazebo/gui/building/EditorItemPrivate.hh
index 7a084a6..cc6cde7 100644
--- a/gazebo/gui/building/EditorItemPrivate.hh
+++ b/gazebo/gui/building/EditorItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/EditorView.cc b/gazebo/gui/building/EditorView.cc
index 1cefda2..10dbf90 100644
--- a/gazebo/gui/building/EditorView.cc
+++ b/gazebo/gui/building/EditorView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/EditorView.hh b/gazebo/gui/building/EditorView.hh
index bc20ba2..d8bbe05 100644
--- a/gazebo/gui/building/EditorView.hh
+++ b/gazebo/gui/building/EditorView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/FloorItem.cc b/gazebo/gui/building/FloorItem.cc
index 1b31ea5..3783d75 100644
--- a/gazebo/gui/building/FloorItem.cc
+++ b/gazebo/gui/building/FloorItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/FloorItem.hh b/gazebo/gui/building/FloorItem.hh
index 8cd5bf7..a315dee 100644
--- a/gazebo/gui/building/FloorItem.hh
+++ b/gazebo/gui/building/FloorItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/FloorItemPrivate.hh b/gazebo/gui/building/FloorItemPrivate.hh
index 37e0b9c..2532efa 100644
--- a/gazebo/gui/building/FloorItemPrivate.hh
+++ b/gazebo/gui/building/FloorItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/GrabberHandle.cc b/gazebo/gui/building/GrabberHandle.cc
index 0b86fc1..1deb47f 100644
--- a/gazebo/gui/building/GrabberHandle.cc
+++ b/gazebo/gui/building/GrabberHandle.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/GrabberHandle.hh b/gazebo/gui/building/GrabberHandle.hh
index 513f35d..c57e376 100644
--- a/gazebo/gui/building/GrabberHandle.hh
+++ b/gazebo/gui/building/GrabberHandle.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/GrabberHandlePrivate.hh b/gazebo/gui/building/GrabberHandlePrivate.hh
index a9b2deb..caca1b2 100644
--- a/gazebo/gui/building/GrabberHandlePrivate.hh
+++ b/gazebo/gui/building/GrabberHandlePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/GridLines.cc b/gazebo/gui/building/GridLines.cc
index 9feb36e..2e1777d 100644
--- a/gazebo/gui/building/GridLines.cc
+++ b/gazebo/gui/building/GridLines.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/GridLines.hh b/gazebo/gui/building/GridLines.hh
index aa02edc..6e9265e 100644
--- a/gazebo/gui/building/GridLines.hh
+++ b/gazebo/gui/building/GridLines.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/GridLinesPrivate.hh b/gazebo/gui/building/GridLinesPrivate.hh
index 43874ad..a6d8bc7 100644
--- a/gazebo/gui/building/GridLinesPrivate.hh
+++ b/gazebo/gui/building/GridLinesPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ImportImageDialog.cc b/gazebo/gui/building/ImportImageDialog.cc
index c5873a6..ff7750a 100644
--- a/gazebo/gui/building/ImportImageDialog.cc
+++ b/gazebo/gui/building/ImportImageDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ImportImageDialog.hh b/gazebo/gui/building/ImportImageDialog.hh
index 58a6bf5..28aaa77 100644
--- a/gazebo/gui/building/ImportImageDialog.hh
+++ b/gazebo/gui/building/ImportImageDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ImportImageDialogPrivate.hh b/gazebo/gui/building/ImportImageDialogPrivate.hh
index b0da0a6..2cb4706 100644
--- a/gazebo/gui/building/ImportImageDialogPrivate.hh
+++ b/gazebo/gui/building/ImportImageDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ImportImageView.cc b/gazebo/gui/building/ImportImageView.cc
index 2347043..b7f7c1d 100644
--- a/gazebo/gui/building/ImportImageView.cc
+++ b/gazebo/gui/building/ImportImageView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ImportImageView.hh b/gazebo/gui/building/ImportImageView.hh
index de7fa28..9ee5aee 100644
--- a/gazebo/gui/building/ImportImageView.hh
+++ b/gazebo/gui/building/ImportImageView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ImportImageViewPrivate.hh b/gazebo/gui/building/ImportImageViewPrivate.hh
index 3f08f27..67cf30a 100644
--- a/gazebo/gui/building/ImportImageViewPrivate.hh
+++ b/gazebo/gui/building/ImportImageViewPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/LevelInspectorDialog.cc b/gazebo/gui/building/LevelInspectorDialog.cc
index 088916a..6693102 100644
--- a/gazebo/gui/building/LevelInspectorDialog.cc
+++ b/gazebo/gui/building/LevelInspectorDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/LevelInspectorDialog.hh b/gazebo/gui/building/LevelInspectorDialog.hh
index 13be1f6..a8799d8 100644
--- a/gazebo/gui/building/LevelInspectorDialog.hh
+++ b/gazebo/gui/building/LevelInspectorDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/LevelInspectorDialogPrivate.hh b/gazebo/gui/building/LevelInspectorDialogPrivate.hh
index 15d954b..fd046d9 100644
--- a/gazebo/gui/building/LevelInspectorDialogPrivate.hh
+++ b/gazebo/gui/building/LevelInspectorDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/LevelWidget.cc b/gazebo/gui/building/LevelWidget.cc
index a8efec1..3d1b4ee 100644
--- a/gazebo/gui/building/LevelWidget.cc
+++ b/gazebo/gui/building/LevelWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/LevelWidget.hh b/gazebo/gui/building/LevelWidget.hh
index 037fbbd..a227fe1 100644
--- a/gazebo/gui/building/LevelWidget.hh
+++ b/gazebo/gui/building/LevelWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/LevelWidgetPrivate.hh b/gazebo/gui/building/LevelWidgetPrivate.hh
index 039e5da..07c36d9 100644
--- a/gazebo/gui/building/LevelWidgetPrivate.hh
+++ b/gazebo/gui/building/LevelWidgetPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/MeasureItem.cc b/gazebo/gui/building/MeasureItem.cc
index f6c06c5..bf3afa7 100644
--- a/gazebo/gui/building/MeasureItem.cc
+++ b/gazebo/gui/building/MeasureItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/MeasureItem.hh b/gazebo/gui/building/MeasureItem.hh
index 6fae67c..cec82c4 100644
--- a/gazebo/gui/building/MeasureItem.hh
+++ b/gazebo/gui/building/MeasureItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/MeasureItemPrivate.hh b/gazebo/gui/building/MeasureItemPrivate.hh
index ad839c1..3ca4d59 100644
--- a/gazebo/gui/building/MeasureItemPrivate.hh
+++ b/gazebo/gui/building/MeasureItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/RectItem.cc b/gazebo/gui/building/RectItem.cc
index 20a98bd..e2856d1 100644
--- a/gazebo/gui/building/RectItem.cc
+++ b/gazebo/gui/building/RectItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/RectItem.hh b/gazebo/gui/building/RectItem.hh
index fead2a1..be2e2ba 100644
--- a/gazebo/gui/building/RectItem.hh
+++ b/gazebo/gui/building/RectItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/RectItemPrivate.hh b/gazebo/gui/building/RectItemPrivate.hh
index 76be3aa..8df7909 100644
--- a/gazebo/gui/building/RectItemPrivate.hh
+++ b/gazebo/gui/building/RectItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/RotateHandle.cc b/gazebo/gui/building/RotateHandle.cc
index 639fa0e..61e7541 100644
--- a/gazebo/gui/building/RotateHandle.cc
+++ b/gazebo/gui/building/RotateHandle.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/RotateHandle.hh b/gazebo/gui/building/RotateHandle.hh
index 74cbd28..7b923bf 100644
--- a/gazebo/gui/building/RotateHandle.hh
+++ b/gazebo/gui/building/RotateHandle.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/RotateHandlePrivate.hh b/gazebo/gui/building/RotateHandlePrivate.hh
index f24c491..3a115b3 100644
--- a/gazebo/gui/building/RotateHandlePrivate.hh
+++ b/gazebo/gui/building/RotateHandlePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ScaleWidget.cc b/gazebo/gui/building/ScaleWidget.cc
index 3dcfd8d..b175274 100644
--- a/gazebo/gui/building/ScaleWidget.cc
+++ b/gazebo/gui/building/ScaleWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/ScaleWidget.hh b/gazebo/gui/building/ScaleWidget.hh
index 4b6068f..2fa0df3 100644
--- a/gazebo/gui/building/ScaleWidget.hh
+++ b/gazebo/gui/building/ScaleWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/SegmentItem.cc b/gazebo/gui/building/SegmentItem.cc
index 924b6fb..48696e7 100644
--- a/gazebo/gui/building/SegmentItem.cc
+++ b/gazebo/gui/building/SegmentItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/SegmentItem.hh b/gazebo/gui/building/SegmentItem.hh
index 78bfede..9d45c2d 100644
--- a/gazebo/gui/building/SegmentItem.hh
+++ b/gazebo/gui/building/SegmentItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/SegmentItemPrivate.hh b/gazebo/gui/building/SegmentItemPrivate.hh
index de8ba5b..3cc7a86 100644
--- a/gazebo/gui/building/SegmentItemPrivate.hh
+++ b/gazebo/gui/building/SegmentItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/StairsInspectorDialog.cc b/gazebo/gui/building/StairsInspectorDialog.cc
index d1b39f1..1e89855 100644
--- a/gazebo/gui/building/StairsInspectorDialog.cc
+++ b/gazebo/gui/building/StairsInspectorDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/StairsInspectorDialog.hh b/gazebo/gui/building/StairsInspectorDialog.hh
index a276b37..baae2d7 100644
--- a/gazebo/gui/building/StairsInspectorDialog.hh
+++ b/gazebo/gui/building/StairsInspectorDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/StairsInspectorDialogPrivate.hh b/gazebo/gui/building/StairsInspectorDialogPrivate.hh
index 29ebb8a..67a185b 100644
--- a/gazebo/gui/building/StairsInspectorDialogPrivate.hh
+++ b/gazebo/gui/building/StairsInspectorDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/StairsItem.cc b/gazebo/gui/building/StairsItem.cc
index 38df388..afe5f64 100644
--- a/gazebo/gui/building/StairsItem.cc
+++ b/gazebo/gui/building/StairsItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/StairsItem.hh b/gazebo/gui/building/StairsItem.hh
index fcd1274..87de83f 100644
--- a/gazebo/gui/building/StairsItem.hh
+++ b/gazebo/gui/building/StairsItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/StairsItemPrivate.hh b/gazebo/gui/building/StairsItemPrivate.hh
index 9ddb6e9..b65750a 100644
--- a/gazebo/gui/building/StairsItemPrivate.hh
+++ b/gazebo/gui/building/StairsItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WallInspectorDialog.cc b/gazebo/gui/building/WallInspectorDialog.cc
index 8ebcffa..28b4a22 100644
--- a/gazebo/gui/building/WallInspectorDialog.cc
+++ b/gazebo/gui/building/WallInspectorDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WallInspectorDialog.hh b/gazebo/gui/building/WallInspectorDialog.hh
index cb793ac..12d9851 100644
--- a/gazebo/gui/building/WallInspectorDialog.hh
+++ b/gazebo/gui/building/WallInspectorDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WallInspectorDialogPrivate.hh b/gazebo/gui/building/WallInspectorDialogPrivate.hh
index 43dd7db..8198df0 100644
--- a/gazebo/gui/building/WallInspectorDialogPrivate.hh
+++ b/gazebo/gui/building/WallInspectorDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WallSegmentItem.cc b/gazebo/gui/building/WallSegmentItem.cc
index cb912d5..1026767 100644
--- a/gazebo/gui/building/WallSegmentItem.cc
+++ b/gazebo/gui/building/WallSegmentItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WallSegmentItem.hh b/gazebo/gui/building/WallSegmentItem.hh
index 22bf230..a939aa6 100644
--- a/gazebo/gui/building/WallSegmentItem.hh
+++ b/gazebo/gui/building/WallSegmentItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WallSegmentItemPrivate.hh b/gazebo/gui/building/WallSegmentItemPrivate.hh
index b14698a..400b3ca 100644
--- a/gazebo/gui/building/WallSegmentItemPrivate.hh
+++ b/gazebo/gui/building/WallSegmentItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WindowDoorInspectorDialog.cc b/gazebo/gui/building/WindowDoorInspectorDialog.cc
index 7f60ffe..67acb1e 100644
--- a/gazebo/gui/building/WindowDoorInspectorDialog.cc
+++ b/gazebo/gui/building/WindowDoorInspectorDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WindowDoorInspectorDialog.hh b/gazebo/gui/building/WindowDoorInspectorDialog.hh
index a0eb561..798db1d 100644
--- a/gazebo/gui/building/WindowDoorInspectorDialog.hh
+++ b/gazebo/gui/building/WindowDoorInspectorDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WindowDoorInspectorDialogPrivate.hh b/gazebo/gui/building/WindowDoorInspectorDialogPrivate.hh
index 2483bb3..5bf3469 100644
--- a/gazebo/gui/building/WindowDoorInspectorDialogPrivate.hh
+++ b/gazebo/gui/building/WindowDoorInspectorDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WindowItem.cc b/gazebo/gui/building/WindowItem.cc
index 85f158d..7e847b9 100644
--- a/gazebo/gui/building/WindowItem.cc
+++ b/gazebo/gui/building/WindowItem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WindowItem.hh b/gazebo/gui/building/WindowItem.hh
index 971c3af..6d7b24c 100644
--- a/gazebo/gui/building/WindowItem.hh
+++ b/gazebo/gui/building/WindowItem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/building/WindowItemPrivate.hh b/gazebo/gui/building/WindowItemPrivate.hh
index 835f4c0..e12a8eb 100644
--- a/gazebo/gui/building/WindowItemPrivate.hh
+++ b/gazebo/gui/building/WindowItemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/main.cc b/gazebo/gui/main.cc
index 9bdff9f..d36677c 100644
--- a/gazebo/gui/main.cc
+++ b/gazebo/gui/main.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/CollisionConfig.cc b/gazebo/gui/model/CollisionConfig.cc
index 35bd986..545d014 100644
--- a/gazebo/gui/model/CollisionConfig.cc
+++ b/gazebo/gui/model/CollisionConfig.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/CollisionConfig.hh b/gazebo/gui/model/CollisionConfig.hh
index 8544ab1..e0083f5 100644
--- a/gazebo/gui/model/CollisionConfig.hh
+++ b/gazebo/gui/model/CollisionConfig.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/CollisionConfig_TEST.cc b/gazebo/gui/model/CollisionConfig_TEST.cc
index fe2317d..626e9da 100644
--- a/gazebo/gui/model/CollisionConfig_TEST.cc
+++ b/gazebo/gui/model/CollisionConfig_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/CollisionConfig_TEST.hh b/gazebo/gui/model/CollisionConfig_TEST.hh
index ec9e62f..26934d9 100644
--- a/gazebo/gui/model/CollisionConfig_TEST.hh
+++ b/gazebo/gui/model/CollisionConfig_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/EditorMaterialSwitcher.cc b/gazebo/gui/model/EditorMaterialSwitcher.cc
index 76a05c7..ccd6278 100644
--- a/gazebo/gui/model/EditorMaterialSwitcher.cc
+++ b/gazebo/gui/model/EditorMaterialSwitcher.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/EditorMaterialSwitcher.hh b/gazebo/gui/model/EditorMaterialSwitcher.hh
index 272326f..c7700f1 100644
--- a/gazebo/gui/model/EditorMaterialSwitcher.hh
+++ b/gazebo/gui/model/EditorMaterialSwitcher.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/EditorMaterialSwitcher_TEST.cc b/gazebo/gui/model/EditorMaterialSwitcher_TEST.cc
index 1ca83a3..b3825a5 100644
--- a/gazebo/gui/model/EditorMaterialSwitcher_TEST.cc
+++ b/gazebo/gui/model/EditorMaterialSwitcher_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/EditorMaterialSwitcher_TEST.hh b/gazebo/gui/model/EditorMaterialSwitcher_TEST.hh
index a8990fe..857bfc0 100644
--- a/gazebo/gui/model/EditorMaterialSwitcher_TEST.hh
+++ b/gazebo/gui/model/EditorMaterialSwitcher_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ExtrudeDialog.cc b/gazebo/gui/model/ExtrudeDialog.cc
index 94f7af6..067bdf9 100644
--- a/gazebo/gui/model/ExtrudeDialog.cc
+++ b/gazebo/gui/model/ExtrudeDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ExtrudeDialog.hh b/gazebo/gui/model/ExtrudeDialog.hh
index 2774bc0..2c2cdc3 100644
--- a/gazebo/gui/model/ExtrudeDialog.hh
+++ b/gazebo/gui/model/ExtrudeDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ExtrudeDialogPrivate.hh b/gazebo/gui/model/ExtrudeDialogPrivate.hh
index 838aed3..4c48cc2 100644
--- a/gazebo/gui/model/ExtrudeDialogPrivate.hh
+++ b/gazebo/gui/model/ExtrudeDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ExtrudeDialog_TEST.cc b/gazebo/gui/model/ExtrudeDialog_TEST.cc
index cd01bf0..9118740 100644
--- a/gazebo/gui/model/ExtrudeDialog_TEST.cc
+++ b/gazebo/gui/model/ExtrudeDialog_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
  *
 */
 
+#include <memory>
+
 #include "gazebo/gui/model/ExtrudeDialog.hh"
 #include "gazebo/gui/model/ExtrudeDialog_TEST.hh"
 
@@ -26,11 +28,9 @@ void ExtrudeDialog_TEST::BadFilename()
   // Check that bad filenames don't break anything
   std::string bad("/not/a/file.svg");
 
-  gazebo::gui::ExtrudeDialog *extrudeDialog =
-      new gazebo::gui::ExtrudeDialog(bad);
+  std::unique_ptr<gazebo::gui::ExtrudeDialog> extrudeDialog(
+      new gazebo::gui::ExtrudeDialog(bad));
   QVERIFY(extrudeDialog != NULL);
-
-  delete extrudeDialog;
 }
 
 /////////////////////////////////////////////////
@@ -39,8 +39,8 @@ void ExtrudeDialog_TEST::GetSpinValues()
   // Check a good file
   std::string filePath = std::string(PROJECT_SOURCE_PATH);
   filePath += "/test/data/loader.svg";
-  gazebo::gui::ExtrudeDialog *extrudeDialog =
-      new gazebo::gui::ExtrudeDialog(filePath);
+  std::unique_ptr <gazebo::gui::ExtrudeDialog> extrudeDialog(
+      new gazebo::gui::ExtrudeDialog(filePath));
 
   // Get default thickness, change value and check new value
   double thickness = extrudeDialog->GetThickness();
diff --git a/gazebo/gui/model/ExtrudeDialog_TEST.hh b/gazebo/gui/model/ExtrudeDialog_TEST.hh
index 6b26821..e966898 100644
--- a/gazebo/gui/model/ExtrudeDialog_TEST.hh
+++ b/gazebo/gui/model/ExtrudeDialog_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/GraphScene.cc b/gazebo/gui/model/GraphScene.cc
index 9f3475f..5683345 100644
--- a/gazebo/gui/model/GraphScene.cc
+++ b/gazebo/gui/model/GraphScene.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/GraphScene.hh b/gazebo/gui/model/GraphScene.hh
index 348ac13..e7ebbf0 100644
--- a/gazebo/gui/model/GraphScene.hh
+++ b/gazebo/gui/model/GraphScene.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/GraphScene_TEST.cc b/gazebo/gui/model/GraphScene_TEST.cc
index cba01bc..9d8a6ef 100644
--- a/gazebo/gui/model/GraphScene_TEST.cc
+++ b/gazebo/gui/model/GraphScene_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/GraphScene_TEST.hh b/gazebo/gui/model/GraphScene_TEST.hh
index 2122236..8f0aae5 100644
--- a/gazebo/gui/model/GraphScene_TEST.hh
+++ b/gazebo/gui/model/GraphScene_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/GraphView.cc b/gazebo/gui/model/GraphView.cc
index 5634d85..cdc4d6a 100644
--- a/gazebo/gui/model/GraphView.cc
+++ b/gazebo/gui/model/GraphView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/GraphView.hh b/gazebo/gui/model/GraphView.hh
index d1ec9a8..a7a9a08 100644
--- a/gazebo/gui/model/GraphView.hh
+++ b/gazebo/gui/model/GraphView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ImportDialog.cc b/gazebo/gui/model/ImportDialog.cc
index a39c361..5a926f5 100644
--- a/gazebo/gui/model/ImportDialog.cc
+++ b/gazebo/gui/model/ImportDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ImportDialog.hh b/gazebo/gui/model/ImportDialog.hh
index 5437873..53fddae 100644
--- a/gazebo/gui/model/ImportDialog.hh
+++ b/gazebo/gui/model/ImportDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointCreationDialog.cc b/gazebo/gui/model/JointCreationDialog.cc
index 4e6990d..f71bdf8 100644
--- a/gazebo/gui/model/JointCreationDialog.cc
+++ b/gazebo/gui/model/JointCreationDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointCreationDialog.hh b/gazebo/gui/model/JointCreationDialog.hh
index bebddee..e3a5f8e 100644
--- a/gazebo/gui/model/JointCreationDialog.hh
+++ b/gazebo/gui/model/JointCreationDialog.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointCreationDialogPrivate.hh b/gazebo/gui/model/JointCreationDialogPrivate.hh
index 86bb3c5..c317946 100644
--- a/gazebo/gui/model/JointCreationDialogPrivate.hh
+++ b/gazebo/gui/model/JointCreationDialogPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointCreationDialog_TEST.cc b/gazebo/gui/model/JointCreationDialog_TEST.cc
index 55ff9e2..0dde27d 100644
--- a/gazebo/gui/model/JointCreationDialog_TEST.cc
+++ b/gazebo/gui/model/JointCreationDialog_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointCreationDialog_TEST.hh b/gazebo/gui/model/JointCreationDialog_TEST.hh
index d128711..49882ed 100644
--- a/gazebo/gui/model/JointCreationDialog_TEST.hh
+++ b/gazebo/gui/model/JointCreationDialog_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointInspector.cc b/gazebo/gui/model/JointInspector.cc
index 4ed0eb2..d0fe95f 100644
--- a/gazebo/gui/model/JointInspector.cc
+++ b/gazebo/gui/model/JointInspector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointInspector.hh b/gazebo/gui/model/JointInspector.hh
index a7a0ec9..de84d09 100644
--- a/gazebo/gui/model/JointInspector.hh
+++ b/gazebo/gui/model/JointInspector.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointInspectorPrivate.hh b/gazebo/gui/model/JointInspectorPrivate.hh
index 612f0b8..69b8e4d 100644
--- a/gazebo/gui/model/JointInspectorPrivate.hh
+++ b/gazebo/gui/model/JointInspectorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointInspector_TEST.cc b/gazebo/gui/model/JointInspector_TEST.cc
index 6dc8724..129820b 100644
--- a/gazebo/gui/model/JointInspector_TEST.cc
+++ b/gazebo/gui/model/JointInspector_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointInspector_TEST.hh b/gazebo/gui/model/JointInspector_TEST.hh
index 3fe0edd..bce181a 100644
--- a/gazebo/gui/model/JointInspector_TEST.hh
+++ b/gazebo/gui/model/JointInspector_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointMaker.cc b/gazebo/gui/model/JointMaker.cc
index 62571bd..a9adcc5 100644
--- a/gazebo/gui/model/JointMaker.cc
+++ b/gazebo/gui/model/JointMaker.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointMaker.hh b/gazebo/gui/model/JointMaker.hh
index 44cc66f..9664318 100644
--- a/gazebo/gui/model/JointMaker.hh
+++ b/gazebo/gui/model/JointMaker.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointMakerPrivate.hh b/gazebo/gui/model/JointMakerPrivate.hh
index 38826b5..26457c8 100644
--- a/gazebo/gui/model/JointMakerPrivate.hh
+++ b/gazebo/gui/model/JointMakerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointMaker_TEST.cc b/gazebo/gui/model/JointMaker_TEST.cc
index d8985c6..48b0f21 100644
--- a/gazebo/gui/model/JointMaker_TEST.cc
+++ b/gazebo/gui/model/JointMaker_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/JointMaker_TEST.hh b/gazebo/gui/model/JointMaker_TEST.hh
index 18efdb0..cc62dcb 100644
--- a/gazebo/gui/model/JointMaker_TEST.hh
+++ b/gazebo/gui/model/JointMaker_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkConfig.cc b/gazebo/gui/model/LinkConfig.cc
index dd80ce3..a9f6b9f 100644
--- a/gazebo/gui/model/LinkConfig.cc
+++ b/gazebo/gui/model/LinkConfig.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkConfig.hh b/gazebo/gui/model/LinkConfig.hh
index 03cea10..3258d12 100644
--- a/gazebo/gui/model/LinkConfig.hh
+++ b/gazebo/gui/model/LinkConfig.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkConfig_TEST.cc b/gazebo/gui/model/LinkConfig_TEST.cc
index afed44d..878544b 100644
--- a/gazebo/gui/model/LinkConfig_TEST.cc
+++ b/gazebo/gui/model/LinkConfig_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkConfig_TEST.hh b/gazebo/gui/model/LinkConfig_TEST.hh
index 9192bfb..bbd1bb8 100644
--- a/gazebo/gui/model/LinkConfig_TEST.hh
+++ b/gazebo/gui/model/LinkConfig_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkInspector.cc b/gazebo/gui/model/LinkInspector.cc
index fb4f653..246dcdf 100644
--- a/gazebo/gui/model/LinkInspector.cc
+++ b/gazebo/gui/model/LinkInspector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkInspector.hh b/gazebo/gui/model/LinkInspector.hh
index b96fb92..0bb3695 100644
--- a/gazebo/gui/model/LinkInspector.hh
+++ b/gazebo/gui/model/LinkInspector.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkInspectorPrivate.hh b/gazebo/gui/model/LinkInspectorPrivate.hh
index f3b3bde..9f2a8f9 100644
--- a/gazebo/gui/model/LinkInspectorPrivate.hh
+++ b/gazebo/gui/model/LinkInspectorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkInspector_TEST.cc b/gazebo/gui/model/LinkInspector_TEST.cc
index 74bb998..80736ff 100644
--- a/gazebo/gui/model/LinkInspector_TEST.cc
+++ b/gazebo/gui/model/LinkInspector_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/LinkInspector_TEST.hh b/gazebo/gui/model/LinkInspector_TEST.hh
index a0ad27a..3e7c448 100644
--- a/gazebo/gui/model/LinkInspector_TEST.hh
+++ b/gazebo/gui/model/LinkInspector_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelCreator.cc b/gazebo/gui/model/ModelCreator.cc
index 8bac123..8ada19e 100644
--- a/gazebo/gui/model/ModelCreator.cc
+++ b/gazebo/gui/model/ModelCreator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelCreator.hh b/gazebo/gui/model/ModelCreator.hh
index 266fa1f..5c998a6 100644
--- a/gazebo/gui/model/ModelCreator.hh
+++ b/gazebo/gui/model/ModelCreator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelCreator_TEST.cc b/gazebo/gui/model/ModelCreator_TEST.cc
index 818549d..e6165c7 100644
--- a/gazebo/gui/model/ModelCreator_TEST.cc
+++ b/gazebo/gui/model/ModelCreator_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelCreator_TEST.hh b/gazebo/gui/model/ModelCreator_TEST.hh
index 61cca03..c70d026 100644
--- a/gazebo/gui/model/ModelCreator_TEST.hh
+++ b/gazebo/gui/model/ModelCreator_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelData.cc b/gazebo/gui/model/ModelData.cc
index 045b07b..ff128e5 100644
--- a/gazebo/gui/model/ModelData.cc
+++ b/gazebo/gui/model/ModelData.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelData.hh b/gazebo/gui/model/ModelData.hh
index 60d738f..29c2721 100644
--- a/gazebo/gui/model/ModelData.hh
+++ b/gazebo/gui/model/ModelData.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelData_TEST.cc b/gazebo/gui/model/ModelData_TEST.cc
index 304b611..1e22a91 100644
--- a/gazebo/gui/model/ModelData_TEST.cc
+++ b/gazebo/gui/model/ModelData_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelData_TEST.hh b/gazebo/gui/model/ModelData_TEST.hh
index fe29487..013f2f7 100644
--- a/gazebo/gui/model/ModelData_TEST.hh
+++ b/gazebo/gui/model/ModelData_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditor.cc b/gazebo/gui/model/ModelEditor.cc
index 377b021..dc81e8d 100644
--- a/gazebo/gui/model/ModelEditor.cc
+++ b/gazebo/gui/model/ModelEditor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditor.hh b/gazebo/gui/model/ModelEditor.hh
index bed62bd..b2efd3e 100644
--- a/gazebo/gui/model/ModelEditor.hh
+++ b/gazebo/gui/model/ModelEditor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorEvents.cc b/gazebo/gui/model/ModelEditorEvents.cc
index 2e4970c..746418d 100644
--- a/gazebo/gui/model/ModelEditorEvents.cc
+++ b/gazebo/gui/model/ModelEditorEvents.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorEvents.hh b/gazebo/gui/model/ModelEditorEvents.hh
index d9bc6d0..1b52133 100644
--- a/gazebo/gui/model/ModelEditorEvents.hh
+++ b/gazebo/gui/model/ModelEditorEvents.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorPalette.cc b/gazebo/gui/model/ModelEditorPalette.cc
index e9253c9..4bca920 100644
--- a/gazebo/gui/model/ModelEditorPalette.cc
+++ b/gazebo/gui/model/ModelEditorPalette.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorPalette.hh b/gazebo/gui/model/ModelEditorPalette.hh
index b270e0c..f28efe2 100644
--- a/gazebo/gui/model/ModelEditorPalette.hh
+++ b/gazebo/gui/model/ModelEditorPalette.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorPalette_TEST.cc b/gazebo/gui/model/ModelEditorPalette_TEST.cc
index 2e4de65..0969783 100644
--- a/gazebo/gui/model/ModelEditorPalette_TEST.cc
+++ b/gazebo/gui/model/ModelEditorPalette_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorPalette_TEST.hh b/gazebo/gui/model/ModelEditorPalette_TEST.hh
index 464135f..be41365 100644
--- a/gazebo/gui/model/ModelEditorPalette_TEST.hh
+++ b/gazebo/gui/model/ModelEditorPalette_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorPrivate.hh b/gazebo/gui/model/ModelEditorPrivate.hh
index 9cadfea..0033698 100644
--- a/gazebo/gui/model/ModelEditorPrivate.hh
+++ b/gazebo/gui/model/ModelEditorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditorTypes.hh b/gazebo/gui/model/ModelEditorTypes.hh
index 38529c8..5b48eb9 100644
--- a/gazebo/gui/model/ModelEditorTypes.hh
+++ b/gazebo/gui/model/ModelEditorTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditor_TEST.cc b/gazebo/gui/model/ModelEditor_TEST.cc
index 1cec68d..bd62112 100644
--- a/gazebo/gui/model/ModelEditor_TEST.cc
+++ b/gazebo/gui/model/ModelEditor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelEditor_TEST.hh b/gazebo/gui/model/ModelEditor_TEST.hh
index 9c1d478..f396f98 100644
--- a/gazebo/gui/model/ModelEditor_TEST.hh
+++ b/gazebo/gui/model/ModelEditor_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelPluginInspector.cc b/gazebo/gui/model/ModelPluginInspector.cc
index 97880e9..4fc1d40 100644
--- a/gazebo/gui/model/ModelPluginInspector.cc
+++ b/gazebo/gui/model/ModelPluginInspector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelPluginInspector.hh b/gazebo/gui/model/ModelPluginInspector.hh
index 1b33767..a0b1415 100644
--- a/gazebo/gui/model/ModelPluginInspector.hh
+++ b/gazebo/gui/model/ModelPluginInspector.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelPluginInspectorPrivate.hh b/gazebo/gui/model/ModelPluginInspectorPrivate.hh
index 1054ec3..e048ad3 100644
--- a/gazebo/gui/model/ModelPluginInspectorPrivate.hh
+++ b/gazebo/gui/model/ModelPluginInspectorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelPluginInspector_TEST.cc b/gazebo/gui/model/ModelPluginInspector_TEST.cc
index 1f5bc52..567cc40 100644
--- a/gazebo/gui/model/ModelPluginInspector_TEST.cc
+++ b/gazebo/gui/model/ModelPluginInspector_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelPluginInspector_TEST.hh b/gazebo/gui/model/ModelPluginInspector_TEST.hh
index df0623a..d8233f0 100644
--- a/gazebo/gui/model/ModelPluginInspector_TEST.hh
+++ b/gazebo/gui/model/ModelPluginInspector_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelTreeWidget.cc b/gazebo/gui/model/ModelTreeWidget.cc
index d5055e8..fdd1385 100644
--- a/gazebo/gui/model/ModelTreeWidget.cc
+++ b/gazebo/gui/model/ModelTreeWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelTreeWidget.hh b/gazebo/gui/model/ModelTreeWidget.hh
index 81fc67e..d931e2e 100644
--- a/gazebo/gui/model/ModelTreeWidget.hh
+++ b/gazebo/gui/model/ModelTreeWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelTreeWidget_TEST.cc b/gazebo/gui/model/ModelTreeWidget_TEST.cc
index 14fec46..d2c810d 100644
--- a/gazebo/gui/model/ModelTreeWidget_TEST.cc
+++ b/gazebo/gui/model/ModelTreeWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/ModelTreeWidget_TEST.hh b/gazebo/gui/model/ModelTreeWidget_TEST.hh
index af6bf65..df77fca 100644
--- a/gazebo/gui/model/ModelTreeWidget_TEST.hh
+++ b/gazebo/gui/model/ModelTreeWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/SchematicViewWidget.cc b/gazebo/gui/model/SchematicViewWidget.cc
index 60eb449..0649403 100644
--- a/gazebo/gui/model/SchematicViewWidget.cc
+++ b/gazebo/gui/model/SchematicViewWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/SchematicViewWidget.hh b/gazebo/gui/model/SchematicViewWidget.hh
index edbb507..65006d1 100644
--- a/gazebo/gui/model/SchematicViewWidget.hh
+++ b/gazebo/gui/model/SchematicViewWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/SchematicViewWidget_TEST.cc b/gazebo/gui/model/SchematicViewWidget_TEST.cc
index 5e69795..fbf310e 100644
--- a/gazebo/gui/model/SchematicViewWidget_TEST.cc
+++ b/gazebo/gui/model/SchematicViewWidget_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/SchematicViewWidget_TEST.hh b/gazebo/gui/model/SchematicViewWidget_TEST.hh
index f7d1343..4967d1a 100644
--- a/gazebo/gui/model/SchematicViewWidget_TEST.hh
+++ b/gazebo/gui/model/SchematicViewWidget_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/VisualConfig.cc b/gazebo/gui/model/VisualConfig.cc
index 3e97118..4d67ea9 100644
--- a/gazebo/gui/model/VisualConfig.cc
+++ b/gazebo/gui/model/VisualConfig.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/VisualConfig.hh b/gazebo/gui/model/VisualConfig.hh
index 7f46bde..454b052 100644
--- a/gazebo/gui/model/VisualConfig.hh
+++ b/gazebo/gui/model/VisualConfig.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/VisualConfig_TEST.cc b/gazebo/gui/model/VisualConfig_TEST.cc
index 4e798f6..8076299 100644
--- a/gazebo/gui/model/VisualConfig_TEST.cc
+++ b/gazebo/gui/model/VisualConfig_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/model/VisualConfig_TEST.hh b/gazebo/gui/model/VisualConfig_TEST.hh
index d116a20..2c203ff 100644
--- a/gazebo/gui/model/VisualConfig_TEST.hh
+++ b/gazebo/gui/model/VisualConfig_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/qt.h b/gazebo/gui/qt.h
index 6270d34..59a9e19 100644
--- a/gazebo/gui/qt.h
+++ b/gazebo/gui/qt.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/qt_test.h b/gazebo/gui/qt_test.h
index 2ef77c7..85d50aa 100644
--- a/gazebo/gui/qt_test.h
+++ b/gazebo/gui/qt_test.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/terrain/TerrainEditor.cc b/gazebo/gui/terrain/TerrainEditor.cc
index 5f18906..8e42c5e 100644
--- a/gazebo/gui/terrain/TerrainEditor.cc
+++ b/gazebo/gui/terrain/TerrainEditor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/terrain/TerrainEditor.hh b/gazebo/gui/terrain/TerrainEditor.hh
index 1bf2e5b..fa032e6 100644
--- a/gazebo/gui/terrain/TerrainEditor.hh
+++ b/gazebo/gui/terrain/TerrainEditor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/terrain/TerrainEditorPalette.cc b/gazebo/gui/terrain/TerrainEditorPalette.cc
index caa9428..7dec921 100644
--- a/gazebo/gui/terrain/TerrainEditorPalette.cc
+++ b/gazebo/gui/terrain/TerrainEditorPalette.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/terrain/TerrainEditorPalette.hh b/gazebo/gui/terrain/TerrainEditorPalette.hh
index d30be68..91cc865 100644
--- a/gazebo/gui/terrain/TerrainEditorPalette.hh
+++ b/gazebo/gui/terrain/TerrainEditorPalette.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/terrain/TerrainEditorPalettePrivate.hh b/gazebo/gui/terrain/TerrainEditorPalettePrivate.hh
index 4cb4097..467e236 100644
--- a/gazebo/gui/terrain/TerrainEditorPalettePrivate.hh
+++ b/gazebo/gui/terrain/TerrainEditorPalettePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/terrain/TerrainEditorPrivate.hh b/gazebo/gui/terrain/TerrainEditorPrivate.hh
index 2f37e21..decec6b 100644
--- a/gazebo/gui/terrain/TerrainEditorPrivate.hh
+++ b/gazebo/gui/terrain/TerrainEditorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImageFrame.cc b/gazebo/gui/viewers/ImageFrame.cc
index d2594a1..607b8e4 100644
--- a/gazebo/gui/viewers/ImageFrame.cc
+++ b/gazebo/gui/viewers/ImageFrame.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImageFrame.hh b/gazebo/gui/viewers/ImageFrame.hh
index 1be9bea..357165f 100644
--- a/gazebo/gui/viewers/ImageFrame.hh
+++ b/gazebo/gui/viewers/ImageFrame.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImageFramePrivate.hh b/gazebo/gui/viewers/ImageFramePrivate.hh
index bc8d1d2..01db829 100644
--- a/gazebo/gui/viewers/ImageFramePrivate.hh
+++ b/gazebo/gui/viewers/ImageFramePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImageView.cc b/gazebo/gui/viewers/ImageView.cc
index 4f93efd..9ac57a2 100644
--- a/gazebo/gui/viewers/ImageView.cc
+++ b/gazebo/gui/viewers/ImageView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImageView.hh b/gazebo/gui/viewers/ImageView.hh
index 154f9ed..c810ff1 100644
--- a/gazebo/gui/viewers/ImageView.hh
+++ b/gazebo/gui/viewers/ImageView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImageViewPrivate.hh b/gazebo/gui/viewers/ImageViewPrivate.hh
index 1957d74..0c7ae79 100644
--- a/gazebo/gui/viewers/ImageViewPrivate.hh
+++ b/gazebo/gui/viewers/ImageViewPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImagesView.cc b/gazebo/gui/viewers/ImagesView.cc
index d333c08..e8444c6 100644
--- a/gazebo/gui/viewers/ImagesView.cc
+++ b/gazebo/gui/viewers/ImagesView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImagesView.hh b/gazebo/gui/viewers/ImagesView.hh
index 83bb921..e68e009 100644
--- a/gazebo/gui/viewers/ImagesView.hh
+++ b/gazebo/gui/viewers/ImagesView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImagesViewPrivate.hh b/gazebo/gui/viewers/ImagesViewPrivate.hh
index 1ba7140..e87008b 100644
--- a/gazebo/gui/viewers/ImagesViewPrivate.hh
+++ b/gazebo/gui/viewers/ImagesViewPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImagesView_TEST.cc b/gazebo/gui/viewers/ImagesView_TEST.cc
index bf4fa81..5f2741f 100644
--- a/gazebo/gui/viewers/ImagesView_TEST.cc
+++ b/gazebo/gui/viewers/ImagesView_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ImagesView_TEST.hh b/gazebo/gui/viewers/ImagesView_TEST.hh
index b20335e..21f9589 100644
--- a/gazebo/gui/viewers/ImagesView_TEST.hh
+++ b/gazebo/gui/viewers/ImagesView_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/LaserView.cc b/gazebo/gui/viewers/LaserView.cc
index 2d645e2..ddf6467 100644
--- a/gazebo/gui/viewers/LaserView.cc
+++ b/gazebo/gui/viewers/LaserView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -485,6 +485,11 @@ void LaserView::LaserItem::Update(double _angleMin, double _angleMax,
         -hitRange * this->scale * sin(angle));
     this->points[i] = pt;
     double noHitRange = std::isinf(r) ? this->rangeMax : hitRange;
+    if (r < this->rangeMin)
+    {
+        // Display -inf as very close
+        noHitRange = 0;
+    }
     QPointF noHitPt(noHitRange * this->scale * cos(angle),
         -noHitRange * this->scale * sin(angle));
     this->noHitPoints[i] = noHitPt;
diff --git a/gazebo/gui/viewers/LaserView.hh b/gazebo/gui/viewers/LaserView.hh
index 7684089..2077ef3 100644
--- a/gazebo/gui/viewers/LaserView.hh
+++ b/gazebo/gui/viewers/LaserView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/LaserView_TEST.cc b/gazebo/gui/viewers/LaserView_TEST.cc
index 97190be..7dcaf01 100644
--- a/gazebo/gui/viewers/LaserView_TEST.cc
+++ b/gazebo/gui/viewers/LaserView_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/LaserView_TEST.hh b/gazebo/gui/viewers/LaserView_TEST.hh
index dfb5f5c..3c79632 100644
--- a/gazebo/gui/viewers/LaserView_TEST.hh
+++ b/gazebo/gui/viewers/LaserView_TEST.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/TextView.cc b/gazebo/gui/viewers/TextView.cc
index a2dd355..350dcbe 100644
--- a/gazebo/gui/viewers/TextView.cc
+++ b/gazebo/gui/viewers/TextView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/TextView.hh b/gazebo/gui/viewers/TextView.hh
index c61a3c5..f4183d6 100644
--- a/gazebo/gui/viewers/TextView.hh
+++ b/gazebo/gui/viewers/TextView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/TopicView.cc b/gazebo/gui/viewers/TopicView.cc
index 3d01855..b9c96f8 100644
--- a/gazebo/gui/viewers/TopicView.cc
+++ b/gazebo/gui/viewers/TopicView.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/TopicView.hh b/gazebo/gui/viewers/TopicView.hh
index 852067e..9fd5eb2 100644
--- a/gazebo/gui/viewers/TopicView.hh
+++ b/gazebo/gui/viewers/TopicView.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ViewFactory.cc b/gazebo/gui/viewers/ViewFactory.cc
index dd93a06..d3670d0 100644
--- a/gazebo/gui/viewers/ViewFactory.cc
+++ b/gazebo/gui/viewers/ViewFactory.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gui/viewers/ViewFactory.hh b/gazebo/gui/viewers/ViewFactory.hh
index 04c4b2b..7b788c2 100644
--- a/gazebo/gui/viewers/ViewFactory.hh
+++ b/gazebo/gui/viewers/ViewFactory.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/gzserver.1.ronn b/gazebo/gzserver.1.ronn
index 87231eb..c22c349 100644
--- a/gazebo/gzserver.1.ronn
+++ b/gazebo/gzserver.1.ronn
@@ -29,6 +29,10 @@ Gazebo server runs simulation and handles commandline options, starts a Master,
  Compression encoding format for log data (zlib|bz2|txt).
 * --record_path arg :
  Absolute path in which to store state data
+* --record_period arg (=-1) :
+ Recording period (seconds).
+* --record_filter arg :
+ Recording filter (supports wildcard and regular expression).
 * --seed arg :
  Start with a given random number seed.
 * --iters arg :
diff --git a/gazebo/math/Angle.cc b/gazebo/math/Angle.cc
index ea33257..9922b38 100644
--- a/gazebo/math/Angle.cc
+++ b/gazebo/math/Angle.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Angle.hh b/gazebo/math/Angle.hh
index c79e606..55a7a9f 100644
--- a/gazebo/math/Angle.hh
+++ b/gazebo/math/Angle.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Angle_TEST.cc b/gazebo/math/Angle_TEST.cc
index 347a690..ec33faa 100644
--- a/gazebo/math/Angle_TEST.cc
+++ b/gazebo/math/Angle_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Box.cc b/gazebo/math/Box.cc
index 2f2f30c..d1b26b7 100644
--- a/gazebo/math/Box.cc
+++ b/gazebo/math/Box.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Box.hh b/gazebo/math/Box.hh
index 943e004..bf034a2 100644
--- a/gazebo/math/Box.hh
+++ b/gazebo/math/Box.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Box_TEST.cc b/gazebo/math/Box_TEST.cc
index a44426a..7b6deb2 100644
--- a/gazebo/math/Box_TEST.cc
+++ b/gazebo/math/Box_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Filter.hh b/gazebo/math/Filter.hh
index aed9236..0fd23c1 100644
--- a/gazebo/math/Filter.hh
+++ b/gazebo/math/Filter.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Helpers.cc b/gazebo/math/Helpers.cc
index 7a35531..fa81da2 100644
--- a/gazebo/math/Helpers.cc
+++ b/gazebo/math/Helpers.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Helpers.hh b/gazebo/math/Helpers.hh
index 92a121e..9e8e092 100644
--- a/gazebo/math/Helpers.hh
+++ b/gazebo/math/Helpers.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Helpers_TEST.cc b/gazebo/math/Helpers_TEST.cc
index 2eaadd4..64b3c30 100644
--- a/gazebo/math/Helpers_TEST.cc
+++ b/gazebo/math/Helpers_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Kmeans.cc b/gazebo/math/Kmeans.cc
index acca9f2..026a66c 100644
--- a/gazebo/math/Kmeans.cc
+++ b/gazebo/math/Kmeans.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Kmeans.hh b/gazebo/math/Kmeans.hh
index c15b2ec..61d09c5 100644
--- a/gazebo/math/Kmeans.hh
+++ b/gazebo/math/Kmeans.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Kmeans_TEST.cc b/gazebo/math/Kmeans_TEST.cc
index 69c842c..c5eb4b5 100644
--- a/gazebo/math/Kmeans_TEST.cc
+++ b/gazebo/math/Kmeans_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/MathTypes.hh b/gazebo/math/MathTypes.hh
index beb7211..387f30f 100644
--- a/gazebo/math/MathTypes.hh
+++ b/gazebo/math/MathTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Matrix3.cc b/gazebo/math/Matrix3.cc
index ace0c3c..c0ac062 100644
--- a/gazebo/math/Matrix3.cc
+++ b/gazebo/math/Matrix3.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Matrix3.hh b/gazebo/math/Matrix3.hh
index 09b3828..b474e90 100644
--- a/gazebo/math/Matrix3.hh
+++ b/gazebo/math/Matrix3.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Matrix3_TEST.cc b/gazebo/math/Matrix3_TEST.cc
index ea9d99b..390c90e 100644
--- a/gazebo/math/Matrix3_TEST.cc
+++ b/gazebo/math/Matrix3_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Matrix4.cc b/gazebo/math/Matrix4.cc
index 23fb9c1..dbe9e9b 100644
--- a/gazebo/math/Matrix4.cc
+++ b/gazebo/math/Matrix4.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Matrix4.hh b/gazebo/math/Matrix4.hh
index 044a842..1716921 100644
--- a/gazebo/math/Matrix4.hh
+++ b/gazebo/math/Matrix4.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Plane.cc b/gazebo/math/Plane.cc
index 135f904..6d4c04d 100644
--- a/gazebo/math/Plane.cc
+++ b/gazebo/math/Plane.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Plane.hh b/gazebo/math/Plane.hh
index 70e5cb3..c40ee36 100644
--- a/gazebo/math/Plane.hh
+++ b/gazebo/math/Plane.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Plane_TEST.cc b/gazebo/math/Plane_TEST.cc
index 10b7f89..c1db929 100644
--- a/gazebo/math/Plane_TEST.cc
+++ b/gazebo/math/Plane_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Pose.cc b/gazebo/math/Pose.cc
index fcbd609..a8dfb3a 100644
--- a/gazebo/math/Pose.cc
+++ b/gazebo/math/Pose.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Pose.hh b/gazebo/math/Pose.hh
index 8fca4c8..8975e97 100644
--- a/gazebo/math/Pose.hh
+++ b/gazebo/math/Pose.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Pose_TEST.cc b/gazebo/math/Pose_TEST.cc
index d2b9adb..70a40fe 100644
--- a/gazebo/math/Pose_TEST.cc
+++ b/gazebo/math/Pose_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Quaternion.cc b/gazebo/math/Quaternion.cc
index b9668d4..2177dea 100644
--- a/gazebo/math/Quaternion.cc
+++ b/gazebo/math/Quaternion.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Quaternion.hh b/gazebo/math/Quaternion.hh
index 46178ee..da3e8e4 100644
--- a/gazebo/math/Quaternion.hh
+++ b/gazebo/math/Quaternion.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Quaternion_TEST.cc b/gazebo/math/Quaternion_TEST.cc
index 72390d1..0fc3aea 100644
--- a/gazebo/math/Quaternion_TEST.cc
+++ b/gazebo/math/Quaternion_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Rand.cc b/gazebo/math/Rand.cc
index 8329e0c..f198ac3 100644
--- a/gazebo/math/Rand.cc
+++ b/gazebo/math/Rand.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Rand.hh b/gazebo/math/Rand.hh
index f3ef891..6013a51 100644
--- a/gazebo/math/Rand.hh
+++ b/gazebo/math/Rand.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Rand_TEST.cc b/gazebo/math/Rand_TEST.cc
index 82c0d72..3d8b13b 100644
--- a/gazebo/math/Rand_TEST.cc
+++ b/gazebo/math/Rand_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/RotationSpline.cc b/gazebo/math/RotationSpline.cc
index 504a06d..c182766 100644
--- a/gazebo/math/RotationSpline.cc
+++ b/gazebo/math/RotationSpline.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/RotationSpline.hh b/gazebo/math/RotationSpline.hh
index cc881ea..8cb6d23 100644
--- a/gazebo/math/RotationSpline.hh
+++ b/gazebo/math/RotationSpline.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/RotationSpline_TEST.cc b/gazebo/math/RotationSpline_TEST.cc
index 0a61e1c..6156af6 100644
--- a/gazebo/math/RotationSpline_TEST.cc
+++ b/gazebo/math/RotationSpline_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/SignalStats.cc b/gazebo/math/SignalStats.cc
index 1f141d1..7d228d4 100644
--- a/gazebo/math/SignalStats.cc
+++ b/gazebo/math/SignalStats.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/SignalStats.hh b/gazebo/math/SignalStats.hh
index 8c0fbc1..8ef86ce 100644
--- a/gazebo/math/SignalStats.hh
+++ b/gazebo/math/SignalStats.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/SignalStatsPrivate.hh b/gazebo/math/SignalStatsPrivate.hh
index 7af5bba..d5815dd 100644
--- a/gazebo/math/SignalStatsPrivate.hh
+++ b/gazebo/math/SignalStatsPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/SignalStats_TEST.cc b/gazebo/math/SignalStats_TEST.cc
index 996be3b..d442c9b 100644
--- a/gazebo/math/SignalStats_TEST.cc
+++ b/gazebo/math/SignalStats_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Spline.cc b/gazebo/math/Spline.cc
index e5d8586..0755a63 100644
--- a/gazebo/math/Spline.cc
+++ b/gazebo/math/Spline.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Spline.hh b/gazebo/math/Spline.hh
index 7403d3d..9e1ba23 100644
--- a/gazebo/math/Spline.hh
+++ b/gazebo/math/Spline.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Spline_TEST.cc b/gazebo/math/Spline_TEST.cc
index 3f09eaa..064b362 100644
--- a/gazebo/math/Spline_TEST.cc
+++ b/gazebo/math/Spline_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector2d.cc b/gazebo/math/Vector2d.cc
index ca1a01a..45a4dae 100644
--- a/gazebo/math/Vector2d.cc
+++ b/gazebo/math/Vector2d.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector2d.hh b/gazebo/math/Vector2d.hh
index 4c935ae..14f0736 100644
--- a/gazebo/math/Vector2d.hh
+++ b/gazebo/math/Vector2d.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector2d_TEST.cc b/gazebo/math/Vector2d_TEST.cc
index 87d9c7c..1c493d4 100644
--- a/gazebo/math/Vector2d_TEST.cc
+++ b/gazebo/math/Vector2d_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector2i.cc b/gazebo/math/Vector2i.cc
index 2369d84..c24b642 100644
--- a/gazebo/math/Vector2i.cc
+++ b/gazebo/math/Vector2i.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector2i.hh b/gazebo/math/Vector2i.hh
index 343c40f..fc857b1 100644
--- a/gazebo/math/Vector2i.hh
+++ b/gazebo/math/Vector2i.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector2i_TEST.cc b/gazebo/math/Vector2i_TEST.cc
index 8ef0314..cf68f7a 100644
--- a/gazebo/math/Vector2i_TEST.cc
+++ b/gazebo/math/Vector2i_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector3.cc b/gazebo/math/Vector3.cc
index 3d88d86..755a8de 100644
--- a/gazebo/math/Vector3.cc
+++ b/gazebo/math/Vector3.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector3.hh b/gazebo/math/Vector3.hh
index 14a0ef7..eaa2210 100644
--- a/gazebo/math/Vector3.hh
+++ b/gazebo/math/Vector3.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector3Stats.cc b/gazebo/math/Vector3Stats.cc
index 419593b..b909b8f 100644
--- a/gazebo/math/Vector3Stats.cc
+++ b/gazebo/math/Vector3Stats.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector3Stats.hh b/gazebo/math/Vector3Stats.hh
index f7b0bdb..c8e966a 100644
--- a/gazebo/math/Vector3Stats.hh
+++ b/gazebo/math/Vector3Stats.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector3StatsPrivate.hh b/gazebo/math/Vector3StatsPrivate.hh
index 7f6ffaa..2505e40 100644
--- a/gazebo/math/Vector3StatsPrivate.hh
+++ b/gazebo/math/Vector3StatsPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector3Stats_TEST.cc b/gazebo/math/Vector3Stats_TEST.cc
index 2fd1ada..1c01adf 100644
--- a/gazebo/math/Vector3Stats_TEST.cc
+++ b/gazebo/math/Vector3Stats_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector3_TEST.cc b/gazebo/math/Vector3_TEST.cc
index ef730bf..5087a66 100644
--- a/gazebo/math/Vector3_TEST.cc
+++ b/gazebo/math/Vector3_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector4.cc b/gazebo/math/Vector4.cc
index 99788aa..b89e84e 100644
--- a/gazebo/math/Vector4.cc
+++ b/gazebo/math/Vector4.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector4.hh b/gazebo/math/Vector4.hh
index 4623204..c18258b 100644
--- a/gazebo/math/Vector4.hh
+++ b/gazebo/math/Vector4.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/math/Vector4_TEST.cc b/gazebo/math/Vector4_TEST.cc
index b55f11c..bd290b0 100644
--- a/gazebo/math/Vector4_TEST.cc
+++ b/gazebo/math/Vector4_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/MsgFactory.cc b/gazebo/msgs/MsgFactory.cc
index 9048ca3..bd891bb 100644
--- a/gazebo/msgs/MsgFactory.cc
+++ b/gazebo/msgs/MsgFactory.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/MsgFactory.hh b/gazebo/msgs/MsgFactory.hh
index 046a2a6..ecd4713 100644
--- a/gazebo/msgs/MsgFactory.hh
+++ b/gazebo/msgs/MsgFactory.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/MsgFactory_TEST.cc b/gazebo/msgs/MsgFactory_TEST.cc
index bf3034f..aebc7f2 100644
--- a/gazebo/msgs/MsgFactory_TEST.cc
+++ b/gazebo/msgs/MsgFactory_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/generator/GazeboGenerator.cc b/gazebo/msgs/generator/GazeboGenerator.cc
index c64737a..154b4ad 100644
--- a/gazebo/msgs/generator/GazeboGenerator.cc
+++ b/gazebo/msgs/generator/GazeboGenerator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/generator/GazeboGenerator.hh b/gazebo/msgs/generator/GazeboGenerator.hh
index dd6e72e..44128e1 100644
--- a/gazebo/msgs/generator/GazeboGenerator.hh
+++ b/gazebo/msgs/generator/GazeboGenerator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/generator/gazebo_generator.cc b/gazebo/msgs/generator/gazebo_generator.cc
index e282145..d323a71 100644
--- a/gazebo/msgs/generator/gazebo_generator.cc
+++ b/gazebo/msgs/generator/gazebo_generator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/msgs.cc b/gazebo/msgs/msgs.cc
index d37f1c8..ec529d5 100644
--- a/gazebo/msgs/msgs.cc
+++ b/gazebo/msgs/msgs.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -2544,7 +2544,7 @@ namespace gazebo
       }
 
       // Use the SDF parser to read all the inner xml.
-      std::string tmp = "<sdf version='1.5'>";
+      std::string tmp = "<sdf version='" + std::string(SDF_VERSION) + "'>";
       tmp += "<plugin name='" + _msg.name() + "' filename='" +
         _msg.filename() + "'>";
       tmp += _msg.innerxml();
diff --git a/gazebo/msgs/msgs.hh b/gazebo/msgs/msgs.hh
index 28cec55..aaa237b 100644
--- a/gazebo/msgs/msgs.hh
+++ b/gazebo/msgs/msgs.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/msgs/msgs_TEST.cc b/gazebo/msgs/msgs_TEST.cc
index 0d04588..f16ba7b 100644
--- a/gazebo/msgs/msgs_TEST.cc
+++ b/gazebo/msgs/msgs_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Actor.cc b/gazebo/physics/Actor.cc
index cbfc505..fdd3610 100644
--- a/gazebo/physics/Actor.cc
+++ b/gazebo/physics/Actor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Actor.hh b/gazebo/physics/Actor.hh
index d484834..9720f5a 100644
--- a/gazebo/physics/Actor.hh
+++ b/gazebo/physics/Actor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/BallJoint.hh b/gazebo/physics/BallJoint.hh
index c1d712d..1347813 100644
--- a/gazebo/physics/BallJoint.hh
+++ b/gazebo/physics/BallJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Base.cc b/gazebo/physics/Base.cc
index da38df6..e2df2cd 100644
--- a/gazebo/physics/Base.cc
+++ b/gazebo/physics/Base.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Base.hh b/gazebo/physics/Base.hh
index 4580652..fbd268b 100644
--- a/gazebo/physics/Base.hh
+++ b/gazebo/physics/Base.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/BoxShape.cc b/gazebo/physics/BoxShape.cc
index d891852..6241811 100644
--- a/gazebo/physics/BoxShape.cc
+++ b/gazebo/physics/BoxShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/BoxShape.hh b/gazebo/physics/BoxShape.hh
index 6537092..05f8b23 100644
--- a/gazebo/physics/BoxShape.hh
+++ b/gazebo/physics/BoxShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/BoxShape_TEST.cc b/gazebo/physics/BoxShape_TEST.cc
index 6f01199..aaa531b 100644
--- a/gazebo/physics/BoxShape_TEST.cc
+++ b/gazebo/physics/BoxShape_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Collision.cc b/gazebo/physics/Collision.cc
index d630dee..cdec755 100644
--- a/gazebo/physics/Collision.cc
+++ b/gazebo/physics/Collision.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -132,7 +132,7 @@ void Collision::Init()
 //////////////////////////////////////////////////
 void Collision::SetCollision(bool _placeable)
 {
-  this->placeable = _placeable;
+  this->SetPlaceable(_placeable);
 
   if (this->IsStatic())
   {
@@ -148,6 +148,12 @@ void Collision::SetCollision(bool _placeable)
 }
 
 //////////////////////////////////////////////////
+void Collision::SetPlaceable(const bool _placeable)
+{
+  this->placeable = _placeable;
+}
+
+//////////////////////////////////////////////////
 bool Collision::IsPlaceable() const
 {
   return this->placeable;
diff --git a/gazebo/physics/Collision.hh b/gazebo/physics/Collision.hh
index ef48c0d..f5934dc 100644
--- a/gazebo/physics/Collision.hh
+++ b/gazebo/physics/Collision.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -65,9 +65,14 @@ namespace gazebo
       public: virtual void UpdateParameters(sdf::ElementPtr _sdf);
 
       /// \brief Set the encapsulated collsion object.
+      /// Has a side effect of changing the collision bit masks
       /// \param[in] _placeable True to make the object movable.
       public: void SetCollision(bool _placeable);
 
+      /// \brief Set if this object is moveable
+      /// \param[in] _placeable True to make the object movable.
+      public: void SetPlaceable(const bool _placeable);
+
       /// \brief Return whether this collision is movable.
       /// Example on an immovable object is a ray.
       /// \return True if the object is immovable.
diff --git a/gazebo/physics/CollisionState.cc b/gazebo/physics/CollisionState.cc
index ffed825..9c0c376 100644
--- a/gazebo/physics/CollisionState.cc
+++ b/gazebo/physics/CollisionState.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License")
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/CollisionState.hh b/gazebo/physics/CollisionState.hh
index 12e0e64..3f2166b 100644
--- a/gazebo/physics/CollisionState.hh
+++ b/gazebo/physics/CollisionState.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Contact.cc b/gazebo/physics/Contact.cc
index 3d60a03..41860c7 100644
--- a/gazebo/physics/Contact.cc
+++ b/gazebo/physics/Contact.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Contact.hh b/gazebo/physics/Contact.hh
index 5df0dab..ebf4828 100644
--- a/gazebo/physics/Contact.hh
+++ b/gazebo/physics/Contact.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ContactManager.cc b/gazebo/physics/ContactManager.cc
index ebe478d..bf3c076 100644
--- a/gazebo/physics/ContactManager.cc
+++ b/gazebo/physics/ContactManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ContactManager.hh b/gazebo/physics/ContactManager.hh
index 7e85893..9a359c1 100644
--- a/gazebo/physics/ContactManager.hh
+++ b/gazebo/physics/ContactManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ContactManager_TEST.cc b/gazebo/physics/ContactManager_TEST.cc
index 8d29a8a..af0cc5e 100644
--- a/gazebo/physics/ContactManager_TEST.cc
+++ b/gazebo/physics/ContactManager_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/CylinderShape.cc b/gazebo/physics/CylinderShape.cc
index 44c7b67..39ba8fe 100644
--- a/gazebo/physics/CylinderShape.cc
+++ b/gazebo/physics/CylinderShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/CylinderShape.hh b/gazebo/physics/CylinderShape.hh
index febac1b..859cd26 100644
--- a/gazebo/physics/CylinderShape.hh
+++ b/gazebo/physics/CylinderShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/CylinderShape_TEST.cc b/gazebo/physics/CylinderShape_TEST.cc
index 7ca4ad9..55bdc71 100644
--- a/gazebo/physics/CylinderShape_TEST.cc
+++ b/gazebo/physics/CylinderShape_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Entity.cc b/gazebo/physics/Entity.cc
index 1290928..82cfd76 100644
--- a/gazebo/physics/Entity.cc
+++ b/gazebo/physics/Entity.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Entity.hh b/gazebo/physics/Entity.hh
index 53a843c..6a14b06 100644
--- a/gazebo/physics/Entity.hh
+++ b/gazebo/physics/Entity.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/FixedJoint.hh b/gazebo/physics/FixedJoint.hh
index d72204e..2096cc3 100644
--- a/gazebo/physics/FixedJoint.hh
+++ b/gazebo/physics/FixedJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/GearboxJoint.hh b/gazebo/physics/GearboxJoint.hh
index 24f1b88..24f34f0 100644
--- a/gazebo/physics/GearboxJoint.hh
+++ b/gazebo/physics/GearboxJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Gripper.cc b/gazebo/physics/Gripper.cc
index 167403f..364c995 100644
--- a/gazebo/physics/Gripper.cc
+++ b/gazebo/physics/Gripper.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Gripper.hh b/gazebo/physics/Gripper.hh
index b684afb..c39f280 100644
--- a/gazebo/physics/Gripper.hh
+++ b/gazebo/physics/Gripper.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/HeightmapShape.cc b/gazebo/physics/HeightmapShape.cc
index 7d4d48f..a76c905 100644
--- a/gazebo/physics/HeightmapShape.cc
+++ b/gazebo/physics/HeightmapShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/HeightmapShape.hh b/gazebo/physics/HeightmapShape.hh
index e524339..2c797ff 100644
--- a/gazebo/physics/HeightmapShape.hh
+++ b/gazebo/physics/HeightmapShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Hinge2Joint.hh b/gazebo/physics/Hinge2Joint.hh
index 6e67bc1..00d470f 100644
--- a/gazebo/physics/Hinge2Joint.hh
+++ b/gazebo/physics/Hinge2Joint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/HingeJoint.hh b/gazebo/physics/HingeJoint.hh
index 97f7678..dc5c2bd 100644
--- a/gazebo/physics/HingeJoint.hh
+++ b/gazebo/physics/HingeJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Inertial.cc b/gazebo/physics/Inertial.cc
index 1e961ed..fae370b 100644
--- a/gazebo/physics/Inertial.cc
+++ b/gazebo/physics/Inertial.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Inertial.hh b/gazebo/physics/Inertial.hh
index 9702f99..85a588b 100644
--- a/gazebo/physics/Inertial.hh
+++ b/gazebo/physics/Inertial.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Inertial_TEST.cc b/gazebo/physics/Inertial_TEST.cc
index 5937ff9..720b9aa 100644
--- a/gazebo/physics/Inertial_TEST.cc
+++ b/gazebo/physics/Inertial_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Joint.cc b/gazebo/physics/Joint.cc
index f7864df..babf106 100644
--- a/gazebo/physics/Joint.cc
+++ b/gazebo/physics/Joint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Joint.hh b/gazebo/physics/Joint.hh
index 7cf0ecf..2aa4e04 100644
--- a/gazebo/physics/Joint.hh
+++ b/gazebo/physics/Joint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/JointController.cc b/gazebo/physics/JointController.cc
index b61da86..efe6ef9 100644
--- a/gazebo/physics/JointController.cc
+++ b/gazebo/physics/JointController.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/JointController.hh b/gazebo/physics/JointController.hh
index 8acd564..cd116bb 100644
--- a/gazebo/physics/JointController.hh
+++ b/gazebo/physics/JointController.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/JointControllerPrivate.hh b/gazebo/physics/JointControllerPrivate.hh
index a1719d6..c765a4e 100644
--- a/gazebo/physics/JointControllerPrivate.hh
+++ b/gazebo/physics/JointControllerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/JointController_TEST.cc b/gazebo/physics/JointController_TEST.cc
index b70bfe4..77aa888 100644
--- a/gazebo/physics/JointController_TEST.cc
+++ b/gazebo/physics/JointController_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/JointState.cc b/gazebo/physics/JointState.cc
index 56d81c5..731c4e7 100644
--- a/gazebo/physics/JointState.cc
+++ b/gazebo/physics/JointState.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License")
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/JointState.hh b/gazebo/physics/JointState.hh
index 726b008..754cc76 100644
--- a/gazebo/physics/JointState.hh
+++ b/gazebo/physics/JointState.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/JointWrench.hh b/gazebo/physics/JointWrench.hh
index dc79f2b..ec265aa 100644
--- a/gazebo/physics/JointWrench.hh
+++ b/gazebo/physics/JointWrench.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Light.cc b/gazebo/physics/Light.cc
index 5cb74a3..11489cf 100644
--- a/gazebo/physics/Light.cc
+++ b/gazebo/physics/Light.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Light.hh b/gazebo/physics/Light.hh
index 8f6ec5c..2febaf3 100644
--- a/gazebo/physics/Light.hh
+++ b/gazebo/physics/Light.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/LightState.cc b/gazebo/physics/LightState.cc
index 64421a4..4f22c19 100644
--- a/gazebo/physics/LightState.cc
+++ b/gazebo/physics/LightState.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License")
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/LightState.hh b/gazebo/physics/LightState.hh
index bb2e751..49f9d8c 100644
--- a/gazebo/physics/LightState.hh
+++ b/gazebo/physics/LightState.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/LightState_TEST.cc b/gazebo/physics/LightState_TEST.cc
index 1b51198..5297bf7 100644
--- a/gazebo/physics/LightState_TEST.cc
+++ b/gazebo/physics/LightState_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Light_TEST.cc b/gazebo/physics/Light_TEST.cc
index 683a11a..992be23 100644
--- a/gazebo/physics/Light_TEST.cc
+++ b/gazebo/physics/Light_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Link.cc b/gazebo/physics/Link.cc
index 5dde74b..d901432 100644
--- a/gazebo/physics/Link.cc
+++ b/gazebo/physics/Link.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Link.hh b/gazebo/physics/Link.hh
index 1271ac7..e0172ee 100644
--- a/gazebo/physics/Link.hh
+++ b/gazebo/physics/Link.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/LinkState.cc b/gazebo/physics/LinkState.cc
index 9cf2d80..0ad8ec2 100644
--- a/gazebo/physics/LinkState.cc
+++ b/gazebo/physics/LinkState.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License")
  * you may not use this file except in compliance with the License.
@@ -24,6 +24,10 @@
 using namespace gazebo;
 using namespace physics;
 
+// TODO declared here for ABI compatibility
+// move to class member variable when merging forward.
+static bool gRecordVelocity = false;
+
 /////////////////////////////////////////////////
 LinkState::LinkState()
 : State()
@@ -363,3 +367,15 @@ void LinkState::SetIterations(const uint64_t _iterations)
   for (auto &collisionState : this->collisionStates)
     collisionState.SetIterations(_iterations);
 }
+
+/////////////////////////////////////////////////
+void LinkState::SetRecordVelocity(const bool _record)
+{
+  gRecordVelocity = _record;
+}
+
+/////////////////////////////////////////////////
+bool LinkState::RecordVelocity() const
+{
+  return gRecordVelocity;
+}
diff --git a/gazebo/physics/LinkState.hh b/gazebo/physics/LinkState.hh
index 7efb9ac..23e9ba7 100644
--- a/gazebo/physics/LinkState.hh
+++ b/gazebo/physics/LinkState.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 #ifndef _LINKSTATE_HH_
 #define _LINKSTATE_HH_
 
+#include <iostream>
 #include <vector>
 #include <string>
 
@@ -189,28 +190,33 @@ namespace gazebo
                   const gazebo::physics::LinkState &_state)
       {
         math::Vector3 q(_state.pose.rot.GetAsEuler());
-        _out << std::fixed <<std::setprecision(5)
+        _out.unsetf(std::ios_base::floatfield);
+        _out << std::setprecision(4)
           << "<link name='" << _state.name << "'>"
           << "<pose>"
-          << _state.pose.pos.x << " "
-          << _state.pose.pos.y << " "
-          << _state.pose.pos.z << " "
-          << q.x << " "
-          << q.y << " "
-          << q.z << " "
+          << ignition::math::precision(_state.pose.pos.x, 4) << " "
+          << ignition::math::precision(_state.pose.pos.y, 4) << " "
+          << ignition::math::precision(_state.pose.pos.z, 4) << " "
+          << ignition::math::precision(q.x, 4) << " "
+          << ignition::math::precision(q.y, 4) << " "
+          << ignition::math::precision(q.z, 4) << " "
           << "</pose>";
 
-        /// Disabling this for efficiency.
-        q = _state.velocity.rot.GetAsEuler();
-         _out << std::fixed <<std::setprecision(4)
-           << "<velocity>"
-           << _state.velocity.pos.x << " "
-           << _state.velocity.pos.y << " "
-           << _state.velocity.pos.z << " "
-           << q.x << " "
-           << q.y << " "
-           << q.z << " "
-           << "</velocity>";
+        if (_state.RecordVelocity())
+        {
+          /// Disabling this for efficiency.
+          q = _state.velocity.rot.GetAsEuler();
+          _out.unsetf(std::ios_base::floatfield);
+          _out << std::setprecision(4)
+            << "<velocity>"
+            << ignition::math::precision(_state.velocity.pos.x, 4) << " "
+            << ignition::math::precision(_state.velocity.pos.y, 4) << " "
+            << ignition::math::precision(_state.velocity.pos.z, 4) << " "
+            << ignition::math::precision(q.x, 4) << " "
+            << ignition::math::precision(q.y, 4) << " "
+            << ignition::math::precision(q.z, 4) << " "
+            << "</velocity>";
+        }
         // << "<acceleration>" << _state.acceleration << "</acceleration>"
         // << "<wrench>" << _state.wrench << "</wrench>";
 
@@ -227,6 +233,15 @@ namespace gazebo
         return _out;
       }
 
+      /// \brief Set whether to record link velocity
+      /// \param[in] _record True to record link velocity, false to leave it
+      /// out of the log
+      public: void SetRecordVelocity(const bool _record);
+
+      /// \brief Get whether link velocity is recorded
+      /// \return True if link velocity is recorded
+      public: bool RecordVelocity() const;
+
       /// \brief 3D pose of the link relative to the model.
       private: math::Pose pose;
 
diff --git a/gazebo/physics/MapShape.cc b/gazebo/physics/MapShape.cc
index c52b363..f79ba09 100644
--- a/gazebo/physics/MapShape.cc
+++ b/gazebo/physics/MapShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/MapShape.hh b/gazebo/physics/MapShape.hh
index e5d599e..fc3c715 100644
--- a/gazebo/physics/MapShape.hh
+++ b/gazebo/physics/MapShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/MeshShape.cc b/gazebo/physics/MeshShape.cc
index 11cf4bf..f335c0d 100644
--- a/gazebo/physics/MeshShape.cc
+++ b/gazebo/physics/MeshShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/MeshShape.hh b/gazebo/physics/MeshShape.hh
index 5f5fff1..993295e 100644
--- a/gazebo/physics/MeshShape.hh
+++ b/gazebo/physics/MeshShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Model.cc b/gazebo/physics/Model.cc
index 63f9e53..d0c56a2 100644
--- a/gazebo/physics/Model.cc
+++ b/gazebo/physics/Model.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -569,8 +569,7 @@ const sdf::ElementPtr Model::UnscaledSDF()
         }
         else if (geomElem->HasElement("mesh"))
         {
-          geomElem->GetElement("mesh")->GetElement("scale")->Set(
-              ignition::math::Vector3d::One);
+          // Keep mesh scale because meshes can't be scaled yet (issue #1473)
         }
 
         visualElem = visualElem->GetNextElement("visual");
@@ -613,8 +612,7 @@ const sdf::ElementPtr Model::UnscaledSDF()
         }
         else if (geomElem->HasElement("mesh"))
         {
-          geomElem->GetElement("mesh")->GetElement("scale")->Set(
-              ignition::math::Vector3d::One);
+          // Keep mesh scale because meshes can't be scaled yet (issue #1473)
         }
 
         collisionElem = collisionElem->GetNextElement("collision");
@@ -951,6 +949,32 @@ void Model::LoadGripper(sdf::ElementPtr _sdf)
 }
 
 //////////////////////////////////////////////////
+std::vector<std::string> Model::SensorScopedName(
+  const std::string &_name) const
+{
+  std::vector<std::string> names;
+  for (Link_V::const_iterator iter = this->links.begin();
+       iter != this->links.end(); ++iter)
+  {
+    for (unsigned int j = 0; j < (*iter)->GetSensorCount(); ++j)
+    {
+      const auto sensorName = (*iter)->GetSensorName(j);
+      if (sensorName.size() < _name.size())
+      {
+        continue;
+      }
+      if (sensorName.substr(sensorName.size() - _name.size(), _name.size()) ==
+          _name)
+      {
+        names.push_back(sensorName);
+      }
+    }
+  }
+
+  return names;
+}
+
+//////////////////////////////////////////////////
 void Model::LoadPlugins()
 {
   // Check to see if we need to load any model plugins
diff --git a/gazebo/physics/Model.hh b/gazebo/physics/Model.hh
index f773b0f..498ab21 100644
--- a/gazebo/physics/Model.hh
+++ b/gazebo/physics/Model.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -345,6 +345,21 @@ namespace gazebo
       /// \return Number of sensors.
       public: unsigned int GetSensorCount() const;
 
+      /// \brief Get scoped sensor name(s) in the model that matches
+      /// sensor name.
+      ///
+      /// Get the names of sensors in the model where sensor
+      /// name matches the user provided argument.
+      /// \note A Model does not manage or maintain a pointer to a
+      /// sensors::Sensor. Access to a Sensor object
+      /// is accomplished through the sensors::SensorManager. This was done to
+      /// separate the physics engine from the sensor engine.
+      /// \param[in] _name Unscoped sensor name.
+      /// \return The scoped name of the sensor(s),
+      ///         or empty list if not found.
+      public: std::vector<std::string> SensorScopedName(
+        const std::string &_name) const;
+
       /// \brief Get a handle to the Controller for the joints in this model.
       /// \return A handle to the Controller for the joints in this model.
       public: JointControllerPtr GetJointController();
diff --git a/gazebo/physics/ModelState.cc b/gazebo/physics/ModelState.cc
index c62c8a6..9dab655 100644
--- a/gazebo/physics/ModelState.cc
+++ b/gazebo/physics/ModelState.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License")
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ModelState.hh b/gazebo/physics/ModelState.hh
index 079a558..71b7fcb 100644
--- a/gazebo/physics/ModelState.hh
+++ b/gazebo/physics/ModelState.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -244,19 +244,21 @@ namespace gazebo
                   const gazebo::physics::ModelState &_state)
       {
         math::Vector3 q(_state.pose.rot.GetAsEuler());
-        _out << std::fixed <<std::setprecision(3)
+        _out.unsetf(std::ios_base::floatfield);
+        _out << std::setprecision(3)
           << "<model name='" << _state.GetName() << "'>"
           << "<pose>"
-          << _state.pose.pos.x << " "
-          << _state.pose.pos.y << " "
-          << _state.pose.pos.z << " "
-          << q.x << " "
-          << q.y << " "
-          << q.z << " "
-          << "</pose>"
-          << "<scale>"
-          << _state.scale
-          << "</scale>";
+          << ignition::math::precision(_state.pose.pos.x, 4) << " "
+          << ignition::math::precision(_state.pose.pos.y, 4) << " "
+          << ignition::math::precision(_state.pose.pos.z, 4) << " "
+          << ignition::math::precision(q.x, 4) << " "
+          << ignition::math::precision(q.y, 4) << " "
+          << ignition::math::precision(q.z, 4) << " "
+          << "</pose>";
+
+        // Only record scale if it is not the default value of [1, 1, 1].
+        if (_state.scale != ignition::math::Vector3d::One)
+          _out << "<scale>" << _state.scale << "</scale>";
 
         for (LinkState_M::const_iterator iter =
             _state.linkStates.begin(); iter != _state.linkStates.end();
diff --git a/gazebo/physics/ModelState_TEST.cc b/gazebo/physics/ModelState_TEST.cc
index 29878e6..e6236a0 100644
--- a/gazebo/physics/ModelState_TEST.cc
+++ b/gazebo/physics/ModelState_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Model_TEST.cc b/gazebo/physics/Model_TEST.cc
index 2c44929..e39d497 100644
--- a/gazebo/physics/Model_TEST.cc
+++ b/gazebo/physics/Model_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -56,6 +56,32 @@ TEST_F(ModelTest, Scale)
 }
 
 //////////////////////////////////////////////////
+TEST_F(ModelTest, NestedModelSensorScopedName)
+{
+  this->Load("test/worlds/deeply_nested_models.world", true);
+
+  auto world = physics::get_world("default");
+  ASSERT_TRUE(world != nullptr);
+
+  auto model = world->GetModel("model_03");
+  ASSERT_TRUE(model != nullptr);
+
+  gzmsg << "Get a scoped sensor name" << std::endl;
+
+  const std::vector<std::string> imuScopedName =
+      model->SensorScopedName("imu_sensor");
+  ASSERT_EQ(imuScopedName.size(), static_cast<unsigned int>(1));
+  EXPECT_EQ(imuScopedName[0],
+    "default::model_00::model_01::model_02::model_03::imu_link::imu_sensor");
+
+  gzmsg << "Get a nonexistent scoped sensor name" << std::endl;
+
+  const std::vector<std::string> noScopedName =
+      model->SensorScopedName("no_sensor");
+  ASSERT_EQ(noScopedName.size(), static_cast<unsigned int>(0));
+}
+
+//////////////////////////////////////////////////
 int main(int argc, char **argv)
 {
   ::testing::InitGoogleTest(&argc, argv);
diff --git a/gazebo/physics/MultiRayShape.cc b/gazebo/physics/MultiRayShape.cc
index e889cbc..8eade86 100644
--- a/gazebo/physics/MultiRayShape.cc
+++ b/gazebo/physics/MultiRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/MultiRayShape.hh b/gazebo/physics/MultiRayShape.hh
index 92d0fb3..83616c7 100644
--- a/gazebo/physics/MultiRayShape.hh
+++ b/gazebo/physics/MultiRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsEngine.cc b/gazebo/physics/PhysicsEngine.cc
index 0a65ba0..9495ebf 100644
--- a/gazebo/physics/PhysicsEngine.cc
+++ b/gazebo/physics/PhysicsEngine.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsEngine.hh b/gazebo/physics/PhysicsEngine.hh
index 97aa7eb..1e30622 100644
--- a/gazebo/physics/PhysicsEngine.hh
+++ b/gazebo/physics/PhysicsEngine.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsEngine_TEST.cc b/gazebo/physics/PhysicsEngine_TEST.cc
index 0548584..c0a9c63 100644
--- a/gazebo/physics/PhysicsEngine_TEST.cc
+++ b/gazebo/physics/PhysicsEngine_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsFactory.cc b/gazebo/physics/PhysicsFactory.cc
index e121644..6949f1e 100644
--- a/gazebo/physics/PhysicsFactory.cc
+++ b/gazebo/physics/PhysicsFactory.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsFactory.hh b/gazebo/physics/PhysicsFactory.hh
index 9d41082..520a9b7 100644
--- a/gazebo/physics/PhysicsFactory.hh
+++ b/gazebo/physics/PhysicsFactory.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsIface.cc b/gazebo/physics/PhysicsIface.cc
index bdb00e5..f174dcf 100644
--- a/gazebo/physics/PhysicsIface.cc
+++ b/gazebo/physics/PhysicsIface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsIface.hh b/gazebo/physics/PhysicsIface.hh
index 52928de..ceaec45 100644
--- a/gazebo/physics/PhysicsIface.hh
+++ b/gazebo/physics/PhysicsIface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PhysicsTypes.hh b/gazebo/physics/PhysicsTypes.hh
index af9d702..fa6c215 100644
--- a/gazebo/physics/PhysicsTypes.hh
+++ b/gazebo/physics/PhysicsTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PlaneShape.cc b/gazebo/physics/PlaneShape.cc
index 291f6d5..2513e66 100644
--- a/gazebo/physics/PlaneShape.cc
+++ b/gazebo/physics/PlaneShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PlaneShape.hh b/gazebo/physics/PlaneShape.hh
index 3ab8526..53c615c 100644
--- a/gazebo/physics/PlaneShape.hh
+++ b/gazebo/physics/PlaneShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PolylineShape.cc b/gazebo/physics/PolylineShape.cc
index 842ff32..260c146 100644
--- a/gazebo/physics/PolylineShape.cc
+++ b/gazebo/physics/PolylineShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PolylineShape.hh b/gazebo/physics/PolylineShape.hh
index cf16c4c..75ce43c 100644
--- a/gazebo/physics/PolylineShape.hh
+++ b/gazebo/physics/PolylineShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Population.cc b/gazebo/physics/Population.cc
index e754f40..ce5d96b 100644
--- a/gazebo/physics/Population.cc
+++ b/gazebo/physics/Population.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Population.hh b/gazebo/physics/Population.hh
index 0d78263..733865e 100644
--- a/gazebo/physics/Population.hh
+++ b/gazebo/physics/Population.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PopulationPrivate.hh b/gazebo/physics/PopulationPrivate.hh
index e6ee3e0..cb85e02 100644
--- a/gazebo/physics/PopulationPrivate.hh
+++ b/gazebo/physics/PopulationPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PresetManager.cc b/gazebo/physics/PresetManager.cc
index 7e0abf2..5928909 100644
--- a/gazebo/physics/PresetManager.cc
+++ b/gazebo/physics/PresetManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PresetManager.hh b/gazebo/physics/PresetManager.hh
index 3078c48..2fe37d4 100644
--- a/gazebo/physics/PresetManager.hh
+++ b/gazebo/physics/PresetManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PresetManagerPrivate.hh b/gazebo/physics/PresetManagerPrivate.hh
index cad6387..c45812b 100644
--- a/gazebo/physics/PresetManagerPrivate.hh
+++ b/gazebo/physics/PresetManagerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/PresetManager_TEST.cc b/gazebo/physics/PresetManager_TEST.cc
index c7bad3a..41c2c1b 100644
--- a/gazebo/physics/PresetManager_TEST.cc
+++ b/gazebo/physics/PresetManager_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/RayShape.cc b/gazebo/physics/RayShape.cc
index 28a57d8..08a8628 100644
--- a/gazebo/physics/RayShape.cc
+++ b/gazebo/physics/RayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/RayShape.hh b/gazebo/physics/RayShape.hh
index 0440626..da992ae 100644
--- a/gazebo/physics/RayShape.hh
+++ b/gazebo/physics/RayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Road.cc b/gazebo/physics/Road.cc
index d24b3f1..cdac9b6 100644
--- a/gazebo/physics/Road.cc
+++ b/gazebo/physics/Road.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Road.hh b/gazebo/physics/Road.hh
index 78d3c45..33bf40d 100644
--- a/gazebo/physics/Road.hh
+++ b/gazebo/physics/Road.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Road_TEST.cc b/gazebo/physics/Road_TEST.cc
index 946824c..4ebabd0 100644
--- a/gazebo/physics/Road_TEST.cc
+++ b/gazebo/physics/Road_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ScrewJoint.hh b/gazebo/physics/ScrewJoint.hh
index d73cb47..5d8afa0 100644
--- a/gazebo/physics/ScrewJoint.hh
+++ b/gazebo/physics/ScrewJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Shape.cc b/gazebo/physics/Shape.cc
index 5fe8cd2..6d17745 100644
--- a/gazebo/physics/Shape.cc
+++ b/gazebo/physics/Shape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/Shape.hh b/gazebo/physics/Shape.hh
index 7fc4dd7..ab5b38d 100644
--- a/gazebo/physics/Shape.hh
+++ b/gazebo/physics/Shape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/SliderJoint.hh b/gazebo/physics/SliderJoint.hh
index 3264ddb..06913af 100644
--- a/gazebo/physics/SliderJoint.hh
+++ b/gazebo/physics/SliderJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/SphereShape.cc b/gazebo/physics/SphereShape.cc
index bd886e8..5805674 100644
--- a/gazebo/physics/SphereShape.cc
+++ b/gazebo/physics/SphereShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/SphereShape.hh b/gazebo/physics/SphereShape.hh
index 583a0c7..630ac5d 100644
--- a/gazebo/physics/SphereShape.hh
+++ b/gazebo/physics/SphereShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/SphereShape_TEST.cc b/gazebo/physics/SphereShape_TEST.cc
index 570ff3d..558c121 100644
--- a/gazebo/physics/SphereShape_TEST.cc
+++ b/gazebo/physics/SphereShape_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/State.cc b/gazebo/physics/State.cc
index 196888d..8364382 100644
--- a/gazebo/physics/State.cc
+++ b/gazebo/physics/State.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/State.hh b/gazebo/physics/State.hh
index 6689834..8081e68 100644
--- a/gazebo/physics/State.hh
+++ b/gazebo/physics/State.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/SurfaceParams.cc b/gazebo/physics/SurfaceParams.cc
index 95be295..6772242 100644
--- a/gazebo/physics/SurfaceParams.cc
+++ b/gazebo/physics/SurfaceParams.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/SurfaceParams.hh b/gazebo/physics/SurfaceParams.hh
index 55aed1a..7444467 100644
--- a/gazebo/physics/SurfaceParams.hh
+++ b/gazebo/physics/SurfaceParams.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/UniversalJoint.hh b/gazebo/physics/UniversalJoint.hh
index 5a66193..2daa3bd 100644
--- a/gazebo/physics/UniversalJoint.hh
+++ b/gazebo/physics/UniversalJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/UserCmdManager.cc b/gazebo/physics/UserCmdManager.cc
index 9b6d792..0869c08 100644
--- a/gazebo/physics/UserCmdManager.cc
+++ b/gazebo/physics/UserCmdManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/UserCmdManager.hh b/gazebo/physics/UserCmdManager.hh
index f0618c9..f81b266 100644
--- a/gazebo/physics/UserCmdManager.hh
+++ b/gazebo/physics/UserCmdManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/UserCmdManagerPrivate.hh b/gazebo/physics/UserCmdManagerPrivate.hh
index 6b088e6..74b60b8 100644
--- a/gazebo/physics/UserCmdManagerPrivate.hh
+++ b/gazebo/physics/UserCmdManagerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/UserCmdManager_TEST.cc b/gazebo/physics/UserCmdManager_TEST.cc
index 2d3040e..a23f28a 100644
--- a/gazebo/physics/UserCmdManager_TEST.cc
+++ b/gazebo/physics/UserCmdManager_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/World.cc b/gazebo/physics/World.cc
index 5c3a2db..0d3b6c9 100644
--- a/gazebo/physics/World.cc
+++ b/gazebo/physics/World.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -451,6 +451,7 @@ void World::RunLoop()
   // Get the first state
   this->dataPtr->prevStates[0] = WorldState(shared_from_this());
   this->dataPtr->prevStates[1] = WorldState(shared_from_this());
+
   this->dataPtr->stateToggle = 0;
 
   this->dataPtr->logThread =
@@ -2545,36 +2546,70 @@ void World::LogWorker()
 
   while (!this->dataPtr->stop)
   {
-    int currState = (this->dataPtr->stateToggle + 1) % 2;
-
-    this->dataPtr->prevStates[currState].Load(self);
-    WorldState diffState = this->dataPtr->prevStates[currState] -
-      this->dataPtr->prevStates[this->dataPtr->stateToggle];
-    this->dataPtr->logPrevIteration = this->dataPtr->iterations;
+    // get unfiltered world state
+    WorldState unfilteredState;
+    {
+      boost::mutex::scoped_lock dLock(this->dataPtr->entityDeleteMutex);
+      unfilteredState.Load(self);
+    }
 
-    if (!diffState.IsZero())
+    // compute world state diff and find out about insertions and deletions
+    std::vector<std::string> insertions;
+    std::vector<std::string> deletions;
+    bool insertDelete = false;
+    if (this->dataPtr->logLastStateTime != common::Time::Zero)
     {
-      this->dataPtr->stateToggle = currState;
+      WorldState unfilteredDiffState = unfilteredState -
+          this->dataPtr->prevUnfilteredState;
+      if (!unfilteredDiffState.IsZero())
       {
-        // Store the entire current state (instead of the diffState). A slow
-        // moving link may never be captured if only diff state is recorded.
-        boost::mutex::scoped_lock bLock(this->dataPtr->logBufferMutex);
+        insertions = unfilteredDiffState.Insertions();
+        deletions = unfilteredDiffState.Deletions();
+        insertDelete = !insertions.empty() || !deletions.empty();
+      }
+    }
+    this->dataPtr->prevUnfilteredState = unfilteredState;
 
-        auto insertions = diffState.Insertions();
-        this->dataPtr->prevStates[currState].SetInsertions(insertions);
-        auto deletions = diffState.Deletions();
-        this->dataPtr->prevStates[currState].SetDeletions(deletions);
+    // Throttle state capture based on log recording frequency.
+    auto simTime = this->GetSimTime();
+    if ((simTime - this->dataPtr->logLastStateTime >=
+        util::LogRecord::Instance()->Period()) || insertDelete)
+    {
+      int currState = (this->dataPtr->stateToggle + 1) % 2;
 
-        this->dataPtr->states[this->dataPtr->currentStateBuffer].push_back(
-            this->dataPtr->prevStates[currState]);
+      std::string filterStr = util::LogRecord::Instance()->Filter();
+      // compute diff for filtered states
+      {
+        boost::mutex::scoped_lock dLock(this->dataPtr->entityDeleteMutex);
+        this->dataPtr->prevStates[currState].LoadWithFilter(self, filterStr);
+      }
+      WorldState diffState = this->dataPtr->prevStates[currState] -
+          this->dataPtr->prevStates[this->dataPtr->stateToggle];
+      this->dataPtr->logPrevIteration = this->dataPtr->iterations;
 
-        // Tell the logger to update, once the number of states exceeds 1000
-        if (this->dataPtr->states[this->dataPtr->currentStateBuffer].size() >
-            1000)
+      if (!diffState.IsZero() || insertDelete)
+      {
+        this->dataPtr->stateToggle = currState;
         {
-          util::LogRecord::Instance()->Notify();
+          // Store the entire current state (instead of the diffState). A slow
+          // moving link may never be captured if only diff state is recorded.
+          boost::mutex::scoped_lock bLock(this->dataPtr->logBufferMutex);
+
+          this->dataPtr->prevStates[currState].SetInsertions(insertions);
+          this->dataPtr->prevStates[currState].SetDeletions(deletions);
+          this->dataPtr->states[this->dataPtr->currentStateBuffer].push_back(
+              this->dataPtr->prevStates[currState]);
+
+          // Tell the logger to update, once the number of states exceeds 1000
+          if (this->dataPtr->states[this->dataPtr->currentStateBuffer].size() >
+              1000)
+          {
+            util::LogRecord::Instance()->Notify();
+          }
         }
       }
+
+      this->dataPtr->logLastStateTime = simTime;
     }
 
     this->dataPtr->logContinueCondition.notify_all();
diff --git a/gazebo/physics/World.hh b/gazebo/physics/World.hh
index 0cb32fb..053bc60 100644
--- a/gazebo/physics/World.hh
+++ b/gazebo/physics/World.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/WorldPrivate.hh b/gazebo/physics/WorldPrivate.hh
index 34bc5d2..0bb49b6 100644
--- a/gazebo/physics/WorldPrivate.hh
+++ b/gazebo/physics/WorldPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -243,6 +243,10 @@ namespace gazebo
       /// \brief Buffer of prev states
       public: WorldState prevStates[2];
 
+      /// \brief Previous unfiltered state. Used for determining insertions
+      /// and deletions
+      public: WorldState prevUnfilteredState;
+
       /// \brief Int used to toggle between prevStates
       public: int stateToggle;
 
@@ -323,6 +327,9 @@ namespace gazebo
       /// \brief True if sensors have been initialized. This should be set
       /// by the SensorManager.
       public: std::atomic_bool sensorsInitialized;
+
+      /// \brief Simulation time of the last log state captured.
+      public: gazebo::common::Time logLastStateTime;
     };
   }
 }
diff --git a/gazebo/physics/WorldState.cc b/gazebo/physics/WorldState.cc
index c75ada0..7457b1f 100644
--- a/gazebo/physics/WorldState.cc
+++ b/gazebo/physics/WorldState.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@
   // pulled in by anybody (e.g., Boost).
   #include <Winsock2.h>
 #endif
+#include <boost/algorithm/string.hpp>
 
 #include "gazebo/common/Console.hh"
 #include "gazebo/common/Exception.hh"
@@ -34,10 +35,15 @@
 using namespace gazebo;
 using namespace physics;
 
+// TODO added here for ABI compatibility
+// move to class when merging forward
+static std::string worldStateFilter;
+
 /////////////////////////////////////////////////
 WorldState::WorldState()
   : State()
 {
+  worldStateFilter = "";
 }
 
 /////////////////////////////////////////////////
@@ -80,6 +86,14 @@ WorldState::~WorldState()
 }
 
 /////////////////////////////////////////////////
+void WorldState::LoadWithFilter(const WorldPtr _world,
+                                const std::string &_filter)
+{
+  worldStateFilter = _filter;
+  this->Load(_world);
+}
+
+/////////////////////////////////////////////////
 void WorldState::Load(const WorldPtr _world)
 {
   this->world = _world;
@@ -89,13 +103,41 @@ void WorldState::Load(const WorldPtr _world)
   this->realTime = _world->GetRealTime();
   this->iterations = _world->GetIterations();
 
-  // Add a state for all the models
+  std::string filter = worldStateFilter;
+  std::list<std::string> mainParts, parts;
+  boost::split(mainParts, filter, boost::is_any_of("/"));
+
+  // Create the model filter
+  if (!mainParts.empty())
+  {
+    boost::split(parts, mainParts.front(), boost::is_any_of("."));
+    if (parts.empty() && !mainParts.front().empty())
+      parts.push_back(mainParts.front());
+  }
+  std::list<std::string>::iterator partIter = parts.begin();
+
+  // Add a state for all the models that match the filter
   Model_V models = _world->GetModels();
   for (Model_V::const_iterator iter = models.begin();
        iter != models.end(); ++iter)
   {
-    this->modelStates[(*iter)->GetName()].Load(*iter, this->realTime,
-        this->simTime, this->iterations);
+    bool add = true;
+
+    // The first element in the filter must be a model name or a star.
+    if (partIter != parts.end() && !parts.empty() &&
+        !(*partIter).empty() && (*partIter) != "*")
+    {
+      std::string regexStr = *partIter;
+      boost::replace_all(regexStr, "*", ".*");
+      boost::regex regex(regexStr);
+      add = boost::regex_match((*iter)->GetName(), regex);
+    }
+
+    if (add)
+    {
+      this->modelStates[(*iter)->GetName()].Load(*iter, this->realTime,
+          this->simTime, this->iterations);
+    }
   }
 
   // Remove models that no longer exist. We determine this by check the time
@@ -389,12 +431,11 @@ WorldState WorldState::operator-(const WorldState &_state) const
   }
 
   // Add in the new model states
-  for (ModelState_M::const_iterator iter =
-       this->modelStates.begin(); iter != this->modelStates.end(); ++iter)
+  for (const auto &modelState : this->modelStates)
   {
-    if (!_state.HasModelState(iter->second.GetName()) && this->world)
+    if (!_state.HasModelState(modelState.second.GetName()) && this->world)
     {
-      ModelPtr model = this->world->GetModel(iter->second.GetName());
+      ModelPtr model = this->world->GetModel(modelState.second.GetName());
       if (model)
         result.insertions.push_back(model->UnscaledSDF()->ToString(""));
     }
diff --git a/gazebo/physics/WorldState.hh b/gazebo/physics/WorldState.hh
index afb5c89..93ba882 100644
--- a/gazebo/physics/WorldState.hh
+++ b/gazebo/physics/WorldState.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -70,6 +70,14 @@ namespace gazebo
       /// \param[in] _world Pointer to a world
       public: void Load(const WorldPtr _world);
 
+      /// \brief Load from a World pointer.
+      ///
+      /// Generate a WorldState from an instance of a World.
+      /// \param[in] _world Pointer to a world
+      /// \param[in] _filter String for filtering models states
+      public: void LoadWithFilter(const WorldPtr _world,
+          const std::string &_filter);
+
       /// \brief Load state from SDF element.
       ///
       /// Set a WorldState from an SDF element containing WorldState info.
diff --git a/gazebo/physics/WorldState_TEST.cc b/gazebo/physics/WorldState_TEST.cc
index 6e85e9a..d622c18 100644
--- a/gazebo/physics/WorldState_TEST.cc
+++ b/gazebo/physics/WorldState_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -262,6 +262,78 @@ TEST_F(WorldStateTest, OperatorsNoInsertionsDeletions)
 }
 
 //////////////////////////////////////////////////
+TEST_F(WorldStateTest, InsertionOfMeshModel)
+{
+  // Load a world
+  this->Load("worlds/empty.world", true);
+  physics::WorldPtr world = physics::get_world("default");
+
+  // Create a world state
+  physics::WorldState worldState0(world);
+
+  // Insert a model with a scaled mesh
+  msgs::Factory msg;
+  std::ostringstream newModelStr;
+
+  newModelStr << "<sdf version='" << SDF_VERSION << "'>"
+    << "<model name ='test_model'>"
+    << "<pose>2 2 2 0.1 0.1 0.1</pose>"
+    << "<link name ='link'>"
+    << "  <collision name ='collision'>"
+    << "    <geometry>"
+    << "      <mesh>"
+    << "        <uri>" << std::string(PROJECT_SOURCE_PATH)
+                       << "/test/data/box_offset.dae</uri>"
+    << "        <scale>0.2 0.3 0.4</scale>"
+    << "      </mesh>"
+    << "    </geometry>"
+    << "  </collision>"
+    << "  <visual name ='visual'>"
+    << "    <geometry>"
+    << "      <mesh>"
+    << "        <uri>" << std::string(PROJECT_SOURCE_PATH)
+                       << "/test/data/box_offset.dae</uri>"
+    << "        <scale>0.5 0.6 0.7</scale>"
+    << "      </mesh>"
+    << "    </geometry>"
+    << "  </visual>"
+    << "</link>"
+    << "</model>"
+    << "</sdf>";
+
+  msg.set_sdf(newModelStr.str());
+  this->factoryPub->Publish(msg);
+
+  this->WaitUntilEntitySpawn("test_model", 100, 100);
+  ASSERT_TRUE(world->GetModel("test_model") != nullptr);
+
+  // Create a new world state
+  physics::WorldState worldState1(world);
+
+  // Check that the 2nd state has more entities
+  EXPECT_EQ(worldState0.GetModelStateCount(), 1u);
+  EXPECT_EQ(worldState1.GetModelStateCount(), 2u);
+
+  // Difference between states to generate insertion
+  auto worldState2 = worldState1 - worldState0;
+  EXPECT_FALSE(worldState2.IsZero());
+
+  // Check there were no deletions
+  auto deletions = worldState2.Deletions();
+  EXPECT_EQ(deletions.size(), 0u);
+
+  // Check the old entity disappears and the new entity appears as insertion
+  EXPECT_EQ(worldState2.GetModelStateCount(), 0u);
+  auto insertions = worldState2.Insertions();
+  EXPECT_EQ(insertions.size(), 1u);
+
+  // Check that inserted entity's scale wasn't changed
+  auto inserted = insertions[0];
+  EXPECT_TRUE(inserted.find("<scale>0.2 0.3 0.4</scale>") != std::string::npos);
+  EXPECT_TRUE(inserted.find("<scale>0.5 0.6 0.7</scale>") != std::string::npos);
+}
+
+//////////////////////////////////////////////////
 TEST_F(WorldStateTest, Times)
 {
   // Load a world
diff --git a/gazebo/physics/bullet/BulletBallJoint.cc b/gazebo/physics/bullet/BulletBallJoint.cc
index 3b42c39..f8ca492 100644
--- a/gazebo/physics/bullet/BulletBallJoint.cc
+++ b/gazebo/physics/bullet/BulletBallJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletBallJoint.hh b/gazebo/physics/bullet/BulletBallJoint.hh
index 760f3eb..8422180 100644
--- a/gazebo/physics/bullet/BulletBallJoint.hh
+++ b/gazebo/physics/bullet/BulletBallJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletBoxShape.hh b/gazebo/physics/bullet/BulletBoxShape.hh
index 96bec06..c1ea1e9 100644
--- a/gazebo/physics/bullet/BulletBoxShape.hh
+++ b/gazebo/physics/bullet/BulletBoxShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletCollision.cc b/gazebo/physics/bullet/BulletCollision.cc
index 67edaf9..e285710 100644
--- a/gazebo/physics/bullet/BulletCollision.cc
+++ b/gazebo/physics/bullet/BulletCollision.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
  *
 */
 
+#include "gazebo/common/Assert.hh"
+
 #include "gazebo/physics/PlaneShape.hh"
 
 #include "gazebo/physics/bullet/bullet_inc.h"
@@ -32,6 +34,7 @@ BulletCollision::BulletCollision(LinkPtr _parent)
   this->SetName("Bullet_Collision");
   this->collisionShape = NULL;
   this->surface.reset(new BulletSurfaceParams());
+  this->collideBits = GZ_ALL_COLLIDE;
 }
 
 //////////////////////////////////////////////////
@@ -50,8 +53,11 @@ void BulletCollision::Load(sdf::ElementPtr _sdf)
 
   if (this->IsStatic())
   {
-    this->SetCategoryBits(GZ_FIXED_COLLIDE);
-    this->SetCollideBits(~GZ_FIXED_COLLIDE);
+    this->collideBits = ~GZ_FIXED_COLLIDE;
+  }
+  else
+  {
+    this->collideBits = this->GetSurface()->collideBitmask;
   }
 }
 
@@ -68,25 +74,57 @@ void BulletCollision::OnPoseChange()
 //////////////////////////////////////////////////
 void BulletCollision::SetCategoryBits(unsigned int _bits)
 {
+  gzwarn << "SetCategoryBits is not implemented" << std::endl;
+  // Prevent unused variable warning
   this->categoryBits = _bits;
 }
 
 //////////////////////////////////////////////////
 void BulletCollision::SetCollideBits(unsigned int _bits)
 {
-  this->collideBits = _bits;
+  // Collide bits apply to the whole rigid body, so all sibling
+  // collisions on the same link must have identical collide bits
+  auto numChildren = this->link->GetChildCount();
+  for (decltype(numChildren) c = 0; c < numChildren; ++c)
+  {
+    BasePtr child = this->link->GetChild(c);
+    if (child->HasType(COLLISION))
+    {
+      BulletCollision *col = dynamic_cast<BulletCollision *>(&*child);
+      col->GetSurface()->collideBitmask = _bits;
+    }
+  }
+
+  BulletLink *bulletLink = dynamic_cast<BulletLink *>(&*this->parent);
+
+  // Set mask and group because BulletRayShape still uses them, TODO remove
+  btRigidBody *bod = bulletLink->GetBulletLink();
+  if (nullptr != bod)
+  {
+    // Need a rigid body in the world before bits on proxy can be changed
+    btBroadphaseProxy *proxy = bod->getBroadphaseProxy();
+    GZ_ASSERT(nullptr != proxy, "body must be added to world for collide bits");
+    proxy->m_collisionFilterMask = _bits;
+    proxy->m_collisionFilterGroup = _bits;
+
+    // CollideBits are checked in the overlappingFilterCallback which is
+    // only called when objects are added to the world
+    bulletLink->RemoveAndAddBody();
+  }
 }
 
 //////////////////////////////////////////////////
 unsigned int BulletCollision::GetCategoryBits() const
 {
+  gzwarn << "GetCategoryBits is not implemented" << std::endl;
+  // Prevent unused variable warning
   return this->categoryBits;
 }
 
 //////////////////////////////////////////////////
 unsigned int BulletCollision::GetCollideBits() const
 {
-  return this->collideBits;
+  return this->GetSurface()->collideBitmask;
 }
 
 //////////////////////////////////////////////////
@@ -127,7 +165,7 @@ math::Box BulletCollision::GetBoundingBox() const
 void BulletCollision::SetCollisionShape(btCollisionShape *_shape,
     bool _placeable)
 {
-  Collision::SetCollision(_placeable);
+  Collision::SetPlaceable(_placeable);
   this->collisionShape = _shape;
 
   // btmath::Vector3 vec;
diff --git a/gazebo/physics/bullet/BulletCollision.hh b/gazebo/physics/bullet/BulletCollision.hh
index 6c241c3..4524a75 100644
--- a/gazebo/physics/bullet/BulletCollision.hh
+++ b/gazebo/physics/bullet/BulletCollision.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletCylinderShape.hh b/gazebo/physics/bullet/BulletCylinderShape.hh
index c45990f..8fa92d4 100644
--- a/gazebo/physics/bullet/BulletCylinderShape.hh
+++ b/gazebo/physics/bullet/BulletCylinderShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletFixedJoint.cc b/gazebo/physics/bullet/BulletFixedJoint.cc
index 6fd1187..d45c97d 100644
--- a/gazebo/physics/bullet/BulletFixedJoint.cc
+++ b/gazebo/physics/bullet/BulletFixedJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletFixedJoint.hh b/gazebo/physics/bullet/BulletFixedJoint.hh
index 007dae8..376a867 100644
--- a/gazebo/physics/bullet/BulletFixedJoint.hh
+++ b/gazebo/physics/bullet/BulletFixedJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletHeightmapShape.cc b/gazebo/physics/bullet/BulletHeightmapShape.cc
index d23baa7..9f0d47f 100644
--- a/gazebo/physics/bullet/BulletHeightmapShape.cc
+++ b/gazebo/physics/bullet/BulletHeightmapShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletHeightmapShape.hh b/gazebo/physics/bullet/BulletHeightmapShape.hh
index 49b1edf..698c185 100644
--- a/gazebo/physics/bullet/BulletHeightmapShape.hh
+++ b/gazebo/physics/bullet/BulletHeightmapShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletHinge2Joint.cc b/gazebo/physics/bullet/BulletHinge2Joint.cc
index 51e1d28..8a8791f 100644
--- a/gazebo/physics/bullet/BulletHinge2Joint.cc
+++ b/gazebo/physics/bullet/BulletHinge2Joint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletHinge2Joint.hh b/gazebo/physics/bullet/BulletHinge2Joint.hh
index 6f5d5e6..cad2ebc 100644
--- a/gazebo/physics/bullet/BulletHinge2Joint.hh
+++ b/gazebo/physics/bullet/BulletHinge2Joint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletHingeJoint.cc b/gazebo/physics/bullet/BulletHingeJoint.cc
index 15d8aa3..01b21e2 100644
--- a/gazebo/physics/bullet/BulletHingeJoint.cc
+++ b/gazebo/physics/bullet/BulletHingeJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletHingeJoint.hh b/gazebo/physics/bullet/BulletHingeJoint.hh
index a2a00c6..2b51436 100644
--- a/gazebo/physics/bullet/BulletHingeJoint.hh
+++ b/gazebo/physics/bullet/BulletHingeJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletJoint.cc b/gazebo/physics/bullet/BulletJoint.cc
index 0c3ff06..71cacd3 100644
--- a/gazebo/physics/bullet/BulletJoint.cc
+++ b/gazebo/physics/bullet/BulletJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletJoint.hh b/gazebo/physics/bullet/BulletJoint.hh
index 1de01a6..0a03bbe 100644
--- a/gazebo/physics/bullet/BulletJoint.hh
+++ b/gazebo/physics/bullet/BulletJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletLink.cc b/gazebo/physics/bullet/BulletLink.cc
index fdc32e4..6d0a758 100644
--- a/gazebo/physics/bullet/BulletLink.cc
+++ b/gazebo/physics/bullet/BulletLink.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -176,7 +176,6 @@ void BulletLink::Init()
   // bullet supports setting bits to a rigid body but not individual
   // shapes/collisions so find the first child collision and set rigid body to
   // use its category and collision bits.
-  unsigned int categortyBits = GZ_ALL_COLLIDE;
   unsigned int collideBits = GZ_ALL_COLLIDE;
   BulletCollisionPtr collision;
   for (Base_V::iterator iter = this->children.begin();
@@ -185,12 +184,11 @@ void BulletLink::Init()
     if ((*iter)->HasType(Base::COLLISION))
     {
       collision = boost::static_pointer_cast<BulletCollision>(*iter);
-      categortyBits = collision->GetCategoryBits();
       collideBits = collision->GetCollideBits();
       break;
     }
   }
-  bulletWorld->addRigidBody(this->rigidLink, categortyBits, collideBits);
+  bulletWorld->addRigidBody(this->rigidLink, collideBits, collideBits);
 
   // Only use auto disable if no joints and no sensors are present
   this->rigidLink->setActivationState(DISABLE_DEACTIVATION);
@@ -512,6 +510,29 @@ btRigidBody *BulletLink::GetBulletLink() const
   return this->rigidLink;
 }
 
+
+//////////////////////////////////////////////////
+void BulletLink::RemoveAndAddBody() const
+{
+  GZ_ASSERT(nullptr != this->rigidLink, "Must add body to world first");
+
+  btDynamicsWorld *bulletWorld = this->bulletPhysics->GetDynamicsWorld();
+  bulletWorld->removeRigidBody(this->rigidLink);
+
+  unsigned int collideBits = GZ_ALL_COLLIDE;
+  for (auto iter = this->children.begin(); iter != this->children.end(); ++iter)
+  {
+    if ((*iter)->HasType(Base::COLLISION))
+    {
+      auto collision = boost::static_pointer_cast<BulletCollision>(*iter);
+      collideBits = collision->GetCollideBits();
+      break;
+    }
+  }
+
+  bulletWorld->addRigidBody(this->rigidLink, collideBits, collideBits);
+}
+
 //////////////////////////////////////////////////
 void BulletLink::ClearCollisionCache()
 {
diff --git a/gazebo/physics/bullet/BulletLink.hh b/gazebo/physics/bullet/BulletLink.hh
index 4cde6f7..cdd1684 100644
--- a/gazebo/physics/bullet/BulletLink.hh
+++ b/gazebo/physics/bullet/BulletLink.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -111,6 +111,9 @@ namespace gazebo
       /// \return Pointer to bullet rigid body object.
       public: btRigidBody *GetBulletLink() const;
 
+      /// \brief Remove and re-add this rigid body from the world.
+      public: void RemoveAndAddBody() const;
+
       /// \internal
       /// \brief Clear bullet collision cache needed when the body is resized.
       public: void ClearCollisionCache();
diff --git a/gazebo/physics/bullet/BulletMesh.cc b/gazebo/physics/bullet/BulletMesh.cc
index a613ec9..1a783c7 100644
--- a/gazebo/physics/bullet/BulletMesh.cc
+++ b/gazebo/physics/bullet/BulletMesh.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletMesh.hh b/gazebo/physics/bullet/BulletMesh.hh
index d6e646e..11671a1 100644
--- a/gazebo/physics/bullet/BulletMesh.hh
+++ b/gazebo/physics/bullet/BulletMesh.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletMeshShape.cc b/gazebo/physics/bullet/BulletMeshShape.cc
index 54ab90a..423ab2c 100644
--- a/gazebo/physics/bullet/BulletMeshShape.cc
+++ b/gazebo/physics/bullet/BulletMeshShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletMeshShape.hh b/gazebo/physics/bullet/BulletMeshShape.hh
index b271782..db4dcb1 100644
--- a/gazebo/physics/bullet/BulletMeshShape.hh
+++ b/gazebo/physics/bullet/BulletMeshShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletMotionState.cc b/gazebo/physics/bullet/BulletMotionState.cc
index 4c1ff04..b875a87 100644
--- a/gazebo/physics/bullet/BulletMotionState.cc
+++ b/gazebo/physics/bullet/BulletMotionState.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletMotionState.hh b/gazebo/physics/bullet/BulletMotionState.hh
index 4c5713a..deca58b 100644
--- a/gazebo/physics/bullet/BulletMotionState.hh
+++ b/gazebo/physics/bullet/BulletMotionState.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletMultiRayShape.cc b/gazebo/physics/bullet/BulletMultiRayShape.cc
index 127cbf0..0ec62f9 100644
--- a/gazebo/physics/bullet/BulletMultiRayShape.cc
+++ b/gazebo/physics/bullet/BulletMultiRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletMultiRayShape.hh b/gazebo/physics/bullet/BulletMultiRayShape.hh
index 2772f25..b0ec56a 100644
--- a/gazebo/physics/bullet/BulletMultiRayShape.hh
+++ b/gazebo/physics/bullet/BulletMultiRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletPhysics.cc b/gazebo/physics/bullet/BulletPhysics.cc
index d5430a2..5c5fe13 100644
--- a/gazebo/physics/bullet/BulletPhysics.cc
+++ b/gazebo/physics/bullet/BulletPhysics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -79,6 +79,7 @@ struct CollisionFilter : public btOverlapFilterCallback
       GZ_ASSERT(_proxy0 != NULL && _proxy1 != NULL,
           "Bullet broadphase overlapping pair proxies are NULL");
 
+      // BulletRayShape uses these, TODO remove in favor of collideBits
       bool collide = (_proxy0->m_collisionFilterGroup
           & _proxy1->m_collisionFilterMask) != 0;
       collide = collide && (_proxy1->m_collisionFilterGroup
@@ -102,6 +103,21 @@ struct CollisionFilter : public btOverlapFilterCallback
           rb1->getUserPointer());
       GZ_ASSERT(link1 != NULL, "Link1 in collision pair is NULL");
 
+      const Collision_V &cols0 = link0->GetCollisions();
+      const Collision_V &cols1 = link1->GetCollisions();
+
+      if (cols0.size() == 0 || cols1.size() == 0)
+      {
+        // no collision on the link? It can't collide
+        return false;
+      }
+
+      // use first collision, BulletLink expects all to have same bits
+      SurfaceParamsPtr surf0 = cols0[0]->GetSurface();
+      SurfaceParamsPtr surf1 = cols1[0]->GetSurface();
+
+      collide = surf0->collideBitmask & surf1->collideBitmask;
+
       if (!link0->GetSelfCollide() || !link1->GetSelfCollide())
       {
         if (link0->GetModel() == link1->GetModel())
diff --git a/gazebo/physics/bullet/BulletPhysics.hh b/gazebo/physics/bullet/BulletPhysics.hh
index 965e9ac..5b9d23e 100644
--- a/gazebo/physics/bullet/BulletPhysics.hh
+++ b/gazebo/physics/bullet/BulletPhysics.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletPhysics_TEST.cc b/gazebo/physics/bullet/BulletPhysics_TEST.cc
index 8614bb4..55dd8db 100644
--- a/gazebo/physics/bullet/BulletPhysics_TEST.cc
+++ b/gazebo/physics/bullet/BulletPhysics_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletPlaneShape.hh b/gazebo/physics/bullet/BulletPlaneShape.hh
index 7b57773..ab73576 100644
--- a/gazebo/physics/bullet/BulletPlaneShape.hh
+++ b/gazebo/physics/bullet/BulletPlaneShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletPolylineShape.cc b/gazebo/physics/bullet/BulletPolylineShape.cc
index c5d86ba..0630d3c 100644
--- a/gazebo/physics/bullet/BulletPolylineShape.cc
+++ b/gazebo/physics/bullet/BulletPolylineShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletPolylineShape.hh b/gazebo/physics/bullet/BulletPolylineShape.hh
index 78badb7..eb0117b 100644
--- a/gazebo/physics/bullet/BulletPolylineShape.hh
+++ b/gazebo/physics/bullet/BulletPolylineShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletRayShape.cc b/gazebo/physics/bullet/BulletRayShape.cc
index d0ae6b0..d0a6824 100644
--- a/gazebo/physics/bullet/BulletRayShape.cc
+++ b/gazebo/physics/bullet/BulletRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletRayShape.hh b/gazebo/physics/bullet/BulletRayShape.hh
index da509a1..090df31 100644
--- a/gazebo/physics/bullet/BulletRayShape.hh
+++ b/gazebo/physics/bullet/BulletRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletScrewJoint.cc b/gazebo/physics/bullet/BulletScrewJoint.cc
index ae97d0a..2db8c96 100644
--- a/gazebo/physics/bullet/BulletScrewJoint.cc
+++ b/gazebo/physics/bullet/BulletScrewJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletScrewJoint.hh b/gazebo/physics/bullet/BulletScrewJoint.hh
index 9d7f169..989fd62 100644
--- a/gazebo/physics/bullet/BulletScrewJoint.hh
+++ b/gazebo/physics/bullet/BulletScrewJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletSliderJoint.cc b/gazebo/physics/bullet/BulletSliderJoint.cc
index aee155c..50d1102 100644
--- a/gazebo/physics/bullet/BulletSliderJoint.cc
+++ b/gazebo/physics/bullet/BulletSliderJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletSliderJoint.hh b/gazebo/physics/bullet/BulletSliderJoint.hh
index 2a422bc..93ec6b9 100644
--- a/gazebo/physics/bullet/BulletSliderJoint.hh
+++ b/gazebo/physics/bullet/BulletSliderJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletSphereShape.hh b/gazebo/physics/bullet/BulletSphereShape.hh
index d3a9f1b..f5b5c20 100644
--- a/gazebo/physics/bullet/BulletSphereShape.hh
+++ b/gazebo/physics/bullet/BulletSphereShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletSurfaceParams.cc b/gazebo/physics/bullet/BulletSurfaceParams.cc
index dfa5f7b..88b1ea7 100644
--- a/gazebo/physics/bullet/BulletSurfaceParams.cc
+++ b/gazebo/physics/bullet/BulletSurfaceParams.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletSurfaceParams.hh b/gazebo/physics/bullet/BulletSurfaceParams.hh
index bb437b1..58b8415 100644
--- a/gazebo/physics/bullet/BulletSurfaceParams.hh
+++ b/gazebo/physics/bullet/BulletSurfaceParams.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletTypes.hh b/gazebo/physics/bullet/BulletTypes.hh
index 716bb0b..d748086 100644
--- a/gazebo/physics/bullet/BulletTypes.hh
+++ b/gazebo/physics/bullet/BulletTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletTypes_TEST.cc b/gazebo/physics/bullet/BulletTypes_TEST.cc
index 9514a4b..63a23c3 100644
--- a/gazebo/physics/bullet/BulletTypes_TEST.cc
+++ b/gazebo/physics/bullet/BulletTypes_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletUniversalJoint.cc b/gazebo/physics/bullet/BulletUniversalJoint.cc
index 3fe603d..f2e7aef 100644
--- a/gazebo/physics/bullet/BulletUniversalJoint.cc
+++ b/gazebo/physics/bullet/BulletUniversalJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/BulletUniversalJoint.hh b/gazebo/physics/bullet/BulletUniversalJoint.hh
index 7cfb418..abf534a 100644
--- a/gazebo/physics/bullet/BulletUniversalJoint.hh
+++ b/gazebo/physics/bullet/BulletUniversalJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/bullet_inc.h b/gazebo/physics/bullet/bullet_inc.h
index 22e5cef..46ea531 100644
--- a/gazebo/physics/bullet/bullet_inc.h
+++ b/gazebo/physics/bullet/bullet_inc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/bullet_math_inc.h b/gazebo/physics/bullet/bullet_math_inc.h
index 7bede61..45d5cb6 100644
--- a/gazebo/physics/bullet/bullet_math_inc.h
+++ b/gazebo/physics/bullet/bullet_math_inc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/gzBtUniversalConstraint.cc b/gazebo/physics/bullet/gzBtUniversalConstraint.cc
index 1a7743d..b230b26 100644
--- a/gazebo/physics/bullet/gzBtUniversalConstraint.cc
+++ b/gazebo/physics/bullet/gzBtUniversalConstraint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/bullet/gzBtUniversalConstraint.hh b/gazebo/physics/bullet/gzBtUniversalConstraint.hh
index 66e9d7a..f7a36e4 100644
--- a/gazebo/physics/bullet/gzBtUniversalConstraint.hh
+++ b/gazebo/physics/bullet/gzBtUniversalConstraint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTBallJoint.cc b/gazebo/physics/dart/DARTBallJoint.cc
index 1094696..fb385ad 100644
--- a/gazebo/physics/dart/DARTBallJoint.cc
+++ b/gazebo/physics/dart/DARTBallJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTBallJoint.hh b/gazebo/physics/dart/DARTBallJoint.hh
index 089691a..f33c5a2 100644
--- a/gazebo/physics/dart/DARTBallJoint.hh
+++ b/gazebo/physics/dart/DARTBallJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTBoxShape.cc b/gazebo/physics/dart/DARTBoxShape.cc
index ef1e425..3ec624b 100644
--- a/gazebo/physics/dart/DARTBoxShape.cc
+++ b/gazebo/physics/dart/DARTBoxShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTBoxShape.hh b/gazebo/physics/dart/DARTBoxShape.hh
index e1fb792..2224604 100644
--- a/gazebo/physics/dart/DARTBoxShape.hh
+++ b/gazebo/physics/dart/DARTBoxShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTBoxShapePrivate.hh b/gazebo/physics/dart/DARTBoxShapePrivate.hh
index fc88ca1..052687a 100644
--- a/gazebo/physics/dart/DARTBoxShapePrivate.hh
+++ b/gazebo/physics/dart/DARTBoxShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTCollision.cc b/gazebo/physics/dart/DARTCollision.cc
index a3c55cc..d2edd5d 100644
--- a/gazebo/physics/dart/DARTCollision.cc
+++ b/gazebo/physics/dart/DARTCollision.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTCollision.hh b/gazebo/physics/dart/DARTCollision.hh
index cc4a637..391d9ad 100644
--- a/gazebo/physics/dart/DARTCollision.hh
+++ b/gazebo/physics/dart/DARTCollision.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTCollisionPrivate.hh b/gazebo/physics/dart/DARTCollisionPrivate.hh
index 9a3fee6..7f3f609 100644
--- a/gazebo/physics/dart/DARTCollisionPrivate.hh
+++ b/gazebo/physics/dart/DARTCollisionPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTCylinderShape.cc b/gazebo/physics/dart/DARTCylinderShape.cc
index 9d93e7e..360bde2 100644
--- a/gazebo/physics/dart/DARTCylinderShape.cc
+++ b/gazebo/physics/dart/DARTCylinderShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTCylinderShape.hh b/gazebo/physics/dart/DARTCylinderShape.hh
index b0dc8da..5f70db6 100644
--- a/gazebo/physics/dart/DARTCylinderShape.hh
+++ b/gazebo/physics/dart/DARTCylinderShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTCylinderShapePrivate.hh b/gazebo/physics/dart/DARTCylinderShapePrivate.hh
index 0954d91..a579c64 100644
--- a/gazebo/physics/dart/DARTCylinderShapePrivate.hh
+++ b/gazebo/physics/dart/DARTCylinderShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTFixedJoint.cc b/gazebo/physics/dart/DARTFixedJoint.cc
index e9e2150..8b31922 100644
--- a/gazebo/physics/dart/DARTFixedJoint.cc
+++ b/gazebo/physics/dart/DARTFixedJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTFixedJoint.hh b/gazebo/physics/dart/DARTFixedJoint.hh
index 483a8b1..9a11634 100644
--- a/gazebo/physics/dart/DARTFixedJoint.hh
+++ b/gazebo/physics/dart/DARTFixedJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTHeightmapShape.cc b/gazebo/physics/dart/DARTHeightmapShape.cc
index 15146f4..1f38619 100644
--- a/gazebo/physics/dart/DARTHeightmapShape.cc
+++ b/gazebo/physics/dart/DARTHeightmapShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTHeightmapShape.hh b/gazebo/physics/dart/DARTHeightmapShape.hh
index 6496c3d..6abf952 100644
--- a/gazebo/physics/dart/DARTHeightmapShape.hh
+++ b/gazebo/physics/dart/DARTHeightmapShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTHeightmapShapePrivate.hh b/gazebo/physics/dart/DARTHeightmapShapePrivate.hh
index bca6fe3..c74fd91 100644
--- a/gazebo/physics/dart/DARTHeightmapShapePrivate.hh
+++ b/gazebo/physics/dart/DARTHeightmapShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTHinge2Joint.cc b/gazebo/physics/dart/DARTHinge2Joint.cc
index 04ce65b..f8c5c9c 100644
--- a/gazebo/physics/dart/DARTHinge2Joint.cc
+++ b/gazebo/physics/dart/DARTHinge2Joint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTHinge2Joint.hh b/gazebo/physics/dart/DARTHinge2Joint.hh
index 27bc6ae..db3760c 100644
--- a/gazebo/physics/dart/DARTHinge2Joint.hh
+++ b/gazebo/physics/dart/DARTHinge2Joint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTHingeJoint.cc b/gazebo/physics/dart/DARTHingeJoint.cc
index 3d35edf..d533ba1 100644
--- a/gazebo/physics/dart/DARTHingeJoint.cc
+++ b/gazebo/physics/dart/DARTHingeJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTHingeJoint.hh b/gazebo/physics/dart/DARTHingeJoint.hh
index 538aff0..2c126a7 100644
--- a/gazebo/physics/dart/DARTHingeJoint.hh
+++ b/gazebo/physics/dart/DARTHingeJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTJoint.cc b/gazebo/physics/dart/DARTJoint.cc
index 3d4184c..0c5bb81 100644
--- a/gazebo/physics/dart/DARTJoint.cc
+++ b/gazebo/physics/dart/DARTJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTJoint.hh b/gazebo/physics/dart/DARTJoint.hh
index 027b161..7742729 100644
--- a/gazebo/physics/dart/DARTJoint.hh
+++ b/gazebo/physics/dart/DARTJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTJointPrivate.hh b/gazebo/physics/dart/DARTJointPrivate.hh
index 886a827..b64536f 100644
--- a/gazebo/physics/dart/DARTJointPrivate.hh
+++ b/gazebo/physics/dart/DARTJointPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTLink.cc b/gazebo/physics/dart/DARTLink.cc
index 2817740..650162e 100644
--- a/gazebo/physics/dart/DARTLink.cc
+++ b/gazebo/physics/dart/DARTLink.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTLink.hh b/gazebo/physics/dart/DARTLink.hh
index 28e80ad..c2d1804 100644
--- a/gazebo/physics/dart/DARTLink.hh
+++ b/gazebo/physics/dart/DARTLink.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTLinkPrivate.hh b/gazebo/physics/dart/DARTLinkPrivate.hh
index 7ab242e..70cb41e 100644
--- a/gazebo/physics/dart/DARTLinkPrivate.hh
+++ b/gazebo/physics/dart/DARTLinkPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMesh.cc b/gazebo/physics/dart/DARTMesh.cc
index 532571c..3b10b0c 100644
--- a/gazebo/physics/dart/DARTMesh.cc
+++ b/gazebo/physics/dart/DARTMesh.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMesh.hh b/gazebo/physics/dart/DARTMesh.hh
index feb3fdf..b42e34d 100644
--- a/gazebo/physics/dart/DARTMesh.hh
+++ b/gazebo/physics/dart/DARTMesh.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMeshPrivate.hh b/gazebo/physics/dart/DARTMeshPrivate.hh
index 023de36..c9495ab 100644
--- a/gazebo/physics/dart/DARTMeshPrivate.hh
+++ b/gazebo/physics/dart/DARTMeshPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMeshShape.cc b/gazebo/physics/dart/DARTMeshShape.cc
index b59dbeb..6788dc8 100644
--- a/gazebo/physics/dart/DARTMeshShape.cc
+++ b/gazebo/physics/dart/DARTMeshShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMeshShape.hh b/gazebo/physics/dart/DARTMeshShape.hh
index bcb9720..ac82603 100644
--- a/gazebo/physics/dart/DARTMeshShape.hh
+++ b/gazebo/physics/dart/DARTMeshShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMeshShapePrivate.hh b/gazebo/physics/dart/DARTMeshShapePrivate.hh
index e4463a1..832c29f 100644
--- a/gazebo/physics/dart/DARTMeshShapePrivate.hh
+++ b/gazebo/physics/dart/DARTMeshShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTModel.cc b/gazebo/physics/dart/DARTModel.cc
index df146ce..655a87f 100644
--- a/gazebo/physics/dart/DARTModel.cc
+++ b/gazebo/physics/dart/DARTModel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTModel.hh b/gazebo/physics/dart/DARTModel.hh
index 726635d..3b60318 100644
--- a/gazebo/physics/dart/DARTModel.hh
+++ b/gazebo/physics/dart/DARTModel.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTModelPrivate.hh b/gazebo/physics/dart/DARTModelPrivate.hh
index f1529f9..876301a 100644
--- a/gazebo/physics/dart/DARTModelPrivate.hh
+++ b/gazebo/physics/dart/DARTModelPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMultiRayShape.cc b/gazebo/physics/dart/DARTMultiRayShape.cc
index 7e13c4f..ee67b5c 100644
--- a/gazebo/physics/dart/DARTMultiRayShape.cc
+++ b/gazebo/physics/dart/DARTMultiRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMultiRayShape.hh b/gazebo/physics/dart/DARTMultiRayShape.hh
index a92513d..54ab461 100644
--- a/gazebo/physics/dart/DARTMultiRayShape.hh
+++ b/gazebo/physics/dart/DARTMultiRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTMultiRayShapePrivate.hh b/gazebo/physics/dart/DARTMultiRayShapePrivate.hh
index 3f2a3ea..0a5945b 100644
--- a/gazebo/physics/dart/DARTMultiRayShapePrivate.hh
+++ b/gazebo/physics/dart/DARTMultiRayShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPhysics.cc b/gazebo/physics/dart/DARTPhysics.cc
index 16ec3c1..a2c64eb 100644
--- a/gazebo/physics/dart/DARTPhysics.cc
+++ b/gazebo/physics/dart/DARTPhysics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPhysics.hh b/gazebo/physics/dart/DARTPhysics.hh
index e440f74..79c3a7f 100644
--- a/gazebo/physics/dart/DARTPhysics.hh
+++ b/gazebo/physics/dart/DARTPhysics.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPhysicsPrivate.hh b/gazebo/physics/dart/DARTPhysicsPrivate.hh
index 1a4dba7..40ba2ff 100644
--- a/gazebo/physics/dart/DARTPhysicsPrivate.hh
+++ b/gazebo/physics/dart/DARTPhysicsPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPlaneShape.cc b/gazebo/physics/dart/DARTPlaneShape.cc
index b36eae9..07133ef 100644
--- a/gazebo/physics/dart/DARTPlaneShape.cc
+++ b/gazebo/physics/dart/DARTPlaneShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPlaneShape.hh b/gazebo/physics/dart/DARTPlaneShape.hh
index 5a10b7b..cba3428 100644
--- a/gazebo/physics/dart/DARTPlaneShape.hh
+++ b/gazebo/physics/dart/DARTPlaneShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPlaneShapePrivate.hh b/gazebo/physics/dart/DARTPlaneShapePrivate.hh
index fcc04f4..7c80e21 100644
--- a/gazebo/physics/dart/DARTPlaneShapePrivate.hh
+++ b/gazebo/physics/dart/DARTPlaneShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPolylineShape.cc b/gazebo/physics/dart/DARTPolylineShape.cc
index 36f291a..309c006 100644
--- a/gazebo/physics/dart/DARTPolylineShape.cc
+++ b/gazebo/physics/dart/DARTPolylineShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPolylineShape.hh b/gazebo/physics/dart/DARTPolylineShape.hh
index a50e76c..39ecf53 100644
--- a/gazebo/physics/dart/DARTPolylineShape.hh
+++ b/gazebo/physics/dart/DARTPolylineShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTPolylineShapePrivate.hh b/gazebo/physics/dart/DARTPolylineShapePrivate.hh
index 8c141f5..b7f7b39 100644
--- a/gazebo/physics/dart/DARTPolylineShapePrivate.hh
+++ b/gazebo/physics/dart/DARTPolylineShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTRayShape.cc b/gazebo/physics/dart/DARTRayShape.cc
index ee222c4..325f9bb 100644
--- a/gazebo/physics/dart/DARTRayShape.cc
+++ b/gazebo/physics/dart/DARTRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTRayShape.hh b/gazebo/physics/dart/DARTRayShape.hh
index 2c106b6..8896a9d 100644
--- a/gazebo/physics/dart/DARTRayShape.hh
+++ b/gazebo/physics/dart/DARTRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTRayShapePrivate.hh b/gazebo/physics/dart/DARTRayShapePrivate.hh
index f499a6e..743be9e 100644
--- a/gazebo/physics/dart/DARTRayShapePrivate.hh
+++ b/gazebo/physics/dart/DARTRayShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTScrewJoint.cc b/gazebo/physics/dart/DARTScrewJoint.cc
index 78b5c32..ff01bb8 100644
--- a/gazebo/physics/dart/DARTScrewJoint.cc
+++ b/gazebo/physics/dart/DARTScrewJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTScrewJoint.hh b/gazebo/physics/dart/DARTScrewJoint.hh
index c1eea49..1cfe070 100644
--- a/gazebo/physics/dart/DARTScrewJoint.hh
+++ b/gazebo/physics/dart/DARTScrewJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSliderJoint.cc b/gazebo/physics/dart/DARTSliderJoint.cc
index 2752e5b..a3b0c7e 100644
--- a/gazebo/physics/dart/DARTSliderJoint.cc
+++ b/gazebo/physics/dart/DARTSliderJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSliderJoint.hh b/gazebo/physics/dart/DARTSliderJoint.hh
index 7c30e96..fe57455 100644
--- a/gazebo/physics/dart/DARTSliderJoint.hh
+++ b/gazebo/physics/dart/DARTSliderJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSphereShape.cc b/gazebo/physics/dart/DARTSphereShape.cc
index 2ef8fa0..449e533 100644
--- a/gazebo/physics/dart/DARTSphereShape.cc
+++ b/gazebo/physics/dart/DARTSphereShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSphereShape.hh b/gazebo/physics/dart/DARTSphereShape.hh
index 4e97bef..e95a9dd 100644
--- a/gazebo/physics/dart/DARTSphereShape.hh
+++ b/gazebo/physics/dart/DARTSphereShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSphereShapePrivate.hh b/gazebo/physics/dart/DARTSphereShapePrivate.hh
index 738eee9..425561f 100644
--- a/gazebo/physics/dart/DARTSphereShapePrivate.hh
+++ b/gazebo/physics/dart/DARTSphereShapePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSurfaceParams.cc b/gazebo/physics/dart/DARTSurfaceParams.cc
index 2517914..c052500 100644
--- a/gazebo/physics/dart/DARTSurfaceParams.cc
+++ b/gazebo/physics/dart/DARTSurfaceParams.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSurfaceParams.hh b/gazebo/physics/dart/DARTSurfaceParams.hh
index 4edf880..77d8211 100644
--- a/gazebo/physics/dart/DARTSurfaceParams.hh
+++ b/gazebo/physics/dart/DARTSurfaceParams.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTSurfaceParamsPrivate.hh b/gazebo/physics/dart/DARTSurfaceParamsPrivate.hh
index 6f9d74f..312b5cd 100644
--- a/gazebo/physics/dart/DARTSurfaceParamsPrivate.hh
+++ b/gazebo/physics/dart/DARTSurfaceParamsPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTTypes.hh b/gazebo/physics/dart/DARTTypes.hh
index f122533..f07535b 100644
--- a/gazebo/physics/dart/DARTTypes.hh
+++ b/gazebo/physics/dart/DARTTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTUniversalJoint.cc b/gazebo/physics/dart/DARTUniversalJoint.cc
index 35cf110..bf457e2 100644
--- a/gazebo/physics/dart/DARTUniversalJoint.cc
+++ b/gazebo/physics/dart/DARTUniversalJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/DARTUniversalJoint.hh b/gazebo/physics/dart/DARTUniversalJoint.hh
index d96cde7..4a5eba1 100644
--- a/gazebo/physics/dart/DARTUniversalJoint.hh
+++ b/gazebo/physics/dart/DARTUniversalJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/dart/dart_inc.h b/gazebo/physics/dart/dart_inc.h
index eb8c664..7b17a08 100644
--- a/gazebo/physics/dart/dart_inc.h
+++ b/gazebo/physics/dart/dart_inc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEBallJoint.cc b/gazebo/physics/ode/ODEBallJoint.cc
index b2f9a4d..c755e1c 100644
--- a/gazebo/physics/ode/ODEBallJoint.cc
+++ b/gazebo/physics/ode/ODEBallJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEBallJoint.hh b/gazebo/physics/ode/ODEBallJoint.hh
index 157f558..c337bc0 100644
--- a/gazebo/physics/ode/ODEBallJoint.hh
+++ b/gazebo/physics/ode/ODEBallJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEBoxShape.hh b/gazebo/physics/ode/ODEBoxShape.hh
index bc595ab..9d5f41b 100644
--- a/gazebo/physics/ode/ODEBoxShape.hh
+++ b/gazebo/physics/ode/ODEBoxShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODECollision.cc b/gazebo/physics/ode/ODECollision.cc
index 6a5abcb..751af25 100644
--- a/gazebo/physics/ode/ODECollision.cc
+++ b/gazebo/physics/ode/ODECollision.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODECollision.hh b/gazebo/physics/ode/ODECollision.hh
index d213b3d..89486a7 100644
--- a/gazebo/physics/ode/ODECollision.hh
+++ b/gazebo/physics/ode/ODECollision.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODECylinderShape.hh b/gazebo/physics/ode/ODECylinderShape.hh
index cccacf7..fd225e4 100644
--- a/gazebo/physics/ode/ODECylinderShape.hh
+++ b/gazebo/physics/ode/ODECylinderShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEFixedJoint.cc b/gazebo/physics/ode/ODEFixedJoint.cc
index 09065a1..ee634aa 100644
--- a/gazebo/physics/ode/ODEFixedJoint.cc
+++ b/gazebo/physics/ode/ODEFixedJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEFixedJoint.hh b/gazebo/physics/ode/ODEFixedJoint.hh
index 17fc417..40cacd7 100644
--- a/gazebo/physics/ode/ODEFixedJoint.hh
+++ b/gazebo/physics/ode/ODEFixedJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEGearboxJoint.cc b/gazebo/physics/ode/ODEGearboxJoint.cc
index 6538ec9..20a242f 100644
--- a/gazebo/physics/ode/ODEGearboxJoint.cc
+++ b/gazebo/physics/ode/ODEGearboxJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEGearboxJoint.hh b/gazebo/physics/ode/ODEGearboxJoint.hh
index 0aeb96e..46621ee 100644
--- a/gazebo/physics/ode/ODEGearboxJoint.hh
+++ b/gazebo/physics/ode/ODEGearboxJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEHeightmapShape.cc b/gazebo/physics/ode/ODEHeightmapShape.cc
index 2874173..68c6c17 100644
--- a/gazebo/physics/ode/ODEHeightmapShape.cc
+++ b/gazebo/physics/ode/ODEHeightmapShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEHeightmapShape.hh b/gazebo/physics/ode/ODEHeightmapShape.hh
index 3fb4998..288a01a 100644
--- a/gazebo/physics/ode/ODEHeightmapShape.hh
+++ b/gazebo/physics/ode/ODEHeightmapShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEHinge2Joint.cc b/gazebo/physics/ode/ODEHinge2Joint.cc
index e17e4d4..d752f46 100644
--- a/gazebo/physics/ode/ODEHinge2Joint.cc
+++ b/gazebo/physics/ode/ODEHinge2Joint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEHinge2Joint.hh b/gazebo/physics/ode/ODEHinge2Joint.hh
index db21560..21b6361 100644
--- a/gazebo/physics/ode/ODEHinge2Joint.hh
+++ b/gazebo/physics/ode/ODEHinge2Joint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEHingeJoint.cc b/gazebo/physics/ode/ODEHingeJoint.cc
index ca144e1..54a203b 100644
--- a/gazebo/physics/ode/ODEHingeJoint.cc
+++ b/gazebo/physics/ode/ODEHingeJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEHingeJoint.hh b/gazebo/physics/ode/ODEHingeJoint.hh
index 72f189f..6e5a20e 100644
--- a/gazebo/physics/ode/ODEHingeJoint.hh
+++ b/gazebo/physics/ode/ODEHingeJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEJoint.cc b/gazebo/physics/ode/ODEJoint.cc
index 1811a0c..76dba82 100644
--- a/gazebo/physics/ode/ODEJoint.cc
+++ b/gazebo/physics/ode/ODEJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEJoint.hh b/gazebo/physics/ode/ODEJoint.hh
index d36af37..738b6ba 100644
--- a/gazebo/physics/ode/ODEJoint.hh
+++ b/gazebo/physics/ode/ODEJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEJoint_TEST.cc b/gazebo/physics/ode/ODEJoint_TEST.cc
index 3f4435f..ebc9862 100644
--- a/gazebo/physics/ode/ODEJoint_TEST.cc
+++ b/gazebo/physics/ode/ODEJoint_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODELink.cc b/gazebo/physics/ode/ODELink.cc
index 5b54d2e..e8accae 100644
--- a/gazebo/physics/ode/ODELink.cc
+++ b/gazebo/physics/ode/ODELink.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODELink.hh b/gazebo/physics/ode/ODELink.hh
index f3b16e2..d26823c 100644
--- a/gazebo/physics/ode/ODELink.hh
+++ b/gazebo/physics/ode/ODELink.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEMesh.cc b/gazebo/physics/ode/ODEMesh.cc
index 5d1110c..252b24d 100644
--- a/gazebo/physics/ode/ODEMesh.cc
+++ b/gazebo/physics/ode/ODEMesh.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEMesh.hh b/gazebo/physics/ode/ODEMesh.hh
index 9b814ba..ec95157 100644
--- a/gazebo/physics/ode/ODEMesh.hh
+++ b/gazebo/physics/ode/ODEMesh.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEMeshShape.cc b/gazebo/physics/ode/ODEMeshShape.cc
index 8d470b6..3b14377 100644
--- a/gazebo/physics/ode/ODEMeshShape.cc
+++ b/gazebo/physics/ode/ODEMeshShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEMeshShape.hh b/gazebo/physics/ode/ODEMeshShape.hh
index af6afb6..c2abc8b 100644
--- a/gazebo/physics/ode/ODEMeshShape.hh
+++ b/gazebo/physics/ode/ODEMeshShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEMultiRayShape.cc b/gazebo/physics/ode/ODEMultiRayShape.cc
index 816aed1..8cea34f 100644
--- a/gazebo/physics/ode/ODEMultiRayShape.cc
+++ b/gazebo/physics/ode/ODEMultiRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEMultiRayShape.hh b/gazebo/physics/ode/ODEMultiRayShape.hh
index 88d8ee9..7832f28 100644
--- a/gazebo/physics/ode/ODEMultiRayShape.hh
+++ b/gazebo/physics/ode/ODEMultiRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEPhysics.cc b/gazebo/physics/ode/ODEPhysics.cc
index f1e9599..5d9b2e3 100644
--- a/gazebo/physics/ode/ODEPhysics.cc
+++ b/gazebo/physics/ode/ODEPhysics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1148,13 +1148,13 @@ void ODEPhysics::Collide(ODECollision *_collision1, ODECollision *_collision2,
   contact.surface.mu3 = std::min(surf1->FrictionPyramid()->MuTorsion(),
                                  surf2->FrictionPyramid()->MuTorsion());
 
-  // Set the slip values
-  contact.surface.slip1 = std::min(surf1->slip1,
-                                   surf2->slip1);
-  contact.surface.slip2 = std::min(surf1->slip2,
-                                   surf2->slip2);
-  contact.surface.slip3 = std::min(surf1->slipTorsion,
-                                   surf2->slipTorsion);
+  // Combine the slip values
+  // The slip is equivalent to the inverse of a viscous damping term
+  // To combine dampers in series, the inverse of damping is summed
+  // So the sum of slip parameters is used to combine them
+  contact.surface.slip1 = surf1->slip1 + surf2->slip1;
+  contact.surface.slip2 = surf1->slip2 + surf2->slip2;
+  contact.surface.slip3 = surf1->slipTorsion + surf2->slipTorsion;
 
   // Combine torsional friction patch radius values
   contact.surface.patch_radius =
diff --git a/gazebo/physics/ode/ODEPhysics.hh b/gazebo/physics/ode/ODEPhysics.hh
index aec7798..a979c85 100644
--- a/gazebo/physics/ode/ODEPhysics.hh
+++ b/gazebo/physics/ode/ODEPhysics.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEPhysicsPrivate.hh b/gazebo/physics/ode/ODEPhysicsPrivate.hh
index 9da00ff..048ee99 100644
--- a/gazebo/physics/ode/ODEPhysicsPrivate.hh
+++ b/gazebo/physics/ode/ODEPhysicsPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEPhysics_TEST.cc b/gazebo/physics/ode/ODEPhysics_TEST.cc
index b66a2a2..7282f47 100644
--- a/gazebo/physics/ode/ODEPhysics_TEST.cc
+++ b/gazebo/physics/ode/ODEPhysics_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEPlaneShape.hh b/gazebo/physics/ode/ODEPlaneShape.hh
index 533ab71..b6e2944 100644
--- a/gazebo/physics/ode/ODEPlaneShape.hh
+++ b/gazebo/physics/ode/ODEPlaneShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEPolylineShape.cc b/gazebo/physics/ode/ODEPolylineShape.cc
index b2bc0d7..35785fc 100644
--- a/gazebo/physics/ode/ODEPolylineShape.cc
+++ b/gazebo/physics/ode/ODEPolylineShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEPolylineShape.hh b/gazebo/physics/ode/ODEPolylineShape.hh
index f0132ba..e8f92e8 100644
--- a/gazebo/physics/ode/ODEPolylineShape.hh
+++ b/gazebo/physics/ode/ODEPolylineShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODERayShape.cc b/gazebo/physics/ode/ODERayShape.cc
index a2a7dda..dad5d89 100644
--- a/gazebo/physics/ode/ODERayShape.cc
+++ b/gazebo/physics/ode/ODERayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODERayShape.hh b/gazebo/physics/ode/ODERayShape.hh
index 63f672a..210e8d1 100644
--- a/gazebo/physics/ode/ODERayShape.hh
+++ b/gazebo/physics/ode/ODERayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEScrewJoint.cc b/gazebo/physics/ode/ODEScrewJoint.cc
index 034c24c..876026f 100644
--- a/gazebo/physics/ode/ODEScrewJoint.cc
+++ b/gazebo/physics/ode/ODEScrewJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEScrewJoint.hh b/gazebo/physics/ode/ODEScrewJoint.hh
index f5850b2..f3d8a45 100644
--- a/gazebo/physics/ode/ODEScrewJoint.hh
+++ b/gazebo/physics/ode/ODEScrewJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODESliderJoint.cc b/gazebo/physics/ode/ODESliderJoint.cc
index b421114..0830550 100644
--- a/gazebo/physics/ode/ODESliderJoint.cc
+++ b/gazebo/physics/ode/ODESliderJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODESliderJoint.hh b/gazebo/physics/ode/ODESliderJoint.hh
index ad9a277..26043ed 100644
--- a/gazebo/physics/ode/ODESliderJoint.hh
+++ b/gazebo/physics/ode/ODESliderJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODESphereShape.hh b/gazebo/physics/ode/ODESphereShape.hh
index 62119a0..bc9d5ca 100644
--- a/gazebo/physics/ode/ODESphereShape.hh
+++ b/gazebo/physics/ode/ODESphereShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODESurfaceParams.cc b/gazebo/physics/ode/ODESurfaceParams.cc
index 30b51aa..c0a11a9 100644
--- a/gazebo/physics/ode/ODESurfaceParams.cc
+++ b/gazebo/physics/ode/ODESurfaceParams.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODESurfaceParams.hh b/gazebo/physics/ode/ODESurfaceParams.hh
index d8a1003..e2d259f 100644
--- a/gazebo/physics/ode/ODESurfaceParams.hh
+++ b/gazebo/physics/ode/ODESurfaceParams.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODETypes.hh b/gazebo/physics/ode/ODETypes.hh
index d4b3434..840d0f4 100644
--- a/gazebo/physics/ode/ODETypes.hh
+++ b/gazebo/physics/ode/ODETypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEUniversalJoint.cc b/gazebo/physics/ode/ODEUniversalJoint.cc
index 2c93156..321b262 100644
--- a/gazebo/physics/ode/ODEUniversalJoint.cc
+++ b/gazebo/physics/ode/ODEUniversalJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ODEUniversalJoint.hh b/gazebo/physics/ode/ODEUniversalJoint.hh
index f34833e..f639d36 100644
--- a/gazebo/physics/ode/ODEUniversalJoint.hh
+++ b/gazebo/physics/ode/ODEUniversalJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/ode/ode_inc.h b/gazebo/physics/ode/ode_inc.h
index 1adc8bd..3e7b4e8 100644
--- a/gazebo/physics/ode/ode_inc.h
+++ b/gazebo/physics/ode/ode_inc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyBallJoint.cc b/gazebo/physics/simbody/SimbodyBallJoint.cc
index dc8e17a..1ac95c3 100644
--- a/gazebo/physics/simbody/SimbodyBallJoint.cc
+++ b/gazebo/physics/simbody/SimbodyBallJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyBallJoint.hh b/gazebo/physics/simbody/SimbodyBallJoint.hh
index 0a39fa8..f97e2dd 100644
--- a/gazebo/physics/simbody/SimbodyBallJoint.hh
+++ b/gazebo/physics/simbody/SimbodyBallJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyBoxShape.hh b/gazebo/physics/simbody/SimbodyBoxShape.hh
index 6d1c57c..a21b3ad 100644
--- a/gazebo/physics/simbody/SimbodyBoxShape.hh
+++ b/gazebo/physics/simbody/SimbodyBoxShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyCollision.cc b/gazebo/physics/simbody/SimbodyCollision.cc
index 448862e..06da48d 100644
--- a/gazebo/physics/simbody/SimbodyCollision.cc
+++ b/gazebo/physics/simbody/SimbodyCollision.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyCollision.hh b/gazebo/physics/simbody/SimbodyCollision.hh
index 592eeb2..88d7b7b 100644
--- a/gazebo/physics/simbody/SimbodyCollision.hh
+++ b/gazebo/physics/simbody/SimbodyCollision.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyCylinderShape.hh b/gazebo/physics/simbody/SimbodyCylinderShape.hh
index a6c7d62..b6e8382 100644
--- a/gazebo/physics/simbody/SimbodyCylinderShape.hh
+++ b/gazebo/physics/simbody/SimbodyCylinderShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyFixedJoint.cc b/gazebo/physics/simbody/SimbodyFixedJoint.cc
index 9390d32..36b8bad 100644
--- a/gazebo/physics/simbody/SimbodyFixedJoint.cc
+++ b/gazebo/physics/simbody/SimbodyFixedJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyFixedJoint.hh b/gazebo/physics/simbody/SimbodyFixedJoint.hh
index e42f72b..bca74fa 100644
--- a/gazebo/physics/simbody/SimbodyFixedJoint.hh
+++ b/gazebo/physics/simbody/SimbodyFixedJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyHeightmapShape.cc b/gazebo/physics/simbody/SimbodyHeightmapShape.cc
index ea5cf39..dbaae87 100644
--- a/gazebo/physics/simbody/SimbodyHeightmapShape.cc
+++ b/gazebo/physics/simbody/SimbodyHeightmapShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyHeightmapShape.hh b/gazebo/physics/simbody/SimbodyHeightmapShape.hh
index 57ac6a2..3bbfe1a 100644
--- a/gazebo/physics/simbody/SimbodyHeightmapShape.hh
+++ b/gazebo/physics/simbody/SimbodyHeightmapShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyHinge2Joint.cc b/gazebo/physics/simbody/SimbodyHinge2Joint.cc
index cbd58d8..63052b8 100644
--- a/gazebo/physics/simbody/SimbodyHinge2Joint.cc
+++ b/gazebo/physics/simbody/SimbodyHinge2Joint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyHinge2Joint.hh b/gazebo/physics/simbody/SimbodyHinge2Joint.hh
index 70992e8..5424c15 100644
--- a/gazebo/physics/simbody/SimbodyHinge2Joint.hh
+++ b/gazebo/physics/simbody/SimbodyHinge2Joint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyHingeJoint.cc b/gazebo/physics/simbody/SimbodyHingeJoint.cc
index c2ad4e7..3890387 100644
--- a/gazebo/physics/simbody/SimbodyHingeJoint.cc
+++ b/gazebo/physics/simbody/SimbodyHingeJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyHingeJoint.hh b/gazebo/physics/simbody/SimbodyHingeJoint.hh
index 83096bd..440d2a4 100644
--- a/gazebo/physics/simbody/SimbodyHingeJoint.hh
+++ b/gazebo/physics/simbody/SimbodyHingeJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyJoint.cc b/gazebo/physics/simbody/SimbodyJoint.cc
index db0469b..c943715 100644
--- a/gazebo/physics/simbody/SimbodyJoint.cc
+++ b/gazebo/physics/simbody/SimbodyJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyJoint.hh b/gazebo/physics/simbody/SimbodyJoint.hh
index 328af75..b981783 100644
--- a/gazebo/physics/simbody/SimbodyJoint.hh
+++ b/gazebo/physics/simbody/SimbodyJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyLink.cc b/gazebo/physics/simbody/SimbodyLink.cc
index 0f20e70..9c3444a 100644
--- a/gazebo/physics/simbody/SimbodyLink.cc
+++ b/gazebo/physics/simbody/SimbodyLink.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyLink.hh b/gazebo/physics/simbody/SimbodyLink.hh
index 0df6778..7a7865a 100644
--- a/gazebo/physics/simbody/SimbodyLink.hh
+++ b/gazebo/physics/simbody/SimbodyLink.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyMesh.cc b/gazebo/physics/simbody/SimbodyMesh.cc
index 2e96a1c..e9c99ed 100644
--- a/gazebo/physics/simbody/SimbodyMesh.cc
+++ b/gazebo/physics/simbody/SimbodyMesh.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyMesh.hh b/gazebo/physics/simbody/SimbodyMesh.hh
index 5075c69..810b253 100644
--- a/gazebo/physics/simbody/SimbodyMesh.hh
+++ b/gazebo/physics/simbody/SimbodyMesh.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyMeshShape.cc b/gazebo/physics/simbody/SimbodyMeshShape.cc
index 99a5a4a..1240424 100644
--- a/gazebo/physics/simbody/SimbodyMeshShape.cc
+++ b/gazebo/physics/simbody/SimbodyMeshShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyMeshShape.hh b/gazebo/physics/simbody/SimbodyMeshShape.hh
index e01bbee..f7c0695 100644
--- a/gazebo/physics/simbody/SimbodyMeshShape.hh
+++ b/gazebo/physics/simbody/SimbodyMeshShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyModel.cc b/gazebo/physics/simbody/SimbodyModel.cc
index 0b32377..00dc641 100644
--- a/gazebo/physics/simbody/SimbodyModel.cc
+++ b/gazebo/physics/simbody/SimbodyModel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyModel.hh b/gazebo/physics/simbody/SimbodyModel.hh
index 74cd63a..391c428 100644
--- a/gazebo/physics/simbody/SimbodyModel.hh
+++ b/gazebo/physics/simbody/SimbodyModel.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyMultiRayShape.cc b/gazebo/physics/simbody/SimbodyMultiRayShape.cc
index 555819a..8da9a88 100644
--- a/gazebo/physics/simbody/SimbodyMultiRayShape.cc
+++ b/gazebo/physics/simbody/SimbodyMultiRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyMultiRayShape.hh b/gazebo/physics/simbody/SimbodyMultiRayShape.hh
index 778fa65..1cffe14 100644
--- a/gazebo/physics/simbody/SimbodyMultiRayShape.hh
+++ b/gazebo/physics/simbody/SimbodyMultiRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyPhysics.cc b/gazebo/physics/simbody/SimbodyPhysics.cc
index f3a1dcd..bd514c2 100644
--- a/gazebo/physics/simbody/SimbodyPhysics.cc
+++ b/gazebo/physics/simbody/SimbodyPhysics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyPhysics.hh b/gazebo/physics/simbody/SimbodyPhysics.hh
index d3c76f2..668c0b6 100644
--- a/gazebo/physics/simbody/SimbodyPhysics.hh
+++ b/gazebo/physics/simbody/SimbodyPhysics.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyPlaneShape.cc b/gazebo/physics/simbody/SimbodyPlaneShape.cc
index 7e98a5f..dbdddf3 100644
--- a/gazebo/physics/simbody/SimbodyPlaneShape.cc
+++ b/gazebo/physics/simbody/SimbodyPlaneShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyPlaneShape.hh b/gazebo/physics/simbody/SimbodyPlaneShape.hh
index c833faf..b412d62 100644
--- a/gazebo/physics/simbody/SimbodyPlaneShape.hh
+++ b/gazebo/physics/simbody/SimbodyPlaneShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyPolylineShape.cc b/gazebo/physics/simbody/SimbodyPolylineShape.cc
index 5353d72..52aaead 100644
--- a/gazebo/physics/simbody/SimbodyPolylineShape.cc
+++ b/gazebo/physics/simbody/SimbodyPolylineShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyPolylineShape.hh b/gazebo/physics/simbody/SimbodyPolylineShape.hh
index 20acc7c..fbaa8d3 100644
--- a/gazebo/physics/simbody/SimbodyPolylineShape.hh
+++ b/gazebo/physics/simbody/SimbodyPolylineShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyRayShape.cc b/gazebo/physics/simbody/SimbodyRayShape.cc
index 2000765..0430f8c 100644
--- a/gazebo/physics/simbody/SimbodyRayShape.cc
+++ b/gazebo/physics/simbody/SimbodyRayShape.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyRayShape.hh b/gazebo/physics/simbody/SimbodyRayShape.hh
index d610e71..3c1a72d 100644
--- a/gazebo/physics/simbody/SimbodyRayShape.hh
+++ b/gazebo/physics/simbody/SimbodyRayShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyScrewJoint.cc b/gazebo/physics/simbody/SimbodyScrewJoint.cc
index d5bb9d2..e286b9f 100644
--- a/gazebo/physics/simbody/SimbodyScrewJoint.cc
+++ b/gazebo/physics/simbody/SimbodyScrewJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyScrewJoint.hh b/gazebo/physics/simbody/SimbodyScrewJoint.hh
index cbf1bee..d0c951d 100644
--- a/gazebo/physics/simbody/SimbodyScrewJoint.hh
+++ b/gazebo/physics/simbody/SimbodyScrewJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodySliderJoint.cc b/gazebo/physics/simbody/SimbodySliderJoint.cc
index 2d0c583..30060b1 100644
--- a/gazebo/physics/simbody/SimbodySliderJoint.cc
+++ b/gazebo/physics/simbody/SimbodySliderJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodySliderJoint.hh b/gazebo/physics/simbody/SimbodySliderJoint.hh
index 6ad85b6..7bd7f70 100644
--- a/gazebo/physics/simbody/SimbodySliderJoint.hh
+++ b/gazebo/physics/simbody/SimbodySliderJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodySphereShape.hh b/gazebo/physics/simbody/SimbodySphereShape.hh
index e2b62b5..5f12194 100644
--- a/gazebo/physics/simbody/SimbodySphereShape.hh
+++ b/gazebo/physics/simbody/SimbodySphereShape.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyTypes.hh b/gazebo/physics/simbody/SimbodyTypes.hh
index 809daf5..8467a5d 100644
--- a/gazebo/physics/simbody/SimbodyTypes.hh
+++ b/gazebo/physics/simbody/SimbodyTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyUniversalJoint.cc b/gazebo/physics/simbody/SimbodyUniversalJoint.cc
index 1c70955..abe5e69 100644
--- a/gazebo/physics/simbody/SimbodyUniversalJoint.cc
+++ b/gazebo/physics/simbody/SimbodyUniversalJoint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/SimbodyUniversalJoint.hh b/gazebo/physics/simbody/SimbodyUniversalJoint.hh
index cbf5317..56b4a86 100644
--- a/gazebo/physics/simbody/SimbodyUniversalJoint.hh
+++ b/gazebo/physics/simbody/SimbodyUniversalJoint.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/physics/simbody/simbody_inc.h b/gazebo/physics/simbody/simbody_inc.h
index 1dcdeae..b3859af 100644
--- a/gazebo/physics/simbody/simbody_inc.h
+++ b/gazebo/physics/simbody/simbody_inc.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ApplyWrenchVisual.cc b/gazebo/rendering/ApplyWrenchVisual.cc
index 9f212e8..ffc127d 100644
--- a/gazebo/rendering/ApplyWrenchVisual.cc
+++ b/gazebo/rendering/ApplyWrenchVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ApplyWrenchVisual.hh b/gazebo/rendering/ApplyWrenchVisual.hh
index 264707b..a22cc99 100644
--- a/gazebo/rendering/ApplyWrenchVisual.hh
+++ b/gazebo/rendering/ApplyWrenchVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ApplyWrenchVisualPrivate.hh b/gazebo/rendering/ApplyWrenchVisualPrivate.hh
index 9ef8b56..44a91c0 100644
--- a/gazebo/rendering/ApplyWrenchVisualPrivate.hh
+++ b/gazebo/rendering/ApplyWrenchVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ArrowVisual.cc b/gazebo/rendering/ArrowVisual.cc
index 5bf79c8..6f14884 100644
--- a/gazebo/rendering/ArrowVisual.cc
+++ b/gazebo/rendering/ArrowVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ArrowVisual.hh b/gazebo/rendering/ArrowVisual.hh
index 1359746..f884d54 100644
--- a/gazebo/rendering/ArrowVisual.hh
+++ b/gazebo/rendering/ArrowVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ArrowVisualPrivate.hh b/gazebo/rendering/ArrowVisualPrivate.hh
index 7f39611..ea141cf 100644
--- a/gazebo/rendering/ArrowVisualPrivate.hh
+++ b/gazebo/rendering/ArrowVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/AxisVisual.cc b/gazebo/rendering/AxisVisual.cc
index 7b1051f..e9b31b2 100644
--- a/gazebo/rendering/AxisVisual.cc
+++ b/gazebo/rendering/AxisVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/AxisVisual.hh b/gazebo/rendering/AxisVisual.hh
index 554639f..2992369 100644
--- a/gazebo/rendering/AxisVisual.hh
+++ b/gazebo/rendering/AxisVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/AxisVisualPrivate.hh b/gazebo/rendering/AxisVisualPrivate.hh
index 86584e8..ad44e62 100644
--- a/gazebo/rendering/AxisVisualPrivate.hh
+++ b/gazebo/rendering/AxisVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/CMakeLists.txt b/gazebo/rendering/CMakeLists.txt
index b895510..4ec989d 100644
--- a/gazebo/rendering/CMakeLists.txt
+++ b/gazebo/rendering/CMakeLists.txt
@@ -152,6 +152,7 @@ gz_build_tests(${gtest_sources} EXTRA_LIBS gazebo_rendering)
 
 set (gtest_sources_dri
   COMVisual_TEST.cc
+  Distortion_TEST.cc
   GpuLaser_TEST.cc
   Heightmap_TEST.cc
   InertiaVisual_TEST.cc
diff --git a/gazebo/rendering/COMVisual.cc b/gazebo/rendering/COMVisual.cc
index 02f44de..51dd084 100644
--- a/gazebo/rendering/COMVisual.cc
+++ b/gazebo/rendering/COMVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/COMVisual.hh b/gazebo/rendering/COMVisual.hh
index 028cc6d..5315d1c 100644
--- a/gazebo/rendering/COMVisual.hh
+++ b/gazebo/rendering/COMVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/COMVisualPrivate.hh b/gazebo/rendering/COMVisualPrivate.hh
index a8381b0..f22d2a2 100644
--- a/gazebo/rendering/COMVisualPrivate.hh
+++ b/gazebo/rendering/COMVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/COMVisual_TEST.cc b/gazebo/rendering/COMVisual_TEST.cc
index 02089c1..e8d8b78 100644
--- a/gazebo/rendering/COMVisual_TEST.cc
+++ b/gazebo/rendering/COMVisual_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Camera.cc b/gazebo/rendering/Camera.cc
index cd88825..77a849f 100644
--- a/gazebo/rendering/Camera.cc
+++ b/gazebo/rendering/Camera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1527,7 +1527,7 @@ void Camera::CreateRenderTexture(const std::string &_textureName)
       this->ImageWidth(),
       this->ImageHeight(),
       0,
-      (Ogre::PixelFormat)this->imageFormat,
+      static_cast<Ogre::PixelFormat>(this->imageFormat),
       Ogre::TU_RENDERTARGET,
       0,
       false,
diff --git a/gazebo/rendering/Camera.hh b/gazebo/rendering/Camera.hh
index b81e786..aa22f4d 100644
--- a/gazebo/rendering/Camera.hh
+++ b/gazebo/rendering/Camera.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/CameraLensPrivate.hh b/gazebo/rendering/CameraLensPrivate.hh
index 363df8f..a85f110 100644
--- a/gazebo/rendering/CameraLensPrivate.hh
+++ b/gazebo/rendering/CameraLensPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/CameraPrivate.hh b/gazebo/rendering/CameraPrivate.hh
index 57bccb2..c617646 100644
--- a/gazebo/rendering/CameraPrivate.hh
+++ b/gazebo/rendering/CameraPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/CameraVisual.cc b/gazebo/rendering/CameraVisual.cc
index 38060ed..1f9aec4 100644
--- a/gazebo/rendering/CameraVisual.cc
+++ b/gazebo/rendering/CameraVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/CameraVisual.hh b/gazebo/rendering/CameraVisual.hh
index 8f863a4..2a3285e 100644
--- a/gazebo/rendering/CameraVisual.hh
+++ b/gazebo/rendering/CameraVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/CameraVisualPrivate.hh b/gazebo/rendering/CameraVisualPrivate.hh
index 6c04bef..e01e0da 100644
--- a/gazebo/rendering/CameraVisualPrivate.hh
+++ b/gazebo/rendering/CameraVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ContactVisual.cc b/gazebo/rendering/ContactVisual.cc
index 8ed8872..d7c5fcc 100644
--- a/gazebo/rendering/ContactVisual.cc
+++ b/gazebo/rendering/ContactVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ContactVisual.hh b/gazebo/rendering/ContactVisual.hh
index fc580d7..6e93616 100644
--- a/gazebo/rendering/ContactVisual.hh
+++ b/gazebo/rendering/ContactVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ContactVisualPrivate.hh b/gazebo/rendering/ContactVisualPrivate.hh
index 7761f38..6142895 100644
--- a/gazebo/rendering/ContactVisualPrivate.hh
+++ b/gazebo/rendering/ContactVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Conversions.cc b/gazebo/rendering/Conversions.cc
index 784fd91..ad68367 100644
--- a/gazebo/rendering/Conversions.cc
+++ b/gazebo/rendering/Conversions.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Conversions.hh b/gazebo/rendering/Conversions.hh
index 8d886b0..262bf28 100644
--- a/gazebo/rendering/Conversions.hh
+++ b/gazebo/rendering/Conversions.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/DepthCamera.cc b/gazebo/rendering/DepthCamera.cc
index ccb0688..de89723 100644
--- a/gazebo/rendering/DepthCamera.cc
+++ b/gazebo/rendering/DepthCamera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/DepthCamera.hh b/gazebo/rendering/DepthCamera.hh
index 9fdb500..0bcf24a 100644
--- a/gazebo/rendering/DepthCamera.hh
+++ b/gazebo/rendering/DepthCamera.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/DepthCameraPrivate.hh b/gazebo/rendering/DepthCameraPrivate.hh
index 9eb37ff..89c7784 100644
--- a/gazebo/rendering/DepthCameraPrivate.hh
+++ b/gazebo/rendering/DepthCameraPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Distortion.cc b/gazebo/rendering/Distortion.cc
index 98d4740..8a4c76c 100644
--- a/gazebo/rendering/Distortion.cc
+++ b/gazebo/rendering/Distortion.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
 
 #include <sdf/sdf.hh>
 
+#include <ignition/math/Helpers.hh>
+
 #include "gazebo/common/Assert.hh"
 #include "gazebo/rendering/ogre_gazebo.h"
 #include "gazebo/rendering/Camera.hh"
@@ -35,8 +37,8 @@ Distortion::Distortion()
   this->dataPtr->k3 = 0;
   this->dataPtr->p1 = 0;
   this->dataPtr->p2 = 0;
-  this->dataPtr->lensCenter = math::Vector2d(0.5, 0.5);
-  this->dataPtr->distortionScale = math::Vector2d(1.0, 1.0);
+  this->dataPtr->lensCenter = ignition::math::Vector2d(0.5, 0.5);
+  this->dataPtr->distortionScale = ignition::math::Vector2d(1.0, 1.0);
   this->dataPtr->distortionCrop = true;
 }
 
@@ -56,14 +58,24 @@ void Distortion::Load(sdf::ElementPtr _sdf)
   this->dataPtr->k3 = this->sdf->Get<double>("k3");
   this->dataPtr->p1 = this->sdf->Get<double>("p1");
   this->dataPtr->p2 = this->sdf->Get<double>("p2");
-  this->dataPtr->lensCenter = this->sdf->Get<math::Vector2d>("center");
+  this->dataPtr->lensCenter =
+    this->sdf->Get<ignition::math::Vector2d>("center");
+
+  this->dataPtr->distortionCrop = this->dataPtr->k1 < 0;
+}
 
-  if (this->dataPtr->k1 >= 0)
+//////////////////////////////////////////////////
+ignition::math::Vector2d
+    Distortion::DistortionMapValueClamped(const int x, const int y) const
+{
+  if (x < 0 || x >= static_cast<int>(this->dataPtr->distortionTexWidth) ||
+      y < 0 || y >= static_cast<int>(this->dataPtr->distortionTexHeight))
   {
-    gzerr << "Pincushion model is currently not supported."
-      << " Please use a negative k1 coefficient for barrel distortion"
-      << std::endl;
+    return ignition::math::Vector2d(-1, -1);
   }
+  ignition::math::Vector2d res =
+      this->dataPtr->distortionMap[y*this->dataPtr->distortionTexWidth+x];
+  return res;
 }
 
 //////////////////////////////////////////////////
@@ -75,213 +87,271 @@ void Distortion::SetCamera(CameraPtr _camera)
     return;
   }
 
-  if (this->dataPtr->k1 >= 0)
+  // If no distortion is required, immediately return.
+  if (ignition::math::equal(this->dataPtr->k1, 0.0) &&
+      ignition::math::equal(this->dataPtr->k2, 0.0) &&
+      ignition::math::equal(this->dataPtr->k3, 0.0) &&
+      ignition::math::equal(this->dataPtr->p1, 0.0) &&
+      ignition::math::equal(this->dataPtr->p2, 0.0))
   {
-    gzerr << "Currently only Barrel Distortion is supported. "
-        << "Distortion will not be applied." << std::endl;
     return;
   }
 
   // seems to work best with a square distortion map texture
   unsigned int texSide = _camera->ImageHeight() > _camera->ImageWidth() ?
       _camera->ImageHeight() : _camera->ImageWidth();
-  unsigned int texWidth = texSide;
-  unsigned int texHeight = texSide;
-  unsigned int imageSize = texWidth * texHeight;
-
+  this->dataPtr->distortionTexWidth = texSide - 1;
+  this->dataPtr->distortionTexHeight = texSide - 1;
+  unsigned int imageSize =
+      this->dataPtr->distortionTexWidth * this->dataPtr->distortionTexHeight;
+  double incrU = 1.0 / this->dataPtr->distortionTexWidth;
+  double incrV = 1.0 / this->dataPtr->distortionTexHeight;
+
+  // initialize distortion map
   this->dataPtr->distortionMap.resize(imageSize);
   for (unsigned int i = 0; i < this->dataPtr->distortionMap.size(); ++i)
+  {
     this->dataPtr->distortionMap[i] = -1;
-
-  double incrU = 1.0 / texWidth;
-  double incrV = 1.0 / texHeight;
-
-  // obtain bounds of the distorted image points.
-  math::Vector2d boundA = this->Distort(math::Vector2d(0, 0),
-      this->dataPtr->lensCenter,
-      this->dataPtr->k1, this->dataPtr->k2, this->dataPtr->k3,
-      this->dataPtr->p1, this->dataPtr->p2);
-  math::Vector2d boundB = this->Distort(math::Vector2d(1, 1),
-      this->dataPtr->lensCenter,
-      this->dataPtr->k1, this->dataPtr->k2, this->dataPtr->k3,
-      this->dataPtr->p1, this->dataPtr->p2);
-
-  if (this->dataPtr->distortionCrop)
-    this->dataPtr->distortionScale = boundB - boundA;
+  }
 
   // fill the distortion map
-  for (unsigned int i = 0; i < texHeight; ++i)
+  for (unsigned int i = 0; i < this->dataPtr->distortionTexHeight; ++i)
   {
-    double v = i*incrU;
-    for (unsigned int j = 0; j < texWidth; ++j)
+    double v = i*incrV;
+    for (unsigned int j = 0; j < this->dataPtr->distortionTexWidth; ++j)
     {
-      double u = j*incrV;
-      math::Vector2d uv(u, v);
-      math::Vector2d out = this->Distort(uv, this->dataPtr->lensCenter,
+      double u = j*incrU;
+      ignition::math::Vector2d uv(u, v);
+      ignition::math::Vector2d out = this->Distort(
+          uv,
+          this->dataPtr->lensCenter,
           this->dataPtr->k1, this->dataPtr->k2, this->dataPtr->k3,
-          this->dataPtr->p1, this->dataPtr->p2);
+          this->dataPtr->p1, this->dataPtr->p2).Ign();
 
       // compute the index in the distortion map
-      unsigned int idxU = out.x * texWidth;
-      unsigned int idxV = out.y * texHeight;
-      unsigned int mapIdx = idxV * texWidth + idxU;
+      unsigned int idxU = out.X() * this->dataPtr->distortionTexWidth;
+      unsigned int idxV = out.Y() * this->dataPtr->distortionTexHeight;
 
-      // this should not happen for barrel distortion as the normalized
-      // distorted coordinate should be within (0, 0) and (1.0, 1.0).
-      if (mapIdx >= imageSize)
+      if (idxU < this->dataPtr->distortionTexWidth &&
+          idxV < this->dataPtr->distortionTexHeight)
       {
-        gzlog << "Warning: Normalized distorted coordinate is out of range."
-            << " Index: '" << mapIdx << "' vs Image Size: '" << imageSize << "'"
-            << " This should not happen for barrel distortion" << std::endl;
-        continue;
+        unsigned int mapIdx = idxV * this->dataPtr->distortionTexWidth + idxU;
+        this->dataPtr->distortionMap[mapIdx] = uv;
       }
-
-      this->dataPtr->distortionMap[mapIdx] = uv;
+      // else: pixel maps outside the image bounds.
+      // This is expected and normal to ensure
+      // no black borders; carry on
     }
   }
 
-  // Apply interpolation to the resulting distortion map.
-  // This is mostly needed for barrel distortion where the the center of the
-  // distortion texture may contain a few black pixels.
-  unsigned int boundAIdxU = boundA.x * texWidth;
-  unsigned int boundAIdxV = boundA.y * texHeight;
-  unsigned int boundBIdxU = boundB.x * texWidth;
-  unsigned int boundBIdxV = boundB.y * texHeight;
-  // limit interpolation to the boundary formed by the distorted image points.
-  unsigned int roiWidth = boundBIdxU - boundAIdxU;
-  unsigned int roiHeight = boundBIdxV - boundAIdxV;
-  for (unsigned int i  = 0 ; i < roiHeight; ++i)
+  // set up the distortion instance
+  this->dataPtr->distortionMaterial =
+      Ogre::MaterialManager::getSingleton().getByName(
+          "Gazebo/CameraDistortionMap");
+  this->dataPtr->distortionMaterial =
+      this->dataPtr->distortionMaterial->clone(
+          "Gazebo/" + _camera->Name() + "_CameraDistortionMap");
+
+  // create the distortion map texture for the distortion instance
+  std::string texName = _camera->Name() + "_distortionTex";
+  Ogre::TexturePtr renderTexture =
+      Ogre::TextureManager::getSingleton().createManual(
+          texName,
+          "General",
+          Ogre::TEX_TYPE_2D,
+          this->dataPtr->distortionTexWidth,
+          this->dataPtr->distortionTexHeight,
+          0,
+          Ogre::PF_FLOAT32_RGB);
+  Ogre::HardwarePixelBufferSharedPtr pixelBuffer = renderTexture->getBuffer();
+
+  // fill the distortion map, while interpolating to fill dead pixels
+  pixelBuffer->lock(Ogre::HardwareBuffer::HBL_NORMAL);
+  const Ogre::PixelBox &pixelBox = pixelBuffer->getCurrentLock();
+  float *pDest = static_cast<float *>(pixelBox.data);
+  for (unsigned int i = 0; i < this->dataPtr->distortionTexHeight; ++i)
   {
-    for (unsigned int j  = 0 ; j < roiWidth; ++j)
+    for (unsigned int j = 0; j < this->dataPtr->distortionTexWidth; ++j)
     {
-      unsigned int mapIdx = (boundAIdxV + i)  * texWidth + boundAIdxU + j;
+      ignition::math::Vector2d vec =
+          this->dataPtr->distortionMap[i*this->dataPtr->distortionTexWidth+j];
+
+      // perform interpolation on-the-fly:
       // check for empty mapping within the region and correct it by
-      // interpolating four neighboring distortion map values.
-      if (this->dataPtr->distortionMap[mapIdx] == math::Vector2d(-1, -1))
+      // interpolating the eight neighboring distortion map values.
+
+      if (vec.X() < -0.5 && vec.Y() < -0.5)
       {
-        math::Vector2d interpolate(0, 0);
-        int sampleSize = 0;
-        // left
-        if ((boundAIdxU + j) != 0 &&
-            !(this->dataPtr->distortionMap[mapIdx-1] == math::Vector2d(-1, -1)))
+        ignition::math::Vector2d left =
+            this->DistortionMapValueClamped(j-1, i);
+        ignition::math::Vector2d right =
+            this->DistortionMapValueClamped(j+1, i);
+        ignition::math::Vector2d bottom =
+            this->DistortionMapValueClamped(j, i+1);
+        ignition::math::Vector2d top =
+            this->DistortionMapValueClamped(j, i-1);
+
+        ignition::math::Vector2d topLeft =
+            this->DistortionMapValueClamped(j-1, i-1);
+        ignition::math::Vector2d topRight =
+            this->DistortionMapValueClamped(j+1, i-1);
+        ignition::math::Vector2d bottomLeft =
+            this->DistortionMapValueClamped(j-1, i+1);
+        ignition::math::Vector2d bottomRight =
+            this->DistortionMapValueClamped(j+1, i+1);
+
+
+        ignition::math::Vector2d interpolated;
+        double divisor = 0;
+        if (right.X() > -0.5)
+        {
+          divisor++;
+          interpolated += right;
+        }
+        if (left.X() > -0.5)
+        {
+          divisor++;
+          interpolated += left;
+        }
+        if (top.X() > -0.5)
         {
-          interpolate += this->dataPtr->distortionMap[mapIdx-1];
-          sampleSize++;
+          divisor++;
+          interpolated += top;
         }
-        // right
-        if ((boundAIdxU + j+1) < texWidth &&
-            !(this->dataPtr->distortionMap[mapIdx+1] == math::Vector2d(-1, -1)))
+        if (bottom.X() > -0.5)
         {
-          interpolate += this->dataPtr->distortionMap[mapIdx+1];
-          sampleSize++;
+          divisor++;
+          interpolated += bottom;
         }
-        // top
-        if ((boundAIdxV + i) != 0)
+
+        if (bottomRight.X() > -0.5)
+        {
+          divisor += 0.707;
+          interpolated += bottomRight * 0.707;
+        }
+        if (bottomLeft.X() > -0.5)
         {
-          unsigned int topIdx =
-              (boundAIdxV + i-1) * texWidth + boundAIdxU + j;
-          if (!(this->dataPtr->distortionMap[topIdx]
-              == math::Vector2d(-1, -1)))
-          {
-            interpolate += this->dataPtr->distortionMap[mapIdx-1];
-            sampleSize++;
-          }
+          divisor += 0.707;
+          interpolated += bottomLeft * 0.707;
         }
-        // bottom
-        if ((boundAIdxV + i+1) < texHeight)
+        if (topRight.X() > -0.5)
         {
-          unsigned int bottomIdx =
-              (boundAIdxV + i+1) * texWidth + boundAIdxU + j;
-          if (!(this->dataPtr->distortionMap[bottomIdx]
-              == math::Vector2d(-1, -1)))
-          {
-            interpolate += this->dataPtr->distortionMap[mapIdx+1];
-            sampleSize++;
-          }
+          divisor += 0.707;
+          interpolated += topRight * 0.707;
         }
-        interpolate.x = interpolate.x / sampleSize;
-        interpolate.y = interpolate.y / sampleSize;
-        this->dataPtr->distortionMap[mapIdx] = interpolate;
+        if (topLeft.X() > -0.5)
+        {
+          divisor += 0.707;
+          interpolated += topLeft * 0.707;
+        }
+
+        if (divisor > 0.5)
+        {
+          interpolated /= divisor;
+        }
+        *pDest++ = ignition::math::clamp(interpolated.X(), 0.0, 1.0);
+        *pDest++ = ignition::math::clamp(interpolated.Y(), 0.0, 1.0);
       }
+      else
+      {
+        *pDest++ = vec.X();
+        *pDest++ = vec.Y();
+      }
+
+      // Z coordinate
+      *pDest++ = 0;
     }
   }
+  pixelBuffer->unlock();
+
+  // set up the distortion map texture to be used in the pixel shader.
+  this->dataPtr->distortionMaterial->getTechnique(0)->getPass(0)->
+      createTextureUnitState(texName, 1);
 
-  // set up the compositor
-  Ogre::MaterialPtr distMat =
-      Ogre::MaterialManager::getSingleton().getByName(
-      "Gazebo/CameraDistortionMap");
   this->dataPtr->lensDistortionInstance =
       Ogre::CompositorManager::getSingleton().addCompositor(
       _camera->OgreViewport(), "CameraDistortionMap/Default");
-  this->dataPtr->lensDistortionInstance->setEnabled(true);
+  this->dataPtr->lensDistortionInstance->getTechnique()->getOutputTargetPass()->
+      getPass(0)->setMaterial(this->dataPtr->distortionMaterial);
 
-  // create the distortion map texture
-  std::string texName = _camera->Name() + "_distortionTex";
-  Ogre::TexturePtr renderTexture =
-      Ogre::TextureManager::getSingleton().createManual(
-          texName,
-          "General",
-          Ogre::TEX_TYPE_2D,
-          texWidth,
-          texHeight,
-          0,
-          Ogre::PF_FLOAT32_RGB);
-  Ogre::HardwarePixelBufferSharedPtr pixelBuffer = renderTexture->getBuffer();
+  this->CalculateAndApplyDistortionScale();
 
-  // fill the distortion map
-  pixelBuffer->lock(Ogre::HardwareBuffer::HBL_NORMAL);
-  const Ogre::PixelBox &pixelBox = pixelBuffer->getCurrentLock();
-  float *pDest = static_cast<float *>(pixelBox.data);
-  for (unsigned int i = 0; i < texHeight; ++i)
+  this->dataPtr->lensDistortionInstance->setEnabled(true);
+}
+
+//////////////////////////////////////////////////
+void Distortion::CalculateAndApplyDistortionScale()
+{
+  if (!this->dataPtr->distortionMaterial.isNull())
   {
-    for (unsigned int j = 0; j < texWidth; ++j)
+    if (this->dataPtr->distortionCrop && this->dataPtr->k1 < 0)
     {
-      math::Vector2d vec =
-          this->dataPtr->distortionMap[i*texWidth+j];
-      *pDest++ = vec.x;
-      *pDest++ = vec.y;
-      *pDest++ = 0;
+      // I believe that if not used with a square distortion texture, this
+      // calculation will result in stretching of the final output image.
+      ignition::math::Vector2d boundA = this->Distort(
+          ignition::math::Vector2d(0, 0),
+          this->dataPtr->lensCenter,
+          this->dataPtr->k1, this->dataPtr->k2, this->dataPtr->k3,
+          this->dataPtr->p1, this->dataPtr->p2).Ign();
+      ignition::math::Vector2d boundB = this->Distort(
+          ignition::math::Vector2d(1, 1),
+          this->dataPtr->lensCenter,
+          this->dataPtr->k1, this->dataPtr->k2, this->dataPtr->k3,
+          this->dataPtr->p1, this->dataPtr->p2).Ign();
+      this->dataPtr->distortionScale = boundB - boundA;
+    }
+    else
+    {
+      this->dataPtr->distortionScale = ignition::math::Vector2d(1, 1);
     }
-  }
-  pixelBuffer->unlock();
-
-  // pass a scale param to the pixel shader for scaling the texture in order to
-  // remove black border.
-  Ogre::GpuProgramParametersSharedPtr params =
-      distMat->getTechnique(0)->getPass(0)->getFragmentProgramParameters();
-  params->setNamedConstant("scale",
-      Ogre::Vector3(this->dataPtr->distortionScale.x,
-      this->dataPtr->distortionScale.y, 1.0));
 
-  // set up the distortion map texture to be used in the pixel shader.
-  distMat->getTechnique(0)->getPass(0)->createTextureUnitState(texName, 1);
+    // Both invalid: scale very close to 0 OR negative scale
+    if (this->dataPtr->distortionScale.X() < 1e-7 ||
+        this->dataPtr->distortionScale.Y() < 1e-7)
+    {
+      gzerr << "Distortion model attempted to apply a scale parameter of ("
+            << this->dataPtr->distortionScale.X() << ", "
+            << this->dataPtr->distortionScale.Y() << ", which is invalid.\n";
+    }
+    else
+    {
+      Ogre::GpuProgramParametersSharedPtr params =
+          this->dataPtr->distortionMaterial->getTechnique(0)->getPass(0)->
+              getFragmentProgramParameters();
+      params->setNamedConstant("scale",
+          Ogre::Vector3(1.0/this->dataPtr->distortionScale.X(),
+          1.0/this->dataPtr->distortionScale.Y(), 1.0));
+    }
+  }
 }
 
 //////////////////////////////////////////////////
-math::Vector2d Distortion::Distort(const math::Vector2d &_in,
+math::Vector2d Distortion::Distort(
+    const math::Vector2d &_in,
     const math::Vector2d &_center, double _k1, double _k2, double _k3,
     double _p1, double _p2)
 {
   // apply Brown's distortion model, see
   // http://en.wikipedia.org/wiki/Distortion_%28optics%29#Software_correction
 
-  math::Vector2d normalized2d = _in - _center;
-  math::Vector3 normalized(normalized2d.x, normalized2d.y, 0);
-  double rSq = normalized.x * normalized.x
-      + normalized.y * normalized.y;
+  ignition::math::Vector2d normalized2d = (_in - _center).Ign();
+  ignition::math::Vector3d normalized(normalized2d.X(), normalized2d.Y(), 0);
+  double rSq = normalized.X() * normalized.X()
+      + normalized.Y() * normalized.Y();
 
   // radial
-  math::Vector3 dist = normalized * (1.0 +
+  ignition::math::Vector3d dist = normalized * (1.0 +
       _k1 * rSq +
       _k2 * rSq * rSq +
       _k3 * rSq * rSq * rSq);
 
   // tangential
-  dist.x += _p2 * (rSq + 2 * (normalized.x*normalized.x)) +
-      2 * _p1 * normalized.x * normalized.y;
-  dist.y += _p1 * (rSq + 2 * (normalized.y*normalized.y)) +
-      2 * _p2 * normalized.x * normalized.y;
-  math::Vector2d out = _center + math::Vector2d(dist.x, dist.y);
+  dist.X() += _p2 * (rSq + 2 * (normalized.X()*normalized.X())) +
+      2 * _p1 * normalized.X() * normalized.Y();
+  dist.Y() += _p1 * (rSq + 2 * (normalized.Y()*normalized.Y())) +
+      2 * _p2 * normalized.X() * normalized.Y();
+  ignition::math::Vector2d out =
+      _center.Ign() + ignition::math::Vector2d(dist.X(), dist.Y());
 
   return out;
 }
@@ -289,7 +359,12 @@ math::Vector2d Distortion::Distort(const math::Vector2d &_in,
 //////////////////////////////////////////////////
 void Distortion::SetCrop(bool _crop)
 {
-  this->dataPtr->distortionCrop = _crop;
+  // Only update the distortion scale if the crop value is going to flip.
+  if (this->dataPtr->distortionCrop != _crop)
+  {
+    this->dataPtr->distortionCrop = _crop;
+    this->CalculateAndApplyDistortionScale();
+  }
 }
 
 //////////////////////////////////////////////////
@@ -323,6 +398,12 @@ double Distortion::GetP2() const
 }
 
 //////////////////////////////////////////////////
+bool Distortion::Crop() const
+{
+  return this->dataPtr->distortionCrop;
+}
+
+//////////////////////////////////////////////////
 math::Vector2d Distortion::GetCenter() const
 {
   return this->dataPtr->lensCenter;
diff --git a/gazebo/rendering/Distortion.hh b/gazebo/rendering/Distortion.hh
index 872d90f..9e73842 100644
--- a/gazebo/rendering/Distortion.hh
+++ b/gazebo/rendering/Distortion.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 #define _GAZEBO_RENDERING_DISTORTION_HH_
 
 #include <sdf/sdf.hh>
+#include <ignition/math.hh>
 #include "gazebo/rendering/RenderTypes.hh"
 #include "gazebo/util/system.hh"
 
@@ -34,8 +35,7 @@ namespace gazebo
     /// \{
 
     /// \class Distortion Distortion.hh rendering/rendering.hh
-    /// \brief Camera distortion based on Brown's model. Note that the current
-    /// implementation only supports barrel distortion.
+    /// \brief Camera distortion based on the Brown-Conrady model.
     class GZ_RENDERING_VISIBLE Distortion
     {
       /// \brief Constructor
@@ -77,6 +77,11 @@ namespace gazebo
       /// \return Distortion coefficient p2.
       public: double GetP2() const;
 
+      /// \brief Get whether or not the camera is being cropped to
+      /// account for black borders created by barrel distortion.
+      /// \return Distortion crop value.
+      public: bool Crop() const;
+
       /// \brief Get the distortion center.
       /// \return Distortion center.
       public: math::Vector2d GetCenter() const;
@@ -90,9 +95,22 @@ namespace gazebo
       /// \param[in] _p1 Tangential distortion coefficient p1.
       /// \param[in] _p2 Tangential distortion coefficient p2.
       /// \return Distorted coordinate.
-      public: static math::Vector2d Distort(const math::Vector2d &_in,
-        const math::Vector2d &_center, double _k1, double _k2, double _k3,
-        double _p1, double _p2);
+      public: static math::Vector2d Distort(
+        const math::Vector2d &_in,
+        const math::Vector2d &_center, double _k1, double _k2,
+        double _k3, double _p1, double _p2);
+
+      /// \brief get the distortion map value.
+      /// \return the distortion map value at the specified index,
+      /// or (-1, -1) if the index
+      /// is out of bounds.
+      protected: ignition::math::Vector2d
+        DistortionMapValueClamped(const int x, const int y) const;
+
+      /// \brief calculate the correct scale factor to "zoom" the render,
+      /// cutting off black borders caused by distortion (only if the crop
+      /// flag has been set).
+      protected: void CalculateAndApplyDistortionScale();
 
       /// \brief Distortion SDF values.
       protected: sdf::ElementPtr sdf;
diff --git a/gazebo/rendering/DistortionPrivate.hh b/gazebo/rendering/DistortionPrivate.hh
index fb3c53d..ec86141 100644
--- a/gazebo/rendering/DistortionPrivate.hh
+++ b/gazebo/rendering/DistortionPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -44,10 +44,10 @@ namespace gazebo
       public: double p2;
 
       /// \brief Lens center used for distortion
-      public: math::Vector2d lensCenter;
+      public: ignition::math::Vector2d lensCenter;
 
       /// \brief Scale applied to distorted image.
-      public: math::Vector2d distortionScale;
+      public: ignition::math::Vector2d distortionScale;
 
       /// \brief True if the distorted image will be cropped to remove the
       /// black pixels at the corners of the image.
@@ -56,11 +56,20 @@ namespace gazebo
       /// \brief Lens distortion compositor
       public: Ogre::CompositorInstance *lensDistortionInstance;
 
+      /// \brief Ogre Material that contains the distortion shader
+      public: Ogre::MaterialPtr distortionMaterial;
+
       /// \brief Connection for the pre render event.
       public: event::ConnectionPtr preRenderConnection;
 
       /// \brief Mapping of distorted to undistorted normalized pixels
-      public: std::vector<math::Vector2d> distortionMap;
+      public: std::vector<ignition::math::Vector2d> distortionMap;
+
+      /// \brief Width of distortion texture map
+      public: unsigned int distortionTexWidth;
+
+      /// \brief Height of distortion texture map
+      public: unsigned int distortionTexHeight;
     };
   }
 }
diff --git a/gazebo/rendering/Distortion_TEST.cc b/gazebo/rendering/Distortion_TEST.cc
new file mode 100644
index 0000000..313603a
--- /dev/null
+++ b/gazebo/rendering/Distortion_TEST.cc
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#include <gtest/gtest.h>
+#include <string>
+#include <stdlib.h>
+
+#include "gazebo/rendering/RenderingIface.hh"
+#include "gazebo/test/ServerFixture.hh"
+#include "gazebo/rendering/Distortion.hh"
+#include "gazebo/rendering/Camera.hh"
+
+#include "test/util.hh"
+
+
+using namespace gazebo;
+
+class Distortion_TEST : public RenderingFixture { };
+
+sdf::ElementPtr CreateDistortionSDFElement(double _k1, double _k2,
+    double _k3, double _p1, double _p2, double _cx, double _cy)
+{
+  std::ostringstream newModelStr;
+
+  newModelStr << "<sdf version='" << SDF_VERSION << "'>"
+    << "<model name ='distorted_cam'>"
+    << "  <static>true</static>"
+    << "  <pose>0 0 0 0 0 0</pose>"
+    << "  <link name ='body'>"
+    << "    <sensor name ='distorted_cam' type ='camera'>"
+    << "      <always_on>1</always_on>"
+    << "      <update_rate>30</update_rate>"
+    << "      <visualize>true</visualize>"
+    << "      <camera>"
+    << "        <horizontal_fov>0.78539816339744828</horizontal_fov>"
+    << "        <image>"
+    << "          <width>100</width>"
+    << "          <height>100</height>"
+    << "          <format>R8G8B8</format>"
+    << "        </image>"
+    << "        <clip>"
+    << "          <near>0.1</near><far>100</far>"
+    << "        </clip>"
+    << "        <distortion>"
+    << "          <k1>" << _k1 << "</k1>"
+    << "          <k2>" << _k2 << "</k2>"
+    << "          <k3>" << _k3 << "</k3>"
+    << "          <p1>" << _p1 << "</p1>"
+    << "          <p2>" << _p2 << "</p2>"
+    << "          <center>" << _cx << " " << _cy << "</center>"
+    << "        </distortion>"
+    << "      </camera>"
+    << "    </sensor>"
+    << "  </link>"
+    << "</model>"
+    << "</sdf>";
+
+  sdf::SDFPtr cameraSDF(new sdf::SDF);
+  cameraSDF->SetFromString(newModelStr.str());
+
+  sdf::ElementPtr elem = cameraSDF->Root()
+    ->GetElement("model")
+    ->GetElement("link")
+    ->GetElement("sensor")
+    ->GetElement("camera")
+    ->GetElement("distortion");
+  return elem;
+}
+
+/////////////////////////////////////////////////
+TEST_F(Distortion_TEST, DistortionModelBasics)
+{
+  Load("worlds/empty.world");
+
+  rendering::Distortion distortion;
+
+  // check the default crop behavior of the different distortion models
+  // undistorted
+  distortion.Load(CreateDistortionSDFElement(0, 0, 0, 0, 0, 0.5, 0.5));
+  EXPECT_EQ(distortion.Crop(), false);
+
+  // barrel distortion
+  distortion.Load(
+    CreateDistortionSDFElement(-0.1, -0.05, -0.01, 0, 0, 0.5, 0.5));
+  EXPECT_EQ(distortion.Crop(), true);
+
+  // pincushion distortion
+  distortion.Load(CreateDistortionSDFElement(0.1, 0.05, 0.01, 0, 0, 0.5, 0.5));
+  EXPECT_EQ(distortion.Crop(), false);
+
+  // getters and setters
+  distortion.SetCrop(false);
+  EXPECT_EQ(distortion.Crop(), false);
+  distortion.SetCrop(true);
+  EXPECT_EQ(distortion.Crop(), true);
+  EXPECT_DOUBLE_EQ(distortion.GetK1(), 0.1);
+  EXPECT_DOUBLE_EQ(distortion.GetK2(), 0.05);
+  EXPECT_DOUBLE_EQ(distortion.GetK3(), 0.01);
+  EXPECT_DOUBLE_EQ(distortion.GetP1(), 0.0);
+  EXPECT_DOUBLE_EQ(distortion.GetP2(), 0.0);
+  EXPECT_DOUBLE_EQ(distortion.GetCenter().Ign().X(), 0.5);
+  EXPECT_DOUBLE_EQ(distortion.GetCenter().Ign().Y(), 0.5);
+}
+
+int main(int argc, char **argv)
+{
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/gazebo/rendering/DynamicLines.cc b/gazebo/rendering/DynamicLines.cc
index 7f189a7..fef8e54 100644
--- a/gazebo/rendering/DynamicLines.cc
+++ b/gazebo/rendering/DynamicLines.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/DynamicLines.hh b/gazebo/rendering/DynamicLines.hh
index 5cf197c..eab8e97 100644
--- a/gazebo/rendering/DynamicLines.hh
+++ b/gazebo/rendering/DynamicLines.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/DynamicRenderable.cc b/gazebo/rendering/DynamicRenderable.cc
index cd60d73..fce7584 100644
--- a/gazebo/rendering/DynamicRenderable.cc
+++ b/gazebo/rendering/DynamicRenderable.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/DynamicRenderable.hh b/gazebo/rendering/DynamicRenderable.hh
index 8a5d2d9..0c10994 100644
--- a/gazebo/rendering/DynamicRenderable.hh
+++ b/gazebo/rendering/DynamicRenderable.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/FPSViewController.cc b/gazebo/rendering/FPSViewController.cc
index f62fb28..3441a12 100644
--- a/gazebo/rendering/FPSViewController.cc
+++ b/gazebo/rendering/FPSViewController.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/FPSViewController.hh b/gazebo/rendering/FPSViewController.hh
index 1059119..2c438d8 100644
--- a/gazebo/rendering/FPSViewController.hh
+++ b/gazebo/rendering/FPSViewController.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/GpuLaser.cc b/gazebo/rendering/GpuLaser.cc
index b925ee6..7591bd5 100644
--- a/gazebo/rendering/GpuLaser.cc
+++ b/gazebo/rendering/GpuLaser.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/GpuLaser.hh b/gazebo/rendering/GpuLaser.hh
index 043995c..5a7d85a 100644
--- a/gazebo/rendering/GpuLaser.hh
+++ b/gazebo/rendering/GpuLaser.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/GpuLaserPrivate.hh b/gazebo/rendering/GpuLaserPrivate.hh
index c5dd4bc..f6d54cf 100644
--- a/gazebo/rendering/GpuLaserPrivate.hh
+++ b/gazebo/rendering/GpuLaserPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/GpuLaser_TEST.cc b/gazebo/rendering/GpuLaser_TEST.cc
index cf67b1c..3fda161 100644
--- a/gazebo/rendering/GpuLaser_TEST.cc
+++ b/gazebo/rendering/GpuLaser_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Grid.cc b/gazebo/rendering/Grid.cc
index a99eb9f..42e624b 100644
--- a/gazebo/rendering/Grid.cc
+++ b/gazebo/rendering/Grid.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Grid.hh b/gazebo/rendering/Grid.hh
index 08c7ccb..f58423c 100644
--- a/gazebo/rendering/Grid.hh
+++ b/gazebo/rendering/Grid.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Heightmap.cc b/gazebo/rendering/Heightmap.cc
index 7a5edd1..a468b66 100644
--- a/gazebo/rendering/Heightmap.cc
+++ b/gazebo/rendering/Heightmap.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -50,7 +50,6 @@
 using namespace gazebo;
 using namespace rendering;
 
-const unsigned int HeightmapPrivate::numTerrainSubdivisions = 16;
 const double HeightmapPrivate::loadRadiusFactor = 1.0;
 const double HeightmapPrivate::holdRadiusFactor = 1.15;
 const boost::filesystem::path HeightmapPrivate::pagingDirname = "paging";
@@ -159,7 +158,7 @@ void Heightmap::LoadFromMsg(ConstVisualPtr &_msg)
   if (_msg->geometry().heightmap().has_sampling())
   {
     unsigned int s = _msg->geometry().heightmap().sampling();
-    if (s == 0u || s & (s - 1u))
+    if (!ignition::math::isPowerOfTwo(s))
     {
       gzerr << "Heightmap sampling value must be a power of 2. "
             << "The default value of 2 will be used instead." << std::endl;
@@ -318,7 +317,7 @@ void Heightmap::UpdateTerrainHash(const std::string &_hash,
 }
 
 //////////////////////////////////////////////////
-bool Heightmap::PrepareTerrainPaging(
+bool Heightmap::PrepareTerrain(
     const boost::filesystem::path &_terrainDirPath)
 {
   std::string heightmapHash;
@@ -394,6 +393,11 @@ void Heightmap::Load()
   this->dataPtr->terrainGlobals->setUseVertexCompressionWhenAvailable(false);
 #endif
 
+  // There is an issue with OGRE terrain LOD if heights are not relative to 0.
+  // So we move the heightmap so that its min elevation = 0 before feeding to
+  // ogre. It is later translated back by the setOrigin call.
+  double minElevation = 0.0;
+
   // try loading heightmap data locally
   if (!this->dataPtr->filename.empty())
   {
@@ -417,6 +421,7 @@ void Heightmap::Load()
               demData->GetWorldWidth(), demData->GetWorldHeight(),
               heightmapSizeZ);
         }
+        minElevation = demData->GetMinElevation();
       }
 #endif
 
@@ -445,7 +450,7 @@ void Heightmap::Load()
         for (unsigned int x = 0; x < vertSize; ++x)
         {
           int index = (vertSize - y - 1) * vertSize + x;
-          this->dataPtr->heights.push_back(lookup[index]);
+          this->dataPtr->heights.push_back(lookup[index] - minElevation);
         }
       }
 
@@ -487,6 +492,13 @@ void Heightmap::Load()
     return;
   }
 
+  if (!ignition::math::isPowerOfTwo(this->dataPtr->dataSize - 1))
+  {
+    gzerr << "Heightmap image size must be square, with a size of 2^n+1"
+        << std::endl;
+    return;
+  }
+
   boost::filesystem::path imgPath;
   boost::filesystem::path terrainName;
   boost::filesystem::path terrainDirPath;
@@ -510,18 +522,31 @@ void Heightmap::Load()
     }
   }
 
-  if (!ignition::math::isPowerOfTwo(this->dataPtr->dataSize - 1))
-    gzthrow("Heightmap image size must be square, with a size of 2^n+1\n");
-
   // If the paging is enabled we modify the number of subterrains
   if (this->dataPtr->useTerrainPaging)
   {
+    this->dataPtr->splitTerrain = true;
     nTerrains = this->dataPtr->numTerrainSubdivisions;
     prefix = terrainDirPath / "gazebo_terrain_cache";
   }
   else
   {
-    prefix = terrainDirPath / "gazebo_terrain_nocache";
+    // Note: ran into problems with LOD height glitches if heightmap size is
+    // larger than 4096 so split it into chunks
+    // Note: dataSize should be 2^n + 1
+    if (this->dataPtr->maxPixelError > 0 && this->dataPtr->dataSize > 4096u)
+    {
+      this->dataPtr->splitTerrain = true;
+      if (this->dataPtr->dataSize == 4097u)
+        this->dataPtr->numTerrainSubdivisions = 4u;
+      else
+        this->dataPtr->numTerrainSubdivisions = 16u;
+     nTerrains = this->dataPtr->numTerrainSubdivisions;
+
+      gzmsg << "Large heightmap used with LOD. It will be subdivided into " <<
+          this->dataPtr->numTerrainSubdivisions << " terrains." << std::endl;
+    }
+    prefix = terrainDirPath / "gazebo_terrain";
   }
 
   double sqrtN = sqrt(nTerrains);
@@ -546,14 +571,11 @@ void Heightmap::Load()
       0.5 * this->dataPtr->terrainSize.X() / sqrtN,
       orig.y -0.5 * this->dataPtr->terrainSize.X() +
       0.5 * this->dataPtr->terrainSize.X() / sqrtN,
-      orig.z);
+      orig.z + minElevation);
 
   this->dataPtr->terrainGroup->setOrigin(Conversions::Convert(origin));
   this->ConfigureTerrainDefaults();
 
-  // use gazebo shaders
-  this->CreateMaterial();
-
   if (!this->dataPtr->heights.empty())
   {
     UserCameraPtr userCam = this->dataPtr->scene->GetUserCamera(0);
@@ -579,11 +601,10 @@ void Heightmap::Load()
     }
   }
 
+  this->dataPtr->terrainHashChanged = this->PrepareTerrain(terrainDirPath);
+
   if (this->dataPtr->useTerrainPaging)
   {
-    this->dataPtr->terrainHashChanged =
-        this->PrepareTerrainPaging(terrainDirPath);
-
     if (this->dataPtr->terrainHashChanged)
     {
       // Split the terrain. Every subterrain will be saved on disk and paged
@@ -618,13 +639,23 @@ void Heightmap::Load()
         0, 0, sqrtN - 1, sqrtN - 1);
   }
 
+  gzmsg << "Loading heightmap: " << terrainName.string() << std::endl;
+  common::Time time = common::Time::GetWallTime();
+
   for (int y = 0; y <= sqrtN - 1; ++y)
     for (int x = 0; x <= sqrtN - 1; ++x)
       this->DefineTerrain(x, y);
 
+  // use gazebo shaders
+  this->CreateMaterial();
+
   // Sync load since we want everything in place when we start
   this->dataPtr->terrainGroup->loadAllTerrains(true);
 
+  gzmsg << "Heightmap loaded. Process took: "
+        <<  (common::Time::GetWallTime() - time).Double()
+        << " seconds" << std::endl;
+
   // Calculate blend maps
   if (this->dataPtr->terrainsImported)
   {
@@ -635,17 +666,41 @@ void Heightmap::Load()
       Ogre::Terrain *t = ti.getNext()->instance;
       this->InitBlendMaps(t);
     }
-
-    // saving an ogre terrain dat file can take quite some time for large dems.
-    // so save only if doing terrain paging for now
-    if (this->dataPtr->terrainHashChanged && this->dataPtr->useTerrainPaging)
-    {
-      // Save all subterrains using files.
-      this->dataPtr->terrainGroup->saveAllTerrains(true);
-    }
   }
 
   this->dataPtr->terrainGroup->freeTemporaryResources();
+
+  // save the terrain once its loaded
+  if (this->dataPtr->terrainsImported)
+  {
+    this->dataPtr->connections.push_back(
+        event::Events::ConnectPreRender(
+        std::bind(&Heightmap::SaveHeightmap, this)));
+  }
+}
+
+///////////////////////////////////////////////////
+void Heightmap::SaveHeightmap()
+{
+  // Calculate blend maps
+  if (this->dataPtr->terrainsImported &&
+      !this->dataPtr->terrainGroup->isDerivedDataUpdateInProgress())
+  {
+    // saving an ogre terrain data file can take quite some time for large dems.
+    gzmsg << "Saving heightmap cache data to " << (this->dataPtr->gzPagingDir /
+        boost::filesystem::path(this->dataPtr->filename).stem()).string()
+        << std::endl;
+    common::Time time = common::Time::GetWallTime();
+
+    this->dataPtr->terrainGroup->saveAllTerrains(true);
+
+    gzmsg << "Heightmap cache data saved. Process took: "
+          << (common::Time::GetWallTime() - time).Double() << " seconds."
+          << std::endl;
+
+    this->dataPtr->terrainsImported = false;
+    this->dataPtr->connections.clear();
+  }
 }
 
 ///////////////////////////////////////////////////
@@ -656,7 +711,7 @@ void Heightmap::ConfigureTerrainDefaults()
   // MaxPixelError: Decides how precise our terrain is going to be.
   // A lower number will mean a more accurate terrain, at the cost of
   // performance (because of more vertices)
-  this->dataPtr->terrainGlobals->setMaxPixelError(0);
+  this->dataPtr->terrainGlobals->setMaxPixelError(this->dataPtr->maxPixelError);
 
   // CompositeMapDistance: decides how far the Ogre terrain will render
   // the lightmapped terrain.
@@ -738,27 +793,32 @@ void Heightmap::ConfigureTerrainDefaults()
 /////////////////////////////////////////////////
 void Heightmap::SetWireframe(const bool _show)
 {
-  Ogre::Terrain *terrain = this->dataPtr->terrainGroup->getTerrain(0, 0);
-  GZ_ASSERT(terrain != nullptr, "Unable to get a valid terrain pointer");
-
-  Ogre::Material *material = terrain->getMaterial().get();
+  Ogre::TerrainGroup::TerrainIterator ti =
+    this->dataPtr->terrainGroup->getTerrainIterator();
+  while (ti.hasMoreElements())
+  {
+    Ogre::Terrain *terrain = ti.getNext()->instance;
+    GZ_ASSERT(terrain != nullptr, "Unable to get a valid terrain pointer");
 
-  unsigned int techniqueCount, passCount;
-  Ogre::Technique *technique;
-  Ogre::Pass *pass;
+    Ogre::Material *material = terrain->getMaterial().get();
 
-  for (techniqueCount = 0; techniqueCount < material->getNumTechniques();
-      techniqueCount++)
-  {
-    technique = material->getTechnique(techniqueCount);
+    unsigned int techniqueCount, passCount;
+    Ogre::Technique *technique;
+    Ogre::Pass *pass;
 
-    for (passCount = 0; passCount < technique->getNumPasses(); passCount++)
+    for (techniqueCount = 0; techniqueCount < material->getNumTechniques();
+         ++techniqueCount)
     {
-      pass = technique->getPass(passCount);
-      if (_show)
-        pass->setPolygonMode(Ogre::PM_WIREFRAME);
-      else
-        pass->setPolygonMode(Ogre::PM_SOLID);
+      technique = material->getTechnique(techniqueCount);
+
+      for (passCount = 0; passCount < technique->getNumPasses(); ++passCount)
+      {
+        pass = technique->getPass(passCount);
+        if (_show)
+          pass->setPolygonMode(Ogre::PM_WIREFRAME);
+        else
+          pass->setPolygonMode(Ogre::PM_SOLID);
+      }
     }
   }
 }
@@ -768,23 +828,38 @@ void Heightmap::DefineTerrain(const int _x, const int _y)
 {
   Ogre::String filename = this->dataPtr->terrainGroup->generateFilename(_x, _y);
 
-  if (!this->dataPtr->useTerrainPaging)
-  {
-    this->dataPtr->terrainGroup->defineTerrain(_x, _y,
-        &this->dataPtr->heights[0]);
-  }
-  else if ((Ogre::ResourceGroupManager::getSingleton().resourceExists(
-             this->dataPtr->terrainGroup->getResourceGroup(), filename)) &&
-          (!this->dataPtr->terrainHashChanged))
+  bool resourceExists =
+      Ogre::ResourceGroupManager::getSingleton().resourceExists(
+      this->dataPtr->terrainGroup->getResourceGroup(), filename);
+
+  if (resourceExists && !this->dataPtr->terrainHashChanged)
   {
+    gzmsg << "Loading heightmap cache data: " << filename << std::endl;
+
     this->dataPtr->terrainGroup->defineTerrain(_x, _y);
     this->dataPtr->terrainsImported = false;
   }
   else
   {
+    if (this->dataPtr->splitTerrain)
+    {
+      // generate the subterrains if needed
+      if (this->dataPtr->subTerrains.empty())
+      {
+        this->SplitHeights(this->dataPtr->heights,
+            this->dataPtr->numTerrainSubdivisions,
+            this->dataPtr->subTerrains);
+      }
+
       this->dataPtr->terrainGroup->defineTerrain(_x, _y,
           &this->dataPtr->subTerrains[this->dataPtr->terrainIdx][0]);
       ++this->dataPtr->terrainIdx;
+    }
+    else
+    {
+      this->dataPtr->terrainGroup->defineTerrain(_x, _y,
+          &this->dataPtr->heights[0]);
+    }
   }
 }
 
@@ -1155,6 +1230,23 @@ void Heightmap::SetupShadows(bool _enableShadows)
 }
 
 /////////////////////////////////////////////////
+void Heightmap::SetLOD(const unsigned int _value)
+{
+  this->dataPtr->maxPixelError = _value;
+  if (this->dataPtr->terrainGlobals)
+  {
+    this->dataPtr->terrainGlobals->setMaxPixelError(
+        this->dataPtr->maxPixelError);
+  }
+}
+
+/////////////////////////////////////////////////
+unsigned int Heightmap::LOD() const
+{
+  return static_cast<unsigned int>(this->dataPtr->maxPixelError);
+}
+
+/////////////////////////////////////////////////
 void Heightmap::SetMaterial(const std::string &_materialName)
 {
   this->dataPtr->materialName = _materialName;
@@ -1177,6 +1269,8 @@ void Heightmap::CreateMaterial()
     Ogre::TerrainMaterialGeneratorPtr terrainMaterialGenerator;
     TerrainMaterial *terrainMaterial = OGRE_NEW TerrainMaterial(
         this->dataPtr->materialName);
+    if (this->dataPtr->splitTerrain)
+      terrainMaterial->setGridSize(this->dataPtr->numTerrainSubdivisions);
     terrainMaterialGenerator.bind(terrainMaterial);
     this->dataPtr->terrainGlobals->setDefaultMaterialGenerator(
         terrainMaterialGenerator);
@@ -2289,8 +2383,8 @@ GzTerrainMatGen::SM2Profile::ShaderHelperGLSL::generateFpDynamicShadowsParams(
 
   for (Ogre::uint i = 0; i < numTextures; ++i)
   {
-    _outStream <<
-      "varying vec4 lightSpacePos" << i << ";\n" <<
+    _outStream << fpInStr <<
+      " vec4 lightSpacePos" << i << ";\n" <<
       "uniform sampler2D shadowMap" << i << ";\n";
 
     *_sampler = *_sampler + 1;
@@ -3162,6 +3256,18 @@ void TerrainMaterial::setMaterialByName(const std::string &_materialname)
 }
 
 //////////////////////////////////////////////////
+void TerrainMaterial::setGridSize(const unsigned int _size)
+{
+  if (_size == 0)
+  {
+    gzerr << "Unable to set a grid size of zero" << std::endl;
+    return;
+  }
+
+  this->gridSize = _size;
+}
+
+//////////////////////////////////////////////////
 TerrainMaterial::Profile::Profile(Ogre::TerrainMaterialGenerator *_parent,
     const Ogre::String &_name, const Ogre::String &_desc)
     : Ogre::TerrainMaterialGenerator::Profile(_parent, _name, _desc)
@@ -3190,9 +3296,67 @@ Ogre::MaterialPtr TerrainMaterial::Profile::generate(
   if (!mat.isNull())
       Ogre::MaterialManager::getSingleton().remove(matName);
 
+  TerrainMaterial *parent =
+      dynamic_cast<TerrainMaterial *>(getParent());
+
   // Set Ogre material
-  mat = Ogre::MaterialManager::getSingleton().getByName(
-      (dynamic_cast<TerrainMaterial *>(getParent()))->materialName);
+  mat = Ogre::MaterialManager::getSingleton().getByName(parent->materialName);
+
+  // clone the material
+  mat = mat->clone(matName);
+  if (!mat->isLoaded())
+    mat->load();
+
+  // size of grid in one direction
+  unsigned int gridWidth =
+      static_cast<unsigned int>(std::sqrt(parent->gridSize));
+  // factor to be applied to uv transformation: scale and translation
+  double factor = 1.0 / gridWidth;
+  // static counter to keep track which terrain slot we are currently in
+  static int gridCount = 0;
+
+  for (unsigned int i = 0; i < mat->getNumTechniques(); ++i)
+  {
+    Ogre::Technique *tech = mat->getTechnique(i);
+    for (unsigned int j = 0; j < tech->getNumPasses(); ++j)
+    {
+      Ogre::Pass *pass = tech->getPass(j);
+
+      // check if there is a fragment shader
+      if (!pass->hasFragmentProgram())
+        continue;
+
+      Ogre::GpuProgramParametersSharedPtr params =
+          pass->getFragmentProgramParameters();
+      if (params.isNull())
+        continue;
+
+      // set up shadow split points in a way that is consistent with the
+      // default ogre terrain material generator
+      Ogre::PSSMShadowCameraSetup* pssm =
+          RTShaderSystem::Instance()->GetPSSMShadowCameraSetup();
+      unsigned int numTextures =
+          static_cast<unsigned int>(pssm->getSplitCount());
+      Ogre::Vector4 splitPoints;
+      const Ogre::PSSMShadowCameraSetup::SplitPointList& splitPointList =
+          pssm->getSplitPoints();
+      // populate from split point 1 not 0
+      for (unsigned int t = 1u; t < numTextures; ++t)
+        splitPoints[t-1] = splitPointList[t];
+      params->setNamedConstant("pssmSplitPoints", splitPoints);
+
+      // set up uv transform
+      double xTrans = static_cast<int>(gridCount / gridWidth) * factor;
+      double yTrans = (gridWidth - 1 - (gridCount % gridWidth)) * factor;
+      // explicitly set all matrix elements to avoid uninitialized values
+      Ogre::Matrix4 uvTransform(factor, 0.0, 0.0, xTrans,
+                                0.0, factor, 0.0, yTrans,
+                                0.0, 0.0, 1.0, 0.0,
+                                0.0, 0.0, 0.0, 1.0);
+      params->setNamedConstant("uvTransform", uvTransform);
+    }
+  }
+  gridCount++;
 
   // Get default pass
   Ogre::Pass *p = mat->getTechnique(0)->getPass(0);
@@ -3202,7 +3366,7 @@ Ogre::MaterialPtr TerrainMaterial::Profile::generate(
   Ogre::TextureUnitState *tu = p->createTextureUnitState(matName+"/nm");
 
   Ogre::TexturePtr nmtx = _terrain->getTerrainNormalMap();
-      tu->_setTexturePtr(nmtx);
+  tu->_setTexturePtr(nmtx);
 
   return mat;
 }
diff --git a/gazebo/rendering/Heightmap.hh b/gazebo/rendering/Heightmap.hh
index c24e09a..2193e9c 100644
--- a/gazebo/rendering/Heightmap.hh
+++ b/gazebo/rendering/Heightmap.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -293,6 +293,19 @@ namespace gazebo
       /// \return Custom material name.
       public: std::string MaterialName() const;
 
+      /// \brief Set the Level Of Detail (LOD) for the heightmap.
+      /// \param[in] _value A render-engine specific value used to compute LOD.
+      /// In Ogre, this is the max pixel error that should be allowed when
+      /// rendering the heightmap. Default is 0, i.e. LOD is disabled.
+      /// Note: enabling LOD means that the rendering engine will be allowed to
+      /// morph mesh vertices, resulting in a simplified visual that may be
+      /// different from the collision.
+      public: void SetLOD(const unsigned int _value);
+
+      /// \brief Get the heightmap Level of Detail (LOD) value
+      /// \return Value used to compute LOD.
+      public: unsigned int LOD() const;
+
       /// \brief Create terrain material generator. There are two types:
       /// custom material generator that support user material scripts,
       /// and a default material generator that uses our own glsl shader
@@ -336,14 +349,16 @@ namespace gazebo
       private: void UpdateTerrainHash(const std::string &_hash,
           const boost::filesystem::path &_terrainDir);
 
-      /// \brief It checks if the terrain was previously loaded. In negative
-      /// case, it splits the original terrain into pieces and creates a hash
-      /// file.
+      /// \brief Checks if the terrain was previously loaded by comparing its
+      /// hash against the one stored in the terrain directory
       /// \param[in] _terrainDirPath Path to the directory containing the
-      /// terrain pages and hash.
+      /// terrain files and hash.
       /// \return True if the terrain requires to regenerate the terrain files.
-      private: bool PrepareTerrainPaging(
-        const boost::filesystem::path &_terrainDirPath);
+      private: bool PrepareTerrain(
+          const boost::filesystem::path &_terrainDirPath);
+
+      /// \brief Save the heightmap tiles to disk
+      private: void SaveHeightmap();
 
       /// \internal
       /// \brief Pointer to private data.
diff --git a/gazebo/rendering/HeightmapPrivate.hh b/gazebo/rendering/HeightmapPrivate.hh
index 03d6226..6aaa586 100644
--- a/gazebo/rendering/HeightmapPrivate.hh
+++ b/gazebo/rendering/HeightmapPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -247,6 +247,12 @@ namespace gazebo
       /// \param[in] _materialName Name of material
       public: void setMaterialByName(const std::string &_materialname);
 
+      /// \brief Set the grid size of the terrain, i.e. Number of terrain slots.
+      /// This will be used to determined how the texture will be mapped to the
+      /// terrain
+      /// \param[in] _size Grid size of the terrain
+      public: void setGridSize(const unsigned int _size);
+
       /// \brief Subclassed to provide profile-specific material generation
       class Profile : public Ogre::TerrainMaterialGenerator::Profile
       {
@@ -290,6 +296,9 @@ namespace gazebo
 
       /// \brief Name of material
       protected: std::string materialName;
+
+      /// \brief Size of grid
+      protected: unsigned int gridSize = 1u;
     };
 
 
@@ -331,9 +340,6 @@ namespace gazebo
     /// \brief Private data for the Heightmap class
     class HeightmapPrivate
     {
-      /// \brief Number of pieces in which a terrain is subdivided for paging.
-      public: static const unsigned int numTerrainSubdivisions;
-
       /// \brief The terrain pages are loaded if the distance from the camera is
       /// within the loadRadius. See Ogre::TerrainPaging::createWorldSection().
       /// LoadRadiusFactor is a multiplier applied to the terrain size to create
@@ -439,6 +445,20 @@ namespace gazebo
 
       /// \brief Number of samples per heightmap datum
       public: unsigned int sampling = 2u;
+
+      /// \brief Max pixel error allowed for rendering the heightmap. This
+      /// affects the transitions between LOD levels.
+      public: double maxPixelError = 0.0;
+
+      /// \brief True if the terrain need to be split into subterrains
+      public: bool splitTerrain = false;
+
+      /// \brief Number of pieces in which a terrain is subdivided. Used
+      /// for paging and also when heighmap is too large for LOD to work.
+      public: unsigned int numTerrainSubdivisions = 16u;
+
+      /// \brief Event connections
+      public: std::vector<event::ConnectionPtr> connections;
     };
   }
 }
diff --git a/gazebo/rendering/Heightmap_TEST.cc b/gazebo/rendering/Heightmap_TEST.cc
index e572386..fc3563a 100644
--- a/gazebo/rendering/Heightmap_TEST.cc
+++ b/gazebo/rendering/Heightmap_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -92,6 +92,28 @@ TEST_F(Heightmap_TEST, splitTerrain)
   }
 }
 
+/////////////////////////////////////////////////
+/// \brief Test terrain's level of detail API
+TEST_F(Heightmap_TEST, LOD)
+{
+  Load("worlds/empty.world");
+
+  gazebo::rendering::ScenePtr scene = gazebo::rendering::get_scene("default");
+  ASSERT_TRUE(scene != nullptr);
+
+  gazebo::rendering::Heightmap *heightmap =
+      new gazebo::rendering::Heightmap(scene);
+
+  // test basic API
+  EXPECT_EQ(heightmap->LOD(), 0u);
+  heightmap->SetLOD(3u);
+  EXPECT_EQ(heightmap->LOD(), 3u);
+
+  // try 0 LOD
+  heightmap->SetLOD(0u);
+  EXPECT_EQ(heightmap->LOD(), 0u);
+}
+
 #ifdef HAVE_GDAL
 /////////////////////////////////////////////////
 /// \brief Test Loading a terrain from a DEM file
@@ -137,7 +159,7 @@ TEST_F(Heightmap_TEST, LoadDEM)
   // and the actual elevation data (dem.GetElevation)
   common::Dem dem;
   EXPECT_EQ(dem.Load(path.string()), 0);
-  EXPECT_DOUBLE_EQ(heightmap->Height(0, 0),
+  EXPECT_FLOAT_EQ(heightmap->Height(0, 0),
       dem.GetElevation(dem.GetWidth()/2, dem.GetHeight()/2));
 
   delete heightmap;
diff --git a/gazebo/rendering/InertiaVisual.cc b/gazebo/rendering/InertiaVisual.cc
index 2666405..c646fad 100644
--- a/gazebo/rendering/InertiaVisual.cc
+++ b/gazebo/rendering/InertiaVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/InertiaVisual.hh b/gazebo/rendering/InertiaVisual.hh
index c841a0c..dcc6ef1 100644
--- a/gazebo/rendering/InertiaVisual.hh
+++ b/gazebo/rendering/InertiaVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/InertiaVisualPrivate.hh b/gazebo/rendering/InertiaVisualPrivate.hh
index 2ecb1bd..6ed3db1 100644
--- a/gazebo/rendering/InertiaVisualPrivate.hh
+++ b/gazebo/rendering/InertiaVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/JointVisual.cc b/gazebo/rendering/JointVisual.cc
index 3e046bc..c497b32 100644
--- a/gazebo/rendering/JointVisual.cc
+++ b/gazebo/rendering/JointVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/JointVisual.hh b/gazebo/rendering/JointVisual.hh
index ba66d35..082ad1d 100644
--- a/gazebo/rendering/JointVisual.hh
+++ b/gazebo/rendering/JointVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/JointVisualPrivate.hh b/gazebo/rendering/JointVisualPrivate.hh
index 0a1e044..c47ec82 100644
--- a/gazebo/rendering/JointVisualPrivate.hh
+++ b/gazebo/rendering/JointVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/JointVisual_TEST.cc b/gazebo/rendering/JointVisual_TEST.cc
index a4c5dca..006c70f 100644
--- a/gazebo/rendering/JointVisual_TEST.cc
+++ b/gazebo/rendering/JointVisual_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LaserVisual.cc b/gazebo/rendering/LaserVisual.cc
index 698c3bd..887598a 100644
--- a/gazebo/rendering/LaserVisual.cc
+++ b/gazebo/rendering/LaserVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -165,6 +165,11 @@ void LaserVisual::Update()
     {
       // Calculate the range of the ray
       double r = dPtr->laserMsg->scan().ranges(j*count + i);
+      if (r < minRange)
+      {
+        // Less than min range, don't display a ray
+        r = minRange;
+      }
       bool inf = std::isinf(r);
 
       ignition::math::Quaterniond ray(
diff --git a/gazebo/rendering/LaserVisual.hh b/gazebo/rendering/LaserVisual.hh
index 7ec4102..5dc334e 100644
--- a/gazebo/rendering/LaserVisual.hh
+++ b/gazebo/rendering/LaserVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LaserVisualPrivate.hh b/gazebo/rendering/LaserVisualPrivate.hh
index 10ef415..51cd097 100644
--- a/gazebo/rendering/LaserVisualPrivate.hh
+++ b/gazebo/rendering/LaserVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Light.cc b/gazebo/rendering/Light.cc
index 7987b57..b037b51 100644
--- a/gazebo/rendering/Light.cc
+++ b/gazebo/rendering/Light.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Light.hh b/gazebo/rendering/Light.hh
index 6422c41..1d2b425 100644
--- a/gazebo/rendering/Light.hh
+++ b/gazebo/rendering/Light.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LightPrivate.hh b/gazebo/rendering/LightPrivate.hh
index bd49426..e18d439 100644
--- a/gazebo/rendering/LightPrivate.hh
+++ b/gazebo/rendering/LightPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LinkFrameVisual.cc b/gazebo/rendering/LinkFrameVisual.cc
index f5d6ca6..9a2935e 100644
--- a/gazebo/rendering/LinkFrameVisual.cc
+++ b/gazebo/rendering/LinkFrameVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LinkFrameVisual.hh b/gazebo/rendering/LinkFrameVisual.hh
index 5a8c0b5..46975c5 100644
--- a/gazebo/rendering/LinkFrameVisual.hh
+++ b/gazebo/rendering/LinkFrameVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LinkFrameVisualPrivate.hh b/gazebo/rendering/LinkFrameVisualPrivate.hh
index 3574303..e2c4038 100644
--- a/gazebo/rendering/LinkFrameVisualPrivate.hh
+++ b/gazebo/rendering/LinkFrameVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LinkFrameVisual_TEST.cc b/gazebo/rendering/LinkFrameVisual_TEST.cc
index 7518ea7..4c9528a 100644
--- a/gazebo/rendering/LinkFrameVisual_TEST.cc
+++ b/gazebo/rendering/LinkFrameVisual_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in axispliance with the License.
diff --git a/gazebo/rendering/LogicalCameraVisual.cc b/gazebo/rendering/LogicalCameraVisual.cc
index 0192e94..9a5feb4 100644
--- a/gazebo/rendering/LogicalCameraVisual.cc
+++ b/gazebo/rendering/LogicalCameraVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/LogicalCameraVisual.hh b/gazebo/rendering/LogicalCameraVisual.hh
index b5d2cf1..9a295dc 100644
--- a/gazebo/rendering/LogicalCameraVisual.hh
+++ b/gazebo/rendering/LogicalCameraVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Material.cc b/gazebo/rendering/Material.cc
index bc80d6a..84209b0 100644
--- a/gazebo/rendering/Material.cc
+++ b/gazebo/rendering/Material.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Material.hh b/gazebo/rendering/Material.hh
index 2bc180a..3348947 100644
--- a/gazebo/rendering/Material.hh
+++ b/gazebo/rendering/Material.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/MovableText.cc b/gazebo/rendering/MovableText.cc
index b81d71c..ce62dfb 100644
--- a/gazebo/rendering/MovableText.cc
+++ b/gazebo/rendering/MovableText.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/MovableText.hh b/gazebo/rendering/MovableText.hh
index af27854..b790fb0 100644
--- a/gazebo/rendering/MovableText.hh
+++ b/gazebo/rendering/MovableText.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OculusCamera.cc b/gazebo/rendering/OculusCamera.cc
index 0ee1619..a02bf12 100644
--- a/gazebo/rendering/OculusCamera.cc
+++ b/gazebo/rendering/OculusCamera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OculusCamera.hh b/gazebo/rendering/OculusCamera.hh
index 68248f0..2d9678f 100644
--- a/gazebo/rendering/OculusCamera.hh
+++ b/gazebo/rendering/OculusCamera.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OculusCameraPrivate.hh b/gazebo/rendering/OculusCameraPrivate.hh
index 0774d5a..c420e15 100644
--- a/gazebo/rendering/OculusCameraPrivate.hh
+++ b/gazebo/rendering/OculusCameraPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OrbitViewController.cc b/gazebo/rendering/OrbitViewController.cc
index 98654da..fcb5909 100644
--- a/gazebo/rendering/OrbitViewController.cc
+++ b/gazebo/rendering/OrbitViewController.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OrbitViewController.hh b/gazebo/rendering/OrbitViewController.hh
index e08aa8b..cb3bf41 100644
--- a/gazebo/rendering/OrbitViewController.hh
+++ b/gazebo/rendering/OrbitViewController.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OriginVisual.cc b/gazebo/rendering/OriginVisual.cc
index a919c5f..4e45c30 100644
--- a/gazebo/rendering/OriginVisual.cc
+++ b/gazebo/rendering/OriginVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OriginVisual.hh b/gazebo/rendering/OriginVisual.hh
index 3d7661f..6a695a7 100644
--- a/gazebo/rendering/OriginVisual.hh
+++ b/gazebo/rendering/OriginVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OriginVisualPrivate.hh b/gazebo/rendering/OriginVisualPrivate.hh
index 6bee053..7ad716d 100644
--- a/gazebo/rendering/OriginVisualPrivate.hh
+++ b/gazebo/rendering/OriginVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OriginVisual_TEST.cc b/gazebo/rendering/OriginVisual_TEST.cc
index 7866cfc..b036e4f 100644
--- a/gazebo/rendering/OriginVisual_TEST.cc
+++ b/gazebo/rendering/OriginVisual_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OrthoViewController.cc b/gazebo/rendering/OrthoViewController.cc
index 65f99de..7dc9b5f 100644
--- a/gazebo/rendering/OrthoViewController.cc
+++ b/gazebo/rendering/OrthoViewController.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OrthoViewController.hh b/gazebo/rendering/OrthoViewController.hh
index cfc28aa..e10cdee 100644
--- a/gazebo/rendering/OrthoViewController.hh
+++ b/gazebo/rendering/OrthoViewController.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/OrthoViewControllerPrivate.hh b/gazebo/rendering/OrthoViewControllerPrivate.hh
index eb1e110..5b49185 100644
--- a/gazebo/rendering/OrthoViewControllerPrivate.hh
+++ b/gazebo/rendering/OrthoViewControllerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Projector.cc b/gazebo/rendering/Projector.cc
index ee235b6..c0f762e 100644
--- a/gazebo/rendering/Projector.cc
+++ b/gazebo/rendering/Projector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Projector.hh b/gazebo/rendering/Projector.hh
index f579cdf..78967a0 100644
--- a/gazebo/rendering/Projector.hh
+++ b/gazebo/rendering/Projector.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RFIDTagVisual.cc b/gazebo/rendering/RFIDTagVisual.cc
index 74e068e..43e917e 100644
--- a/gazebo/rendering/RFIDTagVisual.cc
+++ b/gazebo/rendering/RFIDTagVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RFIDTagVisual.hh b/gazebo/rendering/RFIDTagVisual.hh
index 00c528d..8299223 100644
--- a/gazebo/rendering/RFIDTagVisual.hh
+++ b/gazebo/rendering/RFIDTagVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RFIDTagVisualPrivate.hh b/gazebo/rendering/RFIDTagVisualPrivate.hh
index 4743a2f..2b81bc7 100644
--- a/gazebo/rendering/RFIDTagVisualPrivate.hh
+++ b/gazebo/rendering/RFIDTagVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RFIDVisual.cc b/gazebo/rendering/RFIDVisual.cc
index ad5cc65..07b7b8c 100644
--- a/gazebo/rendering/RFIDVisual.cc
+++ b/gazebo/rendering/RFIDVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RFIDVisual.hh b/gazebo/rendering/RFIDVisual.hh
index 155f818..67a847c 100644
--- a/gazebo/rendering/RFIDVisual.hh
+++ b/gazebo/rendering/RFIDVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RFIDVisualPrivate.hh b/gazebo/rendering/RFIDVisualPrivate.hh
index c01e862..c693b09 100644
--- a/gazebo/rendering/RFIDVisualPrivate.hh
+++ b/gazebo/rendering/RFIDVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RTShaderSystem.cc b/gazebo/rendering/RTShaderSystem.cc
index 098177c..c1b252e 100644
--- a/gazebo/rendering/RTShaderSystem.cc
+++ b/gazebo/rendering/RTShaderSystem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -114,6 +114,7 @@ void RTShaderSystem::Fini()
 
   this->dataPtr->pssmSetup.setNull();
   this->dataPtr->scenes.clear();
+  this->dataPtr->shadowsApplied = false;
   this->dataPtr->initialized = false;
 }
 
@@ -491,9 +492,16 @@ void RTShaderSystem::ApplyShadows(ScenePtr _scene)
   sceneMgr->setShadowTextureCountPerLightType(Ogre::Light::LT_POINT, 0);
   sceneMgr->setShadowTextureCountPerLightType(Ogre::Light::LT_SPOTLIGHT, 0);
   sceneMgr->setShadowTextureCount(3);
-  sceneMgr->setShadowTextureConfig(0, 1024, 1024, Ogre::PF_FLOAT32_R);
-  sceneMgr->setShadowTextureConfig(1, 512, 512, Ogre::PF_FLOAT32_R);
-  sceneMgr->setShadowTextureConfig(2, 512, 512, Ogre::PF_FLOAT32_R);
+  sceneMgr->setShadowTextureConfig(0,
+      this->dataPtr->shadowTextureSize, this->dataPtr->shadowTextureSize,
+      Ogre::PF_FLOAT32_R);
+  sceneMgr->setShadowTextureConfig(1,
+      this->dataPtr->shadowTextureSize/2, this->dataPtr->shadowTextureSize/2,
+      Ogre::PF_FLOAT32_R);
+  sceneMgr->setShadowTextureConfig(2,
+      this->dataPtr->shadowTextureSize/2, this->dataPtr->shadowTextureSize/2,
+      Ogre::PF_FLOAT32_R);
+
   sceneMgr->setShadowTextureSelfShadow(false);
   sceneMgr->setShadowCasterRenderBackFaces(true);
 
@@ -590,3 +598,23 @@ void RTShaderSystem::Update()
   }
   this->dataPtr->updateShaders = false;
 }
+
+/////////////////////////////////////////////////
+bool RTShaderSystem::SetShadowTextureSize(const unsigned int _size)
+{
+  // check if texture size is a power of 2
+  if (!ignition::math::isPowerOfTwo(_size))
+  {
+    gzerr << "Shadow texture size must be a power of 2" << std::endl;
+    return false;
+  }
+
+  this->dataPtr->shadowTextureSize = _size;
+  return true;
+}
+
+/////////////////////////////////////////////////
+unsigned int RTShaderSystem::ShadowTextureSize() const
+{
+  return this->dataPtr->shadowTextureSize;
+}
diff --git a/gazebo/rendering/RTShaderSystem.hh b/gazebo/rendering/RTShaderSystem.hh
index 35e07dc..433fbac 100644
--- a/gazebo/rendering/RTShaderSystem.hh
+++ b/gazebo/rendering/RTShaderSystem.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -143,6 +143,16 @@ namespace gazebo
       /// \brief Update the RT shaders. This should not be called frequently.
       public: void Update();
 
+      /// \brief Set the shadow texture size.
+      /// \param[in] _size Size of shadow texture to set to. This must be a
+      /// power of 2. The default size is 1024.
+      /// \return True if size is set successfully, false otherwise.
+      public: bool SetShadowTextureSize(const unsigned int _size);
+
+      /// \brief Get the shadow texture size.
+      /// \return Size of the shadow texture. The default size is 1024.
+      public: unsigned int ShadowTextureSize() const;
+
       /// \brief Get paths for the shader system
       /// \param[out] _coreLibsPath Path to the core libraries.
       /// \param[out] _cachePath Path to where the generated shaders are
diff --git a/gazebo/rendering/RTShaderSystemPrivate.hh b/gazebo/rendering/RTShaderSystemPrivate.hh
index 1d262d6..8547ba5 100644
--- a/gazebo/rendering/RTShaderSystemPrivate.hh
+++ b/gazebo/rendering/RTShaderSystemPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -53,6 +53,10 @@ namespace gazebo
 
       /// \brief Flag to indicate that shaders need to be updated.
       public: bool updateShaders;
+
+      /// \brief Size of the Parallel Split Shadow Map (PSSM) shadow texture
+      /// at closest layer.
+      public: unsigned int shadowTextureSize = 1024u;
     };
   }
 }
diff --git a/gazebo/rendering/RayQuery.cc b/gazebo/rendering/RayQuery.cc
index 7fcee63..d28bda0 100644
--- a/gazebo/rendering/RayQuery.cc
+++ b/gazebo/rendering/RayQuery.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RayQuery.hh b/gazebo/rendering/RayQuery.hh
index 411c428..8b5de95 100644
--- a/gazebo/rendering/RayQuery.hh
+++ b/gazebo/rendering/RayQuery.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RayQueryPrivate.hh b/gazebo/rendering/RayQueryPrivate.hh
index cfdf87c..c1bc909 100644
--- a/gazebo/rendering/RayQueryPrivate.hh
+++ b/gazebo/rendering/RayQueryPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderEngine.cc b/gazebo/rendering/RenderEngine.cc
index a4d8d60..0ad5965 100644
--- a/gazebo/rendering/RenderEngine.cc
+++ b/gazebo/rendering/RenderEngine.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderEngine.hh b/gazebo/rendering/RenderEngine.hh
index a578e1b..39738b5 100644
--- a/gazebo/rendering/RenderEngine.hh
+++ b/gazebo/rendering/RenderEngine.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderEnginePrivate.hh b/gazebo/rendering/RenderEnginePrivate.hh
index 3e915e5..7c3972f 100644
--- a/gazebo/rendering/RenderEnginePrivate.hh
+++ b/gazebo/rendering/RenderEnginePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderEvents.cc b/gazebo/rendering/RenderEvents.cc
index 9b9cd50..0a521a0 100644
--- a/gazebo/rendering/RenderEvents.cc
+++ b/gazebo/rendering/RenderEvents.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderEvents.hh b/gazebo/rendering/RenderEvents.hh
index c312316..40243a0 100644
--- a/gazebo/rendering/RenderEvents.hh
+++ b/gazebo/rendering/RenderEvents.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderTypes.hh b/gazebo/rendering/RenderTypes.hh
index cf91787..b9eaad9 100644
--- a/gazebo/rendering/RenderTypes.hh
+++ b/gazebo/rendering/RenderTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderingConversions_TEST.cc b/gazebo/rendering/RenderingConversions_TEST.cc
index 908f497..f572325 100644
--- a/gazebo/rendering/RenderingConversions_TEST.cc
+++ b/gazebo/rendering/RenderingConversions_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderingIface.cc b/gazebo/rendering/RenderingIface.cc
index f2ad67e..7e6f7a0 100644
--- a/gazebo/rendering/RenderingIface.cc
+++ b/gazebo/rendering/RenderingIface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/RenderingIface.hh b/gazebo/rendering/RenderingIface.hh
index 5e86e04..4291f58 100644
--- a/gazebo/rendering/RenderingIface.hh
+++ b/gazebo/rendering/RenderingIface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Road2d.cc b/gazebo/rendering/Road2d.cc
index b001514..be34226 100644
--- a/gazebo/rendering/Road2d.cc
+++ b/gazebo/rendering/Road2d.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Road2d.hh b/gazebo/rendering/Road2d.hh
index 89a19f7..90e012c 100644
--- a/gazebo/rendering/Road2d.hh
+++ b/gazebo/rendering/Road2d.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Scene.cc b/gazebo/rendering/Scene.cc
index 0a36da5..479bc5c 100644
--- a/gazebo/rendering/Scene.cc
+++ b/gazebo/rendering/Scene.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1544,8 +1544,7 @@ void Scene::MeshInformation(const Ogre::Mesh *_mesh,
     Ogre::VertexData* vertex_data = submesh->useSharedVertices ?
         _mesh->sharedVertexData : submesh->vertexData;
 
-    if ((!submesh->useSharedVertices) ||
-        (submesh->useSharedVertices && !added_shared))
+    if (!submesh->useSharedVertices || !added_shared)
     {
       if (submesh->useSharedVertices)
       {
@@ -2251,6 +2250,12 @@ bool Scene::ProcessSensorMsg(ConstSensorPtr &_msg)
     std::string wrenchVisualName = _msg->parent() + "::" + _msg->name();
     if (this->dataPtr->visuals.find(_msg->id()) == this->dataPtr->visuals.end())
     {
+      if (this->dataPtr->joints.find(_msg->parent()) ==
+          this->dataPtr->joints.end())
+      {
+        return false;
+      }
+
       ConstJointPtr jointMsg = this->dataPtr->joints[_msg->parent()];
 
       if (!jointMsg)
@@ -2435,6 +2440,9 @@ bool Scene::ProcessJointMsg(ConstJointPtr &_msg)
   // the childVis link have been loaded
   // childVis->ShowJoints(this->dataPtr->showJoints);
 
+  ConstJointPtr msgCopy(_msg);
+  this->dataPtr->joints[_msg->name()] = msgCopy;
+
   return true;
 }
 
@@ -2750,27 +2758,35 @@ bool Scene::ProcessVisualMsg(ConstVisualPtr &_msg, Visual::VisualType _type)
     }
     else
     {
-        if (!this->dataPtr->terrain)
+      if (!this->dataPtr->terrain)
+      {
+        // create a dummy visual for loading heightmap visual plugin
+        // TODO make heightmap a visual to avoid special treatment here?
+        VisualPtr visual(new Visual(_msg->name(), this->dataPtr->worldVisual));
+        auto m = *_msg.get();
+        m.clear_material();
+        visual->Load(msgs::VisualToSDF(m));
+
+        this->dataPtr->terrain = new Heightmap(shared_from_this());
+        // check the material fields and set material if it is specified
+        if (_msg->has_material())
         {
-          this->dataPtr->terrain = new Heightmap(shared_from_this());
-          // check the material fields and set material if it is specified
-          if (_msg->has_material())
+          auto matMsg = _msg->material();
+          if (matMsg.has_script())
           {
-            auto matMsg = _msg->material();
-            if (matMsg.has_script())
+            auto scriptMsg = matMsg.script();
+            for (auto const uri : scriptMsg.uri())
             {
-              auto scriptMsg = matMsg.script();
-              for (auto const uri : scriptMsg.uri())
-              {
-                if (!uri.empty())
-                  RenderEngine::Instance()->AddResourcePath(uri);
-              }
-              std::string matName = scriptMsg.name();
-              this->dataPtr->terrain->SetMaterial(matName);
+              if (!uri.empty())
+                RenderEngine::Instance()->AddResourcePath(uri);
             }
+            std::string matName = scriptMsg.name();
+            this->dataPtr->terrain->SetMaterial(matName);
           }
-          this->dataPtr->terrain->LoadFromMsg(_msg);
         }
+        this->dataPtr->terrain->SetLOD(this->dataPtr->heightmapLOD);
+        this->dataPtr->terrain->LoadFromMsg(_msg);
+      }
     }
     return true;
   }
@@ -2938,8 +2954,11 @@ bool Scene::ProcessLightModifyMsg(ConstLightPtr &_msg)
 
   if (iter == this->dataPtr->lights.end())
   {
-    gzerr << "Light [" << _msg->name() << "] not found."
-        << " Use topic ~/factory/light to spawn a new light." << std::endl;
+    // commented out for now as sometimes physics light messages could arrive
+    // before the rendering light is created, e.g. light pose updates.
+    // See issue #1778
+    // gzerr << "Light [" << _msg->name() << "] not found."
+    //     << " Use topic ~/factory/light to spawn a new light." << std::endl;
     return false;
   }
   else
@@ -3137,7 +3156,8 @@ void Scene::SetShadowsEnabled(bool _value)
     this->dataPtr->manager->setShadowFarDistance(150);
     // Use a value of "2" to use a different depth buffer pool and
     // avoid sharing this with the Backbuffer's
-    this->dataPtr->manager->setShadowTextureConfig(0, 1024, 1024,
+    this->dataPtr->manager->setShadowTextureConfig(0,
+        this->dataPtr->shadowTextureSize, this->dataPtr->shadowTextureSize,
         Ogre::PF_FLOAT32_RGBA, 0, 2);
     this->dataPtr->manager->setShadowDirectionalLightExtrusionDistance(75);
     this->dataPtr->manager->setShadowCasterRenderBackFaces(false);
@@ -3157,7 +3177,8 @@ void Scene::SetShadowsEnabled(bool _value)
   else
   {
     this->dataPtr->manager->setShadowCasterRenderBackFaces(false);
-    this->dataPtr->manager->setShadowTextureSize(512);
+    this->dataPtr->manager->setShadowTextureSize(
+        this->dataPtr->shadowTextureSize);
 
     // The default shadows.
     if (_value && this->dataPtr->manager->getShadowTechnique()
@@ -3174,10 +3195,59 @@ void Scene::SetShadowsEnabled(bool _value)
 /////////////////////////////////////////////////
 bool Scene::GetShadowsEnabled() const
 {
+  return ShadowsEnabled();
+}
+
+/////////////////////////////////////////////////
+bool Scene::ShadowsEnabled() const
+{
   return this->dataPtr->sdf->Get<bool>("shadows");
 }
 
 /////////////////////////////////////////////////
+bool Scene::SetShadowTextureSize(const unsigned int _size)
+{
+  // check if texture size is a power of 2
+  if (!ignition::math::isPowerOfTwo(_size))
+  {
+    gzerr << "Shadow texture size must be a power of 2" << std::endl;
+    return false;
+  }
+  this->dataPtr->shadowTextureSize = _size;
+
+  if (RenderEngine::Instance()->GetRenderPathType() ==
+      RenderEngine::FORWARD)
+  {
+    // RT Shader shadows
+    if (!RTShaderSystem::Instance()->SetShadowTextureSize(_size))
+      return false;
+
+    if (this->ShadowsEnabled())
+    {
+      // re-enable the shadows to take effect
+      this->SetShadowsEnabled(false);
+      this->SetShadowsEnabled(true);
+    }
+  }
+  else
+  {
+    this->dataPtr->manager->setShadowTextureSize(
+        this->dataPtr->shadowTextureSize);
+  }
+  return true;
+}
+
+/////////////////////////////////////////////////
+unsigned int Scene::ShadowTextureSize() const
+{
+  if (RenderEngine::Instance()->GetRenderPathType() ==
+      RenderEngine::FORWARD)
+    return RTShaderSystem::Instance()->ShadowTextureSize();
+  else
+    return this->dataPtr->shadowTextureSize;
+}
+
+/////////////////////////////////////////////////
 void Scene::AddVisual(VisualPtr _vis)
 {
   if (this->dataPtr->visuals.find(_vis->GetId()) !=
@@ -3310,6 +3380,23 @@ Heightmap *Scene::GetHeightmap() const
 }
 
 /////////////////////////////////////////////////
+void Scene::SetHeightmapLOD(const unsigned int _value)
+{
+  this->dataPtr->heightmapLOD = _value;
+  if (this->dataPtr->terrain)
+    this->dataPtr->terrain->SetLOD(this->dataPtr->heightmapLOD);
+}
+
+/////////////////////////////////////////////////
+unsigned int Scene::HeightmapLOD() const
+{
+  if (this->dataPtr->terrain)
+    return this->dataPtr->terrain->LOD();
+
+  return this->dataPtr->heightmapLOD;
+}
+
+/////////////////////////////////////////////////
 void Scene::CreateCOMVisual(ConstLinkPtr &_msg, VisualPtr _linkVisual)
 {
   COMVisualPtr comVis(new COMVisual(_linkVisual->GetName() + "_COM_VISUAL__",
@@ -3572,3 +3659,15 @@ void Scene::ToggleLayer(const int32_t _layer)
     visual.second->ToggleLayer(_layer);
   }
 }
+
+/////////////////////////////////////////////////
+void Scene::EnableVisualizations(const bool _enable)
+{
+  this->dataPtr->enableVisualizations = _enable;
+}
+
+/////////////////////////////////////////////////
+bool Scene::EnableVisualizations() const
+{
+  return this->dataPtr->enableVisualizations;
+}
diff --git a/gazebo/rendering/Scene.hh b/gazebo/rendering/Scene.hh
index a1801f3..8409395 100644
--- a/gazebo/rendering/Scene.hh
+++ b/gazebo/rendering/Scene.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -499,6 +499,16 @@ namespace gazebo
       /// \return True if shadows are enabled.
       public: bool ShadowsEnabled() const;
 
+      /// \brief Set the shadow texture size
+      /// \param[in] _size Size to set the shadow texture to. This must be a
+      /// power of 2. The default size is 1024.
+      /// \return True if size is set successfully, false otherwise.
+      public: bool SetShadowTextureSize(const unsigned int _size);
+
+      /// \brief Get the shadow texture size
+      /// \return Size of the shadow texture. The default size is 1024.
+      public: unsigned int ShadowTextureSize() const;
+
       /// \brief Add a visual to the scene
       /// \param[in] _vis Visual to add.
       public: void AddVisual(VisualPtr _vis);
@@ -552,6 +562,16 @@ namespace gazebo
       /// \return Pointer to the heightmap, NULL if no heightmap.
       public: Heightmap *GetHeightmap() const;
 
+      /// \brief Set the Level Of Detail (LOD) value for the heightmap.
+      /// \param[in] _value A render-engine specific value used to compute LOD.
+      /// \sa Heightmap::SetLOD
+      public: void SetHeightmapLOD(const unsigned int _value);
+
+      /// \brief Get the Level Of Detail (LOD) value for the heightmap.
+      /// \return A render-engine specific value that is used to compute LOD.
+      /// \sa Heightmap::LOD
+      public: unsigned int HeightmapLOD() const;
+
       /// \brief Clear rendering::Scene
       public: void Clear();
 
@@ -667,6 +687,17 @@ namespace gazebo
       /// \param[in] _layer Index of the layer to toggle.
       public: void ToggleLayer(const int32_t _layer);
 
+      /// \brief Enable visualizations, currently only applies to sensor
+      /// visuals.
+      /// \param[in] _enable True to enable, false to disable.
+      /// \sa EnableVisualizations()
+      public: void EnableVisualizations(const bool _enable);
+
+      /// \brief Check whether visualizations are enabled or not.
+      /// \return True if enabled.
+      /// \sa EnableVisualizations(bool)
+      public: bool EnableVisualizations() const;
+
       /// \brief Helper function to setup the sky.
       private: void SetSky();
 
diff --git a/gazebo/rendering/ScenePrivate.hh b/gazebo/rendering/ScenePrivate.hh
index 9e613d7..fd623b8 100644
--- a/gazebo/rendering/ScenePrivate.hh
+++ b/gazebo/rendering/ScenePrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -280,6 +280,9 @@ namespace gazebo
       /// \brief The heightmap, if any.
       public: Heightmap *terrain;
 
+      /// \brief The heightmap level of detail
+      public: unsigned int heightmapLOD = 0u;
+
       /// \brief All the projectors.
       public: std::map<std::string, Projector *> projectors;
 
@@ -326,6 +329,9 @@ namespace gazebo
 
       /// \brief Keep track of data of joints.
       public: JointMsgs_M joints;
+
+      /// \brief Size of shadow texture
+      public: unsigned int shadowTextureSize = 1024u;
     };
   }
 }
diff --git a/gazebo/rendering/Scene_TEST.cc b/gazebo/rendering/Scene_TEST.cc
index 44f76b4..ec21ef5 100644
--- a/gazebo/rendering/Scene_TEST.cc
+++ b/gazebo/rendering/Scene_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -105,12 +105,6 @@ TEST_F(Scene_TEST, RemoveModelVisual)
   // Load a world containing 3 simple shapes
   Load("worlds/shapes.world");
 
-  // FIXME need a camera otherwise test produces a gl vertex buffer error
-  math::Pose cameraStartPose(0, 0, 0, 0, 0, 0);
-  std::string cameraName = "test_camera";
-  SpawnCamera("test_camera_model", cameraName,
-      cameraStartPose.pos, cameraStartPose.rot.GetAsEuler());
-
   // Get the scene
   gazebo::rendering::ScenePtr scene = gazebo::rendering::get_scene();
   ASSERT_TRUE(scene != nullptr);
@@ -121,6 +115,10 @@ TEST_F(Scene_TEST, RemoveModelVisual)
   rendering::VisualPtr box, sphere, cylinder;
   while ((!box || !sphere || !cylinder) && sleep < maxSleep)
   {
+    event::Events::preRender();
+    event::Events::render();
+    event::Events::postRender();
+
     box = scene->GetVisual("box");
     cylinder = scene->GetVisual("cylinder");
     sphere = scene->GetVisual("sphere");
@@ -185,6 +183,10 @@ TEST_F(Scene_TEST, RemoveModelVisual)
   sleep = 0;
   while (box && sleep < maxSleep)
   {
+    event::Events::preRender();
+    event::Events::render();
+    event::Events::postRender();
+
     box = scene->GetVisual("box");
     common::Time::MSleep(1000);
     sleep++;
@@ -204,12 +206,6 @@ TEST_F(Scene_TEST, VisualType)
   // Load a world containing 3 simple shapes
   Load("worlds/shapes.world");
 
-  // FIXME need a camera otherwise test produces a gl vertex buffer error
-  math::Pose cameraStartPose(0, 0, 0, 0, 0, 0);
-  std::string cameraName = "test_camera";
-  SpawnCamera("test_camera_model", cameraName,
-      cameraStartPose.pos, cameraStartPose.rot.GetAsEuler());
-
   // Get the scene
   gazebo::rendering::ScenePtr scene = gazebo::rendering::get_scene();
   ASSERT_TRUE(scene != nullptr);
@@ -225,6 +221,10 @@ TEST_F(Scene_TEST, VisualType)
   rendering::VisualPtr box, sphere, cylinder, newBox;
   while ((!box || !sphere || !cylinder || !newBox) && sleep < maxSleep)
   {
+    event::Events::preRender();
+    event::Events::render();
+    event::Events::postRender();
+
     box = scene->GetVisual("box");
     cylinder = scene->GetVisual("cylinder");
     sphere = scene->GetVisual("sphere");
@@ -332,6 +332,37 @@ TEST_F(Scene_TEST, VisualType)
 }
 
 /////////////////////////////////////////////////
+TEST_F(Scene_TEST, Shadows)
+{
+  Load("worlds/shapes.world");
+
+  // Get the scene
+  gazebo::rendering::ScenePtr scene = gazebo::rendering::get_scene();
+  ASSERT_TRUE(scene != nullptr);
+
+  // Test API for enabling and disabling shadows
+  EXPECT_TRUE(scene->ShadowsEnabled());
+
+  scene->SetShadowsEnabled(false);
+  EXPECT_FALSE(scene->ShadowsEnabled());
+
+  scene->SetShadowsEnabled(true);
+  EXPECT_TRUE(scene->ShadowsEnabled());
+
+  // Test API for updating shadow texture size
+  EXPECT_GT(scene->ShadowTextureSize(), 0u);
+
+  EXPECT_TRUE(scene->SetShadowTextureSize(256u));
+  EXPECT_EQ(256u, scene->ShadowTextureSize());
+  EXPECT_TRUE(scene->ShadowsEnabled());
+
+  // setting a shadow texture size of 0 should not work
+  EXPECT_FALSE(scene->SetShadowTextureSize(0u));
+  EXPECT_EQ(256u, scene->ShadowTextureSize());
+  EXPECT_TRUE(scene->ShadowsEnabled());
+}
+
+/////////////////////////////////////////////////
 int main(int argc, char **argv)
 {
   ::testing::InitGoogleTest(&argc, argv);
diff --git a/gazebo/rendering/SelectionObj.cc b/gazebo/rendering/SelectionObj.cc
index 268b6aa..f7086ba 100644
--- a/gazebo/rendering/SelectionObj.cc
+++ b/gazebo/rendering/SelectionObj.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/SelectionObj.hh b/gazebo/rendering/SelectionObj.hh
index a790840..5c1c821 100644
--- a/gazebo/rendering/SelectionObj.hh
+++ b/gazebo/rendering/SelectionObj.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/SelectionObjPrivate.hh b/gazebo/rendering/SelectionObjPrivate.hh
index 6ec5cba..38aa1f0 100644
--- a/gazebo/rendering/SelectionObjPrivate.hh
+++ b/gazebo/rendering/SelectionObjPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/SelectionObj_TEST.cc b/gazebo/rendering/SelectionObj_TEST.cc
index b13fda7..80b2ed2 100644
--- a/gazebo/rendering/SelectionObj_TEST.cc
+++ b/gazebo/rendering/SelectionObj_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/SonarVisual.cc b/gazebo/rendering/SonarVisual.cc
index 5708cb0..a99b194 100644
--- a/gazebo/rendering/SonarVisual.cc
+++ b/gazebo/rendering/SonarVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/SonarVisual.hh b/gazebo/rendering/SonarVisual.hh
index 6f56bd0..924d179 100644
--- a/gazebo/rendering/SonarVisual.hh
+++ b/gazebo/rendering/SonarVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/SonarVisualPrivate.hh b/gazebo/rendering/SonarVisualPrivate.hh
index aa3ad71..111b75e 100644
--- a/gazebo/rendering/SonarVisualPrivate.hh
+++ b/gazebo/rendering/SonarVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/SonarVisual_TEST.cc b/gazebo/rendering/SonarVisual_TEST.cc
index 00b3306..360efb6 100644
--- a/gazebo/rendering/SonarVisual_TEST.cc
+++ b/gazebo/rendering/SonarVisual_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/TransmitterVisual.cc b/gazebo/rendering/TransmitterVisual.cc
index 5e20133..5410bea 100644
--- a/gazebo/rendering/TransmitterVisual.cc
+++ b/gazebo/rendering/TransmitterVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/TransmitterVisual.hh b/gazebo/rendering/TransmitterVisual.hh
index 5b8ce85..857544d 100644
--- a/gazebo/rendering/TransmitterVisual.hh
+++ b/gazebo/rendering/TransmitterVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/TransmitterVisualPrivate.hh b/gazebo/rendering/TransmitterVisualPrivate.hh
index b79c8c6..89a2de0 100644
--- a/gazebo/rendering/TransmitterVisualPrivate.hh
+++ b/gazebo/rendering/TransmitterVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/TransmitterVisual_TEST.cc b/gazebo/rendering/TransmitterVisual_TEST.cc
index 1eadfa1..cb6ea48 100644
--- a/gazebo/rendering/TransmitterVisual_TEST.cc
+++ b/gazebo/rendering/TransmitterVisual_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/UserCamera.cc b/gazebo/rendering/UserCamera.cc
index 02141a0..1673fa2 100644
--- a/gazebo/rendering/UserCamera.cc
+++ b/gazebo/rendering/UserCamera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/UserCamera.hh b/gazebo/rendering/UserCamera.hh
index 49a1641..ebd618d 100644
--- a/gazebo/rendering/UserCamera.hh
+++ b/gazebo/rendering/UserCamera.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/UserCameraPrivate.hh b/gazebo/rendering/UserCameraPrivate.hh
index 19450b6..07fd28a 100644
--- a/gazebo/rendering/UserCameraPrivate.hh
+++ b/gazebo/rendering/UserCameraPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/VideoVisual.cc b/gazebo/rendering/VideoVisual.cc
index 9cb0beb..2070520 100644
--- a/gazebo/rendering/VideoVisual.cc
+++ b/gazebo/rendering/VideoVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/VideoVisual.hh b/gazebo/rendering/VideoVisual.hh
index 6712932..9bda26e 100644
--- a/gazebo/rendering/VideoVisual.hh
+++ b/gazebo/rendering/VideoVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/VideoVisualPrivate.hh b/gazebo/rendering/VideoVisualPrivate.hh
index 7bb0809..98a8f0c 100644
--- a/gazebo/rendering/VideoVisualPrivate.hh
+++ b/gazebo/rendering/VideoVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ViewController.cc b/gazebo/rendering/ViewController.cc
index 3624cd5..ad5dd87 100644
--- a/gazebo/rendering/ViewController.cc
+++ b/gazebo/rendering/ViewController.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ViewController.hh b/gazebo/rendering/ViewController.hh
index 78686a6..83a7594 100644
--- a/gazebo/rendering/ViewController.hh
+++ b/gazebo/rendering/ViewController.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Visual.cc b/gazebo/rendering/Visual.cc
index 723296d..9854cb1 100644
--- a/gazebo/rendering/Visual.cc
+++ b/gazebo/rendering/Visual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Visual.hh b/gazebo/rendering/Visual.hh
index 73d6994..c6ecace 100644
--- a/gazebo/rendering/Visual.hh
+++ b/gazebo/rendering/Visual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/VisualPrivate.hh b/gazebo/rendering/VisualPrivate.hh
index 95e05aa..66c3055 100644
--- a/gazebo/rendering/VisualPrivate.hh
+++ b/gazebo/rendering/VisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/Visual_TEST.cc b/gazebo/rendering/Visual_TEST.cc
index dadd0f5..1b57eb4 100644
--- a/gazebo/rendering/Visual_TEST.cc
+++ b/gazebo/rendering/Visual_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WideAngleCamera.cc b/gazebo/rendering/WideAngleCamera.cc
index 3d601f8..8bcca40 100644
--- a/gazebo/rendering/WideAngleCamera.cc
+++ b/gazebo/rendering/WideAngleCamera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,6 +35,7 @@
 #include "gazebo/rendering/WideAngleCameraPrivate.hh"
 #include "gazebo/rendering/skyx/include/SkyX.h"
 
+#include "gazebo/rendering/RenderEngine.hh"
 #include "gazebo/rendering/RTShaderSystem.hh"
 #include "gazebo/rendering/Conversions.hh"
 #include "gazebo/rendering/Scene.hh"
@@ -636,11 +637,14 @@ bool WideAngleCamera::SetBackgroundColor(const common::Color &_color)
 //////////////////////////////////////////////////
 void WideAngleCamera::CreateEnvRenderTexture(const std::string &_textureName)
 {
-  int fsaa = 4;
-
-#if OGRE_VERSION_MAJOR == 1 && OGRE_VERSION_MINOR < 8
-  fsaa = 0;
-#endif
+  unsigned int fsaa = 0;
+  std::vector<unsigned int> fsaaLevels =
+      RenderEngine::Instance()->FSAALevels();
+  // check if target fsaa is supported
+  unsigned int targetFSAA = 4;
+  auto const it = std::find(fsaaLevels.begin(), fsaaLevels.end(), targetFSAA);
+  if (it != fsaaLevels.end())
+    fsaa = targetFSAA;
 
   this->dataPtr->envCubeMapTexture =
       Ogre::TextureManager::getSingleton().createManual(
@@ -650,7 +654,7 @@ void WideAngleCamera::CreateEnvRenderTexture(const std::string &_textureName)
           this->dataPtr->envTextureSize,
           this->dataPtr->envTextureSize,
           0,
-          Ogre::PF_A8R8G8B8,
+          static_cast<Ogre::PixelFormat>(this->imageFormat),
           Ogre::TU_RENDERTARGET,
           0,
           false,
diff --git a/gazebo/rendering/WideAngleCamera.hh b/gazebo/rendering/WideAngleCamera.hh
index 222f2fe..ab65a70 100644
--- a/gazebo/rendering/WideAngleCamera.hh
+++ b/gazebo/rendering/WideAngleCamera.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WideAngleCameraPrivate.hh b/gazebo/rendering/WideAngleCameraPrivate.hh
index 04f2f21..cbf21c4 100644
--- a/gazebo/rendering/WideAngleCameraPrivate.hh
+++ b/gazebo/rendering/WideAngleCameraPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WindowManager.cc b/gazebo/rendering/WindowManager.cc
index ccfed5e..9694097 100644
--- a/gazebo/rendering/WindowManager.cc
+++ b/gazebo/rendering/WindowManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WindowManager.hh b/gazebo/rendering/WindowManager.hh
index 9454e90..0c45057 100644
--- a/gazebo/rendering/WindowManager.hh
+++ b/gazebo/rendering/WindowManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WindowManagerPrivate.hh b/gazebo/rendering/WindowManagerPrivate.hh
index 90eed33..a136345 100644
--- a/gazebo/rendering/WindowManagerPrivate.hh
+++ b/gazebo/rendering/WindowManagerPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WireBox.cc b/gazebo/rendering/WireBox.cc
index d92fc4b..4f2ca5a 100644
--- a/gazebo/rendering/WireBox.cc
+++ b/gazebo/rendering/WireBox.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WireBox.hh b/gazebo/rendering/WireBox.hh
index 276ec52..4d5f69f 100644
--- a/gazebo/rendering/WireBox.hh
+++ b/gazebo/rendering/WireBox.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WireBoxPrivate.hh b/gazebo/rendering/WireBoxPrivate.hh
index 9086839..a611090 100644
--- a/gazebo/rendering/WireBoxPrivate.hh
+++ b/gazebo/rendering/WireBoxPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/WrenchVisual.cc b/gazebo/rendering/WrenchVisual.cc
index df6f3b5..02ec017 100644
--- a/gazebo/rendering/WrenchVisual.cc
+++ b/gazebo/rendering/WrenchVisual.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -47,14 +47,64 @@ WrenchVisual::WrenchVisual(const std::string &_name, VisualPtr _vis,
   dPtr->enabled = true;
   dPtr->receivedMsg = false;
 
+  // Transport
   dPtr->node = transport::NodePtr(new transport::Node());
   dPtr->node->Init(dPtr->scene->Name());
 
   dPtr->wrenchSub = dPtr->node->Subscribe(_topicName,
       &WrenchVisual::OnMsg, this, true);
 
+  dPtr->connections.push_back(
+      event::Events::ConnectPreRender(
+      std::bind(&WrenchVisual::Update, this)));
+}
+
+/////////////////////////////////////////////////
+WrenchVisual::~WrenchVisual()
+{
+  this->Fini();
+}
+
+/////////////////////////////////////////////////
+// Note to carefully test this when merging forward to Gazebo8
+void WrenchVisual::Fini()
+{
+  WrenchVisualPrivate *dPtr =
+      reinterpret_cast<WrenchVisualPrivate *>(this->dataPtr);
+
+  dPtr->wrenchSub.reset();
+  if (dPtr->node)
+    dPtr->node->Fini();
+  dPtr->node.reset();
+  dPtr->connections.clear();
+
+  dPtr->wrenchMsg.reset();
+
+  // Remove force visual and line
+  if (dPtr->forceVisual && dPtr->forceLine)
+    dPtr->forceVisual->DeleteDynamicLine(dPtr->forceLine);
+
+  if (dPtr->scene && dPtr->forceVisual &&
+      dPtr->scene->GetVisual(dPtr->forceVisual->GetName()))
+  {
+    dPtr->scene->RemoveVisual(dPtr->forceVisual);
+  }
+  dPtr->forceVisual.reset();
+}
+
+/////////////////////////////////////////////////
+void WrenchVisual::Load(ConstJointPtr &_msg)
+{
+  WrenchVisualPrivate *dPtr =
+      reinterpret_cast<WrenchVisualPrivate *>(this->dataPtr);
+
   // Make sure the meshes are in Ogre
   this->InsertMesh("unit_cone");
+
+  // Initialize visuals on Load because we can't use shared_from_this in the
+  // constructor
+
+  // Torque visual
   Ogre::MovableObject *coneXObj =
     (Ogre::MovableObject*)(dPtr->scene->OgreSceneManager()->createEntity(
           this->GetName()+"__WRENCH_X_CONE__", "unit_cone"));
@@ -70,64 +120,41 @@ WrenchVisual::WrenchVisual(const std::string &_name, VisualPtr _vis,
           this->GetName()+"__WRENCH_Z_CONE__", "unit_cone"));
   ((Ogre::Entity*)coneZObj)->setMaterialName("__GAZEBO_TRANS_BLUE_MATERIAL__");
 
-  math::Quaternion q;
+  ignition::math::Quaterniond q;
 
   dPtr->coneXNode =
       dPtr->sceneNode->createChildSceneNode(this->GetName() + "_WRENCH_X_CONE");
   dPtr->coneXNode->attachObject(coneXObj);
-  q.SetFromAxis(0, 1, 0, GZ_DTOR(-90));
-  dPtr->coneXNode->setOrientation(q.w, q.x, q.y, q.z);
+  q.Axis(0, 1, 0, IGN_DTOR(-90));
+  dPtr->coneXNode->setOrientation(q.W(), q.X(), q.Y(), q.Z());
   dPtr->coneXNode->setScale(0.02, 0.02, 0.02);
 
   dPtr->coneYNode =
       dPtr->sceneNode->createChildSceneNode(this->GetName() + "_WRENCH_Y_CONE");
   dPtr->coneYNode->attachObject(coneYObj);
-  q.SetFromAxis(1, 0, 0, GZ_DTOR(90));
-  dPtr->coneYNode->setOrientation(q.w, q.x, q.y, q.z);
+  q.Axis(1, 0, 0, IGN_DTOR(90));
+  dPtr->coneYNode->setOrientation(q.W(), q.X(), q.Y(), q.Z());
   dPtr->coneYNode->setScale(0.02, 0.02, 0.02);
 
   dPtr->coneZNode =
     dPtr->sceneNode->createChildSceneNode(this->GetName() + "_WRENCH_Z_CONE");
   dPtr->coneZNode->attachObject(coneZObj);
-  q.SetFromAxis(1, 0, 0, GZ_DTOR(180));
-  dPtr->coneZNode->setOrientation(q.w, q.x, q.y, q.z);
+  q.Axis(1, 0, 0, IGN_DTOR(180));
+  dPtr->coneZNode->setOrientation(q.W(), q.X(), q.Y(), q.Z());
   dPtr->coneZNode->setScale(0.02, 0.02, 0.02);
 
-  dPtr->forceLine = new DynamicLines(RENDERING_LINE_LIST);
-  dPtr->forceLine->AddPoint(ignition::math::Vector3d(0, 0, 0));
-  dPtr->forceLine->AddPoint(ignition::math::Vector3d(0, 0, 0));
-  dPtr->forceLine->setMaterial("__GAZEBO_TRANS_PURPLE_MATERIAL__");
+  // Force visual
+  dPtr->forceVisual.reset(new rendering::Visual(
+      this->GetName() + "_FORCE_VISUAL_", shared_from_this()));
+  dPtr->forceVisual->Load();
 
-  dPtr->forceNode = dPtr->sceneNode->createChildSceneNode(this->GetName() +
-      "_WRENCH_FORCE_NODE_");
-  dPtr->forceNode->attachObject(dPtr->forceLine);
+  dPtr->forceLine = dPtr->forceVisual->CreateDynamicLine(RENDERING_LINE_LIST);
+  dPtr->forceLine->setMaterial("__GAZEBO_TRANS_PURPLE_MATERIAL__");
+  dPtr->forceLine->AddPoint(ignition::math::Vector3d::Zero);
+  dPtr->forceLine->AddPoint(ignition::math::Vector3d(0, 0, 0.1));
 
   this->SetVisibilityFlags(GZ_VISIBILITY_GUI);
 
-  dPtr->connections.push_back(
-      event::Events::ConnectPreRender(
-        boost::bind(&WrenchVisual::Update, this)));
-}
-
-/////////////////////////////////////////////////
-WrenchVisual::~WrenchVisual()
-{
-  WrenchVisualPrivate *dPtr =
-      reinterpret_cast<WrenchVisualPrivate *>(this->dataPtr);
-
-  dPtr->node.reset();
-  dPtr->connections.clear();
-
-  delete dPtr->forceLine;
-  dPtr->forceLine = NULL;
-
-  delete dPtr->forceNode;
-  dPtr->forceNode = NULL;
-}
-
-/////////////////////////////////////////////////
-void WrenchVisual::Load(ConstJointPtr &_msg)
-{
   Visual::Load();
   this->SetPosition(msgs::ConvertIgn(_msg->pose().position()));
   this->SetRotation(msgs::ConvertIgn(_msg->pose().orientation()));
diff --git a/gazebo/rendering/WrenchVisual.hh b/gazebo/rendering/WrenchVisual.hh
index 5730b21..e7e18c4 100644
--- a/gazebo/rendering/WrenchVisual.hh
+++ b/gazebo/rendering/WrenchVisual.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
  *
 */
 
-#ifndef _WRENCHVISUAL_HH_
-#define _WRENCHVISUAL_HH_
+#ifndef GAZEBO_RENDERING_WRENCHVISUAL_HH_
+#define GAZEBO_RENDERING_WRENCHVISUAL_HH_
 
 #include <string>
 
@@ -32,7 +32,9 @@ namespace gazebo
     /// \{
 
     /// \class WrenchVisual WrenchVisual.hh rendering/rendering.hh
-    /// \brief Visualization for sonar data.
+    /// \brief Visualization for wrench data. It consists of a purple line
+    /// pointing at the force direction and 3 RGB cones representing the torque
+    /// about the XYZ directions.
     class GZ_RENDERING_VISIBLE WrenchVisual : public Visual
     {
       /// \brief Constructor.
@@ -50,6 +52,9 @@ namespace gazebo
       public: void Load(ConstJointPtr &_msg);
       using Visual::Load;
 
+      // Documentation inherited
+      public: void Fini();
+
       /// \brief Set to true to enable wrench visualization.
       /// \param[in] _enabled True to show wrenches, false to hide.
       public: void SetEnabled(bool _enabled);
diff --git a/gazebo/rendering/WrenchVisualPrivate.hh b/gazebo/rendering/WrenchVisualPrivate.hh
index 4310a49..ff11a82 100644
--- a/gazebo/rendering/WrenchVisualPrivate.hh
+++ b/gazebo/rendering/WrenchVisualPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
  *
 */
 
-#ifndef _WRENCHVISUAL_PRIVATE_HH_
-#define _WRENCHVISUAL_PRIVATE_HH_
+#ifndef GAZEBO_RENDERING_WRENCHVISUALPRIVATE_HH_
+#define GAZEBO_RENDERING_WRENCHVISUALPRIVATE_HH_
 
 #include <vector>
 
@@ -48,8 +48,8 @@ namespace gazebo
       /// \brief Scene node for Z torque visualization.
       public: Ogre::SceneNode *coneZNode;
 
-      /// \brief Scene node for force visualization.
-      public: Ogre::SceneNode *forceNode;
+      /// \brief Visual for force visualization.
+      public: VisualPtr forceVisual;
 
       /// \brief Line to visualize force
       public: DynamicLines *forceLine;
diff --git a/gazebo/rendering/deferred_shading/AmbientLight.hh b/gazebo/rendering/deferred_shading/AmbientLight.hh
index 66d7a76..3ecc74d 100644
--- a/gazebo/rendering/deferred_shading/AmbientLight.hh
+++ b/gazebo/rendering/deferred_shading/AmbientLight.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/DeferredLight.cc b/gazebo/rendering/deferred_shading/DeferredLight.cc
index f8a6364..2b01048 100644
--- a/gazebo/rendering/deferred_shading/DeferredLight.cc
+++ b/gazebo/rendering/deferred_shading/DeferredLight.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/DeferredLight.hh b/gazebo/rendering/deferred_shading/DeferredLight.hh
index 466d936..ac48e7a 100644
--- a/gazebo/rendering/deferred_shading/DeferredLight.hh
+++ b/gazebo/rendering/deferred_shading/DeferredLight.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/DeferredLightCP.hh b/gazebo/rendering/deferred_shading/DeferredLightCP.hh
index bc32cc5..ed54e3e 100644
--- a/gazebo/rendering/deferred_shading/DeferredLightCP.hh
+++ b/gazebo/rendering/deferred_shading/DeferredLightCP.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.cc b/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.cc
index f3435d4..5d745af 100644
--- a/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.cc
+++ b/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.hh b/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.hh
index 580cd0b..a35b59f 100644
--- a/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.hh
+++ b/gazebo/rendering/deferred_shading/GBufferMaterialGenerator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/GBufferSchemeHandler.cc b/gazebo/rendering/deferred_shading/GBufferSchemeHandler.cc
index 44c1500..a2b67fc 100644
--- a/gazebo/rendering/deferred_shading/GBufferSchemeHandler.cc
+++ b/gazebo/rendering/deferred_shading/GBufferSchemeHandler.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/GBufferSchemeHandler.hh b/gazebo/rendering/deferred_shading/GBufferSchemeHandler.hh
index e918986..b072585 100644
--- a/gazebo/rendering/deferred_shading/GBufferSchemeHandler.hh
+++ b/gazebo/rendering/deferred_shading/GBufferSchemeHandler.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/GeomUtils.cc b/gazebo/rendering/deferred_shading/GeomUtils.cc
index 7925ab1..fcbbc09 100644
--- a/gazebo/rendering/deferred_shading/GeomUtils.cc
+++ b/gazebo/rendering/deferred_shading/GeomUtils.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/GeomUtils.hh b/gazebo/rendering/deferred_shading/GeomUtils.hh
index 67ad94b..27672b3 100644
--- a/gazebo/rendering/deferred_shading/GeomUtils.hh
+++ b/gazebo/rendering/deferred_shading/GeomUtils.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/LightMaterialGenerator.hh b/gazebo/rendering/deferred_shading/LightMaterialGenerator.hh
index f77e030..66b9f26 100644
--- a/gazebo/rendering/deferred_shading/LightMaterialGenerator.hh
+++ b/gazebo/rendering/deferred_shading/LightMaterialGenerator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/ListenerFactoryLogic.hh b/gazebo/rendering/deferred_shading/ListenerFactoryLogic.hh
index 6aeff5e..d9d3f78 100644
--- a/gazebo/rendering/deferred_shading/ListenerFactoryLogic.hh
+++ b/gazebo/rendering/deferred_shading/ListenerFactoryLogic.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/MaterialGenerator.cc b/gazebo/rendering/deferred_shading/MaterialGenerator.cc
index 9abc40c..f4835f3 100644
--- a/gazebo/rendering/deferred_shading/MaterialGenerator.cc
+++ b/gazebo/rendering/deferred_shading/MaterialGenerator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/MaterialGenerator.hh b/gazebo/rendering/deferred_shading/MaterialGenerator.hh
index 045bb3b..6e534a4 100644
--- a/gazebo/rendering/deferred_shading/MaterialGenerator.hh
+++ b/gazebo/rendering/deferred_shading/MaterialGenerator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/MergeCP.hh b/gazebo/rendering/deferred_shading/MergeCP.hh
index a235c8d..d0f6867 100644
--- a/gazebo/rendering/deferred_shading/MergeCP.hh
+++ b/gazebo/rendering/deferred_shading/MergeCP.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/MergeMaterialGenerator.cc b/gazebo/rendering/deferred_shading/MergeMaterialGenerator.cc
index c17a41f..14dcdc5 100644
--- a/gazebo/rendering/deferred_shading/MergeMaterialGenerator.cc
+++ b/gazebo/rendering/deferred_shading/MergeMaterialGenerator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/MergeMaterialGenerator.hh b/gazebo/rendering/deferred_shading/MergeMaterialGenerator.hh
index 8450ce7..f0aca30 100644
--- a/gazebo/rendering/deferred_shading/MergeMaterialGenerator.hh
+++ b/gazebo/rendering/deferred_shading/MergeMaterialGenerator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/MergeSchemeHandler.cc b/gazebo/rendering/deferred_shading/MergeSchemeHandler.cc
index ce5a128..9c7b969 100644
--- a/gazebo/rendering/deferred_shading/MergeSchemeHandler.cc
+++ b/gazebo/rendering/deferred_shading/MergeSchemeHandler.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/MergeSchemeHandler.hh b/gazebo/rendering/deferred_shading/MergeSchemeHandler.hh
index 937f79f..716a83c 100644
--- a/gazebo/rendering/deferred_shading/MergeSchemeHandler.hh
+++ b/gazebo/rendering/deferred_shading/MergeSchemeHandler.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/NullSchemeHandler.hh b/gazebo/rendering/deferred_shading/NullSchemeHandler.hh
index 77a184b..adc7fc8 100644
--- a/gazebo/rendering/deferred_shading/NullSchemeHandler.hh
+++ b/gazebo/rendering/deferred_shading/NullSchemeHandler.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/SSAOLogic.cc b/gazebo/rendering/deferred_shading/SSAOLogic.cc
index 9ceeff0..98b7776 100644
--- a/gazebo/rendering/deferred_shading/SSAOLogic.cc
+++ b/gazebo/rendering/deferred_shading/SSAOLogic.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/SSAOLogic.hh b/gazebo/rendering/deferred_shading/SSAOLogic.hh
index d1e898b..b1d8050 100644
--- a/gazebo/rendering/deferred_shading/SSAOLogic.hh
+++ b/gazebo/rendering/deferred_shading/SSAOLogic.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/deferred_shading/TechniqueDefinitions.hh b/gazebo/rendering/deferred_shading/TechniqueDefinitions.hh
index 07b711f..1cee652 100644
--- a/gazebo/rendering/deferred_shading/TechniqueDefinitions.hh
+++ b/gazebo/rendering/deferred_shading/TechniqueDefinitions.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/ogre_gazebo.h b/gazebo/rendering/ogre_gazebo.h
index 9347025..ce73f46 100644
--- a/gazebo/rendering/ogre_gazebo.h
+++ b/gazebo/rendering/ogre_gazebo.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/selection_buffer/MaterialSwitcher.cc b/gazebo/rendering/selection_buffer/MaterialSwitcher.cc
index 096dead..f81b452 100644
--- a/gazebo/rendering/selection_buffer/MaterialSwitcher.cc
+++ b/gazebo/rendering/selection_buffer/MaterialSwitcher.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/selection_buffer/MaterialSwitcher.hh b/gazebo/rendering/selection_buffer/MaterialSwitcher.hh
index 76af0b3..5f0f16b 100644
--- a/gazebo/rendering/selection_buffer/MaterialSwitcher.hh
+++ b/gazebo/rendering/selection_buffer/MaterialSwitcher.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/selection_buffer/SelectionBuffer.cc b/gazebo/rendering/selection_buffer/SelectionBuffer.cc
index 04cea27..7b64ef0 100644
--- a/gazebo/rendering/selection_buffer/SelectionBuffer.cc
+++ b/gazebo/rendering/selection_buffer/SelectionBuffer.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/selection_buffer/SelectionBuffer.hh b/gazebo/rendering/selection_buffer/SelectionBuffer.hh
index 326f6fa..5cf0062 100644
--- a/gazebo/rendering/selection_buffer/SelectionBuffer.hh
+++ b/gazebo/rendering/selection_buffer/SelectionBuffer.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/selection_buffer/SelectionRenderListener.cc b/gazebo/rendering/selection_buffer/SelectionRenderListener.cc
index f4de900..fc83c04 100644
--- a/gazebo/rendering/selection_buffer/SelectionRenderListener.cc
+++ b/gazebo/rendering/selection_buffer/SelectionRenderListener.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/rendering/selection_buffer/SelectionRenderListener.hh b/gazebo/rendering/selection_buffer/SelectionRenderListener.hh
index 6b18d70..7123685 100644
--- a/gazebo/rendering/selection_buffer/SelectionRenderListener.hh
+++ b/gazebo/rendering/selection_buffer/SelectionRenderListener.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/AltimeterSensor.cc b/gazebo/sensors/AltimeterSensor.cc
index 6e7cff1..dc7f0ff 100644
--- a/gazebo/sensors/AltimeterSensor.cc
+++ b/gazebo/sensors/AltimeterSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/AltimeterSensor.hh b/gazebo/sensors/AltimeterSensor.hh
index bea115a..4187200 100644
--- a/gazebo/sensors/AltimeterSensor.hh
+++ b/gazebo/sensors/AltimeterSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/AltimeterSensorPrivate.hh b/gazebo/sensors/AltimeterSensorPrivate.hh
index c9a0634..e35e429 100644
--- a/gazebo/sensors/AltimeterSensorPrivate.hh
+++ b/gazebo/sensors/AltimeterSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/AltimeterSensor_TEST.cc b/gazebo/sensors/AltimeterSensor_TEST.cc
index a23e980..d8d22b4 100644
--- a/gazebo/sensors/AltimeterSensor_TEST.cc
+++ b/gazebo/sensors/AltimeterSensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/CameraSensor.cc b/gazebo/sensors/CameraSensor.cc
index ad5dd2b..3af9ab2 100644
--- a/gazebo/sensors/CameraSensor.cc
+++ b/gazebo/sensors/CameraSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/CameraSensor.hh b/gazebo/sensors/CameraSensor.hh
index 3bd64e0..dcfce96 100644
--- a/gazebo/sensors/CameraSensor.hh
+++ b/gazebo/sensors/CameraSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/CameraSensorPrivate.hh b/gazebo/sensors/CameraSensorPrivate.hh
index b427e68..4359a6b 100644
--- a/gazebo/sensors/CameraSensorPrivate.hh
+++ b/gazebo/sensors/CameraSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/CameraSensor_TEST.cc b/gazebo/sensors/CameraSensor_TEST.cc
index 5d157d9..f36ff65 100644
--- a/gazebo/sensors/CameraSensor_TEST.cc
+++ b/gazebo/sensors/CameraSensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ContactSensor.cc b/gazebo/sensors/ContactSensor.cc
index 342e39a..e5e723c 100644
--- a/gazebo/sensors/ContactSensor.cc
+++ b/gazebo/sensors/ContactSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ContactSensor.hh b/gazebo/sensors/ContactSensor.hh
index dbb46f8..ad9797f 100644
--- a/gazebo/sensors/ContactSensor.hh
+++ b/gazebo/sensors/ContactSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ContactSensorPrivate.hh b/gazebo/sensors/ContactSensorPrivate.hh
index 75efdd2..44b5ab6 100644
--- a/gazebo/sensors/ContactSensorPrivate.hh
+++ b/gazebo/sensors/ContactSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/DepthCameraSensor.cc b/gazebo/sensors/DepthCameraSensor.cc
index 8d31363..a1a69e0 100644
--- a/gazebo/sensors/DepthCameraSensor.cc
+++ b/gazebo/sensors/DepthCameraSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/DepthCameraSensor.hh b/gazebo/sensors/DepthCameraSensor.hh
index 7782ae6..0784d54 100644
--- a/gazebo/sensors/DepthCameraSensor.hh
+++ b/gazebo/sensors/DepthCameraSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/DepthCameraSensorPrivate.hh b/gazebo/sensors/DepthCameraSensorPrivate.hh
index 33ee357..54ec298 100644
--- a/gazebo/sensors/DepthCameraSensorPrivate.hh
+++ b/gazebo/sensors/DepthCameraSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ForceTorqueSensor.cc b/gazebo/sensors/ForceTorqueSensor.cc
index 0df0af7..59f1fcc 100644
--- a/gazebo/sensors/ForceTorqueSensor.cc
+++ b/gazebo/sensors/ForceTorqueSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ForceTorqueSensor.hh b/gazebo/sensors/ForceTorqueSensor.hh
index f1f1873..5c3d97b 100644
--- a/gazebo/sensors/ForceTorqueSensor.hh
+++ b/gazebo/sensors/ForceTorqueSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ForceTorqueSensorPrivate.hh b/gazebo/sensors/ForceTorqueSensorPrivate.hh
index a1c1154..d4b1323 100644
--- a/gazebo/sensors/ForceTorqueSensorPrivate.hh
+++ b/gazebo/sensors/ForceTorqueSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ForceTorqueSensor_TEST.cc b/gazebo/sensors/ForceTorqueSensor_TEST.cc
index f6d4804..d215c5d 100644
--- a/gazebo/sensors/ForceTorqueSensor_TEST.cc
+++ b/gazebo/sensors/ForceTorqueSensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GaussianNoiseModel.cc b/gazebo/sensors/GaussianNoiseModel.cc
index 6c10c32..8389cf3 100644
--- a/gazebo/sensors/GaussianNoiseModel.cc
+++ b/gazebo/sensors/GaussianNoiseModel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GaussianNoiseModel.hh b/gazebo/sensors/GaussianNoiseModel.hh
index 3796771..31d8a84 100644
--- a/gazebo/sensors/GaussianNoiseModel.hh
+++ b/gazebo/sensors/GaussianNoiseModel.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpsSensor.cc b/gazebo/sensors/GpsSensor.cc
index 7330fec..433e750 100644
--- a/gazebo/sensors/GpsSensor.cc
+++ b/gazebo/sensors/GpsSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpsSensor.hh b/gazebo/sensors/GpsSensor.hh
index 7784473..c331d7d 100644
--- a/gazebo/sensors/GpsSensor.hh
+++ b/gazebo/sensors/GpsSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpsSensorPrivate.hh b/gazebo/sensors/GpsSensorPrivate.hh
index 2e54d5c..b6a5b22 100644
--- a/gazebo/sensors/GpsSensorPrivate.hh
+++ b/gazebo/sensors/GpsSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpsSensor_TEST.cc b/gazebo/sensors/GpsSensor_TEST.cc
index 4abac73..6297d71 100644
--- a/gazebo/sensors/GpsSensor_TEST.cc
+++ b/gazebo/sensors/GpsSensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpuRaySensor.cc b/gazebo/sensors/GpuRaySensor.cc
index 12c82b5..c96d886 100644
--- a/gazebo/sensors/GpuRaySensor.cc
+++ b/gazebo/sensors/GpuRaySensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpuRaySensor.hh b/gazebo/sensors/GpuRaySensor.hh
index 4418b44..dbba241 100644
--- a/gazebo/sensors/GpuRaySensor.hh
+++ b/gazebo/sensors/GpuRaySensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpuRaySensorPrivate.hh b/gazebo/sensors/GpuRaySensorPrivate.hh
index a94c6d7..96a9b5e 100644
--- a/gazebo/sensors/GpuRaySensorPrivate.hh
+++ b/gazebo/sensors/GpuRaySensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/GpuRaySensor_TEST.cc b/gazebo/sensors/GpuRaySensor_TEST.cc
index 4669aae..88bb641 100644
--- a/gazebo/sensors/GpuRaySensor_TEST.cc
+++ b/gazebo/sensors/GpuRaySensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ImuSensor.cc b/gazebo/sensors/ImuSensor.cc
index 3724838..19f0e41 100644
--- a/gazebo/sensors/ImuSensor.cc
+++ b/gazebo/sensors/ImuSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ImuSensor.hh b/gazebo/sensors/ImuSensor.hh
index 364b1d7..11918a0 100644
--- a/gazebo/sensors/ImuSensor.hh
+++ b/gazebo/sensors/ImuSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ImuSensorPrivate.hh b/gazebo/sensors/ImuSensorPrivate.hh
index be2d9c1..740588e 100644
--- a/gazebo/sensors/ImuSensorPrivate.hh
+++ b/gazebo/sensors/ImuSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/ImuSensor_TEST.cc b/gazebo/sensors/ImuSensor_TEST.cc
index 06f0d08..2636c1f 100644
--- a/gazebo/sensors/ImuSensor_TEST.cc
+++ b/gazebo/sensors/ImuSensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/LogicalCameraSensor.cc b/gazebo/sensors/LogicalCameraSensor.cc
index 91e48b2..57cd3d2 100644
--- a/gazebo/sensors/LogicalCameraSensor.cc
+++ b/gazebo/sensors/LogicalCameraSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/LogicalCameraSensor.hh b/gazebo/sensors/LogicalCameraSensor.hh
index 2e8f01b..14b94a1 100644
--- a/gazebo/sensors/LogicalCameraSensor.hh
+++ b/gazebo/sensors/LogicalCameraSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/LogicalCameraSensorPrivate.hh b/gazebo/sensors/LogicalCameraSensorPrivate.hh
index 57d327b..9ac4133 100644
--- a/gazebo/sensors/LogicalCameraSensorPrivate.hh
+++ b/gazebo/sensors/LogicalCameraSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/MagnetometerSensor.cc b/gazebo/sensors/MagnetometerSensor.cc
index eab5b3d..24a94db 100644
--- a/gazebo/sensors/MagnetometerSensor.cc
+++ b/gazebo/sensors/MagnetometerSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/MagnetometerSensor.hh b/gazebo/sensors/MagnetometerSensor.hh
index 3002090..381c3df 100644
--- a/gazebo/sensors/MagnetometerSensor.hh
+++ b/gazebo/sensors/MagnetometerSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/MagnetometerSensorPrivate.hh b/gazebo/sensors/MagnetometerSensorPrivate.hh
index 1e60d1f..93d0320 100644
--- a/gazebo/sensors/MagnetometerSensorPrivate.hh
+++ b/gazebo/sensors/MagnetometerSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/MagnetometerSensor_TEST.cc b/gazebo/sensors/MagnetometerSensor_TEST.cc
index 71cf092..782cb10 100644
--- a/gazebo/sensors/MagnetometerSensor_TEST.cc
+++ b/gazebo/sensors/MagnetometerSensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/MultiCameraSensor.cc b/gazebo/sensors/MultiCameraSensor.cc
index a12bed3..cc0fe03 100644
--- a/gazebo/sensors/MultiCameraSensor.cc
+++ b/gazebo/sensors/MultiCameraSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/MultiCameraSensor.hh b/gazebo/sensors/MultiCameraSensor.hh
index 806eec7..eb1f509 100644
--- a/gazebo/sensors/MultiCameraSensor.hh
+++ b/gazebo/sensors/MultiCameraSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/MultiCameraSensorPrivate.hh b/gazebo/sensors/MultiCameraSensorPrivate.hh
index 7c6888b..4f6d5df 100644
--- a/gazebo/sensors/MultiCameraSensorPrivate.hh
+++ b/gazebo/sensors/MultiCameraSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/Noise.cc b/gazebo/sensors/Noise.cc
index 58a0f35..8197ff7 100644
--- a/gazebo/sensors/Noise.cc
+++ b/gazebo/sensors/Noise.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/Noise.hh b/gazebo/sensors/Noise.hh
index 8abbd7c..9b954aa 100644
--- a/gazebo/sensors/Noise.hh
+++ b/gazebo/sensors/Noise.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/Noise_TEST.cc b/gazebo/sensors/Noise_TEST.cc
index 93baf04..765dd74 100644
--- a/gazebo/sensors/Noise_TEST.cc
+++ b/gazebo/sensors/Noise_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RFIDSensor.cc b/gazebo/sensors/RFIDSensor.cc
index 6a07500..579baad 100644
--- a/gazebo/sensors/RFIDSensor.cc
+++ b/gazebo/sensors/RFIDSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RFIDSensor.hh b/gazebo/sensors/RFIDSensor.hh
index 8d86088..667a750 100644
--- a/gazebo/sensors/RFIDSensor.hh
+++ b/gazebo/sensors/RFIDSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RFIDSensorPrivate.hh b/gazebo/sensors/RFIDSensorPrivate.hh
index 7090892..9dca5e3 100644
--- a/gazebo/sensors/RFIDSensorPrivate.hh
+++ b/gazebo/sensors/RFIDSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RFIDTag.cc b/gazebo/sensors/RFIDTag.cc
index 20efbce..f2005b0 100644
--- a/gazebo/sensors/RFIDTag.cc
+++ b/gazebo/sensors/RFIDTag.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RFIDTag.hh b/gazebo/sensors/RFIDTag.hh
index 70d89cf..9bc705c 100644
--- a/gazebo/sensors/RFIDTag.hh
+++ b/gazebo/sensors/RFIDTag.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RFIDTagPrivate.hh b/gazebo/sensors/RFIDTagPrivate.hh
index ac51741..4b239c6 100644
--- a/gazebo/sensors/RFIDTagPrivate.hh
+++ b/gazebo/sensors/RFIDTagPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RaySensor.cc b/gazebo/sensors/RaySensor.cc
index 0a3c616..091065b 100644
--- a/gazebo/sensors/RaySensor.cc
+++ b/gazebo/sensors/RaySensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RaySensor.hh b/gazebo/sensors/RaySensor.hh
index 4853981..a31a559 100644
--- a/gazebo/sensors/RaySensor.hh
+++ b/gazebo/sensors/RaySensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RaySensorPrivate.hh b/gazebo/sensors/RaySensorPrivate.hh
index ac414b3..4f60588 100644
--- a/gazebo/sensors/RaySensorPrivate.hh
+++ b/gazebo/sensors/RaySensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/RaySensor_TEST.cc b/gazebo/sensors/RaySensor_TEST.cc
index 075d371..21ad4da 100644
--- a/gazebo/sensors/RaySensor_TEST.cc
+++ b/gazebo/sensors/RaySensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/Sensor.cc b/gazebo/sensors/Sensor.cc
index 0e09ed8..6828fd8 100644
--- a/gazebo/sensors/Sensor.cc
+++ b/gazebo/sensors/Sensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -495,8 +495,8 @@ void Sensor::FillMsg(msgs::Sensor &_msg)
       distortionMsg->set_k3(distortion->GetK3());
       distortionMsg->set_p1(distortion->GetP1());
       distortionMsg->set_p2(distortion->GetP2());
-      distortionMsg->mutable_center()->set_x(distortion->GetCenter().x);
-      distortionMsg->mutable_center()->set_y(distortion->GetCenter().y);
+      distortionMsg->mutable_center()->set_x(distortion->GetCenter().Ign().X());
+      distortionMsg->mutable_center()->set_y(distortion->GetCenter().Ign().Y());
     }
   }
 }
diff --git a/gazebo/sensors/Sensor.hh b/gazebo/sensors/Sensor.hh
index db38ffc..71d5405 100644
--- a/gazebo/sensors/Sensor.hh
+++ b/gazebo/sensors/Sensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorFactory.cc b/gazebo/sensors/SensorFactory.cc
index bb4f0c2..bcecb3c 100644
--- a/gazebo/sensors/SensorFactory.cc
+++ b/gazebo/sensors/SensorFactory.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorFactory.hh b/gazebo/sensors/SensorFactory.hh
index c077a45..d128e41 100644
--- a/gazebo/sensors/SensorFactory.hh
+++ b/gazebo/sensors/SensorFactory.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorManager.cc b/gazebo/sensors/SensorManager.cc
index a0f1242..6f031cb 100644
--- a/gazebo/sensors/SensorManager.cc
+++ b/gazebo/sensors/SensorManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorManager.hh b/gazebo/sensors/SensorManager.hh
index 6a3dddf..e243720 100644
--- a/gazebo/sensors/SensorManager.hh
+++ b/gazebo/sensors/SensorManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorManager_TEST.cc b/gazebo/sensors/SensorManager_TEST.cc
index 716af77..65b43ca 100644
--- a/gazebo/sensors/SensorManager_TEST.cc
+++ b/gazebo/sensors/SensorManager_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorPrivate.hh b/gazebo/sensors/SensorPrivate.hh
index e51dc37..b405fdb 100644
--- a/gazebo/sensors/SensorPrivate.hh
+++ b/gazebo/sensors/SensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorTypes.cc b/gazebo/sensors/SensorTypes.cc
index d6c55a6..6c3c986 100644
--- a/gazebo/sensors/SensorTypes.cc
+++ b/gazebo/sensors/SensorTypes.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorTypes.hh b/gazebo/sensors/SensorTypes.hh
index 2b79e2f..7bd551b 100644
--- a/gazebo/sensors/SensorTypes.hh
+++ b/gazebo/sensors/SensorTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/Sensor_TEST.cc b/gazebo/sensors/Sensor_TEST.cc
index 1baccd5..a89f8e9 100644
--- a/gazebo/sensors/Sensor_TEST.cc
+++ b/gazebo/sensors/Sensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorsIface.cc b/gazebo/sensors/SensorsIface.cc
index 99b243f..d348a08 100644
--- a/gazebo/sensors/SensorsIface.cc
+++ b/gazebo/sensors/SensorsIface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SensorsIface.hh b/gazebo/sensors/SensorsIface.hh
index 9b9c236..955fa8c 100644
--- a/gazebo/sensors/SensorsIface.hh
+++ b/gazebo/sensors/SensorsIface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SonarSensor.cc b/gazebo/sensors/SonarSensor.cc
index addc836..072698f 100644
--- a/gazebo/sensors/SonarSensor.cc
+++ b/gazebo/sensors/SonarSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SonarSensor.hh b/gazebo/sensors/SonarSensor.hh
index 3df63d7..af37fc9 100644
--- a/gazebo/sensors/SonarSensor.hh
+++ b/gazebo/sensors/SonarSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SonarSensorPrivate.hh b/gazebo/sensors/SonarSensorPrivate.hh
index 64ae67f..bfe1299 100644
--- a/gazebo/sensors/SonarSensorPrivate.hh
+++ b/gazebo/sensors/SonarSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/SonarSensor_TEST.cc b/gazebo/sensors/SonarSensor_TEST.cc
index 5de6789..5d8c8c9 100644
--- a/gazebo/sensors/SonarSensor_TEST.cc
+++ b/gazebo/sensors/SonarSensor_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WideAngleCameraSensor.cc b/gazebo/sensors/WideAngleCameraSensor.cc
index 688490b..a229648 100644
--- a/gazebo/sensors/WideAngleCameraSensor.cc
+++ b/gazebo/sensors/WideAngleCameraSensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WideAngleCameraSensor.hh b/gazebo/sensors/WideAngleCameraSensor.hh
index fce32c1..2d97a64 100644
--- a/gazebo/sensors/WideAngleCameraSensor.hh
+++ b/gazebo/sensors/WideAngleCameraSensor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WideAngleCameraSensorPrivate.hh b/gazebo/sensors/WideAngleCameraSensorPrivate.hh
index a5fccdc..59b714e 100644
--- a/gazebo/sensors/WideAngleCameraSensorPrivate.hh
+++ b/gazebo/sensors/WideAngleCameraSensorPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessReceiver.cc b/gazebo/sensors/WirelessReceiver.cc
index 31fb25d..87fb661 100644
--- a/gazebo/sensors/WirelessReceiver.cc
+++ b/gazebo/sensors/WirelessReceiver.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessReceiver.hh b/gazebo/sensors/WirelessReceiver.hh
index a622f8b..73fab4b 100644
--- a/gazebo/sensors/WirelessReceiver.hh
+++ b/gazebo/sensors/WirelessReceiver.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessReceiverPrivate.hh b/gazebo/sensors/WirelessReceiverPrivate.hh
index 38ae05d..6defd9f 100644
--- a/gazebo/sensors/WirelessReceiverPrivate.hh
+++ b/gazebo/sensors/WirelessReceiverPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessReceiver_TEST.cc b/gazebo/sensors/WirelessReceiver_TEST.cc
index a662609..a037bc5 100644
--- a/gazebo/sensors/WirelessReceiver_TEST.cc
+++ b/gazebo/sensors/WirelessReceiver_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessTransceiver.cc b/gazebo/sensors/WirelessTransceiver.cc
index 2e2f7e1..2294363 100644
--- a/gazebo/sensors/WirelessTransceiver.cc
+++ b/gazebo/sensors/WirelessTransceiver.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessTransceiver.hh b/gazebo/sensors/WirelessTransceiver.hh
index 136ff69..0f72f41 100644
--- a/gazebo/sensors/WirelessTransceiver.hh
+++ b/gazebo/sensors/WirelessTransceiver.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessTransmitter.cc b/gazebo/sensors/WirelessTransmitter.cc
index e5437f2..0f34797 100644
--- a/gazebo/sensors/WirelessTransmitter.cc
+++ b/gazebo/sensors/WirelessTransmitter.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessTransmitter.hh b/gazebo/sensors/WirelessTransmitter.hh
index 3a2520d..3952272 100644
--- a/gazebo/sensors/WirelessTransmitter.hh
+++ b/gazebo/sensors/WirelessTransmitter.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessTransmitterPrivate.hh b/gazebo/sensors/WirelessTransmitterPrivate.hh
index ab03611..e0d04e4 100644
--- a/gazebo/sensors/WirelessTransmitterPrivate.hh
+++ b/gazebo/sensors/WirelessTransmitterPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/sensors/WirelessTransmitter_TEST.cc b/gazebo/sensors/WirelessTransmitter_TEST.cc
index 4fc8e00..1810a7d 100644
--- a/gazebo/sensors/WirelessTransmitter_TEST.cc
+++ b/gazebo/sensors/WirelessTransmitter_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/server_main.cc b/gazebo/server_main.cc
index 3f9a7fa..6115982 100644
--- a/gazebo/server_main.cc
+++ b/gazebo/server_main.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/test/ServerFixture.cc b/gazebo/test/ServerFixture.cc
index 043456b..c177577 100644
--- a/gazebo/test/ServerFixture.cc
+++ b/gazebo/test/ServerFixture.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/test/ServerFixture.hh b/gazebo/test/ServerFixture.hh
index dc8871f..59466cd 100644
--- a/gazebo/test/ServerFixture.hh
+++ b/gazebo/test/ServerFixture.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/test/ServerFixtureRecord.cc b/gazebo/test/ServerFixtureRecord.cc
index 5253f10..dba4a4f 100644
--- a/gazebo/test/ServerFixtureRecord.cc
+++ b/gazebo/test/ServerFixtureRecord.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/test/helper_physics_generator.hh b/gazebo/test/helper_physics_generator.hh
index 5179fca..c04ef27 100644
--- a/gazebo/test/helper_physics_generator.hh
+++ b/gazebo/test/helper_physics_generator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/CallbackHelper.cc b/gazebo/transport/CallbackHelper.cc
index e6f06d5..b0f1516 100644
--- a/gazebo/transport/CallbackHelper.cc
+++ b/gazebo/transport/CallbackHelper.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/CallbackHelper.hh b/gazebo/transport/CallbackHelper.hh
index 75d6c26..37fc7a3 100644
--- a/gazebo/transport/CallbackHelper.hh
+++ b/gazebo/transport/CallbackHelper.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Connection.cc b/gazebo/transport/Connection.cc
index 4a229c4..11f3968 100644
--- a/gazebo/transport/Connection.cc
+++ b/gazebo/transport/Connection.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Connection.hh b/gazebo/transport/Connection.hh
index 39f8f2c..f65a796 100644
--- a/gazebo/transport/Connection.hh
+++ b/gazebo/transport/Connection.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/ConnectionManager.cc b/gazebo/transport/ConnectionManager.cc
index 2fe1418..fc0831d 100644
--- a/gazebo/transport/ConnectionManager.cc
+++ b/gazebo/transport/ConnectionManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/ConnectionManager.hh b/gazebo/transport/ConnectionManager.hh
index c3e1187..2c165bb 100644
--- a/gazebo/transport/ConnectionManager.hh
+++ b/gazebo/transport/ConnectionManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Connection_TEST.cc b/gazebo/transport/Connection_TEST.cc
index 4a6f4d0..a743319 100644
--- a/gazebo/transport/Connection_TEST.cc
+++ b/gazebo/transport/Connection_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/IOManager.cc b/gazebo/transport/IOManager.cc
index 8bb3f68..952a3c0 100644
--- a/gazebo/transport/IOManager.cc
+++ b/gazebo/transport/IOManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/IOManager.hh b/gazebo/transport/IOManager.hh
index 24ae40e..ca41f64 100644
--- a/gazebo/transport/IOManager.hh
+++ b/gazebo/transport/IOManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Node.cc b/gazebo/transport/Node.cc
index 7e4b269..96d8c23 100644
--- a/gazebo/transport/Node.cc
+++ b/gazebo/transport/Node.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Node.hh b/gazebo/transport/Node.hh
index 0a0eb6d..9fec8d9 100644
--- a/gazebo/transport/Node.hh
+++ b/gazebo/transport/Node.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Publication.cc b/gazebo/transport/Publication.cc
index bbe0b6b..54d4023 100644
--- a/gazebo/transport/Publication.cc
+++ b/gazebo/transport/Publication.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Publication.hh b/gazebo/transport/Publication.hh
index e463353..7c7fec5 100644
--- a/gazebo/transport/Publication.hh
+++ b/gazebo/transport/Publication.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/PublicationTransport.cc b/gazebo/transport/PublicationTransport.cc
index 37741a9..ebb11e2 100644
--- a/gazebo/transport/PublicationTransport.cc
+++ b/gazebo/transport/PublicationTransport.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/PublicationTransport.hh b/gazebo/transport/PublicationTransport.hh
index 84d66e7..d2a0f16 100644
--- a/gazebo/transport/PublicationTransport.hh
+++ b/gazebo/transport/PublicationTransport.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Publisher.cc b/gazebo/transport/Publisher.cc
index f723e30..cf843c7 100644
--- a/gazebo/transport/Publisher.cc
+++ b/gazebo/transport/Publisher.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Publisher.hh b/gazebo/transport/Publisher.hh
index a9d1c35..d3d8987 100644
--- a/gazebo/transport/Publisher.hh
+++ b/gazebo/transport/Publisher.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/SubscribeOptions.hh b/gazebo/transport/SubscribeOptions.hh
index ca07623..907641d 100644
--- a/gazebo/transport/SubscribeOptions.hh
+++ b/gazebo/transport/SubscribeOptions.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Subscriber.cc b/gazebo/transport/Subscriber.cc
index f47da8a..c19e7af 100644
--- a/gazebo/transport/Subscriber.cc
+++ b/gazebo/transport/Subscriber.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/Subscriber.hh b/gazebo/transport/Subscriber.hh
index 7101bf7..83cc5c1 100644
--- a/gazebo/transport/Subscriber.hh
+++ b/gazebo/transport/Subscriber.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/SubscriptionTransport.cc b/gazebo/transport/SubscriptionTransport.cc
index 2e4a0999..f3e494c 100644
--- a/gazebo/transport/SubscriptionTransport.cc
+++ b/gazebo/transport/SubscriptionTransport.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/SubscriptionTransport.hh b/gazebo/transport/SubscriptionTransport.hh
index d176dc7..176939f 100644
--- a/gazebo/transport/SubscriptionTransport.hh
+++ b/gazebo/transport/SubscriptionTransport.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/TopicManager.cc b/gazebo/transport/TopicManager.cc
index 6c85c39..aad153a 100644
--- a/gazebo/transport/TopicManager.cc
+++ b/gazebo/transport/TopicManager.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/TopicManager.hh b/gazebo/transport/TopicManager.hh
index 40e5270..7fc2225 100644
--- a/gazebo/transport/TopicManager.hh
+++ b/gazebo/transport/TopicManager.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/TransportIface.cc b/gazebo/transport/TransportIface.cc
index 2a541a5..b2f0b51 100644
--- a/gazebo/transport/TransportIface.cc
+++ b/gazebo/transport/TransportIface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/TransportIface.hh b/gazebo/transport/TransportIface.hh
index 49247e6..4999a12 100644
--- a/gazebo/transport/TransportIface.hh
+++ b/gazebo/transport/TransportIface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/transport/TransportTypes.hh b/gazebo/transport/TransportTypes.hh
index 8e1e6c7..4ab36d9 100644
--- a/gazebo/transport/TransportTypes.hh
+++ b/gazebo/transport/TransportTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/Diagnostics.cc b/gazebo/util/Diagnostics.cc
index c0ac9b8..59d6b25 100644
--- a/gazebo/util/Diagnostics.cc
+++ b/gazebo/util/Diagnostics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/Diagnostics.hh b/gazebo/util/Diagnostics.hh
index d3f5183..ff0f51d 100644
--- a/gazebo/util/Diagnostics.hh
+++ b/gazebo/util/Diagnostics.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/DiagnosticsPrivate.hh b/gazebo/util/DiagnosticsPrivate.hh
index b747ff9..66d422e 100644
--- a/gazebo/util/DiagnosticsPrivate.hh
+++ b/gazebo/util/DiagnosticsPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/Diagnostics_TEST.cc b/gazebo/util/Diagnostics_TEST.cc
index 24e2a65..12da503 100644
--- a/gazebo/util/Diagnostics_TEST.cc
+++ b/gazebo/util/Diagnostics_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/LogPlay.cc b/gazebo/util/LogPlay.cc
index 774774a..0b7ae8a 100644
--- a/gazebo/util/LogPlay.cc
+++ b/gazebo/util/LogPlay.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/LogPlay.hh b/gazebo/util/LogPlay.hh
index f2f2adb..d6d2e03 100644
--- a/gazebo/util/LogPlay.hh
+++ b/gazebo/util/LogPlay.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/LogPlayPrivate.hh b/gazebo/util/LogPlayPrivate.hh
index c1ab371..fbc1765 100644
--- a/gazebo/util/LogPlayPrivate.hh
+++ b/gazebo/util/LogPlayPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/LogPlay_TEST.cc b/gazebo/util/LogPlay_TEST.cc
index 1831102..c0b1465 100644
--- a/gazebo/util/LogPlay_TEST.cc
+++ b/gazebo/util/LogPlay_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/LogRecord.cc b/gazebo/util/LogRecord.cc
index 35903cb..42968d1 100644
--- a/gazebo/util/LogRecord.cc
+++ b/gazebo/util/LogRecord.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -137,6 +137,14 @@ bool LogRecord::Init(const std::string &_subdir)
 }
 
 //////////////////////////////////////////////////
+bool LogRecord::Start(const LogRecordParams &_params)
+{
+  this->dataPtr->period = _params.period;
+  this->dataPtr->filter = _params.filter;
+  return this->Start(_params.encoding, _params.path);
+}
+
+//////////////////////////////////////////////////
 bool LogRecord::Start(const std::string &_encoding, const std::string &_path)
 {
   std::unique_lock<std::mutex> lock(this->dataPtr->controlMutex);
@@ -308,6 +316,30 @@ bool LogRecord::Paused() const
 }
 
 //////////////////////////////////////////////////
+double LogRecord::Period() const
+{
+  return this->dataPtr->period;
+}
+
+//////////////////////////////////////////////////
+void LogRecord::SetPeriod(const double _period)
+{
+  this->dataPtr->period = _period;
+}
+
+//////////////////////////////////////////////////
+std::string LogRecord::Filter() const
+{
+  return this->dataPtr->filter;
+}
+
+//////////////////////////////////////////////////
+void LogRecord::SetFilter(const std::string &_filter)
+{
+  this->dataPtr->filter = _filter;
+}
+
+//////////////////////////////////////////////////
 bool LogRecord::GetRunning() const
 {
   return this->Running();
diff --git a/gazebo/util/LogRecord.hh b/gazebo/util/LogRecord.hh
index 7954792..c70733e 100644
--- a/gazebo/util/LogRecord.hh
+++ b/gazebo/util/LogRecord.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,6 +30,24 @@ namespace gazebo
 {
   namespace util
   {
+    /// \brief Log recording parameters.
+    /// \sa LogRecord::Start
+    class LogRecordParams
+    {
+      /// \brief The type of encoding (txt, zlib, or bz2).
+      public: std::string encoding = "zlib";
+
+      /// \brief Path in which to store log files.
+      public: std::string path;
+
+      /// \brief Recording period. A value < 0 indicates that every
+      /// iteration should be recorded.
+      public: double period = -1;
+
+      /// \brief Log filter string
+      public: std::string filter;
+    };
+
     // Forward declare private data class
     class LogRecordPrivate;
 
@@ -117,6 +135,22 @@ namespace gazebo
       /// \sa LogRecord::SetPaused
       public: bool Paused() const;
 
+      /// \brief Get the log recording period.
+      /// \return Log recording period in seconds.
+      public: double Period() const;
+
+      /// \brief Set the log recording period.
+      /// \param[in] _period New log recording period in seconds.
+      public: void SetPeriod(const double _period);
+
+      /// \brief Get the log recording filter string.
+      /// \return Log recording filter string.
+      public: std::string Filter() const;
+
+      /// \brief Set the log recording filter string.
+      /// \param[in] _filter New log record filter regex string
+      public: void SetFilter(const std::string &_filter);
+
       /// \brief Get whether the logger is ready to start, which implies
       /// that any previous runs have finished.
       // \return True if logger is ready to start.
@@ -132,6 +166,10 @@ namespace gazebo
       public: bool Running() const;
 
       /// \brief Start the logger.
+      /// \params[in] _params Log recording parameters.
+      public: bool Start(const LogRecordParams &_params);
+
+      /// \brief Start the logger.
       /// \param[in] _encoding The type of encoding (txt, zlib, or bz2).
       /// \param[in] _path Path in which to store log files.
       public: bool Start(const std::string &_encoding="zlib",
diff --git a/gazebo/util/LogRecordPrivate.hh b/gazebo/util/LogRecordPrivate.hh
index e77f499..6a6df27 100644
--- a/gazebo/util/LogRecordPrivate.hh
+++ b/gazebo/util/LogRecordPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -200,6 +200,12 @@ namespace gazebo
       /// \brief True if the logger is ready to start, and the previous run
       /// has finished.
       public: bool readyToStart;
+
+      /// \brief Record period.
+      public: double period = -1.0;
+
+      /// \brief Record filter string.
+      public: std::string filter = "";
     };
     /// \}
   }
diff --git a/gazebo/util/LogRecord_TEST.cc b/gazebo/util/LogRecord_TEST.cc
index 6164a0b..6d81cae 100644
--- a/gazebo/util/LogRecord_TEST.cc
+++ b/gazebo/util/LogRecord_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -185,6 +185,32 @@ TEST_F(LogRecord_TEST, Start_zlib)
 }
 
 /////////////////////////////////////////////////
+/// \brief Test LogRecord filter
+TEST_F(LogRecord_TEST, Filter)
+{
+  gazebo::util::LogRecord *recorder = gazebo::util::LogRecord::Instance();
+
+  // check default values
+  EXPECT_DOUBLE_EQ(recorder->Period(), -1);
+  EXPECT_EQ(recorder->Filter(), std::string());
+
+  // filter by period
+  recorder->SetPeriod(0.02);
+  EXPECT_DOUBLE_EQ(recorder->Period(), 0.02);
+
+  recorder->SetPeriod(0);
+  EXPECT_DOUBLE_EQ(recorder->Period(), 0);
+
+
+  // filter by regex string
+  recorder->SetFilter("robot*");
+  EXPECT_EQ(recorder->Filter(), "robot*");
+
+  recorder->SetFilter("");
+  EXPECT_EQ(recorder->Filter(), "");
+}
+
+/////////////////////////////////////////////////
 int main(int argc, char **argv)
 {
   ::testing::InitGoogleTest(&argc, argv);
diff --git a/gazebo/util/OpenAL.cc b/gazebo/util/OpenAL.cc
index 94d920e..265c853 100644
--- a/gazebo/util/OpenAL.cc
+++ b/gazebo/util/OpenAL.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/OpenAL.hh b/gazebo/util/OpenAL.hh
index 23ccf4f..cb59a9c 100644
--- a/gazebo/util/OpenAL.hh
+++ b/gazebo/util/OpenAL.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/OpenALPrivate.hh b/gazebo/util/OpenALPrivate.hh
index 0dcbed2..b69c728 100644
--- a/gazebo/util/OpenALPrivate.hh
+++ b/gazebo/util/OpenALPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/OpenAL_TEST.cc b/gazebo/util/OpenAL_TEST.cc
index 6bb2c16..5056d65 100644
--- a/gazebo/util/OpenAL_TEST.cc
+++ b/gazebo/util/OpenAL_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/UtilTypes.hh b/gazebo/util/UtilTypes.hh
index 946600b..4477e89 100644
--- a/gazebo/util/UtilTypes.hh
+++ b/gazebo/util/UtilTypes.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/gazebo/util/system.hh b/gazebo/util/system.hh
index 415d2e0..fb3e4b9 100644
--- a/gazebo/util/system.hh
+++ b/gazebo/util/system.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/ActarrayInterface.cc b/interfaces/player/ActarrayInterface.cc
index 15f22f2..6628da9 100644
--- a/interfaces/player/ActarrayInterface.cc
+++ b/interfaces/player/ActarrayInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/ActarrayInterface.hh b/interfaces/player/ActarrayInterface.hh
index dded987..252dabf 100644
--- a/interfaces/player/ActarrayInterface.hh
+++ b/interfaces/player/ActarrayInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/BumperInterface.cc b/interfaces/player/BumperInterface.cc
index 677f541..92b5360 100644
--- a/interfaces/player/BumperInterface.cc
+++ b/interfaces/player/BumperInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/BumperInterface.hh b/interfaces/player/BumperInterface.hh
index 4cb9b65..163e095 100644
--- a/interfaces/player/BumperInterface.hh
+++ b/interfaces/player/BumperInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/CameraInterface.cc b/interfaces/player/CameraInterface.cc
index 4d4f2a9..e36d89f 100644
--- a/interfaces/player/CameraInterface.cc
+++ b/interfaces/player/CameraInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/CameraInterface.hh b/interfaces/player/CameraInterface.hh
index bcc6cd8..68e855b 100644
--- a/interfaces/player/CameraInterface.hh
+++ b/interfaces/player/CameraInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/FiducialInterface.cc b/interfaces/player/FiducialInterface.cc
index 0d30f26..4e225be 100644
--- a/interfaces/player/FiducialInterface.cc
+++ b/interfaces/player/FiducialInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/FiducialInterface.hh b/interfaces/player/FiducialInterface.hh
index 89c4bbc..20cc067 100644
--- a/interfaces/player/FiducialInterface.hh
+++ b/interfaces/player/FiducialInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboClient.cc b/interfaces/player/GazeboClient.cc
index 3fea286..1581daa 100644
--- a/interfaces/player/GazeboClient.cc
+++ b/interfaces/player/GazeboClient.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboClient.hh b/interfaces/player/GazeboClient.hh
index 08e09a5..b8a9f5c 100644
--- a/interfaces/player/GazeboClient.hh
+++ b/interfaces/player/GazeboClient.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboDriver.cc b/interfaces/player/GazeboDriver.cc
index 8a59b1d..5fc1061 100644
--- a/interfaces/player/GazeboDriver.cc
+++ b/interfaces/player/GazeboDriver.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboDriver.hh b/interfaces/player/GazeboDriver.hh
index 1bb64ed..20d6b04 100644
--- a/interfaces/player/GazeboDriver.hh
+++ b/interfaces/player/GazeboDriver.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboInterface.cc b/interfaces/player/GazeboInterface.cc
index d4ee0c4..79569dd 100644
--- a/interfaces/player/GazeboInterface.cc
+++ b/interfaces/player/GazeboInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboInterface.hh b/interfaces/player/GazeboInterface.hh
index 33f96c5..d88f766 100644
--- a/interfaces/player/GazeboInterface.hh
+++ b/interfaces/player/GazeboInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboTime.cc b/interfaces/player/GazeboTime.cc
index eec3e8d..b2c813e 100644
--- a/interfaces/player/GazeboTime.cc
+++ b/interfaces/player/GazeboTime.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GazeboTime.hh b/interfaces/player/GazeboTime.hh
index 746a33f..5f34194 100644
--- a/interfaces/player/GazeboTime.hh
+++ b/interfaces/player/GazeboTime.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GpsInterface.cc b/interfaces/player/GpsInterface.cc
index 85c249a..11773e4 100644
--- a/interfaces/player/GpsInterface.cc
+++ b/interfaces/player/GpsInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GpsInterface.hh b/interfaces/player/GpsInterface.hh
index 2cf5dfa..991f9d8 100644
--- a/interfaces/player/GpsInterface.hh
+++ b/interfaces/player/GpsInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/Graphics3dInterface.cc b/interfaces/player/Graphics3dInterface.cc
index 8c57c71..0562352 100644
--- a/interfaces/player/Graphics3dInterface.cc
+++ b/interfaces/player/Graphics3dInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/Graphics3dInterface.hh b/interfaces/player/Graphics3dInterface.hh
index 68d3505..c27b2f1 100644
--- a/interfaces/player/Graphics3dInterface.hh
+++ b/interfaces/player/Graphics3dInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GripperInterface.cc b/interfaces/player/GripperInterface.cc
index 4cdf138..3b7a375 100644
--- a/interfaces/player/GripperInterface.cc
+++ b/interfaces/player/GripperInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/GripperInterface.hh b/interfaces/player/GripperInterface.hh
index 49a5816..bacbdb1 100644
--- a/interfaces/player/GripperInterface.hh
+++ b/interfaces/player/GripperInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/IRInterface.cc b/interfaces/player/IRInterface.cc
index 6bfeec7..8853c89 100644
--- a/interfaces/player/IRInterface.cc
+++ b/interfaces/player/IRInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/IRInterface.hh b/interfaces/player/IRInterface.hh
index c17783f..5ceb5af 100644
--- a/interfaces/player/IRInterface.hh
+++ b/interfaces/player/IRInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/LaserInterface.cc b/interfaces/player/LaserInterface.cc
index ec4b532..7c92434 100644
--- a/interfaces/player/LaserInterface.cc
+++ b/interfaces/player/LaserInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/LaserInterface.hh b/interfaces/player/LaserInterface.hh
index 619de8b..6e44e30 100644
--- a/interfaces/player/LaserInterface.hh
+++ b/interfaces/player/LaserInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/OpaqueInterface.cc b/interfaces/player/OpaqueInterface.cc
index 0f9cfde..791c166 100644
--- a/interfaces/player/OpaqueInterface.cc
+++ b/interfaces/player/OpaqueInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/OpaqueInterface.hh b/interfaces/player/OpaqueInterface.hh
index d34cf3a..a6fd827 100644
--- a/interfaces/player/OpaqueInterface.hh
+++ b/interfaces/player/OpaqueInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/PTZInterface.cc b/interfaces/player/PTZInterface.cc
index 874ad8b..f8b3f4e 100644
--- a/interfaces/player/PTZInterface.cc
+++ b/interfaces/player/PTZInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/PTZInterface.hh b/interfaces/player/PTZInterface.hh
index 23b1c3e..1ef5e38 100644
--- a/interfaces/player/PTZInterface.hh
+++ b/interfaces/player/PTZInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/Position2dInterface.cc b/interfaces/player/Position2dInterface.cc
index e27a269..ea348ce 100644
--- a/interfaces/player/Position2dInterface.cc
+++ b/interfaces/player/Position2dInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/Position2dInterface.hh b/interfaces/player/Position2dInterface.hh
index a8cc669..1151403 100644
--- a/interfaces/player/Position2dInterface.hh
+++ b/interfaces/player/Position2dInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/Position3dInterface.cc b/interfaces/player/Position3dInterface.cc
index 4db08e5..ed6b884 100644
--- a/interfaces/player/Position3dInterface.cc
+++ b/interfaces/player/Position3dInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/Position3dInterface.hh b/interfaces/player/Position3dInterface.hh
index f5dcd39..7fdbcd8 100644
--- a/interfaces/player/Position3dInterface.hh
+++ b/interfaces/player/Position3dInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/PowerInterface.cc b/interfaces/player/PowerInterface.cc
index 6685c2a..9c6cc05 100644
--- a/interfaces/player/PowerInterface.cc
+++ b/interfaces/player/PowerInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/PowerInterface.hh b/interfaces/player/PowerInterface.hh
index 1321939..993dfa1 100644
--- a/interfaces/player/PowerInterface.hh
+++ b/interfaces/player/PowerInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/SimulationInterface.cc b/interfaces/player/SimulationInterface.cc
index ea0e0a7..5b6c3cb 100644
--- a/interfaces/player/SimulationInterface.cc
+++ b/interfaces/player/SimulationInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/SimulationInterface.hh b/interfaces/player/SimulationInterface.hh
index c687ecb..4611724 100644
--- a/interfaces/player/SimulationInterface.hh
+++ b/interfaces/player/SimulationInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/SonarInterface.cc b/interfaces/player/SonarInterface.cc
index 6b8f9ae..905caf7 100644
--- a/interfaces/player/SonarInterface.cc
+++ b/interfaces/player/SonarInterface.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/SonarInterface.hh b/interfaces/player/SonarInterface.hh
index c6c1167..e64240f 100644
--- a/interfaces/player/SonarInterface.hh
+++ b/interfaces/player/SonarInterface.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/interfaces/player/player.h b/interfaces/player/player.h
index 1dc209e..d74407d 100644
--- a/interfaces/player/player.h
+++ b/interfaces/player/player.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/media/materials/programs/camera_distortion_map_fs.glsl b/media/materials/programs/camera_distortion_map_fs.glsl
index 1c962a0..5f5fa33 100644
--- a/media/materials/programs/camera_distortion_map_fs.glsl
+++ b/media/materials/programs/camera_distortion_map_fs.glsl
@@ -10,7 +10,7 @@ uniform vec3 scale;
 void main()
 {
   vec2 scaleCenter = vec2(0.5, 0.5);
-  vec2 inputUV = (gl_TexCoord[0].xy - scaleCenter) * scale.xy + scaleCenter;
+  vec2 inputUV = (gl_TexCoord[0].xy - scaleCenter) / scale.xy + scaleCenter;
   vec4 mapUV = texture2D(distortionMap, inputUV);
 
   if (mapUV.x < 0.0 || mapUV.y < 0.0)
diff --git a/media/materials/programs/wide_lens_map_fp.glsl b/media/materials/programs/wide_lens_map_fp.glsl
index 972986a..00c5c54 100644
--- a/media/materials/programs/wide_lens_map_fp.glsl
+++ b/media/materials/programs/wide_lens_map_fp.glsl
@@ -1,4 +1,4 @@
-#version 130
+#version 120
 
 uniform samplerCube envMap;
 
diff --git a/media/materials/programs/wide_lens_map_vs.glsl b/media/materials/programs/wide_lens_map_vs.glsl
index 1d5cf7a..7ac01bf 100644
--- a/media/materials/programs/wide_lens_map_vs.glsl
+++ b/media/materials/programs/wide_lens_map_vs.glsl
@@ -1,4 +1,4 @@
-#version 130
+#version 120
 
 // aspect ratio
 uniform float ratio;
diff --git a/plugins/ActuatorPlugin.cc b/plugins/ActuatorPlugin.cc
index 136f9e5..bb6863a 100644
--- a/plugins/ActuatorPlugin.cc
+++ b/plugins/ActuatorPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ActuatorPlugin.hh b/plugins/ActuatorPlugin.hh
index 97e412f..90a88f0 100644
--- a/plugins/ActuatorPlugin.hh
+++ b/plugins/ActuatorPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ArrangePlugin.cc b/plugins/ArrangePlugin.cc
index eac3c3f..98ee8ba 100644
--- a/plugins/ArrangePlugin.cc
+++ b/plugins/ArrangePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ArrangePlugin.hh b/plugins/ArrangePlugin.hh
index 68eb87a..9f8bb6c 100644
--- a/plugins/ArrangePlugin.hh
+++ b/plugins/ArrangePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/AttachLightPlugin.cc b/plugins/AttachLightPlugin.cc
new file mode 100644
index 0000000..0285813
--- /dev/null
+++ b/plugins/AttachLightPlugin.cc
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#include <map>
+#include <vector>
+#include <ignition/math/Pose3.hh>
+
+#include "gazebo/physics/physics.hh"
+#include "plugins/AttachLightPlugin.hh"
+
+
+namespace gazebo
+{
+  /// \brief Private data class for the AttachLightPlugin class
+  class AttachLightPluginPrivate
+  {
+    /// \brief Event connections
+    public: std::vector<event::ConnectionPtr> connections;
+
+    /// \brief Pointer to parent model
+    public: physics::ModelPtr model;
+
+    /// \brief Pointer to the world
+    public: physics::WorldPtr world;
+
+    /// \brief List of link and light pointers and the light pose offset
+    public: std::map<physics::LinkPtr, std::map<physics::LightPtr,
+        ignition::math::Pose3d>> linkLights;
+  };
+}
+
+using namespace gazebo;
+GZ_REGISTER_MODEL_PLUGIN(AttachLightPlugin)
+
+/////////////////////////////////////////////////
+AttachLightPlugin::AttachLightPlugin()
+    : dataPtr(new AttachLightPluginPrivate)
+{
+}
+
+/////////////////////////////////////////////////
+void AttachLightPlugin::Load(physics::ModelPtr _model, sdf::ElementPtr _sdf)
+{
+  this->dataPtr->model = _model;
+  this->dataPtr->world = _model->GetWorld();
+
+  if (!_sdf->HasElement("link"))
+  {
+    gzerr << "No <link> sdf elements found." << std::endl;
+    return;
+  }
+
+  // load links
+  sdf::ElementPtr linkElem = _sdf->GetElement("link");
+  while (linkElem)
+  {
+    std::string linkName;
+    if (linkElem->HasElement("link_name"))
+    {
+      linkName = linkElem->Get<std::string>("link_name");
+
+      physics::LinkPtr link = this->dataPtr->model->GetLink(linkName);
+      if (!link)
+      {
+        gzerr << "Link: '" << linkName << "' not found." << std::endl;
+      }
+      else
+      {
+        // load lights
+        if (linkElem->HasElement("light"))
+        {
+          sdf::ElementPtr lightElem = linkElem->GetElement("light");
+          while (lightElem)
+          {
+            std::string lightName = lightElem->Get<std::string>("light_name");
+            physics::LightPtr light = this->dataPtr->world->Light(lightName);
+
+            // lights are loaded before models so we should be able to find them
+            if (!light)
+            {
+              gzerr << "Light: '" << lightName << "' not found." << std::endl;
+            }
+            else
+            {
+              // pose is optional
+              ignition::math::Pose3d pose;
+              if (lightElem->HasElement("pose"))
+                pose = lightElem->Get<ignition::math::Pose3d>("pose");
+
+              auto &lights = this->dataPtr->linkLights[link];
+              lights[light] = pose;
+            }
+            lightElem = lightElem->GetNextElement("light");
+          }
+        }
+      }
+    }
+    linkElem = linkElem->GetNextElement("link");
+  }
+
+  if (this->dataPtr->linkLights.empty())
+    return;
+
+  this->dataPtr->connections.push_back(event::Events::ConnectWorldUpdateEnd(
+      std::bind(&AttachLightPlugin::OnUpdate, this)));
+}
+
+/////////////////////////////////////////////////
+void AttachLightPlugin::OnUpdate()
+{
+  // update light pose based on link pose
+  for (auto &it : this->dataPtr->linkLights)
+  {
+    physics::LinkPtr link = it.first;
+    std::map<physics::LightPtr, ignition::math::Pose3d> &lights = it.second;
+    for (auto &lightIt : lights)
+    {
+      physics::LightPtr light = lightIt.first;
+      ignition::math::Pose3d pose = lightIt.second;
+      light->SetWorldPose(pose + link->GetWorldPose().Ign());
+    }
+  }
+}
diff --git a/plugins/AttachLightPlugin.hh b/plugins/AttachLightPlugin.hh
new file mode 100644
index 0000000..10a2455
--- /dev/null
+++ b/plugins/AttachLightPlugin.hh
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#ifndef GAZEBO_PLUGINS_ATTACHLIGHTPLUGIN_HH_
+#define GAZEBO_PLUGINS_ATTACHLIGHTPLUGIN_HH_
+
+#include <memory>
+
+#include "gazebo/common/Plugin.hh"
+#include "gazebo/util/system.hh"
+
+namespace gazebo
+{
+  // forward declarations
+  class AttachLightPluginPrivate;
+
+  /// \brief A model plugin that enables multiple lights in the world to be
+  /// attached to links within the model.
+  ///
+  /// The plugin has the following SDF description:
+  /// <link>            SDF element. More than one <link> can be defined.
+  ///   <link_name>     Name of the link in the model.
+  ///   <light>         SDF element. More than one <light> can be attached.
+  ///     <pose>        Offset pose of the light in the link frame.
+  ///     <light_name>  Name of the light in the world.
+  class GAZEBO_VISIBLE AttachLightPlugin : public ModelPlugin
+  {
+    /// \brief Constructor
+    public: AttachLightPlugin();
+
+    // Documentation inherited
+    public: virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf);
+
+    /// \brief Main loop to update the pose of lights
+    private: void OnUpdate();
+
+    /// \brief Pointer to private data
+    private: std::unique_ptr<AttachLightPluginPrivate> dataPtr;
+  };
+}
+#endif
diff --git a/plugins/BreakableJointPlugin.cc b/plugins/BreakableJointPlugin.cc
index 6c71c1d..3067ab0 100644
--- a/plugins/BreakableJointPlugin.cc
+++ b/plugins/BreakableJointPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/BreakableJointPlugin.hh b/plugins/BreakableJointPlugin.hh
index 6e790d9..4e41c36 100644
--- a/plugins/BreakableJointPlugin.hh
+++ b/plugins/BreakableJointPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/BuoyancyPlugin.cc b/plugins/BuoyancyPlugin.cc
index 2c14728..ade7814 100644
--- a/plugins/BuoyancyPlugin.cc
+++ b/plugins/BuoyancyPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/BuoyancyPlugin.hh b/plugins/BuoyancyPlugin.hh
index 53c6f16..00b8536 100644
--- a/plugins/BuoyancyPlugin.hh
+++ b/plugins/BuoyancyPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index cd2c66a..b67379f 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -39,6 +39,7 @@ endif()
 set (plugins_single_header
   ActuatorPlugin
   ArrangePlugin
+  AttachLightPlugin
   BlinkVisualPlugin
   BreakableJointPlugin
   BuoyancyPlugin
@@ -52,6 +53,7 @@ set (plugins_single_header
   ForceTorquePlugin
   GpuRayPlugin
   HarnessPlugin
+  HeightmapLODPlugin
   ImuSensorPlugin
   InitialVelocityPlugin
   JointTrajectoryPlugin
@@ -68,6 +70,7 @@ set (plugins_single_header
   SkidSteerDrivePlugin
   SonarPlugin
   SphereAtlasDemoPlugin
+  TouchPlugin
   VehiclePlugin)
 
 set (plugins_private_header
diff --git a/plugins/CameraPlugin.cc b/plugins/CameraPlugin.cc
index 3806f7b..d60cbcc 100644
--- a/plugins/CameraPlugin.cc
+++ b/plugins/CameraPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CameraPlugin.hh b/plugins/CameraPlugin.hh
index 80935d8..dd0d228 100644
--- a/plugins/CameraPlugin.hh
+++ b/plugins/CameraPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CartDemoPlugin.cc b/plugins/CartDemoPlugin.cc
index 13684af..e5f97ce 100644
--- a/plugins/CartDemoPlugin.cc
+++ b/plugins/CartDemoPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CartDemoPlugin.hh b/plugins/CartDemoPlugin.hh
index e639030..55014a7 100644
--- a/plugins/CartDemoPlugin.hh
+++ b/plugins/CartDemoPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CessnaGUIPlugin.cc b/plugins/CessnaGUIPlugin.cc
index b762836..91a5f01 100644
--- a/plugins/CessnaGUIPlugin.cc
+++ b/plugins/CessnaGUIPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CessnaGUIPlugin.hh b/plugins/CessnaGUIPlugin.hh
index c29e013..f41e3ae 100644
--- a/plugins/CessnaGUIPlugin.hh
+++ b/plugins/CessnaGUIPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CessnaPlugin.cc b/plugins/CessnaPlugin.cc
index 5c4b9c7..397f1f7 100644
--- a/plugins/CessnaPlugin.cc
+++ b/plugins/CessnaPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/CessnaPlugin.hh b/plugins/CessnaPlugin.hh
index a105dbe..3cc3961 100644
--- a/plugins/CessnaPlugin.hh
+++ b/plugins/CessnaPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ContactPlugin.cc b/plugins/ContactPlugin.cc
index fc148c5..7fde72b 100644
--- a/plugins/ContactPlugin.cc
+++ b/plugins/ContactPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ContactPlugin.hh b/plugins/ContactPlugin.hh
index 60d5071..dfcaccf 100644
--- a/plugins/ContactPlugin.hh
+++ b/plugins/ContactPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/DepthCameraPlugin.cc b/plugins/DepthCameraPlugin.cc
index 451c05d..8098e73 100644
--- a/plugins/DepthCameraPlugin.cc
+++ b/plugins/DepthCameraPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/DepthCameraPlugin.hh b/plugins/DepthCameraPlugin.hh
index 98355f4..2a72225 100644
--- a/plugins/DepthCameraPlugin.hh
+++ b/plugins/DepthCameraPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/DiffDrivePlugin.cc b/plugins/DiffDrivePlugin.cc
index 8e41160..116ac80 100644
--- a/plugins/DiffDrivePlugin.cc
+++ b/plugins/DiffDrivePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/DiffDrivePlugin.hh b/plugins/DiffDrivePlugin.hh
index d2a234a..491481f 100644
--- a/plugins/DiffDrivePlugin.hh
+++ b/plugins/DiffDrivePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ElevatorPlugin.cc b/plugins/ElevatorPlugin.cc
index 003c63c..4530b5f 100644
--- a/plugins/ElevatorPlugin.cc
+++ b/plugins/ElevatorPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ElevatorPlugin.hh b/plugins/ElevatorPlugin.hh
index 5ddf27e..8c7dd77 100644
--- a/plugins/ElevatorPlugin.hh
+++ b/plugins/ElevatorPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ElevatorPluginPrivate.hh b/plugins/ElevatorPluginPrivate.hh
index 348a386..a954585 100644
--- a/plugins/ElevatorPluginPrivate.hh
+++ b/plugins/ElevatorPluginPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ForceTorquePlugin.cc b/plugins/ForceTorquePlugin.cc
index 0b60ca6..0fd9f9c 100644
--- a/plugins/ForceTorquePlugin.cc
+++ b/plugins/ForceTorquePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ForceTorquePlugin.hh b/plugins/ForceTorquePlugin.hh
index e226195..993959a 100644
--- a/plugins/ForceTorquePlugin.hh
+++ b/plugins/ForceTorquePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/GpuRayPlugin.cc b/plugins/GpuRayPlugin.cc
index 95ef549..95aa003 100644
--- a/plugins/GpuRayPlugin.cc
+++ b/plugins/GpuRayPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/GpuRayPlugin.hh b/plugins/GpuRayPlugin.hh
index 935a01b..1ef053c 100644
--- a/plugins/GpuRayPlugin.hh
+++ b/plugins/GpuRayPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/HarnessPlugin.cc b/plugins/HarnessPlugin.cc
index 7ff2f31..84532b5 100644
--- a/plugins/HarnessPlugin.cc
+++ b/plugins/HarnessPlugin.cc
@@ -224,8 +224,10 @@ void HarnessPlugin::OnUpdate(const common::UpdateInfo &_info)
   }
   common::Time dt = _info.simTime - this->prevSimTime;
 
-  if (this->winchIndex < 0 ||
-      this->winchIndex >= static_cast<int>(this->joints.size()))
+  // store winchIndex in local variable since it can change in callback
+  int tmpWinchIndex = this->winchIndex;
+  if (tmpWinchIndex < 0 ||
+      tmpWinchIndex >= static_cast<int>(this->joints.size()))
   {
     if (this->detachIndex >= 0 &&
         this->detachIndex < static_cast<int>(this->joints.size()))
@@ -241,12 +243,12 @@ void HarnessPlugin::OnUpdate(const common::UpdateInfo &_info)
   if (ignition::math::equal(this->winchTargetVel, 0.0f))
   {
     // Calculate the position error if vel target is 0
-    pError = this->joints[this->winchIndex]->GetAngle(0).Radian() -
+    pError = this->joints[tmpWinchIndex]->GetAngle(0).Radian() -
       this->winchTargetPos;
   }
 
   // Calculate the velocity error
-  double vError = this->joints[this->winchIndex]->GetVelocity(0) -
+  double vError = this->joints[tmpWinchIndex]->GetVelocity(0) -
     this->winchTargetVel;
 
 
@@ -259,7 +261,7 @@ void HarnessPlugin::OnUpdate(const common::UpdateInfo &_info)
   winchVelForce = winchVelForce > 0? winchVelForce : 0.0;
 
   // Apply the joint force
-  this->joints[this->winchIndex]->SetForce(0, winchVelForce + winchPosForce);
+  this->joints[tmpWinchIndex]->SetForce(0, winchVelForce + winchPosForce);
 
   this->prevSimTime = _info.simTime;
 }
@@ -297,14 +299,24 @@ void HarnessPlugin::Detach()
 /////////////////////////////////////////////////
 double HarnessPlugin::WinchVelocity() const
 {
-  return this->joints[this->winchIndex]->GetVelocity(0);
+  // store winchIndex in local variable since it can change in callback
+  int tmpWinchIndex = this->winchIndex;
+  if (tmpWinchIndex < 0 ||
+      tmpWinchIndex >= static_cast<int>(this->joints.size()))
+  {
+    gzerr << "No known winch joint to get velocity" << std::endl;
+    return 0;
+  }
+  return this->joints[tmpWinchIndex]->GetVelocity(0);
 }
 
 /////////////////////////////////////////////////
 void HarnessPlugin::SetWinchVelocity(const float _value)
 {
-  if (this->winchIndex < 0 ||
-      this->winchIndex >= static_cast<int>(this->joints.size()))
+  // store winchIndex in local variable since it can change in callback
+  int tmpWinchIndex = this->winchIndex;
+  if (tmpWinchIndex < 0 ||
+      tmpWinchIndex >= static_cast<int>(this->joints.size()))
   {
     gzerr << "No known winch joint to set velocity" << std::endl;
     return;
@@ -314,7 +326,7 @@ void HarnessPlugin::SetWinchVelocity(const float _value)
   if (ignition::math::equal(_value, 0.0f))
   {
     // if zero velocity is commanded, hold position
-    this->winchTargetPos = this->joints[this->winchIndex]->GetAngle(0).Radian();
+    this->winchTargetPos = this->joints[tmpWinchIndex]->GetAngle(0).Radian();
     this->winchPosPID.Reset();
   }
 }
@@ -322,7 +334,7 @@ void HarnessPlugin::SetWinchVelocity(const float _value)
 /////////////////////////////////////////////////
 int HarnessPlugin::JointIndex(const std::string &_name) const
 {
-  // Find the winch joint in our list of joints
+  // Find the given joint in our list of joints
   for (size_t i = 0; i < this->joints.size(); ++i)
   {
     if (this->joints[i]->GetName() == _name)
diff --git a/plugins/HarnessPlugin.hh b/plugins/HarnessPlugin.hh
index 8f9a9a7..3cad15a 100644
--- a/plugins/HarnessPlugin.hh
+++ b/plugins/HarnessPlugin.hh
@@ -79,11 +79,11 @@ namespace gazebo
     private: void OnUpdate(const common::UpdateInfo &_info);
 
     /// \brief Velocity control callback.
-    /// \param[in] _msg Message data, interpretted as a float
+    /// \param[in] _msg Message data, interpreted as a float
     private: void OnVelocity(ConstGzStringPtr &_msg);
 
     /// \brief Detach control callback.
-    /// \param[in] _msg Message data, interpretted as a bool
+    /// \param[in] _msg Message data, interpreted as a bool
     private: void OnDetach(ConstGzStringPtr &_msg);
 
     /// \brief Get the index of a joint with the given name.
diff --git a/plugins/HeightmapLODPlugin.cc b/plugins/HeightmapLODPlugin.cc
new file mode 100644
index 0000000..ffd7ad8
--- /dev/null
+++ b/plugins/HeightmapLODPlugin.cc
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#include <gazebo/rendering/RenderingIface.hh>
+#include <gazebo/rendering/Scene.hh>
+#include <gazebo/rendering/Visual.hh>
+
+#include "HeightmapLODPlugin.hh"
+
+namespace gazebo
+{
+  /// \internal
+  /// \class HeightmapLODPlugin HeightmapLODPlugin.hh
+  /// \brief Private data for the HeightmapLODPlugin class.
+  class HeightmapLODPluginPrivate
+  {
+    /// \brief Parent visual
+    public: rendering::VisualPtr viusal;
+
+    /// \brief Default LOD value to set to.
+    public: unsigned int lod = 3u;
+  };
+}
+
+using namespace gazebo;
+
+GZ_REGISTER_VISUAL_PLUGIN(HeightmapLODPlugin)
+
+/////////////////////////////////////////////////
+HeightmapLODPlugin::HeightmapLODPlugin()
+    : dataPtr(new HeightmapLODPluginPrivate)
+{
+}
+
+/////////////////////////////////////////////////
+void HeightmapLODPlugin::Load(rendering::VisualPtr _visual,
+    sdf::ElementPtr _sdf)
+{
+  if (!_visual || !_sdf)
+  {
+    gzerr << "No visual or SDF element specified. Plugin won't load." <<
+        std::endl;
+    return;
+  }
+
+  if (_sdf->HasElement("lod"))
+    this->dataPtr->lod = _sdf->Get<unsigned int>("lod");
+
+  _visual->GetScene()->SetHeightmapLOD(this->dataPtr->lod);
+}
diff --git a/plugins/HeightmapLODPlugin.hh b/plugins/HeightmapLODPlugin.hh
new file mode 100644
index 0000000..b5eebe9
--- /dev/null
+++ b/plugins/HeightmapLODPlugin.hh
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+#ifndef GAZEBO_PLUGINS_HEIGHTMAPLODPLUGIN_HH_
+#define GAZEBO_PLUGINS_HEIGHTMAPLODPLUGIN_HH_
+
+#include <memory>
+#include <gazebo/common/Plugin.hh>
+
+namespace gazebo
+{
+  // Forward declare private data class.
+  class HeightmapLODPluginPrivate;
+
+  /// \brief Plugin that sets the heightmap LOD
+  class GAZEBO_VISIBLE HeightmapLODPlugin : public VisualPlugin
+  {
+    /// \brief Constructor.
+    public: HeightmapLODPlugin();
+
+    /// \brief Destructor.
+    public: ~HeightmapLODPlugin() = default;
+
+    // Documentation inherited
+    public: virtual void Load(rendering::VisualPtr _visual,
+        sdf::ElementPtr _sdf);
+
+    /// \internal
+    /// \brief Private data pointer
+    private: std::unique_ptr<HeightmapLODPluginPrivate> dataPtr;
+  };
+}
+#endif
diff --git a/plugins/HydraDemoPlugin.cc b/plugins/HydraDemoPlugin.cc
index 11b7798..54cba11 100644
--- a/plugins/HydraDemoPlugin.cc
+++ b/plugins/HydraDemoPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/HydraDemoPlugin.hh b/plugins/HydraDemoPlugin.hh
index d045810..b70f7ac 100644
--- a/plugins/HydraDemoPlugin.hh
+++ b/plugins/HydraDemoPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/HydraPlugin.cc b/plugins/HydraPlugin.cc
index f0516a3..8fa0adc 100644
--- a/plugins/HydraPlugin.cc
+++ b/plugins/HydraPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/HydraPlugin.hh b/plugins/HydraPlugin.hh
index d2ecac4..7e0a396 100644
--- a/plugins/HydraPlugin.hh
+++ b/plugins/HydraPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ImuSensorPlugin.cc b/plugins/ImuSensorPlugin.cc
index fe8ec7f..d947dc7 100644
--- a/plugins/ImuSensorPlugin.cc
+++ b/plugins/ImuSensorPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ImuSensorPlugin.hh b/plugins/ImuSensorPlugin.hh
index c459c86..1333e01 100644
--- a/plugins/ImuSensorPlugin.hh
+++ b/plugins/ImuSensorPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/InitialVelocityPlugin.cc b/plugins/InitialVelocityPlugin.cc
index c9daa1a..15de73f 100644
--- a/plugins/InitialVelocityPlugin.cc
+++ b/plugins/InitialVelocityPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/InitialVelocityPlugin.hh b/plugins/InitialVelocityPlugin.hh
index 539a7d1..11629cf 100644
--- a/plugins/InitialVelocityPlugin.hh
+++ b/plugins/InitialVelocityPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/JointTrajectoryPlugin.cc b/plugins/JointTrajectoryPlugin.cc
index 0e63871..312521e 100644
--- a/plugins/JointTrajectoryPlugin.cc
+++ b/plugins/JointTrajectoryPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/JointTrajectoryPlugin.hh b/plugins/JointTrajectoryPlugin.hh
index 5c6e455..1585d31 100644
--- a/plugins/JointTrajectoryPlugin.hh
+++ b/plugins/JointTrajectoryPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/LiftDragPlugin.cc b/plugins/LiftDragPlugin.cc
index d34d974..1475b70 100644
--- a/plugins/LiftDragPlugin.cc
+++ b/plugins/LiftDragPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/LiftDragPlugin.hh b/plugins/LiftDragPlugin.hh
index ca97e50..8b7cfca 100644
--- a/plugins/LiftDragPlugin.hh
+++ b/plugins/LiftDragPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/LinearBatteryConsumerPlugin.cc b/plugins/LinearBatteryConsumerPlugin.cc
index 695d628..84d0b69 100644
--- a/plugins/LinearBatteryConsumerPlugin.cc
+++ b/plugins/LinearBatteryConsumerPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/LinearBatteryConsumerPlugin.hh b/plugins/LinearBatteryConsumerPlugin.hh
index 73e4ed2..c3e66d9 100644
--- a/plugins/LinearBatteryConsumerPlugin.hh
+++ b/plugins/LinearBatteryConsumerPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/LinearBatteryPlugin.cc b/plugins/LinearBatteryPlugin.cc
index 9830e96..31a432b 100644
--- a/plugins/LinearBatteryPlugin.cc
+++ b/plugins/LinearBatteryPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/LinearBatteryPlugin.hh b/plugins/LinearBatteryPlugin.hh
index 3bab15c..4edb436 100644
--- a/plugins/LinearBatteryPlugin.hh
+++ b/plugins/LinearBatteryPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ModelPropShop.cc b/plugins/ModelPropShop.cc
index c60895c..999ed6a 100644
--- a/plugins/ModelPropShop.cc
+++ b/plugins/ModelPropShop.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/ModelPropShop.hh b/plugins/ModelPropShop.hh
index a0a37a6..aa8ab15 100644
--- a/plugins/ModelPropShop.hh
+++ b/plugins/ModelPropShop.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/MudPlugin.cc b/plugins/MudPlugin.cc
index 0d5e68e..5125d1a 100644
--- a/plugins/MudPlugin.cc
+++ b/plugins/MudPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/MudPlugin.hh b/plugins/MudPlugin.hh
index 5d43d2a..d15e9c2 100644
--- a/plugins/MudPlugin.hh
+++ b/plugins/MudPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/PressurePlugin.cc b/plugins/PressurePlugin.cc
index 5dabb68..ad91621 100644
--- a/plugins/PressurePlugin.cc
+++ b/plugins/PressurePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/PressurePlugin.hh b/plugins/PressurePlugin.hh
index cd22924..f218a7b 100644
--- a/plugins/PressurePlugin.hh
+++ b/plugins/PressurePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RandomVelocityPlugin.cc b/plugins/RandomVelocityPlugin.cc
index 54ab4eb..c340b89 100644
--- a/plugins/RandomVelocityPlugin.cc
+++ b/plugins/RandomVelocityPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RandomVelocityPlugin.hh b/plugins/RandomVelocityPlugin.hh
index b7119e1..2a0f6b9 100644
--- a/plugins/RandomVelocityPlugin.hh
+++ b/plugins/RandomVelocityPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RandomVelocityPluginPrivate.hh b/plugins/RandomVelocityPluginPrivate.hh
index b388060..991e765 100644
--- a/plugins/RandomVelocityPluginPrivate.hh
+++ b/plugins/RandomVelocityPluginPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RayPlugin.cc b/plugins/RayPlugin.cc
index af97e1e..468ffdd 100644
--- a/plugins/RayPlugin.cc
+++ b/plugins/RayPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RayPlugin.hh b/plugins/RayPlugin.hh
index 4b2946e..9d63903 100644
--- a/plugins/RayPlugin.hh
+++ b/plugins/RayPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RaySensorNoisePlugin.cc b/plugins/RaySensorNoisePlugin.cc
index bb2b007..3204fbb 100644
--- a/plugins/RaySensorNoisePlugin.cc
+++ b/plugins/RaySensorNoisePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RaySensorNoisePlugin.hh b/plugins/RaySensorNoisePlugin.hh
index cc168e4..305674f 100644
--- a/plugins/RaySensorNoisePlugin.hh
+++ b/plugins/RaySensorNoisePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RubblePlugin.cc b/plugins/RubblePlugin.cc
index a47255d..685cbc8 100644
--- a/plugins/RubblePlugin.cc
+++ b/plugins/RubblePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/RubblePlugin.hh b/plugins/RubblePlugin.hh
index 59b0aef..83c0a90 100644
--- a/plugins/RubblePlugin.hh
+++ b/plugins/RubblePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/SkidSteerDrivePlugin.cc b/plugins/SkidSteerDrivePlugin.cc
index da6cc52..c7da758 100644
--- a/plugins/SkidSteerDrivePlugin.cc
+++ b/plugins/SkidSteerDrivePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/SkidSteerDrivePlugin.hh b/plugins/SkidSteerDrivePlugin.hh
index bcda1ae..2eff190 100644
--- a/plugins/SkidSteerDrivePlugin.hh
+++ b/plugins/SkidSteerDrivePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/SonarPlugin.cc b/plugins/SonarPlugin.cc
index 8d337c9..30519fa 100644
--- a/plugins/SonarPlugin.cc
+++ b/plugins/SonarPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/SonarPlugin.hh b/plugins/SonarPlugin.hh
index 0dd540c..c5cce4e 100644
--- a/plugins/SonarPlugin.hh
+++ b/plugins/SonarPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/SphereAtlasDemoPlugin.cc b/plugins/SphereAtlasDemoPlugin.cc
index f85bc9f..d855770 100644
--- a/plugins/SphereAtlasDemoPlugin.cc
+++ b/plugins/SphereAtlasDemoPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/SphereAtlasDemoPlugin.hh b/plugins/SphereAtlasDemoPlugin.hh
index 61a6c4b..52ae5a9 100644
--- a/plugins/SphereAtlasDemoPlugin.hh
+++ b/plugins/SphereAtlasDemoPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/TimerGUIPlugin.cc b/plugins/TimerGUIPlugin.cc
index d73523a..ac5c2f9 100644
--- a/plugins/TimerGUIPlugin.cc
+++ b/plugins/TimerGUIPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/TimerGUIPlugin.hh b/plugins/TimerGUIPlugin.hh
index c36ba2e..c8e4890 100644
--- a/plugins/TimerGUIPlugin.hh
+++ b/plugins/TimerGUIPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/TouchPlugin.cc b/plugins/TouchPlugin.cc
new file mode 100644
index 0000000..4cb50e1
--- /dev/null
+++ b/plugins/TouchPlugin.cc
@@ -0,0 +1,235 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#include <functional>
+#include <string>
+#include <gazebo/common/Assert.hh>
+#include <gazebo/physics/Model.hh>
+#include <gazebo/sensors/SensorManager.hh>
+#include <sdf/sdf.hh>
+
+#include "TouchPlugin.hh"
+
+using namespace gazebo;
+
+GZ_REGISTER_MODEL_PLUGIN(TouchPlugin)
+
+/////////////////////////////////////////////////
+TouchPlugin::TouchPlugin()
+{
+}
+
+/////////////////////////////////////////////////
+void TouchPlugin::Load(physics::ModelPtr _model, sdf::ElementPtr _sdf)
+{
+  GZ_ASSERT(_model, "Model pointer is null");
+  GZ_ASSERT(_sdf, "SDF pointer is null");
+
+  // Get sensors
+  if (_sdf->HasElement("sensor"))
+  {
+    auto elem = _sdf->GetElement("sensor");
+    while (elem)
+    {
+      auto sensorName = elem->Get<std::string>();
+
+      auto sensor = std::dynamic_pointer_cast<sensors::ContactSensor>(
+          sensors::SensorManager::Instance()->GetSensor(sensorName));
+
+      if (!sensor)
+      {
+        gzerr << "Couldn't find sensor [" << sensorName << "]" << std::endl;
+        return;
+      }
+
+      this->contactSensors.push_back(sensor);
+
+      elem = elem->GetNextElement("sensor");
+    }
+  }
+  else
+  {
+    gzerr << "Missing required parameter <sensor>." << std::endl;
+    return;
+  }
+
+  // Get target substring
+  if (!_sdf->HasElement("target"))
+  {
+    gzerr << "Missing required parameter <target>." << std::endl;
+    return;
+  }
+  this->target = _sdf->GetElement("target")->Get<std::string>();
+  this->modelName = _model->GetName();
+
+  // Namespace
+  if (!_sdf->HasElement("namespace"))
+  {
+    gzerr << "Missing required parameter <namespace>" << std::endl;
+    return;
+  }
+  this->ns = _sdf->Get<std::string>("namespace");
+
+  // Target time
+  if (!_sdf->HasElement("time"))
+  {
+    gzerr << "Missing required parameter <time>" << std::endl;
+    return;
+  }
+  this->targetTime = common::Time(_sdf->Get<double>("time"));
+
+  // Start/stop "service"
+  this->gzNode = transport::NodePtr(new transport::Node());
+  this->gzNode->Init();
+  this->enableSub = this->gzNode->Subscribe("/" + this->ns + "/enable",
+      &TouchPlugin::Enable, this);
+
+  // Start enabled or not
+  auto enabled = _sdf->HasElement("enabled") && _sdf->Get<bool>("enabled");
+  if (enabled)
+  {
+    boost::shared_ptr<msgs::Int> msg(new msgs::Int());
+    msg->set_data(1);
+    this->Enable(msg);
+  }
+}
+
+//////////////////////////////////////////////////
+void TouchPlugin::Enable(ConstIntPtr &_msg)
+{
+  // Start
+  if (_msg->data() == 1 && !this->touchedPub)
+  {
+    // Start update
+    this->updateConnection = event::Events::ConnectWorldUpdateBegin(
+        std::bind(&TouchPlugin::OnUpdate, this, std::placeholders::_1));
+
+    this->touchedPub = this->gzNode->Advertise<msgs::Int>(
+        "/" + this->ns + "/touched");
+
+    for (auto s : this->contactSensors)
+      s->SetActive(true);
+
+    this->touchStart = common::Time::Zero;
+
+    gzmsg << "Started touch plugin [" << this->ns << "]" << std::endl;
+  }
+  // Stop
+  else if (_msg->data() == 0 && this->touchedPub)
+  {
+    this->updateConnection.reset();
+    this->touchedPub->Fini();
+    this->touchedPub.reset();
+
+    for (auto s : this->contactSensors)
+      s->SetActive(false);
+
+    gzmsg << "Stopped touch plugin [" << this->ns << "]" << std::endl;
+  }
+  // Do nothing if not changing state
+}
+
+/////////////////////////////////////////////////
+void TouchPlugin::OnUpdate(const common::UpdateInfo &_info)
+{
+  // Get all contacts across all sensors
+  msgs::Contacts contacts;
+
+  for (const auto &s : this->contactSensors)
+    contacts.MergeFrom(s->Contacts());
+
+  bool touching = false;
+
+  for (int i = 0; i < contacts.contact_size(); ++i)
+  {
+    // Check for the target
+    bool col1Target = contacts.contact(i).collision1().find(this->target) !=
+        std::string::npos;
+    bool col2Target = contacts.contact(i).collision2().find(this->target) !=
+        std::string::npos;
+
+    if (col1Target || col2Target)
+      touching = true;
+
+    // Check for this model
+    bool col1Model = contacts.contact(i).collision1().find(this->modelName) !=
+        std::string::npos;
+    bool col2Model = contacts.contact(i).collision2().find(this->modelName) !=
+        std::string::npos;
+
+    // If the collisions are not target-model or model-target, we're touching
+    // something else
+    if (!((col1Target && col2Model) || (col1Model && col2Target)))
+    {
+      if (touchStart != common::Time::Zero)
+      {
+        gzmsg << "Touched something besides [" << this->target << "]"
+              << std::endl;
+      }
+      this->touchStart = common::Time::Zero;
+      return;
+    }
+  }
+
+  // Free-fall is not touching
+  if (!touching)
+  {
+    // Sanity check
+    if (contacts.contact_size() > 0)
+    {
+      gzerr << "Not touching target, but touching something? "
+            << "We shouldn't reach this point!" << std::endl;
+    }
+
+    if (this->touchStart != common::Time::Zero)
+    {
+      gzmsg << "Not touching anything" << std::endl;
+    }
+    this->touchStart = common::Time::Zero;
+    return;
+  }
+
+  // Start touching
+  if (this->touchStart == common::Time::Zero)
+  {
+    this->touchStart = _info.simTime;
+    gzmsg << "Model [" << this->modelName << "] started touching ["
+          << this->target << "] at " << this->touchStart << " seconds"
+          << std::endl;
+  }
+
+  // Check if it has been touched for long enough
+  auto completed = _info.simTime - this->touchStart > this->targetTime;
+
+  // This is a single-use plugin. After touched, publish a message
+  // and stop updating
+  if (completed)
+  {
+    gzmsg << "Model [" << this->modelName << "] touched [" << this->target
+          << "] exclusively for " << this->targetTime << " seconds"<< std::endl;
+
+    gazebo::msgs::Int msg;
+    msg.set_data(1);
+    this->touchedPub->Publish(msg);
+
+    // Disable
+    boost::shared_ptr<msgs::Int> m(new msgs::Int());
+    m->set_data(0);
+    this->Enable(m);
+  }
+}
+
diff --git a/plugins/TouchPlugin.hh b/plugins/TouchPlugin.hh
new file mode 100644
index 0000000..7f788fd
--- /dev/null
+++ b/plugins/TouchPlugin.hh
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+#ifndef GAZEBO_PLUGINS_TOUCHPLUGIN_HH_
+#define GAZEBO_PLUGINS_TOUCHPLUGIN_HH_
+
+#include <string>
+#include <vector>
+#include <gazebo/common/Events.hh>
+#include <gazebo/common/Plugin.hh>
+#include <gazebo/sensors/ContactSensor.hh>
+#include <gazebo/transport/Node.hh>
+#include <sdf/sdf.hh>
+
+namespace gazebo
+{
+  /// \brief Plugin which checks if this model has touched some specific target
+  /// for a given time continuously and exclusively. After the touch is
+  /// completed, the plugin is disabled. It can be re-enabled through a Gazebo
+  /// transport topic.
+  ///
+  /// It requires that contact sensors be placed in at least one link on this
+  /// model.
+  ///
+  /// Parameters:
+  ///
+  /// <sensor> Name of contact sensor attached to one of this model's links.
+  ///          There can be multiple sensor elements in case many links are
+  ///          checked.
+  ///
+  /// <target> Scoped name of collision which we want to be touching. This can
+  ///          be a substring of the desired collision name so we match more
+  ///          than one collision. For example, using the name of a model will
+  ///          match all its collisions.
+  ///
+  /// <time> Target time in seconds to maintain contact.
+  ///
+  /// <namespace> Namespace for transport topics:
+  ///             /<namespace>/enable : Topic used to enable and disable the
+  ///                                   plugin.
+  ///             /<namespace>/touched : Topic where a message is published once
+  ///                                    the touch is complete.
+  ///
+  /// <enabled> Set this to true so the plugin works from the start and doesn't
+  ///           need to be enabled.
+  ///
+  class GAZEBO_VISIBLE TouchPlugin : public ModelPlugin
+  {
+    /// \brief Constructor
+    public: TouchPlugin();
+
+    // Documentation inherited
+    public: virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf);
+
+    /// \brief Callback for enable "service".
+    /// \param[in] _msg Message with 0 to disable and 1 to enable the plugin.
+    public: void Enable(ConstIntPtr &_msg);
+
+    /// \brief Update plugin's function.
+    /// \_param[in] _info Information about world.
+    private: void OnUpdate(const common::UpdateInfo &_info);
+
+    /// \brief Contact sensors attached to links in the model
+    private: std::vector<sensors::ContactSensorPtr> contactSensors;
+
+    /// \brief Name of this model, to be used to check collisions against
+    private: std::string modelName;
+
+    /// \brief Target collisions which this model should be touching. This can
+    /// be a substring shared by several collisions.
+    private: std::string target;
+
+    /// \brief Namespace for transport topics.
+    private: std::string ns;
+
+    /// \brief Target time to continuously touch.
+    private: common::Time targetTime = 5;
+
+    /// \brief Time when started touching.
+    private: common::Time touchStart;
+
+    /// \brief Gazebo transport node for communication.
+    private: transport::NodePtr gzNode;
+
+    /// \brief Publisher which publishes a message after touched for enough time
+    private: transport::PublisherPtr touchedPub;
+
+    /// \brief Subscriber to enable messages.
+    private: transport::SubscriberPtr enableSub;
+
+    /// \brief Connection to World Update events.
+    private: event::ConnectionPtr updateConnection;
+  };
+}
+
+#endif
+
diff --git a/plugins/TransporterPlugin.cc b/plugins/TransporterPlugin.cc
index 614ee98..6e54820 100644
--- a/plugins/TransporterPlugin.cc
+++ b/plugins/TransporterPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/TransporterPlugin.hh b/plugins/TransporterPlugin.hh
index d319c54..5ea9a2e 100644
--- a/plugins/TransporterPlugin.hh
+++ b/plugins/TransporterPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/TransporterPluginPrivate.hh b/plugins/TransporterPluginPrivate.hh
index 7cc1700..1493a54 100644
--- a/plugins/TransporterPluginPrivate.hh
+++ b/plugins/TransporterPluginPrivate.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/VehiclePlugin.cc b/plugins/VehiclePlugin.cc
index 1276d70..a27f1e9 100644
--- a/plugins/VehiclePlugin.cc
+++ b/plugins/VehiclePlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/VehiclePlugin.hh b/plugins/VehiclePlugin.hh
index 39c7254..b21e269 100644
--- a/plugins/VehiclePlugin.hh
+++ b/plugins/VehiclePlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/EventSource.cc b/plugins/events/EventSource.cc
index 7fe59d5..9adbf02 100644
--- a/plugins/events/EventSource.cc
+++ b/plugins/events/EventSource.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/EventSource.hh b/plugins/events/EventSource.hh
index 999d2a3..4dfabe2 100644
--- a/plugins/events/EventSource.hh
+++ b/plugins/events/EventSource.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/ExistenceEventSource.cc b/plugins/events/ExistenceEventSource.cc
index 93fca00..d14cf62 100644
--- a/plugins/events/ExistenceEventSource.cc
+++ b/plugins/events/ExistenceEventSource.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/ExistenceEventSource.hh b/plugins/events/ExistenceEventSource.hh
index dc51053..39c352b 100644
--- a/plugins/events/ExistenceEventSource.hh
+++ b/plugins/events/ExistenceEventSource.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/InRegionEventSource.cc b/plugins/events/InRegionEventSource.cc
index 856b956..1459e3c 100644
--- a/plugins/events/InRegionEventSource.cc
+++ b/plugins/events/InRegionEventSource.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/InRegionEventSource.hh b/plugins/events/InRegionEventSource.hh
index a9eaeea..593d413 100644
--- a/plugins/events/InRegionEventSource.hh
+++ b/plugins/events/InRegionEventSource.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/JointEventSource.cc b/plugins/events/JointEventSource.cc
index 4a11437..688b999 100644
--- a/plugins/events/JointEventSource.cc
+++ b/plugins/events/JointEventSource.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/JointEventSource.hh b/plugins/events/JointEventSource.hh
index 3d5f469..567a52a 100644
--- a/plugins/events/JointEventSource.hh
+++ b/plugins/events/JointEventSource.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/OccupiedEventSource.cc b/plugins/events/OccupiedEventSource.cc
index c0f4617..98499fa 100644
--- a/plugins/events/OccupiedEventSource.cc
+++ b/plugins/events/OccupiedEventSource.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/OccupiedEventSource.hh b/plugins/events/OccupiedEventSource.hh
index ae31165..c498970 100644
--- a/plugins/events/OccupiedEventSource.hh
+++ b/plugins/events/OccupiedEventSource.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/Region.cc b/plugins/events/Region.cc
index a2d1ecf..cb70bf8 100644
--- a/plugins/events/Region.cc
+++ b/plugins/events/Region.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/Region.hh b/plugins/events/Region.hh
index a592316..101390d 100644
--- a/plugins/events/Region.hh
+++ b/plugins/events/Region.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/RegionEventBoxPlugin.cc b/plugins/events/RegionEventBoxPlugin.cc
index 4f407e1..3f4ad86 100644
--- a/plugins/events/RegionEventBoxPlugin.cc
+++ b/plugins/events/RegionEventBoxPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/RegionEventBoxPlugin.hh b/plugins/events/RegionEventBoxPlugin.hh
index 3c73fcc..ea33952 100644
--- a/plugins/events/RegionEventBoxPlugin.hh
+++ b/plugins/events/RegionEventBoxPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/SimEventsException.hh b/plugins/events/SimEventsException.hh
index 1e8d97e..3f1a709 100644
--- a/plugins/events/SimEventsException.hh
+++ b/plugins/events/SimEventsException.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/SimEventsPlugin.cc b/plugins/events/SimEventsPlugin.cc
index c1146c0..3dcf5b8 100644
--- a/plugins/events/SimEventsPlugin.cc
+++ b/plugins/events/SimEventsPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/SimEventsPlugin.hh b/plugins/events/SimEventsPlugin.hh
index 7859700..fb0ca3c 100644
--- a/plugins/events/SimEventsPlugin.hh
+++ b/plugins/events/SimEventsPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/SimStateEventSource.cc b/plugins/events/SimStateEventSource.cc
index 34b3b95..de80847 100644
--- a/plugins/events/SimStateEventSource.cc
+++ b/plugins/events/SimStateEventSource.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/events/SimStateEventSource.hh b/plugins/events/SimStateEventSource.hh
index 794e9e2..d31304f 100644
--- a/plugins/events/SimStateEventSource.hh
+++ b/plugins/events/SimStateEventSource.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestApi.cc b/plugins/rest_web/RestApi.cc
index d66753e..d756e44 100644
--- a/plugins/rest_web/RestApi.cc
+++ b/plugins/rest_web/RestApi.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestApi.hh b/plugins/rest_web/RestApi.hh
index e273261..71617c5 100644
--- a/plugins/rest_web/RestApi.hh
+++ b/plugins/rest_web/RestApi.hh
@@ -1,5 +1,5 @@
 /*
- * copyright (C) 2015-2016 Open Source Robotics Foundation
+ * copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestException.hh b/plugins/rest_web/RestException.hh
index 9e54a20..64a9468 100644
--- a/plugins/rest_web/RestException.hh
+++ b/plugins/rest_web/RestException.hh
@@ -1,5 +1,5 @@
 /*
- * copyright (C) 2015-2016 Open Source Robotics Foundation
+ * copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestUiLoginDialog.cc b/plugins/rest_web/RestUiLoginDialog.cc
index 59ce892..06cd185 100644
--- a/plugins/rest_web/RestUiLoginDialog.cc
+++ b/plugins/rest_web/RestUiLoginDialog.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestUiLoginDialog.hh b/plugins/rest_web/RestUiLoginDialog.hh
index 39844be..05e15f9 100644
--- a/plugins/rest_web/RestUiLoginDialog.hh
+++ b/plugins/rest_web/RestUiLoginDialog.hh
@@ -1,5 +1,5 @@
 /*
- * copyright (C) 2015-2016 Open Source Robotics Foundation
+ * copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestUiPlugin.cc b/plugins/rest_web/RestUiPlugin.cc
index 79a0ee4..9d5f85d 100644
--- a/plugins/rest_web/RestUiPlugin.cc
+++ b/plugins/rest_web/RestUiPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015-2016 Open Source Robotics Foundation
+ * Copyright 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestUiPlugin.hh b/plugins/rest_web/RestUiPlugin.hh
index b322e25..6e95c36 100644
--- a/plugins/rest_web/RestUiPlugin.hh
+++ b/plugins/rest_web/RestUiPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015-2016 Open Source Robotics Foundation
+ * Copyright 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestUiWidget.cc b/plugins/rest_web/RestUiWidget.cc
index b414262..278270d 100644
--- a/plugins/rest_web/RestUiWidget.cc
+++ b/plugins/rest_web/RestUiWidget.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015-2016 Open Source Robotics Foundation
+ * Copyright 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestUiWidget.hh b/plugins/rest_web/RestUiWidget.hh
index 45dc6d3..4646eff 100644
--- a/plugins/rest_web/RestUiWidget.hh
+++ b/plugins/rest_web/RestUiWidget.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015-2016 Open Source Robotics Foundation
+ * Copyright 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestWebPlugin.cc b/plugins/rest_web/RestWebPlugin.cc
index 7b4fced..911edee 100644
--- a/plugins/rest_web/RestWebPlugin.cc
+++ b/plugins/rest_web/RestWebPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/plugins/rest_web/RestWebPlugin.hh b/plugins/rest_web/RestWebPlugin.hh
index 848521d..402724a 100644
--- a/plugins/rest_web/RestWebPlugin.hh
+++ b/plugins/rest_web/RestWebPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/cmake/config-cmake.cc b/test/cmake/config-cmake.cc
index d0ad5a8..da61d04 100644
--- a/test/cmake/config-cmake.cc
+++ b/test/cmake/config-cmake.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/data/pr2_state_log_expected.h b/test/data/pr2_state_log_expected.h
index 35e7a69..4a46bd7 100644
--- a/test/data/pr2_state_log_expected.h
+++ b/test/data/pr2_state_log_expected.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/examples/examples_build.cc b/test/examples/examples_build.cc
index 963aee8..1420285 100644
--- a/test/examples/examples_build.cc
+++ b/test/examples/examples_build.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/CMakeLists.txt b/test/integration/CMakeLists.txt
index e7c6f7d..14f643e 100644
--- a/test/integration/CMakeLists.txt
+++ b/test/integration/CMakeLists.txt
@@ -32,6 +32,7 @@ add_definitions(${QT_DEFINITIONS})
 
 set(tests
   aero_plugin.cc
+  attach_light_plugin.cc
   bandwidth.cc
   concave_mesh.cc
   contact_sensor.cc
@@ -92,6 +93,7 @@ set(tests
   #state_log.cc
   surface_properties.cc
   swarm.cc
+  touch_plugin.cc
   transceiver.cc
   transport.cc
   transporter.cc
@@ -121,6 +123,7 @@ gz_build_tests(${tests} EXTRA_LIBS gazebo_test_fixture)
 if (ENABLE_TESTS_COMPILATION)
   # Increase timeout, to account for model download time.
   set_tests_properties(${TEST_TYPE}_joint_revolute PROPERTIES TIMEOUT 500)
+  set_tests_properties(${TEST_TYPE}_model_database PROPERTIES TIMEOUT 400)
   set_tests_properties(${TEST_TYPE}_physics PROPERTIES TIMEOUT 500)
   set_tests_properties(${TEST_TYPE}_world_remove PROPERTIES TIMEOUT 400)
   set_tests_properties(${TEST_TYPE}_worlds_installed PROPERTIES TIMEOUT 700)
@@ -170,6 +173,7 @@ gz_build_dri_tests(${dri_tests} EXTRA_LIBS gazebo_test_fixture)
 
 set(qt_tests
   collada_visualization.cc
+  force_torque_visualization.cc
   insert_model.cc
   model_editor.cc
   model_manipulation.cc
diff --git a/test/integration/SimplePendulumIntegrator.hh b/test/integration/SimplePendulumIntegrator.hh
index 182f46c..a689d60 100644
--- a/test/integration/SimplePendulumIntegrator.hh
+++ b/test/integration/SimplePendulumIntegrator.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/aero_plugin.cc b/test/integration/aero_plugin.cc
index f65d5af..0e88732 100644
--- a/test/integration/aero_plugin.cc
+++ b/test/integration/aero_plugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/attach_light_plugin.cc b/test/integration/attach_light_plugin.cc
new file mode 100644
index 0000000..9f5ad39
--- /dev/null
+++ b/test/integration/attach_light_plugin.cc
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#include "gazebo/test/ServerFixture.hh"
+#include "gazebo/physics/physics.hh"
+#include "gazebo/test/helper_physics_generator.hh"
+
+using namespace gazebo;
+class AttachLightTest : public ServerFixture,
+                        public testing::WithParamInterface<const char*>
+{
+  /// \brief Test AttachLightPlugin by verifying light pose against link pose
+  /// \param[in] _physicsEngine Name of physics engine
+  public: void AttachLightPlugin(const std::string &_physicsEngine);
+};
+
+
+void AttachLightTest::AttachLightPlugin(const std::string &_physicsEngine)
+{
+  // Test plugin for attaching lights to links
+  this->Load("worlds/attach_lights.world", true, _physicsEngine);
+
+  physics::WorldPtr world = physics::get_world("default");
+  ASSERT_TRUE(world != nullptr);
+
+  // Get the double pendulum model
+  physics::ModelPtr pendulumModel =
+      world->GetModel("double_pendulum_with_lights");
+  ASSERT_TRUE(pendulumModel != nullptr);
+
+  // Get the links
+  physics::LinkPtr upperLink =
+      pendulumModel->GetLink("double_pendulum_with_base::upper_link");
+  ASSERT_TRUE(upperLink != nullptr);
+  physics::LinkPtr lowerLink =
+      pendulumModel->GetLink("double_pendulum_with_base::lower_link");
+  ASSERT_TRUE(lowerLink != nullptr);
+
+  // Get the lights
+  physics::LightPtr pointLight = world->Light("point");
+  ASSERT_TRUE(pointLight != nullptr);
+  physics::LightPtr pointLight2 = world->Light("point2");
+  ASSERT_TRUE(pointLight2 != nullptr);
+  physics::LightPtr spotLight = world->Light("spot");
+  ASSERT_TRUE(spotLight != nullptr);
+
+  // step the world
+  world->Step(1);
+
+  // Get the initial light pose offset relative to link
+  ignition::math::Pose3d pointLightPose = pointLight->GetWorldPose().Ign() -
+      upperLink->GetWorldPose().Ign();
+  ignition::math::Pose3d pointLight2Pose = pointLight2->GetWorldPose().Ign() -
+      upperLink->GetWorldPose().Ign();
+  ignition::math::Pose3d spotLightPose = spotLight->GetWorldPose().Ign() -
+      lowerLink->GetWorldPose().Ign();
+
+  // verify light pose against link pose.
+  // NOTE: there seem to be race condition when verifying pose using
+  // GetWorldPose in the test thread so do the verification in the update
+  // callback which is guaranteed to be done in the physics thread
+  int iteration = 0;
+  auto verifyPose = [&]()
+  {
+    ignition::math::Pose3d upperLinkPose = upperLink->GetWorldPose().Ign();
+    ignition::math::Pose3d lowerLinkPose = lowerLink->GetWorldPose().Ign();
+
+    EXPECT_EQ(pointLight->GetWorldPose(), pointLightPose + upperLinkPose);
+    EXPECT_EQ(pointLight2->GetWorldPose(), pointLight2Pose + upperLinkPose);
+    EXPECT_EQ(spotLight->GetWorldPose(), spotLightPose + lowerLinkPose);
+    iteration++;
+  };
+  auto connection = event::Events::ConnectWorldUpdateEnd(std::bind(verifyPose));
+
+  // verify pose for 1000 iterations
+  for (unsigned int i = 0; i < 1000u; ++i)
+    world->Step(1);
+
+  // verify that update is called
+  EXPECT_EQ(iteration, 1000);
+}
+
+TEST_P(AttachLightTest, AttachLightPlugin)
+{
+  AttachLightPlugin(GetParam());
+}
+
+INSTANTIATE_TEST_CASE_P(PhysicsEngines, AttachLightTest, PHYSICS_ENGINE_VALUES);
+
+int main(int argc, char **argv)
+{
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/test/integration/bandwidth.cc b/test/integration/bandwidth.cc
index c810585..c4b2b5f 100644
--- a/test/integration/bandwidth.cc
+++ b/test/integration/bandwidth.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/camera.cc b/test/integration/camera.cc
index c02d190..e896487 100644
--- a/test/integration/camera.cc
+++ b/test/integration/camera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/camera_sensor.cc b/test/integration/camera_sensor.cc
index d2e65d4..0cd0087 100644
--- a/test/integration/camera_sensor.cc
+++ b/test/integration/camera_sensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -38,8 +38,12 @@ std::mutex mutex;
 
 unsigned char* img = NULL;
 unsigned char* img2 = NULL;
+unsigned char* img3 = NULL;
+unsigned char* img4 = NULL;
 int imageCount = 0;
 int imageCount2 = 0;
+int imageCount3 = 0;
+int imageCount4 = 0;
 std::string pixelFormat = "";
 
 /////////////////////////////////////////////////
@@ -578,62 +582,124 @@ TEST_F(CameraSensor, CheckDistortion)
     return;
   }
 
-  // Spawn two cameras in the same location, one with noise and one without.
-  std::string modelName = "camera_model";
-  std::string cameraName = "camera_sensor";
-  std::string modelNameDistorted = "camera_model_distorted";
-  std::string cameraNameDistorted = "camera_sensor_distorted";
+  // Spawn 4 cameras. One has no distortion.
+  // The second has distortion, but all the distortion parameters are set to 0.
+  // The third has barrel (negative k1) distortion.
+  // The fourth has pincushion (positive k1) distortion.
+  std::string modelNameUndistorted = "camera_model_undistorted";
+  std::string cameraNameUndistorted = "camera_sensor_undistorted";
+  std::string modelNameFlat = "camera_model_flat";
+  std::string cameraNameFlat = "camera_sensor_flat";
+  std::string modelNameBarrel = "camera_model_barrel";
+  std::string cameraNameBarrel = "camera_sensor_barrel";
+  std::string modelNamePincushion = "camera_model_pincushion";
+  std::string cameraNamePincushion = "camera_sensor_pincushion";
   unsigned int width  = 320;
   unsigned int height = 240;
   double updateRate = 10;
-
   math::Pose setPose(
       math::Vector3(-5, 0, 5), math::Quaternion(0, GZ_DTOR(15), 0));
-  SpawnCamera(modelName, cameraName, setPose.pos,
+
+  // spawn an undistorted camera
+  SpawnCamera(modelNameUndistorted, cameraNameUndistorted, setPose.pos,
       setPose.rot.GetAsEuler(), width, height, updateRate);
+  // spawn a flat camera
+  SpawnCamera(modelNameFlat, cameraNameFlat, setPose.pos,
+      setPose.rot.GetAsEuler(), width, height, updateRate,
+      "", 0, 0, true, 0, 0, 0, 0, 0, 0.5, 0.5);
   // spawn a camera with barrel distortion
-  SpawnCamera(modelNameDistorted, cameraNameDistorted, setPose.pos,
+  SpawnCamera(modelNameBarrel, cameraNameBarrel, setPose.pos,
       setPose.rot.GetAsEuler(), width, height, updateRate,
-      "", 0, 0, true, -0.25349, 0.11868, 0.0, -0.00028, 0.00005, 0.5, 0.5);
-  sensors::SensorPtr sensor = sensors::get_sensor(cameraName);
-  sensors::CameraSensorPtr camSensor =
-    std::dynamic_pointer_cast<sensors::CameraSensor>(sensor);
-  sensor = sensors::get_sensor(cameraNameDistorted);
-  sensors::CameraSensorPtr camSensorDistorted =
-    std::dynamic_pointer_cast<sensors::CameraSensor>(sensor);
+      "", 0, 0, true, -0.1349, -0.51868, -0.001, 0, 0, 0.5, 0.5);
+  // spawn a camera with pincushion distortion
+  SpawnCamera(modelNamePincushion, cameraNamePincushion, setPose.pos,
+      setPose.rot.GetAsEuler(), width, height, updateRate,
+      "", 0, 0, true, 0.1349, 0.51868, 0.001, 0, 0, 0.5, 0.5);
+
+  sensors::SensorPtr sensorUndistorted =
+    sensors::get_sensor(cameraNameUndistorted);
+  sensors::CameraSensorPtr camSensorUndistorted =
+    std::dynamic_pointer_cast<sensors::CameraSensor>(sensorUndistorted);
+  sensors::SensorPtr sensorFlat =
+    sensors::get_sensor(cameraNameFlat);
+  sensors::CameraSensorPtr camSensorFlat =
+    std::dynamic_pointer_cast<sensors::CameraSensor>(sensorFlat);
+  sensors::SensorPtr sensorBarrel =
+      sensors::get_sensor(cameraNameBarrel);
+  sensors::CameraSensorPtr camSensorBarrel =
+    std::dynamic_pointer_cast<sensors::CameraSensor>(sensorBarrel);
+  sensors::SensorPtr sensorPincushion =
+      sensors::get_sensor(cameraNamePincushion);
+  sensors::CameraSensorPtr camSensorPincushion =
+    std::dynamic_pointer_cast<sensors::CameraSensor>(sensorPincushion);
 
   imageCount = 0;
   imageCount2 = 0;
+  imageCount3 = 0;
+  imageCount4 = 0;
   img = new unsigned char[width * height*3];
   img2 = new unsigned char[width * height*3];
+  img3 = new unsigned char[width * height*3];
+  img4 = new unsigned char[width * height*3];
   event::ConnectionPtr c =
-    camSensor->Camera()->ConnectNewImageFrame(
+    camSensorUndistorted->Camera()->ConnectNewImageFrame(
         std::bind(&::OnNewCameraFrame, &imageCount, img,
           std::placeholders::_1, std::placeholders::_2, std::placeholders::_3,
           std::placeholders::_4, std::placeholders::_5));
   event::ConnectionPtr c2 =
-    camSensorDistorted->Camera()->ConnectNewImageFrame(
+    camSensorFlat->Camera()->ConnectNewImageFrame(
         std::bind(&::OnNewCameraFrame, &imageCount2, img2,
           std::placeholders::_1, std::placeholders::_2, std::placeholders::_3,
           std::placeholders::_4, std::placeholders::_5));
+  event::ConnectionPtr c3 =
+    camSensorBarrel->Camera()->ConnectNewImageFrame(
+        std::bind(&::OnNewCameraFrame, &imageCount3, img3,
+          std::placeholders::_1, std::placeholders::_2, std::placeholders::_3,
+          std::placeholders::_4, std::placeholders::_5));
+  event::ConnectionPtr c4 =
+    camSensorPincushion->Camera()->ConnectNewImageFrame(
+        std::bind(&::OnNewCameraFrame, &imageCount4, img4,
+          std::placeholders::_1, std::placeholders::_2, std::placeholders::_3,
+          std::placeholders::_4, std::placeholders::_5));
 
   // Get some images
-  while (imageCount < 10 || imageCount2 < 10)
+  while (imageCount < 10 || imageCount2 < 10 ||
+      imageCount3 < 10 || imageCount4 < 10)
+  {
     common::Time::MSleep(10);
+  }
 
   unsigned int diffMax = 0, diffSum = 0;
   double diffAvg = 0.0;
+
+  // We expect that there will be some non-zero difference between the images,
+  // except for the 0.0 distortion camera, which should return a completely
+  // identical camera to the one with no distortion tag in the SDF.
+
   this->ImageCompare(img, img2, width, height, 3,
                      diffMax, diffSum, diffAvg);
+  EXPECT_EQ(diffSum, 0u);
 
-  // We expect that there will be some non-zero difference between the two
-  // images.
+  this->ImageCompare(img, img3, width, height, 3,
+                     diffMax, diffSum, diffAvg);
   EXPECT_NE(diffSum, 0u);
 
-  // Compare colors. Distorted image should have more darker pixels than the
-  // original as the ground plane has been warped to occupy more of the image.
+  this->ImageCompare(img, img4, width, height, 3,
+                     diffMax, diffSum, diffAvg);
+  EXPECT_NE(diffSum, 0u);
+
+  this->ImageCompare(img3, img4, width, height, 3,
+                     diffMax, diffSum, diffAvg);
+  EXPECT_NE(diffSum, 0u);
+
+  // Compare colors. Barrel distorted image should have more darker pixels than
+  // the original as the ground plane has been warped to occupy more of the
+  // image. The same should be true for pincushion distortion, because the
+  // ground plane is still distorted to be larger - just different parts
+  // of the image are distorted.
   unsigned int colorSum = 0;
-  unsigned int colorSum2 = 0;
+  unsigned int colorSum3 = 0;
+  unsigned int colorSum4 = 0;
   for (unsigned int y = 0; y < height; ++y)
   {
     for (unsigned int x = 0; x < width*3; x+=3)
@@ -642,19 +708,23 @@ TEST_F(CameraSensor, CheckDistortion)
       unsigned int g = img[(y*width*3)+1];
       unsigned int b = img[(y*width*3)+2];
       colorSum += r + g + b;
-      unsigned int r2 = img2[(y*width*3)];
-      unsigned int g2 = img2[(y*width*3)+1];
-      unsigned int b2 = img2[(y*width*3)+2];
-      colorSum2 += r2 + g2 + b2;
+      unsigned int r3 = img3[(y*width*3)];
+      unsigned int g3 = img3[(y*width*3)+1];
+      unsigned int b3 = img3[(y*width*3)+2];
+      colorSum3 += r3 + g3 + b3;
+      unsigned int r4 = img4[(y*width*3)];
+      unsigned int g4 = img4[(y*width*3)+1];
+      unsigned int b4 = img4[(y*width*3)+2];
+      colorSum4 += r4 + g4 + b4;
     }
   }
-  EXPECT_GT(colorSum, colorSum2);
+  EXPECT_GT(colorSum, colorSum3);
+  EXPECT_GT(colorSum, colorSum4);
 
-  // We expect that there will be some non-zero difference between the two
-  // images.
-  EXPECT_NE(diffSum, 0u);
   delete[] img;
   delete[] img2;
+  delete[] img3;
+  delete[] img4;
 }
 
 int main(int argc, char **argv)
diff --git a/test/integration/concave_mesh.cc b/test/integration/concave_mesh.cc
index e0ee991..3f27281 100644
--- a/test/integration/concave_mesh.cc
+++ b/test/integration/concave_mesh.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/contact_sensor.cc b/test/integration/contact_sensor.cc
index fd8f7f8..ff27c90 100644
--- a/test/integration/contact_sensor.cc
+++ b/test/integration/contact_sensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/dem.cc b/test/integration/dem.cc
index 8911b21..f6ea505 100644
--- a/test/integration/dem.cc
+++ b/test/integration/dem.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/elastic_modulus.cc b/test/integration/elastic_modulus.cc
index ff541c8..703647d 100644
--- a/test/integration/elastic_modulus.cc
+++ b/test/integration/elastic_modulus.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/factory.cc b/test/integration/factory.cc
index 95aa0eb..4e04f56 100644
--- a/test/integration/factory.cc
+++ b/test/integration/factory.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/file_handling.cc b/test/integration/file_handling.cc
index b8c8676..99cca1d 100644
--- a/test/integration/file_handling.cc
+++ b/test/integration/file_handling.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/force_torque_visualization.cc b/test/integration/force_torque_visualization.cc
new file mode 100644
index 0000000..84f91bb
--- /dev/null
+++ b/test/integration/force_torque_visualization.cc
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in axispliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#include <gtest/gtest.h>
+#include "gazebo/gui/GuiIface.hh"
+#include "gazebo/gui/MainWindow.hh"
+#include "gazebo/rendering/RenderingIface.hh"
+#include "gazebo/rendering/RenderTypes.hh"
+#include "gazebo/rendering/Scene.hh"
+#include "gazebo/rendering/WrenchVisual.hh"
+#include "gazebo/test/ServerFixture.hh"
+#include "test/integration/force_torque_visualization.hh"
+
+using namespace gazebo;
+
+/////////////////////////////////////////////////
+void ForceTorqueVisualizationTest::WrenchVisual()
+{
+  this->resMaxPercentChange = 5.0;
+  this->shareMaxPercentChange = 2.0;
+
+  // Load world with force torque sensors
+  this->Load("test/worlds/force_torque_test.world");
+
+  // Create the main window.
+  auto mainWindow = new gazebo::gui::MainWindow();
+  QVERIFY(mainWindow != nullptr);
+  mainWindow->Load();
+  mainWindow->Init();
+  mainWindow->show();
+
+  // Get the user camera and scene. We need to check the client scene
+  // since this is a GUI visualization.
+  auto cam = gazebo::gui::get_active_camera();
+  QVERIFY(cam != nullptr);
+  auto scene = cam->GetScene();
+  QVERIFY(scene != nullptr);
+
+  // Enable sensor visualizations
+  QVERIFY(!scene->EnableVisualizations());
+  scene->EnableVisualizations(true);
+  QVERIFY(scene->EnableVisualizations());
+
+  this->ProcessEventsAndDraw(mainWindow);
+
+  int sleep = 0;
+  int maxSleep = 30;
+  std::string visName("model_1::joint_01::force_torque_GUIONLY_wrench_vis");
+
+  while (!scene->GetVisual(visName) && sleep < maxSleep)
+  {
+    this->ProcessEventsAndDraw(mainWindow);
+    common::Time::MSleep(100);
+    sleep++;
+  }
+
+  // Check that wrench visual have been added to the scene
+  auto forceTorqueVis = scene->GetVisual(visName);
+  QVERIFY(forceTorqueVis != nullptr);
+
+  auto wrenchVis =
+      std::dynamic_pointer_cast<rendering::WrenchVisual>(forceTorqueVis);
+  QVERIFY(wrenchVis != nullptr);
+
+  mainWindow->close();
+  delete mainWindow;
+}
+
+// Generate a main function for the test
+QTEST_MAIN(ForceTorqueVisualizationTest)
diff --git a/gazebo/gui/GLWidget_TEST.hh b/test/integration/force_torque_visualization.hh
similarity index 59%
copy from gazebo/gui/GLWidget_TEST.hh
copy to test/integration/force_torque_visualization.hh
index a7bfdda..678a870 100644
--- a/gazebo/gui/GLWidget_TEST.hh
+++ b/test/integration/force_torque_visualization.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2017 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,18 +15,19 @@
  *
 */
 
-#ifndef _GLWIDGET_TEST_HH_
-#define _GLWIDGET_TEST_HH_
+#ifndef GAZEBO_TEST_INTEGRATION_FORCETORQUEVISUALIZATION_TEST_HH_
+#define GAZEBO_TEST_INTEGRATION_FORCETORQUEVISUALIZATION_TEST_HH_
 
 #include "gazebo/gui/QTestFixture.hh"
 
-/// \brief A test class for the DataLogger widget.
-class GLWidget_TEST : public QTestFixture
+/// \brief A test class for the force torque sensor visualization using
+/// WrenchVisual.
+class ForceTorqueVisualizationTest : public QTestFixture
 {
   Q_OBJECT
 
-  /// \brief Test selecting an object.
-  private slots: void SelectObject();
+  /// \brief Check that visuals are added to the scene
+  private slots: void WrenchVisual();
 };
 
 #endif
diff --git a/test/integration/gpu_laser.cc b/test/integration/gpu_laser.cc
index e3a6598..4743ba0 100644
--- a/test/integration/gpu_laser.cc
+++ b/test/integration/gpu_laser.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/gripper.cc b/test/integration/gripper.cc
index 2786d8f..a4c9959 100644
--- a/test/integration/gripper.cc
+++ b/test/integration/gripper.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/gz_camera.cc b/test/integration/gz_camera.cc
index 0beaf26..ecba781 100644
--- a/test/integration/gz_camera.cc
+++ b/test/integration/gz_camera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/gz_joint.cc b/test/integration/gz_joint.cc
index 2226fc2..f7e104f 100644
--- a/test/integration/gz_joint.cc
+++ b/test/integration/gz_joint.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/gz_log.cc b/test/integration/gz_log.cc
index 1d34c1c..f4a8510 100644
--- a/test/integration/gz_log.cc
+++ b/test/integration/gz_log.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -67,6 +67,106 @@ TEST_F(GzLog, Record)
 }
 
 /////////////////////////////////////////////////
+/// Record a log file with filter
+TEST_F(GzLog, RecordFilter)
+{
+  util::LogRecord *recorder = util::LogRecord::Instance();
+  recorder->SetFilter("pendulum_0deg*");
+  double period = 0.02;
+  recorder->SetPeriod(period);
+  recorder->Init("test");
+  Load("worlds/revolute_joint_test.world");
+
+  // Get a pointer to the world
+  physics::WorldPtr world = physics::get_world("default");
+  ASSERT_TRUE(world != nullptr);
+
+  ASSERT_TRUE(recorder != nullptr);
+
+  EXPECT_FALSE(recorder->Paused());
+  EXPECT_FALSE(recorder->Running());
+
+  // Start log recording
+  custom_exec("gz log -w default -d 1");
+
+  world->Step(100);
+
+  std::string filename = recorder->Filename();
+  EXPECT_TRUE(recorder->Running());
+  EXPECT_FALSE(recorder->Paused());
+  EXPECT_FALSE(filename.empty());
+  EXPECT_GT(recorder->FileSize(), 0u);
+
+  // Stop log recording
+  custom_exec("gz log -w default -d 0");
+
+  EXPECT_FALSE(recorder->Running());
+
+  // Store parsed output in a string
+  std::string cmd = "gz log -e -f " + filename;
+  std::string state = custom_exec(cmd);
+
+  // Get sdf string containing world state
+  auto sdfBeginIdx = state.find("<sdf version");
+  auto sdfEndIdx = state.find("</sdf>");
+  EXPECT_NE(sdfBeginIdx, std::string::npos);
+  EXPECT_NE(sdfEndIdx, std::string::npos);
+  std::string worldState = state.substr(sdfBeginIdx, sdfEndIdx+2);
+  // Convert string to sdf element
+  sdf::SDF worldSdf;
+  worldSdf.SetFromString(worldState);
+  EXPECT_TRUE(worldSdf.Root()->HasElement("world"));
+  auto worldElem = worldSdf.Root()->GetElement("world");
+  EXPECT_TRUE(worldElem->HasElement("model"));
+  auto modelElem = worldElem->GetElement("model");
+
+  // check that all pendulum models are not filtered in the initial world state
+  unsigned int pendulumCount = 0;
+  while (modelElem)
+  {
+    std::string name = modelElem->Get<std::string>("name");
+    if (name.find("pendulum") != std::string::npos)
+      pendulumCount++;
+    modelElem = modelElem->GetNextElement("model");
+  }
+  // there should be 8 pendulums in the world
+  EXPECT_EQ(pendulumCount, 8u);
+
+  // Parse state string and verify logging period and model name filter
+  unsigned int filteredStateCount = 0;
+  auto nextIdx = sdfEndIdx;
+  std::string simTimeStr = "<sim_time>";
+  double prevSimTime = -1;
+  auto simTimeIdx = state.find(simTimeStr, nextIdx);
+  auto nameIdx = state.find("<model name='", nextIdx);
+  while (nameIdx != std::string::npos && simTimeIdx != std::string::npos)
+  {
+    // verify log period
+    auto simTimeEndIdx = state.find("</sim_time>", simTimeIdx);
+    std::string ns = state.substr(simTimeIdx + simTimeStr.size() + 2,
+      simTimeEndIdx - simTimeIdx - simTimeStr.size() - 2);
+    double simTime = std::stod(ns) / 1e9;
+    EXPECT_GT(simTime, 0);
+    if (prevSimTime >= 0)
+      EXPECT_FLOAT_EQ(simTime - prevSimTime, period);
+    prevSimTime = simTime;
+
+    // verify model name - only models matching the filter string should exist
+    auto nameBeginIdx = state.find("\'", nameIdx);
+    auto nameEndIdx = state.find("\'", nameBeginIdx+1);
+    EXPECT_NE(nameBeginIdx, std::string::npos);
+    EXPECT_NE(nameEndIdx, std::string::npos);
+    std::string modelName = state.substr(nameBeginIdx+1,
+        nameEndIdx-nameBeginIdx-1);
+    EXPECT_EQ(modelName, "pendulum_0deg");
+    filteredStateCount++;
+    nameIdx = state.find("<model name='", nameEndIdx+1);
+    simTimeIdx = state.find("<sim_time>", nameEndIdx+1);
+  }
+  EXPECT_GT(filteredStateCount, 0u);
+}
+
+/////////////////////////////////////////////////
 int main(int argc, char **argv)
 {
   ::testing::InitGoogleTest(&argc, argv);
diff --git a/test/integration/gz_model.cc b/test/integration/gz_model.cc
index d72b7a6..241547d 100644
--- a/test/integration/gz_model.cc
+++ b/test/integration/gz_model.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/gz_physics.cc b/test/integration/gz_physics.cc
index a5f366d..a4541f9 100644
--- a/test/integration/gz_physics.cc
+++ b/test/integration/gz_physics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/gz_world.cc b/test/integration/gz_world.cc
index bb38386..3444f91 100644
--- a/test/integration/gz_world.cc
+++ b/test/integration/gz_world.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/harness.cc b/test/integration/harness.cc
index 61f07ba..80d121f 100644
--- a/test/integration/harness.cc
+++ b/test/integration/harness.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/heightmap.cc b/test/integration/heightmap.cc
index a6d01ba..a389f55 100644
--- a/test/integration/heightmap.cc
+++ b/test/integration/heightmap.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -51,11 +51,18 @@ class HeightmapTest : public ServerFixture,
   public: void WhiteNoAlpha(const std::string &_physicsEngine);
   public: void Volume(const std::string &_physicsEngine);
   public: void LoadDEM(const std::string &_physicsEngine);
-  public: void Material(const std::string &_physicsEngine);
+  public: void Material(const std::string _worldName,
+      const std::string &_physicsEngine);
 
   /// \brief Test loading a heightmap that has no visuals
   public: void NoVisual();
 
+  /// \brief Test loading a heightmap with an LOD visual plugin
+  public: void LODVisualPlugin();
+
+/// \brief Test loading a heightmap and verify cache files are created
+  public: void HeightmapCache();
+
   public: void NotSquareImage();
   public: void InvalidSizeImage();
   // public: void Heights(const std::string &_physicsEngine);
@@ -445,7 +452,8 @@ void HeightmapTest::Heights(const std::string &_physicsEngine)
 */
 
 /////////////////////////////////////////////////
-void HeightmapTest::Material(const std::string &_physicsEngine)
+void HeightmapTest::Material(const std::string _worldName,
+    const std::string &_physicsEngine)
 {
   if (_physicsEngine == "dart")
   {
@@ -454,7 +462,7 @@ void HeightmapTest::Material(const std::string &_physicsEngine)
   }
 
   // load a heightmap with red material
-  Load("worlds/heightmap_material.world", false, _physicsEngine);
+  Load(_worldName, false, _physicsEngine);
   physics::ModelPtr heightmap = GetModel("heightmap");
   ASSERT_NE(heightmap, nullptr);
 
@@ -465,7 +473,7 @@ void HeightmapTest::Material(const std::string &_physicsEngine)
   unsigned int height = 240;
   double updateRate = 10;
   ignition::math::Pose3d testPose(
-      ignition::math::Vector3d(0, 0, 10),
+      ignition::math::Vector3d(0, 0, 100),
       ignition::math::Quaterniond(0, 1.57, 0));
   SpawnCamera(modelName, cameraName, testPose.Pos(),
       testPose.Rot().Euler(), width, height, updateRate);
@@ -532,6 +540,95 @@ void HeightmapTest::NoVisual()
 }
 
 /////////////////////////////////////////////////
+void HeightmapTest::LODVisualPlugin()
+{
+  // load a heightmap with no visual
+  Load("worlds/heightmap_lod_plugin.world", false);
+  physics::ModelPtr heightmap = GetModel("heightmap");
+  ASSERT_NE(heightmap, nullptr);
+
+  gazebo::rendering::ScenePtr scene = gazebo::rendering::get_scene("default");
+  ASSERT_NE(scene, nullptr);
+
+  // make sure scene is initialized and running
+  int sleep = 0;
+  int maxSleep = 30;
+  while (scene->SimTime().Double() < 2.0 && sleep++ < maxSleep)
+    common::Time::MSleep(100);
+
+  // check the heightmap lod via scene
+  EXPECT_EQ(scene->HeightmapLOD(), 5u);
+
+  // get heightmap object and check lod
+  rendering::Heightmap *h = scene->GetHeightmap();
+  EXPECT_NE(h, nullptr);
+  EXPECT_EQ(h->LOD(), 5u);
+}
+
+/////////////////////////////////////////////////
+void HeightmapTest::HeightmapCache()
+{
+  // path to heightmap cache files
+  std::string heightmapName = "heightmap_bowl";
+  std::string heightmapDir(common::SystemPaths::Instance()->GetLogPath()
+      + "/paging");
+  std::string shaPath = heightmapDir + "/" + heightmapName + "/gzterrain.SHA1";
+  std::string cachePath = heightmapDir +
+      "/" + heightmapName + "/gazebo_terrain_00000000.dat";
+
+  // temporary backup files for testing if cache files exist.
+  std::string shaPathBk = shaPath + ".bk";
+  std::string cachePathBk = cachePath + ".bk";
+  if (common::exists(shaPath))
+    common::moveFile(shaPath, shaPathBk);
+  if (common::exists(cachePath))
+    common::moveFile(cachePath, cachePathBk);
+
+  // there should be no cache files
+  EXPECT_FALSE(common::exists(shaPath));
+  EXPECT_FALSE(common::exists(cachePath));
+
+  // load a heightmap
+  Load("worlds/heightmap_test.world", false);
+  physics::ModelPtr heightmap = this->GetModel("heightmap");
+  ASSERT_NE(heightmap, nullptr);
+
+  gazebo::rendering::ScenePtr scene = gazebo::rendering::get_scene("default");
+  ASSERT_NE(scene, nullptr);
+
+  // make sure scene is initialized and running
+  int sleep = 0;
+  int maxSleep = 30;
+  while (scene->SimTime().Double() < 2.0 && sleep++ < maxSleep)
+    common::Time::MSleep(100);
+
+  // make sure we have the heightmap object
+  rendering::Heightmap *h = scene->GetHeightmap();
+  EXPECT_NE(h, nullptr);
+
+  // verify new sha-1 file exists
+  EXPECT_TRUE(common::exists(shaPath));
+  EXPECT_TRUE(common::isFile(shaPath));
+
+  // wait for the terrain tile cache to be saved
+  sleep = 0;
+  while (!common::exists(cachePath) && sleep++ < maxSleep)
+    common::Time::MSleep(100);
+
+  // verify that terrain tile cache exists
+  EXPECT_TRUE(common::exists(cachePath));
+  EXPECT_TRUE(common::isFile(cachePath));
+
+  // clean up by moving old files back
+  if (common::exists(shaPathBk))
+    common::moveFile(shaPathBk, shaPath);
+  if (common::exists(cachePathBk))
+    common::moveFile(cachePathBk, cachePath);
+  EXPECT_FALSE(common::exists(shaPathBk));
+  EXPECT_FALSE(common::exists(cachePathBk));
+}
+
+/////////////////////////////////////////////////
 TEST_F(HeightmapTest, NotSquareImage)
 {
   NotSquareImage();
@@ -588,7 +685,13 @@ TEST_P(HeightmapTest, Heights)
 /////////////////////////////////////////////////
 TEST_P(HeightmapTest, Material)
 {
-  Material(GetParam());
+  Material("worlds/heightmap_material.world", GetParam());
+}
+
+/////////////////////////////////////////////////
+TEST_P(HeightmapTest, MaterialShader)
+{
+  Material("worlds/heightmap_material_shader.world", GetParam());
 }
 
 /////////////////////////////////////////////////
@@ -597,6 +700,18 @@ TEST_F(HeightmapTest, NoVisual)
   NoVisual();
 }
 
+/////////////////////////////////////////////////
+TEST_F(HeightmapTest, LODVisualPlugin)
+{
+  LODVisualPlugin();
+}
+
+/////////////////////////////////////////////////
+TEST_F(HeightmapTest, HeightmapCache)
+{
+  HeightmapCache();
+}
+
 INSTANTIATE_TEST_CASE_P(PhysicsEngines, HeightmapTest, PHYSICS_ENGINE_VALUES);
 
 /////////////////////////////////////////////////
diff --git a/test/integration/heights_cmp.h b/test/integration/heights_cmp.h
index 111fc08..b9e5623 100644
--- a/test/integration/heights_cmp.h
+++ b/test/integration/heights_cmp.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/images_cmp.h b/test/integration/images_cmp.h
index 84dc45c..80273a9 100644
--- a/test/integration/images_cmp.h
+++ b/test/integration/images_cmp.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/imu.cc b/test/integration/imu.cc
index d3a0b90..6b82f0b 100644
--- a/test/integration/imu.cc
+++ b/test/integration/imu.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/insert_model.cc b/test/integration/insert_model.cc
index f7aa93e..bd91a3a 100644
--- a/test/integration/insert_model.cc
+++ b/test/integration/insert_model.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/insert_model.hh b/test/integration/insert_model.hh
index e6cb2ab..7f1cf5d 100644
--- a/test/integration/insert_model.hh
+++ b/test/integration/insert_model.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_controller.cc b/test/integration/joint_controller.cc
index 9b0243d..f28ddab 100644
--- a/test/integration/joint_controller.cc
+++ b/test/integration/joint_controller.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_force_torque.cc b/test/integration/joint_force_torque.cc
index 1f09ce2..2f51d1b 100644
--- a/test/integration/joint_force_torque.cc
+++ b/test/integration/joint_force_torque.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_gearbox.cc b/test/integration/joint_gearbox.cc
index fc44263..51ca9ae 100644
--- a/test/integration/joint_gearbox.cc
+++ b/test/integration/joint_gearbox.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_get_force_torque.cc b/test/integration/joint_get_force_torque.cc
index 14f3482..50d641a 100644
--- a/test/integration/joint_get_force_torque.cc
+++ b/test/integration/joint_get_force_torque.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_revolute.cc b/test/integration/joint_revolute.cc
index d02f36d..7c961aa 100644
--- a/test/integration/joint_revolute.cc
+++ b/test/integration/joint_revolute.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_screw.cc b/test/integration/joint_screw.cc
index d9a13a1..1bc10be 100644
--- a/test/integration/joint_screw.cc
+++ b/test/integration/joint_screw.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_set_position_test.cc b/test/integration/joint_set_position_test.cc
index fe6c12c..c9ca3f1 100644
--- a/test/integration/joint_set_position_test.cc
+++ b/test/integration/joint_set_position_test.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_spawn.cc b/test/integration/joint_spawn.cc
index fb6aaa1..9a85202 100644
--- a/test/integration/joint_spawn.cc
+++ b/test/integration/joint_spawn.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_test.cc b/test/integration/joint_test.cc
index 2c2d727..6090639 100644
--- a/test/integration/joint_test.cc
+++ b/test/integration/joint_test.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_test.hh b/test/integration/joint_test.hh
index 60d7521..19c6161 100644
--- a/test/integration/joint_test.hh
+++ b/test/integration/joint_test.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/joint_universal.cc b/test/integration/joint_universal.cc
index dbd65f8..3d1c1ed 100644
--- a/test/integration/joint_universal.cc
+++ b/test/integration/joint_universal.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/laser.cc b/test/integration/laser.cc
index c77da5f..b768a34 100644
--- a/test/integration/laser.cc
+++ b/test/integration/laser.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/logical_camera_sensor.cc b/test/integration/logical_camera_sensor.cc
index a712d20..46cd1d2 100644
--- a/test/integration/logical_camera_sensor.cc
+++ b/test/integration/logical_camera_sensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/manpages.cc b/test/integration/manpages.cc
index 3985390..82cf601 100644
--- a/test/integration/manpages.cc
+++ b/test/integration/manpages.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/model.cc b/test/integration/model.cc
index acfc8c0..50e1a1d 100644
--- a/test/integration/model.cc
+++ b/test/integration/model.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/model_database.cc b/test/integration/model_database.cc
index ae82166..753eb9c 100644
--- a/test/integration/model_database.cc
+++ b/test/integration/model_database.cc
@@ -1,5 +1,5 @@
  /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/model_editor.cc b/test/integration/model_editor.cc
index cf4b47c..1601e97 100644
--- a/test/integration/model_editor.cc
+++ b/test/integration/model_editor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/model_editor.hh b/test/integration/model_editor.hh
index df9e22a..20fbf19 100644
--- a/test/integration/model_editor.hh
+++ b/test/integration/model_editor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/multicamera_sensor.cc b/test/integration/multicamera_sensor.cc
index f4ecff3..44b4622 100644
--- a/test/integration/multicamera_sensor.cc
+++ b/test/integration/multicamera_sensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/nested_model.cc b/test/integration/nested_model.cc
index c2f2be5..a2733fd 100644
--- a/test/integration/nested_model.cc
+++ b/test/integration/nested_model.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/noise.cc b/test/integration/noise.cc
index 4710207..b34f1ee 100644
--- a/test/integration/noise.cc
+++ b/test/integration/noise.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/nondefault_world.cc b/test/integration/nondefault_world.cc
index d0c3ff1..89862d7 100644
--- a/test/integration/nondefault_world.cc
+++ b/test/integration/nondefault_world.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/ogre_log.cc b/test/integration/ogre_log.cc
index c3cb331..3c95ebf 100644
--- a/test/integration/ogre_log.cc
+++ b/test/integration/ogre_log.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics.cc b/test/integration/physics.cc
index 215ca66..b487e81 100644
--- a/test/integration/physics.cc
+++ b/test/integration/physics.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_basic_controller_response.cc b/test/integration/physics_basic_controller_response.cc
index 0654ac4..f378f34 100644
--- a/test/integration/physics_basic_controller_response.cc
+++ b/test/integration/physics_basic_controller_response.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_collision.cc b/test/integration/physics_collision.cc
index 588b0d1..61fb6c1 100644
--- a/test/integration/physics_collision.cc
+++ b/test/integration/physics_collision.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -73,67 +73,27 @@ void PhysicsCollisionTest::GetBoundingBox(const std::string &_physicsEngine)
 /////////////////////////////////////////////////
 void PhysicsCollisionTest::PoseOffsets(const std::string &_physicsEngine)
 {
-  Load("worlds/empty.world", true, _physicsEngine);
+  Load("worlds/collision_pose_offset.world", true, _physicsEngine);
   auto world = physics::get_world("default");
   ASSERT_TRUE(world != nullptr);
 
   // Box size
-  const double dx = 0.9;
   const double dy = 0.4;
   const double dz = 0.9;
-  const double mass = 10.0;
-  const double angle = IGN_PI / 2.0;
 
-  const unsigned int testCases = 4;
-  for (unsigned int i = 0; i < testCases; ++i)
+  int modelCount = 0;
+  auto models = world->GetModels();
+  for (auto model : models)
   {
-    // Use msgs::AddBoxLink
-    msgs::Model msgModel;
-    math::Pose modelPose, linkPose, collisionPose;
-
-    msgModel.set_name(this->GetUniqueString("model"));
-    msgs::AddBoxLink(msgModel, mass, ignition::math::Vector3d(dx, dy, dz));
-    modelPose.pos.x = i * dz * 5;
-    modelPose.pos.z = dz;
-    double z0 = dz - dy/2;
-
-    // i=0: rotated model pose
-    //  expect collision pose to match model pose
-    if (i == 0)
-    {
-      modelPose.rot.SetFromEuler(angle, 0.0, 0.0);
-    }
-    // i=1: rotated link pose
-    //  expect collision pose to match link pose
-    else if (i == 1)
-    {
-      linkPose.rot.SetFromEuler(angle, 0.0, 0.0);
-    }
-    // i=2: rotated collision pose
-    //  expect collision pose to differ from link pose
-    else if (i == 2)
-    {
-      collisionPose.rot.SetFromEuler(angle, 0.0, 0.0);
-    }
-    // i=3: offset collision pose
-    //  expect collision pose to differ from link pose
-    else if (i == 3)
-    {
-      collisionPose.pos.Set(0, 0, dz);
-      z0 = 1.5 * dz;
-    }
-
+    ASSERT_TRUE(model != nullptr);
+    auto name = model->GetName();
+    if (0 != name.compare(0, 4, "box_"))
     {
-      auto msgLink = msgModel.mutable_link(0);
-      auto msgCollision = msgLink->mutable_collision(0);
-
-      msgs::Set(msgModel.mutable_pose(), modelPose.Ign());
-      msgs::Set(msgLink->mutable_pose(), linkPose.Ign());
-      msgs::Set(msgCollision->mutable_pose(), collisionPose.Ign());
+      continue;
     }
+    modelCount++;
 
-    auto model = this->SpawnModel(msgModel);
-    ASSERT_TRUE(model != nullptr);
+    int i = std::stoi(name.substr(4, 5));
 
     auto link = model->GetLink();
     ASSERT_TRUE(link != nullptr);
@@ -142,11 +102,6 @@ void PhysicsCollisionTest::PoseOffsets(const std::string &_physicsEngine)
     auto collision = link->GetCollision(index);
     ASSERT_TRUE(collision != nullptr);
 
-    EXPECT_EQ(model->GetWorldPose(), modelPose);
-    EXPECT_EQ(link->GetWorldPose(), linkPose + modelPose);
-    EXPECT_EQ(collision->GetWorldPose(),
-              collisionPose + linkPose + modelPose);
-
     // i=0: rotated model pose
     //  expect collision pose to match model pose
     if (i == 0)
@@ -172,20 +127,35 @@ void PhysicsCollisionTest::PoseOffsets(const std::string &_physicsEngine)
     //  expect collision postion to match link position plus offset
     else if (i == 3)
     {
-      EXPECT_EQ(link->GetWorldPose().pos + collisionPose.pos,
-                collision->GetWorldPose().pos);
+      ignition::math::Pose3d collisionPose(0, 0, dz, 0, 0, 0);
+      EXPECT_EQ(link->GetWorldPose().Ign().Pos() + collisionPose.Pos(),
+                collision->GetWorldPose().Ign().Pos());
     }
+  }
+  EXPECT_EQ(modelCount, 4);
+
+  const double t0 = 1.5;
+  const double dt = 1e-3;
+  const int steps = floor(t0 / dt);
+  world->Step(steps);
 
-    auto physics = world->GetPhysicsEngine();
-    ASSERT_TRUE(physics != nullptr);
-    physics->SetRealTimeUpdateRate(0);
-    const double dt = physics->GetMaxStepSize();
-    const double g = world->Gravity().Z();
-    EXPECT_DOUBLE_EQ(dt, 1e-3);
-    ASSERT_DOUBLE_EQ(g, -9.8);
-    const double t0 = 1 + sqrt(2*z0 / (-g));
-    const int steps = floor(t0 / dt);
-    world->Step(steps);
+  for (auto model : models)
+  {
+    ASSERT_TRUE(model != nullptr);
+    auto name = model->GetName();
+    if (0 != name.compare(0, 4, "box_"))
+    {
+      continue;
+    }
+
+    int i = std::stoi(name.substr(4, 5));
+
+    auto link = model->GetLink();
+    ASSERT_TRUE(link != nullptr);
+
+    const unsigned int index = 0;
+    auto collision = link->GetCollision(index);
+    ASSERT_TRUE(collision != nullptr);
 
     // For 0-2, drop and expect box to rest at specific height
     if (i <= 2)
diff --git a/test/integration/physics_friction.cc b/test/integration/physics_friction.cc
index 6988f04..65694a4 100644
--- a/test/integration/physics_friction.cc
+++ b/test/integration/physics_friction.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,8 @@
  * limitations under the License.
  *
 */
-#include <string.h>
+#include <cmath>
+#include <string>
 
 #include "gazebo/msgs/msgs.hh"
 #include "gazebo/physics/physics.hh"
@@ -160,6 +161,12 @@ class PhysicsFrictionTest : public ServerFixture,
   /// no NaN's are generated.
   /// \param[in] _physicsEngine Physics engine to use.
   public: void DirectionNaN(const std::string &_physicsEngine);
+
+  /// \brief Test ode slip parameter on models with 1-3 spheres
+  /// and varying mass.
+  /// Expect motion to depend on mass, slip, and number of contact points.
+  /// \param[in] _physicsEngine Physics engine to use.
+  public: void SphereSlip(const std::string &_physicsEngine);
 };
 
 class WorldStepFrictionTest : public PhysicsFrictionTest
@@ -280,14 +287,13 @@ void PhysicsFrictionTest::FrictionDemo(const std::string &_physicsEngine,
 
 /////////////////////////////////////////////////
 // MaximumDissipation test:
-// Start with empty world,
-// spawn a bunch of boxes,
-// sets box velocities to different angles,
+// Start with friction_cone world, which has a circle of boxes,
+// set box velocities to different angles,
 // expect velocity unit vectors to stay constant while in motion.
 void PhysicsFrictionTest::MaximumDissipation(const std::string &_physicsEngine)
 {
   // Load an empty world
-  Load("worlds/empty.world", true, _physicsEngine);
+  Load("worlds/friction_cone.world", true, _physicsEngine);
   physics::WorldPtr world = physics::get_world("default");
   ASSERT_TRUE(world != NULL);
 
@@ -296,75 +302,62 @@ void PhysicsFrictionTest::MaximumDissipation(const std::string &_physicsEngine)
   ASSERT_TRUE(physics != NULL);
   EXPECT_EQ(physics->GetType(), _physicsEngine);
 
-  // get the gravity vector
-  // small positive y component
-  math::Vector3 g = physics->GetGravity();
-
-  // Set friction model
-  // "cone_model", "pyramid_model", "box_model"
-  const std::string frictionModel = "cone_model";
-  physics->SetParam("friction_model", frictionModel);
+  // Expect friction cone model
+  {
+    std::string frictionModel;
+    EXPECT_NO_THROW(frictionModel = boost::any_cast<std::string>(
+                                      physics->GetParam("friction_model")));
+    EXPECT_EQ("cone_model", frictionModel);
+  }
 
-  // Spawn concentric semi-circles of boxes
-  int boxes = 32;
-  double dx = 0.5;
-  double dy = 0.5;
-  double dz = 0.2;
+  // Get pointers to boxes and their polar coordinate angle
   std::map<physics::ModelPtr, double> modelAngles;
 
-  for (int ring = 0; ring < 5; ++ring)
+  auto models = world->GetModels();
+  for (auto model : models)
   {
-    gzdbg << "Spawn ring " << ring+1 << " of boxes" << std::endl;
-    for (int i = 0; i < boxes; ++i)
+    ASSERT_TRUE(model != nullptr);
+    auto name = model->GetName();
+    if (0 != name.compare(0, 4, "box_"))
     {
-      // Set box size and anisotropic friction
-      SpawnFrictionBoxOptions opt;
-      opt.size.Set(dx, dy, dz);
-      opt.friction1 = 0.3;
-      opt.friction2 = opt.friction1;
-
-      // Compute angle for each box
-      double radius = 9.0 + ring;
-      double angle = 2*M_PI*static_cast<double>(i) / static_cast<double>(boxes);
-      opt.modelPose.Pos().Set(radius*cos(angle), radius*sin(angle), dz/2);
-
-      if (ring == 0)
-        opt.direction1 = ignition::math::Vector3d(-sin(angle), cos(angle), 0);
-      else if (ring < 4)
-        opt.direction1 = ignition::math::Vector3d(0.0, 1.0, 0.0);
-
-      if (ring == 1)
-        opt.collisionPose.Rot().Euler(0.0, 0.0, angle);
-
-      if (ring == 2)
-        opt.linkPose.Rot().Euler(0.0, 0.0, angle);
-
-      if (ring == 3)
-        opt.modelPose.Rot().Euler(0.0, 0.0, angle);
-
-      physics::ModelPtr model = SpawnBox(opt);
-      ASSERT_TRUE(model != NULL);
-      modelAngles[model] = angle;
-
-      // Set velocity, larger for outer rings.
-      model->SetLinearVel(
-          radius * ignition::math::Vector3d(cos(angle), sin(angle), 0));
+      continue;
     }
+    auto pos = model->GetWorldPose().Ign().Pos();
+    double angle = std::atan2(pos.Y(), pos.X());
+    modelAngles[model] = angle;
+
+    // Expect radius of 9 m
+    pos.Z(0);
+    double radius = pos.Length();
+    EXPECT_NEAR(9.0, radius, 1e-5);
+
+    // Radial velocity should already be set
+    auto vel = model->GetWorldLinearVel().Ign();
+    EXPECT_GE(vel.Length(), radius*0.95);
+    EXPECT_NEAR(angle, atan2(vel.Y(), vel.X()), 1e-6);
   }
 
+  EXPECT_EQ(modelAngles.size(), 32u);
+
   world->Step(1500);
 
   gzdbg << "Checking position of boxes" << std::endl;
   std::map<physics::ModelPtr, double>::iterator iter;
   for (iter = modelAngles.begin(); iter != modelAngles.end(); ++iter)
   {
-    double cosAngle = cos(iter->second);
-    double sinAngle = sin(iter->second);
-    math::Vector3 pos = iter->first->GetWorldPose().pos;
-    double cosPosAngle = pos.x / pos.GetLength();
-    double sinPosAngle = pos.y / pos.GetLength();
-    EXPECT_NEAR(cosAngle, cosPosAngle, 1e-2);
-    EXPECT_NEAR(sinAngle, sinPosAngle, 1e-2);
+    double angle = iter->second;
+    ignition::math::Vector3d pos = iter->first->GetWorldPose().Ign().Pos();
+    pos.Z(0);
+    double radius = pos.Length();
+    double polarAngle = atan2(pos.Y(), pos.X());
+    // expect polar angle to remain constant
+    EXPECT_NEAR(angle, polarAngle, 1e-2)
+      << "model " << iter->first->GetScopedName()
+      << std::endl;
+    // make sure the boxes are moving outward
+    EXPECT_GT(radius, 13)
+      << "model " << iter->first->GetScopedName()
+      << std::endl;
   }
 }
 
@@ -396,7 +389,7 @@ void PhysicsFrictionTest::BoxDirectionRing(const std::string &_physicsEngine)
   }
 
   // Load an empty world
-  Load("worlds/empty.world", true, _physicsEngine);
+  Load("worlds/friction_dir_test.world", true, _physicsEngine);
   physics::WorldPtr world = physics::get_world("default");
   ASSERT_TRUE(world != NULL);
 
@@ -406,51 +399,26 @@ void PhysicsFrictionTest::BoxDirectionRing(const std::string &_physicsEngine)
   EXPECT_EQ(physics->GetType(), _physicsEngine);
 
   // set the gravity vector
-  math::Vector3 g(0.0, 1.0, -9.81);
-  physics->SetGravity(g);
+  ignition::math::Vector3d g(0.0, 1.0, -9.81);
+  world->SetGravity(g);
 
-  // Spawn concentric semi-circles of boxes
-  int boxes = 10;
-  double dx = 0.5;
-  double dy = 0.5;
-  double dz = 0.2;
+  // Pointers and location of concentric semi-circles of boxes
   std::map<physics::ModelPtr, double> modelAngles;
 
-  for (int ring = 0; ring < 4; ++ring)
+  auto models = world->GetModels();
+  for (auto model : models)
   {
-    gzdbg << "Spawn ring " << ring+1 << " of boxes" << std::endl;
-    for (int i = 0; i <= boxes; ++i)
+    ASSERT_TRUE(model != nullptr);
+    auto name = model->GetName();
+    if (0 != name.compare(0, 4, "box_"))
     {
-      // Set box size and anisotropic friction
-      SpawnFrictionBoxOptions opt;
-      opt.size.Set(dx, dy, dz);
-      opt.friction1 = 100.0;
-      opt.friction2 = 0.0;
-
-      // Compute angle for each box
-      double radius = 5.0 + ring;
-      double angle = M_PI*static_cast<double>(i) / static_cast<double>(boxes);
-      opt.modelPose.Pos().Set(radius*cos(angle), radius*sin(angle), dz/2);
-
-      if (ring == 0)
-        opt.direction1 = ignition::math::Vector3d(-sin(angle), cos(angle), 0);
-      else
-        opt.direction1 = ignition::math::Vector3d(0.0, 1.0, 0.0);
-
-      if (ring == 1)
-        opt.collisionPose.Rot().Euler(0.0, 0.0, angle);
-
-      if (ring == 2)
-        opt.linkPose.Rot().Euler(0.0, 0.0, angle);
-
-      if (ring == 3)
-        opt.modelPose.Rot().Euler(0.0, 0.0, angle);
-
-      physics::ModelPtr model = SpawnBox(opt);
-      ASSERT_TRUE(model != NULL);
-      modelAngles[model] = angle;
+      continue;
     }
+    auto pos = model->GetWorldPose().Ign().Pos();
+    double angle = std::atan2(pos.Y(), pos.X());
+    modelAngles[model] = angle;
   }
+  EXPECT_EQ(modelAngles.size(), 44u);
 
   // Step forward
   world->Step(1500);
@@ -462,10 +430,10 @@ void PhysicsFrictionTest::BoxDirectionRing(const std::string &_physicsEngine)
   {
     double cosAngle = cos(iter->second);
     double sinAngle = sin(iter->second);
-    double velMag = g.y * sinAngle * t;
-    math::Vector3 vel = iter->first->GetWorldLinearVel();
-    EXPECT_NEAR(velMag*cosAngle, vel.x, 5*g_friction_tolerance);
-    EXPECT_NEAR(velMag*sinAngle, vel.y, 5*g_friction_tolerance);
+    double velMag = g.Y() * sinAngle * t;
+    ignition::math::Vector3d vel = iter->first->GetWorldLinearVel().Ign();
+    EXPECT_NEAR(velMag*cosAngle, vel.X(), 5*g_friction_tolerance);
+    EXPECT_NEAR(velMag*sinAngle, vel.Y(), 5*g_friction_tolerance);
   }
 }
 
@@ -537,6 +505,129 @@ void PhysicsFrictionTest::DirectionNaN(const std::string &_physicsEngine)
 }
 
 /////////////////////////////////////////////////
+void PhysicsFrictionTest::SphereSlip(const std::string &_physicsEngine)
+{
+  if (_physicsEngine == "bullet")
+  {
+    gzerr << "Aborting test since there's an issue with bullet's friction"
+          << " parameters (#1045)"
+          << std::endl;
+    return;
+  }
+  if (_physicsEngine == "simbody")
+  {
+    gzerr << "Aborting test since there's an issue with simbody's friction"
+          << " parameters (#989)"
+          << std::endl;
+    return;
+  }
+  if (_physicsEngine == "dart")
+  {
+    gzerr << "Aborting test since there's an issue with dart's friction"
+          << " parameters (#1000)"
+          << std::endl;
+    return;
+  }
+
+  // Load an empty world
+  Load("worlds/friction_spheres.world", true, _physicsEngine);
+  physics::WorldPtr world = physics::get_world("default");
+  ASSERT_TRUE(world != NULL);
+
+  // check the gravity vector
+  // small positive y component
+  ignition::math::Vector3d grav = world->Gravity();
+  EXPECT_NEAR(grav.X(), 0, 1e-6);
+  EXPECT_NEAR(grav.Y(), 2, 1e-6);
+  EXPECT_NEAR(grav.Z(), -9.81, 1e-6);
+
+  // Get pointers to models and their mass-slip product
+  std::map<physics::ModelPtr, double> lowballMassSlip;
+  std::map<physics::ModelPtr, double> twoballMassSlip;
+  std::map<physics::ModelPtr, double> triballMassSlip;
+
+  auto models = world->GetModels();
+  for (auto model : models)
+  {
+    ASSERT_TRUE(model != nullptr);
+    auto name = model->GetName();
+    if (0 != name.compare(3, 5, "ball_"))
+    {
+      continue;
+    }
+    double massSlip = std::stod(name.substr(8, 3));
+    if (0 == name.compare(0, 3, "low"))
+    {
+      lowballMassSlip[model] = massSlip;
+    }
+    else if (0 == name.compare(0, 3, "two"))
+    {
+      twoballMassSlip[model] = massSlip;
+    }
+    else if (0 == name.compare(0, 3, "tri"))
+    {
+      triballMassSlip[model] = massSlip;
+    }
+  }
+
+  EXPECT_EQ(lowballMassSlip.size(), 6u);
+  EXPECT_EQ(twoballMassSlip.size(), 6u);
+  EXPECT_EQ(triballMassSlip.size(), 6u);
+
+  world->Step(5000);
+
+  // With constant lateral gravity and non-zero slip,
+  // expect a steady-state lateral velocity that is proportional
+  // to the product of slip and mass divided by the number of contact points.
+  //
+  // The contact points act like viscous dampers in parallel.
+  // The slip parameter is defined as:
+  //   slip = lateral_velocity / (lateral_force / contact_points)
+  // and the velocity is then:
+  //   lateral_velocity = lateral_force * slip / contact_points
+  //   lateral_velocity = gravity * mass * slip / contact_points
+  gzdbg << "Checking velocity of lowball models" << std::endl;
+  for (auto lowball : lowballMassSlip)
+  {
+    auto model = lowball.first;
+    double massSlip = lowball.second;
+    auto vel = model->GetWorldLinearVel().Ign();
+    EXPECT_NEAR(vel.X(), 0, g_friction_tolerance);
+    EXPECT_NEAR(vel.Z(), 0, g_friction_tolerance);
+    double velExpected = grav.Y() * massSlip / 1.0;
+    EXPECT_NEAR(vel.Y(), velExpected, 0.015*velExpected)
+      << "model " << lowball.first->GetScopedName()
+      << std::endl;
+  }
+  gzdbg << "Checking velocity of twoball models" << std::endl;
+  for (auto twoball : twoballMassSlip)
+  {
+    auto model = twoball.first;
+    double massSlip = twoball.second;
+    auto vel = model->GetWorldLinearVel().Ign();
+    EXPECT_NEAR(vel.X(), 0, g_friction_tolerance);
+    EXPECT_NEAR(vel.Z(), 0, g_friction_tolerance);
+    double velExpected = grav.Y() * massSlip / 2.0;
+    EXPECT_NEAR(vel.Y(), velExpected, 0.015*velExpected)
+      << "model " << twoball.first->GetScopedName()
+      << std::endl;
+  }
+  gzdbg << "Checking velocity of triball models" << std::endl;
+  for (auto triball : triballMassSlip)
+  {
+    auto model = triball.first;
+    double massSlip = triball.second;
+    auto vel = model->GetWorldLinearVel().Ign();
+    EXPECT_NEAR(vel.X(), 0, g_friction_tolerance);
+    EXPECT_NEAR(vel.Z(), 0, g_friction_tolerance);
+    double velExpected = grav.Y() * massSlip / 3.0;
+    EXPECT_NEAR(vel.Y(), velExpected, 0.015*velExpected)
+      << "model " << triball.first->GetScopedName()
+      << std::endl;
+  }
+}
+
+/////////////////////////////////////////////////
 TEST_P(PhysicsFrictionTest, FrictionDemo)
 {
   FrictionDemo(GetParam());
@@ -585,6 +676,21 @@ TEST_P(PhysicsFrictionTest, DirectionNaN)
   DirectionNaN(GetParam());
 }
 
+/////////////////////////////////////////////////
+TEST_P(PhysicsFrictionTest, SphereSlip)
+{
+  if (std::string("ode").compare(GetParam()) == 0)
+  {
+    SphereSlip(GetParam());
+  }
+  else
+  {
+    gzerr << "Skipping test for physics engine "
+          << GetParam()
+          << std::endl;
+  }
+}
+
 INSTANTIATE_TEST_CASE_P(PhysicsEngines, PhysicsFrictionTest,
                         PHYSICS_ENGINE_VALUES);
 
diff --git a/test/integration/physics_inertia_ratio.cc b/test/integration/physics_inertia_ratio.cc
index da7f600..a8841f9 100644
--- a/test/integration/physics_inertia_ratio.cc
+++ b/test/integration/physics_inertia_ratio.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_link.cc b/test/integration/physics_link.cc
index d9cdbfb..6fd1117 100644
--- a/test/integration/physics_link.cc
+++ b/test/integration/physics_link.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_msgs.cc b/test/integration/physics_msgs.cc
index 0011544..f23c277 100644
--- a/test/integration/physics_msgs.cc
+++ b/test/integration/physics_msgs.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_msgs_inertia.cc b/test/integration/physics_msgs_inertia.cc
index a8b02a1..255a25d 100644
--- a/test/integration/physics_msgs_inertia.cc
+++ b/test/integration/physics_msgs_inertia.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_presets.cc b/test/integration/physics_presets.cc
index 3c9faa7..873fa91 100644
--- a/test/integration/physics_presets.cc
+++ b/test/integration/physics_presets.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_solver.cc b/test/integration/physics_solver.cc
index d602d77..029a2a6 100644
--- a/test/integration/physics_solver.cc
+++ b/test/integration/physics_solver.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_thread_safe.cc b/test/integration/physics_thread_safe.cc
index de5efd4..56dcc48 100644
--- a/test/integration/physics_thread_safe.cc
+++ b/test/integration/physics_thread_safe.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/physics_torsional_friction.cc b/test/integration/physics_torsional_friction.cc
index b1cf7b4..d6e061e 100644
--- a/test/integration/physics_torsional_friction.cc
+++ b/test/integration/physics_torsional_friction.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/pioneer2dx.cc b/test/integration/pioneer2dx.cc
index cc52815..c777b6a 100644
--- a/test/integration/pioneer2dx.cc
+++ b/test/integration/pioneer2dx.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/player/player.cc b/test/integration/player/player.cc
index 1d5d00b..b16fc06 100644
--- a/test/integration/player/player.cc
+++ b/test/integration/player/player.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/plugin.cc b/test/integration/plugin.cc
index 421c34c..72e8887 100644
--- a/test/integration/plugin.cc
+++ b/test/integration/plugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/polyline.cc b/test/integration/polyline.cc
index dd8f881..b6fe004 100644
--- a/test/integration/polyline.cc
+++ b/test/integration/polyline.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/pr2.cc b/test/integration/pr2.cc
index 816c72d..4537b71 100644
--- a/test/integration/pr2.cc
+++ b/test/integration/pr2.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/projector.cc b/test/integration/projector.cc
index 2b98a13..6c719b0 100644
--- a/test/integration/projector.cc
+++ b/test/integration/projector.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/region_events.cc b/test/integration/region_events.cc
index 23858f5..b05c94f 100644
--- a/test/integration/region_events.cc
+++ b/test/integration/region_events.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/rendering_sensor.cc b/test/integration/rendering_sensor.cc
index 5d8c0d7..2fa7a96 100644
--- a/test/integration/rendering_sensor.cc
+++ b/test/integration/rendering_sensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/rest_web.cc b/test/integration/rest_web.cc
index 23a8ad5..c8e887c 100644
--- a/test/integration/rest_web.cc
+++ b/test/integration/rest_web.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/road.cc b/test/integration/road.cc
index 2831c57..5a9f7c2 100644
--- a/test/integration/road.cc
+++ b/test/integration/road.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/saving_and_loading.cc b/test/integration/saving_and_loading.cc
index 9b419a0..8e67776 100644
--- a/test/integration/saving_and_loading.cc
+++ b/test/integration/saving_and_loading.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/scans_cmp.h b/test/integration/scans_cmp.h
index 77c4ee2..8250ffb 100644
--- a/test/integration/scans_cmp.h
+++ b/test/integration/scans_cmp.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/sdf.cc b/test/integration/sdf.cc
index 035367a..5aa9783 100644
--- a/test/integration/sdf.cc
+++ b/test/integration/sdf.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/sensor.cc b/test/integration/sensor.cc
index 2c0228c..14785e5 100644
--- a/test/integration/sensor.cc
+++ b/test/integration/sensor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/server_fixture.cc b/test/integration/server_fixture.cc
index b72c7be..a5e4e21 100644
--- a/test/integration/server_fixture.cc
+++ b/test/integration/server_fixture.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/sim_events.cc b/test/integration/sim_events.cc
index c77551e..88c3125 100644
--- a/test/integration/sim_events.cc
+++ b/test/integration/sim_events.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/speed.cc b/test/integration/speed.cc
index 720f56e..09a263c 100644
--- a/test/integration/speed.cc
+++ b/test/integration/speed.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/speed_pr2.cc b/test/integration/speed_pr2.cc
index f72b0f3..1e36b2e 100644
--- a/test/integration/speed_pr2.cc
+++ b/test/integration/speed_pr2.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/speed_thread_pr2.cc b/test/integration/speed_thread_pr2.cc
index 90a9e58..34deb81 100644
--- a/test/integration/speed_thread_pr2.cc
+++ b/test/integration/speed_thread_pr2.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/state_log.cc b/test/integration/state_log.cc
index b4ed325..64f3525 100644
--- a/test/integration/state_log.cc
+++ b/test/integration/state_log.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/stress_spawn_models.cc b/test/integration/stress_spawn_models.cc
index eb3ad26..956080d 100644
--- a/test/integration/stress_spawn_models.cc
+++ b/test/integration/stress_spawn_models.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/surface_properties.cc b/test/integration/surface_properties.cc
index 95f32da..631b58b 100644
--- a/test/integration/surface_properties.cc
+++ b/test/integration/surface_properties.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -39,6 +39,13 @@ class SurfaceTest : public ServerFixture,
 ////////////////////////////////////////////////////////////////////////
 void SurfaceTest::CollideWithoutContact(const std::string &_physicsEngine)
 {
+  if ("bullet" == _physicsEngine)
+  {
+    gzerr << _physicsEngine << " Does not support <collide_without_contact>"
+      << " see issue #1038" << std::endl;
+    return;
+  }
+
   // load an empty world
   Load("worlds/collide_without_contact.world", true, _physicsEngine);
   physics::WorldPtr world = physics::get_world("default");
@@ -208,21 +215,11 @@ void SurfaceTest::CollideBitmask(const std::string &_physicsEngine)
   ASSERT_TRUE(box3 != NULL);
   ASSERT_TRUE(box4 != NULL);
 
-  // Step forward 0.2 s
-  double stepTime = 0.2;
+  // Step forward 1.5 s
+  double stepTime = 1.5;
   unsigned int steps = floor(stepTime / dt);
   world->Step(steps);
 
-  // Expect boxes to be falling
-  double fallVelocity = g.z * stepTime;
-  EXPECT_LT(box1->GetWorldLinearVel().z, fallVelocity*(1-g_physics_tol));
-  EXPECT_LT(box2->GetWorldLinearVel().z, fallVelocity*(1-g_physics_tol));
-  EXPECT_LT(box3->GetWorldLinearVel().z, fallVelocity*(1-g_physics_tol));
-  EXPECT_LT(box4->GetWorldLinearVel().z, fallVelocity*(1-g_physics_tol));
-
-  // Another 2000 steps should put the boxes at rest
-  world->Step(2000);
-
   // Expect 3 boxes to be stationary
   EXPECT_NEAR(box1->GetWorldLinearVel().z, 0, 1e-3);
   EXPECT_NEAR(box2->GetWorldLinearVel().z, 0, 1e-3);
@@ -232,11 +229,11 @@ void SurfaceTest::CollideBitmask(const std::string &_physicsEngine)
   EXPECT_NEAR(box1->GetWorldPose().pos.z, 0.5, 1e-3);
   EXPECT_NEAR(box2->GetWorldPose().pos.z, 0.5, 1e-3);
 
-  // The third boxs should be ontop of the firs two boxes
+  // The third boxs should be ontop of the first two boxes
   EXPECT_NEAR(box3->GetWorldPose().pos.z, 1.5, 1e-3);
 
-  // Expect 4th box to still be falling
-  fallVelocity = g.z * world->GetSimTime().Double();
+  // Expect 4th box to be falling
+  double fallVelocity = g.z * world->GetSimTime().Double();
   EXPECT_LT(box4->GetWorldLinearVel().z, fallVelocity*(1-g_physics_tol));
 
   Unload();
@@ -256,10 +253,8 @@ TEST_P(SurfaceTest, CollideBitmask)
   CollideBitmask(GetParam());
 }
 
-// These tests only work with ODE.
-// Issue #1038
-// INSTANTIATE_TEST_CASE_P(PhysicsEngines, SurfaceTest, PHYSICS_ENGINE_VALUES);
-INSTANTIATE_TEST_CASE_P(TestODE, SurfaceTest, ::testing::Values("ode"));
+INSTANTIATE_TEST_CASE_P(TestODE, SurfaceTest, ::testing::Values(
+      "ode", "bullet"));
 
 /////////////////////////////////////////////////
 int main(int argc, char **argv)
diff --git a/test/integration/swarm.cc b/test/integration/swarm.cc
index c578db3..fab9cb5 100644
--- a/test/integration/swarm.cc
+++ b/test/integration/swarm.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/touch_plugin.cc b/test/integration/touch_plugin.cc
new file mode 100644
index 0000000..26e328d
--- /dev/null
+++ b/test/integration/touch_plugin.cc
@@ -0,0 +1,252 @@
+/*
+ * Copyright (C) 2017 Open Source Robotics Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+#include "gazebo/test/ServerFixture.hh"
+#include "gazebo/physics/physics.hh"
+#include "gazebo/test/helper_physics_generator.hh"
+
+using namespace gazebo;
+class TouchPluginTest : public ServerFixture,
+                public testing::WithParamInterface<const char*>
+{
+  /// \brief Test observing only one link in a model
+  /// \param[in] _physicsEngine Physics engine to use.
+  public: void OneLink(const std::string &_physicsEngine);
+
+  /// \brief Test observing more than one link in a model
+  /// \param[in] _physicsEngine Physics engine to use.
+  public: void MultiLink(const std::string &_physicsEngine);
+
+  /// \brief Test a plugin which starts disabled.
+  /// \param[in] _physicsEngine Physics engine to use.
+  public: void StartDisabled(const std::string &_physicsEngine);
+
+  /// \brief Callback when white box plugin touches.
+  /// \param[in] _msg Unused
+  public: void WhiteTouch(ConstIntPtr &/*_msg*/);
+
+  /// \brief Callback when red / yellow box plugin touches.
+  /// \param[in] _msg Unused
+  public: void RedTouch(ConstIntPtr &/*_msg*/);
+
+  /// \brief Callback when blue box plugin touches.
+  /// \param[in] _msg Unused
+  public: void BlueTouch(ConstIntPtr &/*_msg*/);
+
+  /// \brief Flag turned to true once white touches.
+  private: bool whiteTouched = false;
+
+  /// \brief Flag turned to true once red/yellow touches.
+  private: bool redTouched = false;
+
+  /// \brief Flag turned to true once blue touches.
+  private: bool blueTouched = false;
+};
+
+//////////////////////////////////////////////////
+void TouchPluginTest::WhiteTouch(ConstIntPtr &/*_msg*/)
+{
+  this->whiteTouched = true;
+}
+
+//////////////////////////////////////////////////
+void TouchPluginTest::RedTouch(ConstIntPtr &/*_msg*/)
+{
+  this->redTouched = true;
+}
+
+//////////////////////////////////////////////////
+void TouchPluginTest::BlueTouch(ConstIntPtr &/*_msg*/)
+{
+  this->blueTouched = true;
+}
+
+//////////////////////////////////////////////////
+void TouchPluginTest::OneLink(const std::string &_physicsEngine)
+{
+  this->Load("worlds/touch_plugin_demo.world", true, _physicsEngine);
+  auto world = physics::get_world();
+  ASSERT_NE(world , nullptr);
+
+  // Get models
+  auto whiteBox = world->GetModel("white_box");
+
+  // Subscribe to plugin notifications
+  auto whiteSub = this->node->Subscribe("/white_touches_only_green/touched",
+      &TouchPluginTest::WhiteTouch, this);
+
+  // Check boxes haven't touched yet
+  EXPECT_FALSE(this->whiteTouched);
+
+  // Place white box on top of green box
+  whiteBox->SetWorldPose(ignition::math::Pose3d(4.0, 0, 2.0, 0, 0, 0));
+
+  // Give it time to drop and touch
+  world->Step(1000);
+
+  // Check it hasn't touched for long enough
+  EXPECT_FALSE(this->whiteTouched);
+
+  // Give it time to touch for 3 seconds
+  world->Step(4000);
+
+  // Check it has touched for long enough
+  EXPECT_TRUE(this->whiteTouched);
+
+  // Wait more and check it doesn't notify again
+  this->whiteTouched = false;
+  world->Step(5000);
+  EXPECT_FALSE(this->whiteTouched);
+
+  // Enable plugin again
+  auto enablePub = this->node->Advertise<msgs::Int>(
+        "/white_touches_only_green/enable");
+
+  msgs::Int msg;
+  msg.set_data(1);
+  enablePub->Publish(msg);
+
+  // Wait and see it notifies again
+  this->whiteTouched = false;
+  world->Step(5000);
+  EXPECT_TRUE(this->whiteTouched);
+}
+
+//////////////////////////////////////////////////
+TEST_P(TouchPluginTest, OneLink)
+{
+  const std::string physicsEngine = GetParam();
+  if (physicsEngine != "ode")
+  {
+    gzwarn << "This test depends on continuous contacts, which are achieved on"
+           << " ODE using <max_vel> and <min_depth>. Skipping test for ["
+           << physicsEngine << "]. See issue #2213." << std::endl;
+    return;
+  }
+  OneLink(GetParam());
+}
+
+//////////////////////////////////////////////////
+void TouchPluginTest::MultiLink(const std::string &_physicsEngine)
+{
+  this->Load("worlds/touch_plugin_demo.world", true, _physicsEngine);
+  auto world = physics::get_world();
+  ASSERT_NE(world , nullptr);
+
+  // Get models
+  auto redYellowBox = world->GetModel("red_yellow_box");
+
+  // Subscribe to plugin notifications
+  auto redSub = this->node->Subscribe(
+        "/red_and_yellow_touch_only_green/touched",
+        &TouchPluginTest::RedTouch, this);
+
+  // Check boxes haven't touched yet
+  EXPECT_FALSE(this->redTouched);
+
+  // Place red and yellow boxes on top of green box
+  redYellowBox->SetWorldPose(
+      ignition::math::Pose3d(4.0, 0, 2.0, IGN_PI*0.5, 0, 0));
+
+  // Give it time to drop and touch
+  world->Step(1000);
+
+  // Check it hasn't touched for long enough
+  EXPECT_FALSE(this->redTouched);
+
+  // Give it time to touch for 5 seconds
+  world->Step(5000);
+
+  // Check it has touched for long enough
+  EXPECT_TRUE(this->redTouched);
+}
+
+//////////////////////////////////////////////////
+TEST_P(TouchPluginTest, MultiLink)
+{
+  const std::string physicsEngine = GetParam();
+  if (physicsEngine != "ode")
+  {
+    gzwarn << "This test depends on continuous contacts, which are achieved on"
+           << " ODE using <max_vel> and <min_depth>. Skipping test for ["
+           << physicsEngine << "]. See issue #2213." << std::endl;
+    return;
+  }
+  MultiLink(GetParam());
+}
+
+//////////////////////////////////////////////////
+void TouchPluginTest::StartDisabled(const std::string &_physicsEngine)
+{
+  this->Load("worlds/touch_plugin_demo.world", true, _physicsEngine);
+  auto world = physics::get_world();
+  ASSERT_NE(world , nullptr);
+
+  // Get models
+  auto blueBox = world->GetModel("blue_box");
+
+  // Subscribe to plugin notifications
+  auto blueSub = this->node->Subscribe("/blue_touches_only_green/touched",
+        &TouchPluginTest::BlueTouch, this);
+
+  // Check boxes haven't touched yet
+  EXPECT_FALSE(this->blueTouched);
+
+  // Place blue box on top of green box
+  blueBox->SetWorldPose(ignition::math::Pose3d(4.0, 0, 2.0, 0, 0, 0));
+
+  // Give it time to drop and touch for a while
+  world->Step(3000);
+
+  // Verify we don't get a notification
+  EXPECT_FALSE(this->blueTouched);
+
+  // Enable plugin
+  auto enablePub = this->node->Advertise<msgs::Int>(
+        "/blue_touches_only_green/enable");
+
+  msgs::Int msg;
+  msg.set_data(1);
+  enablePub->Publish(msg);
+
+  // Wait and see it notifies now
+  this->blueTouched = false;
+  world->Step(3000);
+  EXPECT_TRUE(this->blueTouched);
+}
+
+//////////////////////////////////////////////////
+TEST_P(TouchPluginTest, StartDisabled)
+{
+  const std::string physicsEngine = GetParam();
+  if (physicsEngine != "ode")
+  {
+    gzwarn << "This test depends on continuous contacts, which are achieved on"
+           << " ODE using <max_vel> and <min_depth>. Skipping test for ["
+           << physicsEngine << "]. See issue #2213." << std::endl;
+    return;
+  }
+  StartDisabled(GetParam());
+}
+
+INSTANTIATE_TEST_CASE_P(PhysicsEngines, TouchPluginTest, PHYSICS_ENGINE_VALUES);
+
+int main(int argc, char **argv)
+{
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/test/integration/transceiver.cc b/test/integration/transceiver.cc
index 849fff6..555c250 100644
--- a/test/integration/transceiver.cc
+++ b/test/integration/transceiver.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/transport.cc b/test/integration/transport.cc
index e3164c3..7daa4e3 100644
--- a/test/integration/transport.cc
+++ b/test/integration/transport.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/transport_stress_nodes.cc b/test/integration/transport_stress_nodes.cc
index 96763cc..d106621 100644
--- a/test/integration/transport_stress_nodes.cc
+++ b/test/integration/transport_stress_nodes.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/transporter.cc b/test/integration/transporter.cc
index 6b9db99..e4a3647 100644
--- a/test/integration/transporter.cc
+++ b/test/integration/transporter.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/undo.cc b/test/integration/undo.cc
index f3e2fdc..ec0572b 100644
--- a/test/integration/undo.cc
+++ b/test/integration/undo.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/undo.hh b/test/integration/undo.hh
index 5994ac3..6c636c9 100644
--- a/test/integration/undo.hh
+++ b/test/integration/undo.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/view_control.cc b/test/integration/view_control.cc
index 8ed3872..221894d 100644
--- a/test/integration/view_control.cc
+++ b/test/integration/view_control.cc
@@ -15,6 +15,7 @@
  *
 */
 
+#include <memory>
 #include "gazebo/gui/GuiIface.hh"
 #include "gazebo/gui/GLWidget.hh"
 #include "gazebo/gui/MainWindow.hh"
@@ -147,7 +148,8 @@ void ViewControlTest::MouseZoomModelEditor()
   this->ProcessEventsAndDraw(mainWindow);
 
   // create the model editor
-  gazebo::gui::ModelCreator *modelCreator = new gazebo::gui::ModelCreator();
+  std::unique_ptr<gazebo::gui::ModelCreator> modelCreator(
+      new gazebo::gui::ModelCreator());
 
   // Inserting a link
   modelCreator->AddShape(gazebo::gui::ModelCreator::ENTITY_CYLINDER);
diff --git a/test/integration/visual_pose.cc b/test/integration/visual_pose.cc
index 2c0c489..2e810f4 100644
--- a/test/integration/visual_pose.cc
+++ b/test/integration/visual_pose.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/visual_pose.hh b/test/integration/visual_pose.hh
index f4fd92a..a63d7f2 100644
--- a/test/integration/visual_pose.hh
+++ b/test/integration/visual_pose.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/world.cc b/test/integration/world.cc
index f8d0d51..4b9ee93 100644
--- a/test/integration/world.cc
+++ b/test/integration/world.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/world_clone.cc b/test/integration/world_clone.cc
index fbdfa11..12de5ea 100644
--- a/test/integration/world_clone.cc
+++ b/test/integration/world_clone.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/world_entity_below_point.cc b/test/integration/world_entity_below_point.cc
index 5b6d3e2..4d8cbf5 100644
--- a/test/integration/world_entity_below_point.cc
+++ b/test/integration/world_entity_below_point.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/world_playback.cc b/test/integration/world_playback.cc
index afe0af8..fde54bb 100644
--- a/test/integration/world_playback.cc
+++ b/test/integration/world_playback.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/world_population.cc b/test/integration/world_population.cc
index 9ac431f..0300c69 100644
--- a/test/integration/world_population.cc
+++ b/test/integration/world_population.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/world_reset.cc b/test/integration/world_reset.cc
index f7a03c6..9a77b90 100644
--- a/test/integration/world_reset.cc
+++ b/test/integration/world_reset.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/integration/worlds_installed.cc b/test/integration/worlds_installed.cc
index 8460d31..414cd00 100644
--- a/test/integration/worlds_installed.cc
+++ b/test/integration/worlds_installed.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/media/materials/scripts/heightmap_custom.material b/test/media/materials/scripts/heightmap_custom.material
new file mode 100644
index 0000000..7dcf37c
--- /dev/null
+++ b/test/media/materials/scripts/heightmap_custom.material
@@ -0,0 +1,86 @@
+vertex_program Gazebo/HeightmapVS glsl
+{
+  source heightmap_custom_vp.glsl
+
+  default_params
+  {
+    param_named_auto worldMatrix world_matrix
+    param_named_auto viewProjMatrix viewproj_matrix
+
+    // lod morph factor. This is a custom param that will be set by the ogre
+    // terrain component.
+    param_named_auto lodMorph custom 1001
+
+    param_named_auto texViewProjMatrix0 texture_viewproj_matrix 0
+    param_named_auto texViewProjMatrix1 texture_viewproj_matrix 1
+    param_named_auto texViewProjMatrix2 texture_viewproj_matrix 2
+  }
+}
+
+fragment_program Gazebo/HeightmapFS glsl
+{
+  source heightmap_custom_fp.glsl
+
+  default_params
+  {
+    // Shadow map textures.
+    // The number at the end corresponds to the index of the texture_unit
+    // defined in Gazebo/CustomHeightmapShader
+    param_named shadowMap0 int 0
+    param_named shadowMap1 int 1
+    param_named shadowMap2 int 2
+
+    param_named_auto inverseShadowmapSize0  inverse_texture_size 0
+    param_named_auto inverseShadowmapSize1  inverse_texture_size 1
+    param_named_auto inverseShadowmapSize2  inverse_texture_size 2
+
+    // texture map - here we are just reusing the heightmap image to help shade
+    // the whole terrain
+    param_named texMap int 3
+
+    // UV coordinate transform. If the terrain is subdivided into multiple
+    // slots, apply the transform to texture-map the terrain as a whole
+    // instead of repeating the same textures for each terrain slot.
+    param_named uvTransform matrix4x4 1 0 0 0  0 1 0 0  0 0 1 0  0 0 0 1
+  }
+}
+
+material Gazebo/CustomHeightmapShader
+{
+  technique
+  {
+    pass
+    {
+      vertex_program_ref Gazebo/HeightmapVS
+      {
+      }
+
+      fragment_program_ref Gazebo/HeightmapFS
+      {
+      }
+
+      texture_unit shadowMap0
+      {
+        content_type shadow
+        tex_address_mode clamp
+      }
+      texture_unit shadowMap1
+      {
+        content_type shadow
+        tex_address_mode clamp
+      }
+      texture_unit shadowMap2
+      {
+        content_type shadow
+        tex_address_mode clamp
+      }
+      texture_unit
+      {
+        texture heightmap_bowl.png 2d
+        filtering anisotropic anisotropic linear
+        max_anisotropy 16
+        tex_address_mode clamp
+      }
+    }
+  }
+}
diff --git a/test/media/materials/scripts/heightmap_custom_fp.glsl b/test/media/materials/scripts/heightmap_custom_fp.glsl
new file mode 100644
index 0000000..0a6e79b
--- /dev/null
+++ b/test/media/materials/scripts/heightmap_custom_fp.glsl
@@ -0,0 +1,108 @@
+#version 130
+
+vec4 expand(vec4 v)
+{
+  return v * 2 - 1;
+}
+
+vec4 lit(float NdotL, float NdotH, float m)
+{
+  float specular = (NdotL > 0) ? pow(max(0.0, NdotH), m) : 0.0;
+  return vec4(1.0, max(0.0, NdotL), specular, 1.0);
+}
+// Simple PCF
+// Number of samples in one dimension (square for total samples)
+#define NUM_SHADOW_SAMPLES_1D 2.0
+#define SHADOW_FILTER_SCALE 1.0
+#define SHADOW_SAMPLES NUM_SHADOW_SAMPLES_1D*NUM_SHADOW_SAMPLES_1D
+vec4 offsetSample(vec4 uv, vec2 offset, float invMapSize)
+{
+  return vec4(uv.xy + offset * invMapSize * uv.w, uv.z, uv.w);
+}
+float calcDepthShadow(sampler2D shadowMap, vec4 uv, float invShadowMapSize)
+{
+  // 4-sample PCF
+  float shadow = 0.0;
+  float offset = (NUM_SHADOW_SAMPLES_1D/2.0 - 0.5) *SHADOW_FILTER_SCALE;
+  for (float y = -offset; y <= offset; y += SHADOW_FILTER_SCALE)
+    for (float x = -offset; x <= offset; x += SHADOW_FILTER_SCALE)
+    {
+      vec4 newUV = offsetSample(uv, vec2(x, y), invShadowMapSize);
+      // manually project and assign derivatives
+      // to avoid gradient issues inside loops
+      newUV = newUV / newUV.w;
+      float depth = textureGrad(shadowMap, newUV.xy,  vec2(1.0, 1.0),
+          vec2(1.0, 1.0)).x;
+      if (depth >= 1.0 || depth >= newUV.z)
+        shadow += 1.0;
+    }
+  shadow /= (SHADOW_SAMPLES);
+  return shadow;
+}
+float calcPSSMDepthShadow(
+  sampler2D shadowMap0, sampler2D shadowMap1, sampler2D shadowMap2,
+  vec4 lsPos0, vec4 lsPos1, vec4 lsPos2,
+  float invShadowmapSize0, float invShadowmapSize1, float invShadowmapSize2,
+  vec4 pssmSplitPoints, float camDepth)
+{
+  float shadow = 1.0;
+  // calculate shadow
+  if (camDepth <= pssmSplitPoints.x)
+  {
+    shadow = calcDepthShadow(shadowMap0, lsPos0, invShadowmapSize0);
+  }
+  else if (camDepth <= pssmSplitPoints.y)
+  {
+    shadow = calcDepthShadow(shadowMap1, lsPos1, invShadowmapSize1);
+  }
+  else
+  {
+    shadow = calcDepthShadow(shadowMap2, lsPos2, invShadowmapSize2);
+  }
+  return shadow;
+}
+
+in vec4 uvMisc;
+
+uniform mat4 uvTransform;
+
+uniform vec4 pssmSplitPoints;
+uniform sampler2D shadowMap0;
+uniform sampler2D shadowMap1;
+uniform sampler2D shadowMap2;
+
+uniform sampler2D texMap;
+
+uniform float inverseShadowmapSize0;
+uniform float inverseShadowmapSize1;
+uniform float inverseShadowmapSize2;
+
+in vec4 lightSpacePos0;
+in vec4 lightSpacePos1;
+in vec4 lightSpacePos2;
+
+out vec4 outputCol;
+
+void main()
+{
+  float shadow = 1.0;
+
+ // transform uv coordinates in case the terrain's been partitioned
+  vec2 newUV = (uvTransform * vec4(uvMisc.xy, 0.0f, 1.0f)).xy;
+
+  // sample the texture map
+  vec4 texSample  = texture2D(texMap, newUV);
+
+  // real time shadows
+  float camDepth = uvMisc.z;
+  float rtshadow = calcPSSMDepthShadow(shadowMap0, shadowMap1, shadowMap2,
+    lightSpacePos0, lightSpacePos1, lightSpacePos2,
+    inverseShadowmapSize0, inverseShadowmapSize1, inverseShadowmapSize2,
+    pssmSplitPoints, camDepth);
+
+  // red terrain color
+  vec3 diffuse = vec3(1.0, 0.0, 0.0) * texSample.xyz;
+
+  // apply shadows
+  outputCol.xyz = diffuse * rtshadow;
+}
diff --git a/test/media/materials/scripts/heightmap_custom_vp.glsl b/test/media/materials/scripts/heightmap_custom_vp.glsl
new file mode 100644
index 0000000..ee8c0f8
--- /dev/null
+++ b/test/media/materials/scripts/heightmap_custom_vp.glsl
@@ -0,0 +1,39 @@
+#version 130
+
+// params bound by ogre
+in vec4 position;
+in vec2 uv0;
+in vec2 uv1;
+
+uniform mat4 worldMatrix;
+uniform mat4 viewProjMatrix;
+uniform vec2 lodMorph;
+uniform mat4 texViewProjMatrix0;
+uniform mat4 texViewProjMatrix1;
+uniform mat4 texViewProjMatrix2;
+
+out vec4 uvMisc;
+out vec4 lightSpacePos0;
+out vec4 lightSpacePos1;
+out vec4 lightSpacePos2;
+
+void main()
+{
+  // calc pos after terrain lod morphing
+  vec2 uv = vec2(uv0.x, uv0.y);
+  vec4 worldPos = worldMatrix * position;
+  float toMorph = -min(0.0, sign(uv1.y - lodMorph.y));
+  worldPos.z += uv1.x * toMorph * lodMorph.x;
+  gl_Position = viewProjMatrix * worldPos;
+
+  // pass the uv coord
+  uvMisc.xy = uv.xy;
+
+  // shadows light space pos.
+  lightSpacePos0 = texViewProjMatrix0 * worldPos;
+  lightSpacePos1 = texViewProjMatrix1 * worldPos;
+  lightSpacePos2 = texViewProjMatrix2 * worldPos;
+
+  // pass cam depth
+  uvMisc.z = gl_Position.z;
+}
diff --git a/test/performance/RAMLibrary.hh b/test/performance/RAMLibrary.hh
index ba63fac..bb11485 100644
--- a/test/performance/RAMLibrary.hh
+++ b/test/performance/RAMLibrary.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/performance/RAMLibrary_TEST.cc b/test/performance/RAMLibrary_TEST.cc
index b0ac135..5dfcf92 100644
--- a/test/performance/RAMLibrary_TEST.cc
+++ b/test/performance/RAMLibrary_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/performance/factory_stress.cc b/test/performance/factory_stress.cc
index 220d3a0..786bca5 100644
--- a/test/performance/factory_stress.cc
+++ b/test/performance/factory_stress.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/performance/gz_stress.cc b/test/performance/gz_stress.cc
index 6345bbb..19e40af 100644
--- a/test/performance/gz_stress.cc
+++ b/test/performance/gz_stress.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/performance/image_convert_stress.cc b/test/performance/image_convert_stress.cc
index 77d7193..bba79c0 100644
--- a/test/performance/image_convert_stress.cc
+++ b/test/performance/image_convert_stress.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/performance/sensor_stress.cc b/test/performance/sensor_stress.cc
index a75f14f..f3d5575 100644
--- a/test/performance/sensor_stress.cc
+++ b/test/performance/sensor_stress.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/performance/set_world_pose.cc b/test/performance/set_world_pose.cc
index 6d2dbca..ecea2be 100644
--- a/test/performance/set_world_pose.cc
+++ b/test/performance/set_world_pose.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/performance/transport_stress.cc b/test/performance/transport_stress.cc
index 745441d..c3ce7f9 100644
--- a/test/performance/transport_stress.cc
+++ b/test/performance/transport_stress.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/pkgconfig/config-pkgconfig.cc b/test/pkgconfig/config-pkgconfig.cc
index c8a6b79..0bdfd6b 100644
--- a/test/pkgconfig/config-pkgconfig.cc
+++ b/test/pkgconfig/config-pkgconfig.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ExceptionModelPluginConstructor.cc b/test/plugins/ExceptionModelPluginConstructor.cc
index df9b9b6..622cf82 100644
--- a/test/plugins/ExceptionModelPluginConstructor.cc
+++ b/test/plugins/ExceptionModelPluginConstructor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ExceptionModelPluginConstructor.hh b/test/plugins/ExceptionModelPluginConstructor.hh
index 6183252..e70722b 100644
--- a/test/plugins/ExceptionModelPluginConstructor.hh
+++ b/test/plugins/ExceptionModelPluginConstructor.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ExceptionModelPluginInit.cc b/test/plugins/ExceptionModelPluginInit.cc
index f73458b..3bff8d3 100644
--- a/test/plugins/ExceptionModelPluginInit.cc
+++ b/test/plugins/ExceptionModelPluginInit.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ExceptionModelPluginInit.hh b/test/plugins/ExceptionModelPluginInit.hh
index eeced4f..3dce788 100644
--- a/test/plugins/ExceptionModelPluginInit.hh
+++ b/test/plugins/ExceptionModelPluginInit.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ExceptionModelPluginLoad.cc b/test/plugins/ExceptionModelPluginLoad.cc
index 68ed30d..d2b2916 100644
--- a/test/plugins/ExceptionModelPluginLoad.cc
+++ b/test/plugins/ExceptionModelPluginLoad.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ExceptionModelPluginLoad.hh b/test/plugins/ExceptionModelPluginLoad.hh
index f1aaa97..2a0b15d 100644
--- a/test/plugins/ExceptionModelPluginLoad.hh
+++ b/test/plugins/ExceptionModelPluginLoad.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ForceTorqueModelRemovalTestPlugin.cc b/test/plugins/ForceTorqueModelRemovalTestPlugin.cc
index ece8455..bc77c20 100644
--- a/test/plugins/ForceTorqueModelRemovalTestPlugin.cc
+++ b/test/plugins/ForceTorqueModelRemovalTestPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ForceTorqueModelRemovalTestPlugin.hh b/test/plugins/ForceTorqueModelRemovalTestPlugin.hh
index 50538fe..ea8992d 100644
--- a/test/plugins/ForceTorqueModelRemovalTestPlugin.hh
+++ b/test/plugins/ForceTorqueModelRemovalTestPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/Issue1208Plugin.cc b/test/plugins/Issue1208Plugin.cc
index d648d7d..6498f68 100644
--- a/test/plugins/Issue1208Plugin.cc
+++ b/test/plugins/Issue1208Plugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/Issue1208Plugin.hh b/test/plugins/Issue1208Plugin.hh
index 6152be2..bdc3b77 100644
--- a/test/plugins/Issue1208Plugin.hh
+++ b/test/plugins/Issue1208Plugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ModelTrajectoryTestPlugin.cc b/test/plugins/ModelTrajectoryTestPlugin.cc
index b52c8db..a5a7faa 100644
--- a/test/plugins/ModelTrajectoryTestPlugin.cc
+++ b/test/plugins/ModelTrajectoryTestPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/ModelTrajectoryTestPlugin.hh b/test/plugins/ModelTrajectoryTestPlugin.hh
index 0c8518c..6f745b4 100644
--- a/test/plugins/ModelTrajectoryTestPlugin.hh
+++ b/test/plugins/ModelTrajectoryTestPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/SpringTestPlugin.cc b/test/plugins/SpringTestPlugin.cc
index 5b6f546..ef21324 100644
--- a/test/plugins/SpringTestPlugin.cc
+++ b/test/plugins/SpringTestPlugin.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/plugins/SpringTestPlugin.hh b/test/plugins/SpringTestPlugin.hh
index a593325..d9daeb6 100644
--- a/test/plugins/SpringTestPlugin.hh
+++ b/test/plugins/SpringTestPlugin.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1082_pid_limits.cc b/test/regression/1082_pid_limits.cc
index fe74d80..f9dc3fc 100644
--- a/test/regression/1082_pid_limits.cc
+++ b/test/regression/1082_pid_limits.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1112_force_torque_model_removal.cc b/test/regression/1112_force_torque_model_removal.cc
index 973ca66..528b14d 100644
--- a/test/regression/1112_force_torque_model_removal.cc
+++ b/test/regression/1112_force_torque_model_removal.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1124_collision_pose.cc b/test/regression/1124_collision_pose.cc
index 4d182bb..d0a32ef 100644
--- a/test/regression/1124_collision_pose.cc
+++ b/test/regression/1124_collision_pose.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1146_collision_bounding_box.cc b/test/regression/1146_collision_bounding_box.cc
index 8100741..8db15cc 100644
--- a/test/regression/1146_collision_bounding_box.cc
+++ b/test/regression/1146_collision_bounding_box.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1208_world_plugin_init.cc b/test/regression/1208_world_plugin_init.cc
index 5899787..b2dd41e 100644
--- a/test/regression/1208_world_plugin_init.cc
+++ b/test/regression/1208_world_plugin_init.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1375_world_reset.cc b/test/regression/1375_world_reset.cc
index be15780..cf22e07 100644
--- a/test/regression/1375_world_reset.cc
+++ b/test/regression/1375_world_reset.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1569_hydra_crash.cc b/test/regression/1569_hydra_crash.cc
index 993eb11..a3d8dc2 100644
--- a/test/regression/1569_hydra_crash.cc
+++ b/test/regression/1569_hydra_crash.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1694_world_accel.cc b/test/regression/1694_world_accel.cc
index 3f66365..cc00d43 100644
--- a/test/regression/1694_world_accel.cc
+++ b/test/regression/1694_world_accel.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1702_remove_model_scene_nodes.cc b/test/regression/1702_remove_model_scene_nodes.cc
index adbb491..9464e67 100644
--- a/test/regression/1702_remove_model_scene_nodes.cc
+++ b/test/regression/1702_remove_model_scene_nodes.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/1782_unadvertise.cc b/test/regression/1782_unadvertise.cc
index d56c6cb..584a890 100644
--- a/test/regression/1782_unadvertise.cc
+++ b/test/regression/1782_unadvertise.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/346_save_lights.cc b/test/regression/346_save_lights.cc
index bc0c907..0346ede 100644
--- a/test/regression/346_save_lights.cc
+++ b/test/regression/346_save_lights.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/351_world_step.cc b/test/regression/351_world_step.cc
index b0f6db6..745d104 100644
--- a/test/regression/351_world_step.cc
+++ b/test/regression/351_world_step.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/494_joint_axis_frame.cc b/test/regression/494_joint_axis_frame.cc
index acc7949..9689176 100644
--- a/test/regression/494_joint_axis_frame.cc
+++ b/test/regression/494_joint_axis_frame.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/602_unsubscribe_segfault.cc b/test/regression/602_unsubscribe_segfault.cc
index e9d587b..224026e 100644
--- a/test/regression/602_unsubscribe_segfault.cc
+++ b/test/regression/602_unsubscribe_segfault.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2016 Open Source Robotics Foundation
+ * Copyright (C) 2015 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/624_collision_world_pose.cc b/test/regression/624_collision_world_pose.cc
index 2575543..f6b223d 100644
--- a/test/regression/624_collision_world_pose.cc
+++ b/test/regression/624_collision_world_pose.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/846_typo_in_camera.cc b/test/regression/846_typo_in_camera.cc
index b403af6..4e95fcc 100644
--- a/test/regression/846_typo_in_camera.cc
+++ b/test/regression/846_typo_in_camera.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/876_random_number_generator.cc b/test/regression/876_random_number_generator.cc
index 86e62e2..d8eef85 100644
--- a/test/regression/876_random_number_generator.cc
+++ b/test/regression/876_random_number_generator.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/940_force_torque_sensor_frame.cc b/test/regression/940_force_torque_sensor_frame.cc
index 403c77f..e41c4a9 100644
--- a/test/regression/940_force_torque_sensor_frame.cc
+++ b/test/regression/940_force_torque_sensor_frame.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/regression/978_joint_anchor.cc b/test/regression/978_joint_anchor.cc
index c958846..40d653e 100644
--- a/test/regression/978_joint_anchor.cc
+++ b/test/regression/978_joint_anchor.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/testfiles/hello_world.cc b/test/testfiles/hello_world.cc
index ca2510f..aa6bbf9 100644
--- a/test/testfiles/hello_world.cc
+++ b/test/testfiles/hello_world.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/util.hh b/test/util.hh
index f9a762a..a0f9d5e 100644
--- a/test/util.hh
+++ b/test/util.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/test/worlds/collide_bitmask.world b/test/worlds/collide_bitmask.world
index 77405f9..a8f5c99 100644
--- a/test/worlds/collide_bitmask.world
+++ b/test/worlds/collide_bitmask.world
@@ -43,7 +43,7 @@
     </model>
 
     <model name="box1">
-      <pose>0 0 1.0 0 0 0</pose>
+      <pose>0 0 0.5 0 0 0</pose>
       <link name="link">
         <inertial>
           <mass>1</mass>
@@ -79,7 +79,7 @@
     </model>
 
     <model name="box2">
-      <pose>-1.5 1.5 3.0 0 0 1.57</pose>
+      <pose>-1.5 1.5 0.5 0 0 1.57</pose>
       <link name="link">
         <inertial>
           <mass>1</mass>
@@ -115,7 +115,7 @@
     </model>
 
     <model name="box3">
-      <pose>0 1.5 6.0 0 0 2.24</pose>
+      <pose>0 1.5 1.5 0 0 2.24</pose>
       <link name="link">
         <inertial>
           <mass>1</mass>
diff --git a/test/worlds/collision_pose_offset.world b/test/worlds/collision_pose_offset.world
new file mode 100644
index 0000000..410dcaa
--- /dev/null
+++ b/test/worlds/collision_pose_offset.world
@@ -0,0 +1,174 @@
+<?xml version="1.0" ?>
+<!-- this file was generated using embedded ruby -->
+<sdf version='1.6'>
+  <world name='default'>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <gravity>0 0 -9.81</gravity>
+
+    <!-- model pose rotation -->
+    <model name='box_0'>
+      <pose>0 0 0.9 1.5707963267948966 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>10</mass>
+          <inertia>
+            <ixx>0.8083333333333335</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>1.35</iyy>
+            <iyz>0</iyz>
+            <izz>0.8083333333333335</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <!-- link pose rotation -->
+    <model name='box_1'>
+      <pose>4.5 0 0.9 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0 1.5707963267948966 -0 0</pose>
+        <inertial>
+          <mass>10</mass>
+          <inertia>
+            <ixx>0.8083333333333335</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>1.35</iyy>
+            <iyz>0</iyz>
+            <izz>0.8083333333333335</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <!-- collision pose rotation -->
+    <model name='box_2'>
+      <pose>9 0 0.9 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>10</mass>
+          <inertia>
+            <ixx>0.8083333333333335</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>1.35</iyy>
+            <iyz>0</iyz>
+            <izz>0.8083333333333335</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+          <pose>0 0 0 1.5707963267948966 -0 0</pose>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+          <pose>0 0 0 1.5707963267948966 -0 0</pose>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <!-- collision pose translation -->
+    <model name='box_3'>
+      <pose>13.5 0 0.9 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>10</mass>
+          <inertia>
+            <ixx>0.8083333333333335</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>1.35</iyy>
+            <iyz>0</iyz>
+            <izz>0.8083333333333335</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+          <pose>0 0 0.9 0 -0 0</pose>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.9 0.4 0.9</size>
+            </box>
+          </geometry>
+          <pose>0 0 0.9 0 -0 0</pose>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <gui fullscreen='0'>
+      <camera name='user_camera'>
+        <pose>6 -12 12  0 0.75 1.5707963267948966</pose>
+        <view_controller>orbit</view_controller>
+        <projection_type>perspective</projection_type>
+      </camera>
+    </gui>
+  </world>
+</sdf>
diff --git a/test/worlds/collision_pose_offset.world.erb b/test/worlds/collision_pose_offset.world.erb
new file mode 100644
index 0000000..0c85dde
--- /dev/null
+++ b/test/worlds/collision_pose_offset.world.erb
@@ -0,0 +1,195 @@
+<?xml version="1.0" ?>
+<%= "<!-- this file was generated using embedded ruby -->" %>
+<sdf version='1.6'>
+  <world name='default'>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <gravity>0 0 -9.81</gravity>
+<%
+  # Test pose offsets for model, link and collision elements
+  # There are three equivalent models that have 90 degree rotations
+  # expressed in each element.
+  # There is a 4th model with a translation of the collision
+  require 'matrix'
+  def a_to_s(v)
+    Array(v).join(" ")
+  end
+
+  # box dimensions
+  dx = 0.9
+  dy = 0.4
+  dz = dx
+
+  box = {}
+  box[:size] = Vector[dx, dy, dz]
+  box[:mass] = 10
+  box[:ixx] = box[:mass] / 12.0 * (dy**2 + dz**2)
+  box[:iyy] = box[:mass] / 12.0 * (dz**2 + dx**2)
+  box[:izz] = box[:mass] / 12.0 * (dx**2 + dy**2)
+%>
+    <!-- model pose rotation -->
+    <model name='box_0'>
+      <pose>0 0 0.9 <%= 0.5*Math::PI %> -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <!-- link pose rotation -->
+    <model name='box_1'>
+      <pose>4.5 0 0.9 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0 <%= 0.5*Math::PI %> -0 0</pose>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <!-- collision pose rotation -->
+    <model name='box_2'>
+      <pose>9 0 0.9 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <pose>0 0 0 <%= 0.5*Math::PI %> -0 0</pose>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <pose>0 0 0 <%= 0.5*Math::PI %> -0 0</pose>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <!-- collision pose translation -->
+    <model name='box_3'>
+      <pose>13.5 0 0.9 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <pose>0 0 0.9 0 -0 0</pose>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <pose>0 0 0.9 0 -0 0</pose>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+    <gui fullscreen='0'>
+      <camera name='user_camera'>
+        <pose>6 -12 12  0 0.75 <%= 0.5*Math::PI %></pose>
+        <view_controller>orbit</view_controller>
+        <projection_type>perspective</projection_type>
+      </camera>
+    </gui>
+  </world>
+</sdf>
diff --git a/test/worlds/deeply_nested_models.world b/test/worlds/deeply_nested_models.world
index ab907b7..ab604b1 100644
--- a/test/worlds/deeply_nested_models.world
+++ b/test/worlds/deeply_nested_models.world
@@ -115,6 +115,32 @@
                 </material>
               </visual>
             </link>
+            <link name="imu_link">
+              <inertial>
+                <pose>0 0 0 0 0 0</pose>
+                <mass>0.15</mass>
+                <inertia>
+                  <ixx>0.00001</ixx>
+                  <ixy>0</ixy>
+                  <ixz>0</ixz>
+                  <iyy>0.00002</iyy>
+                  <iyz>0</iyz>
+                  <izz>0.00002</izz>
+                </inertia>
+              </inertial>
+              <sensor name="imu_sensor" type="imu">
+                <pose>0 0 0 3.141593 0 0</pose>
+                <always_on>0</always_on>
+                <update_rate>1000.0</update_rate>
+              </sensor>
+            </link>
+            <joint name="imu_joint" type="revolute">
+              <child>model_01::model_02::model_03::imu_link</child>
+              <parent>model_01::model_02::model_03::link_03</parent>
+              <axis>
+                <xyz>0 0 1</xyz>
+              </axis>
+            </joint>
           </model>
         </model>
       </model>
diff --git a/test/worlds/friction_cone.world b/test/worlds/friction_cone.world
new file mode 100644
index 0000000..ddfcf55
--- /dev/null
+++ b/test/worlds/friction_cone.world
@@ -0,0 +1,1597 @@
+<?xml version="1.0" ?>
+<!-- this file was generated using embedded ruby -->
+<sdf version='1.6'>
+  <world name='default'>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <physics type="ode">
+      <ode>
+        <solver>
+          <type>quick</type>
+          <iters>50</iters>
+          <friction_model>cone_model</friction_model>
+        </solver>
+      </ode>
+    </physics>
+
+    <model name='box_0'>
+      <pose>9.0 0.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>9.0 0.0 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_1'>
+      <pose>8.827067523629074 1.7558128981451542 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>8.827067523629074 1.7558128981451542 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_2'>
+      <pose>8.31491579260158 3.444150891285808 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>8.31491579260158 3.444150891285808 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_3'>
+      <pose>7.483226510722907 5.00013209717642 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>7.483226510722907 5.00013209717642 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_4'>
+      <pose>6.3639610306789285 6.363961030678928 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>6.3639610306789285 6.363961030678928 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_5'>
+      <pose>5.0001320971764205 7.483226510722907 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>5.0001320971764205 7.483226510722907 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_6'>
+      <pose>3.4441508912858083 8.31491579260158 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>3.4441508912858083 8.31491579260158 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_7'>
+      <pose>1.755812898145155 8.827067523629074 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>1.755812898145155 8.827067523629074 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_8'>
+      <pose>5.51091059616309e-16 9.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>5.51091059616309e-16 9.0 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_9'>
+      <pose>-1.7558128981451537 8.827067523629074 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-1.7558128981451537 8.827067523629074 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_10'>
+      <pose>-3.4441508912858074 8.31491579260158 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-3.4441508912858074 8.31491579260158 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_11'>
+      <pose>-5.000132097176418 7.4832265107229095 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-5.000132097176418 7.4832265107229095 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_12'>
+      <pose>-6.363961030678928 6.3639610306789285 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-6.363961030678928 6.3639610306789285 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_13'>
+      <pose>-7.483226510722908 5.00013209717642 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-7.483226510722908 5.00013209717642 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_14'>
+      <pose>-8.31491579260158 3.444150891285809 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-8.31491579260158 3.444150891285809 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_15'>
+      <pose>-8.827067523629074 1.7558128981451575 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-8.827067523629074 1.7558128981451575 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_16'>
+      <pose>-9.0 1.102182119232618e-15 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-9.0 1.102182119232618e-15 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_17'>
+      <pose>-8.827067523629074 -1.7558128981451553 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-8.827067523629074 -1.7558128981451553 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_18'>
+      <pose>-8.314915792601582 -3.444150891285807 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-8.314915792601582 -3.444150891285807 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_19'>
+      <pose>-7.4832265107229095 -5.000132097176418 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-7.4832265107229095 -5.000132097176418 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_20'>
+      <pose>-6.363961030678929 -6.363961030678928 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-6.363961030678929 -6.363961030678928 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_21'>
+      <pose>-5.00013209717642 -7.483226510722907 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-5.00013209717642 -7.483226510722907 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_22'>
+      <pose>-3.444150891285813 -8.314915792601578 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-3.444150891285813 -8.314915792601578 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_23'>
+      <pose>-1.755812898145158 -8.827067523629072 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-1.755812898145158 -8.827067523629072 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_24'>
+      <pose>-1.6532731788489267e-15 -9.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>-1.6532731788489267e-15 -9.0 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_25'>
+      <pose>1.7558128981451548 -8.827067523629074 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>1.7558128981451548 -8.827067523629074 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_26'>
+      <pose>3.44415089128581 -8.31491579260158 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>3.44415089128581 -8.31491579260158 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_27'>
+      <pose>5.000132097176417 -7.4832265107229095 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>5.000132097176417 -7.4832265107229095 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_28'>
+      <pose>6.363961030678926 -6.363961030678929 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>6.363961030678926 -6.363961030678929 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_29'>
+      <pose>7.483226510722907 -5.00013209717642 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>7.483226510722907 -5.00013209717642 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_30'>
+      <pose>8.314915792601578 -3.4441508912858136 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>8.314915792601578 -3.4441508912858136 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <model name='box_31'>
+      <pose>8.827067523629072 -1.7558128981451584 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear>8.827067523629072 -1.7558128981451584 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+
+    <gui fullscreen='0'>
+      <camera name='user_camera'>
+        <pose>-0.93396 -19.9626 11.7572 0 0.503643 1.6562</pose>
+        <view_controller>orbit</view_controller>
+        <projection_type>perspective</projection_type>
+      </camera>
+    </gui>
+  </world>
+</sdf>
diff --git a/test/worlds/friction_cone.world.erb b/test/worlds/friction_cone.world.erb
new file mode 100644
index 0000000..105299f
--- /dev/null
+++ b/test/worlds/friction_cone.world.erb
@@ -0,0 +1,108 @@
+<?xml version="1.0" ?>
+<%= "<!-- this file was generated using embedded ruby -->" %>
+<sdf version='1.6'>
+  <world name='default'>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <physics type="ode">
+      <ode>
+        <solver>
+          <type>quick</type>
+          <iters>50</iters>
+          <friction_model>cone_model</friction_model>
+        </solver>
+      </ode>
+    </physics>
+<%
+  # Test cone friction model
+  # set equal friction coefficients, but use default directions
+  require 'matrix'
+  def a_to_s(v)
+    Array(v).join(" ")
+  end
+
+  # box dimensions
+  dx = 0.5
+  dy = dx
+  dz = 0.2
+
+  box = {}
+  box[:size] = Vector[dx, dy, dz]
+  box[:mass] = 1
+  box[:ixx] = box[:mass] / 12.0 * (dy**2 + dz**2)
+  box[:iyy] = box[:mass] / 12.0 * (dz**2 + dx**2)
+  box[:izz] = box[:mass] / 12.0 * (dx**2 + dy**2)
+
+  box_count = 32
+  box_angles = 2 * Math::PI * Vector[*(0..box_count-1)] / box_count
+
+  radius = 9
+  box_angles.each_with_index do |a,i|
+    name = "box_#{i}"
+    pos_xy = radius * Vector[Math.cos(a), Math.sin(a)]
+    vel_xy = pos_xy
+%>
+    <model name='<%= name %>'>
+      <pose><%= a_to_s(pos_xy) %> 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.3</mu>
+                <mu2>0.3</mu2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+      <plugin name="radial_velocity" filename="libInitialVelocityPlugin.so">
+        <linear><%= a_to_s(vel_xy) %> 0</linear>
+        <angular>0 0 0</angular>
+      </plugin>
+    </model>
+<%
+  end
+%>
+    <gui fullscreen='0'>
+      <camera name='user_camera'>
+        <pose>-0.93396 -19.9626 11.7572 0 0.503643 1.6562</pose>
+        <view_controller>orbit</view_controller>
+        <projection_type>perspective</projection_type>
+      </camera>
+    </gui>
+  </world>
+</sdf>
diff --git a/test/worlds/friction_dir_test.world b/test/worlds/friction_dir_test.world
new file mode 100644
index 0000000..de59582
--- /dev/null
+++ b/test/worlds/friction_dir_test.world
@@ -0,0 +1,2067 @@
+<?xml version="1.0" ?>
+<!-- this file was generated using embedded ruby -->
+<sdf version='1.6'>
+  <world name='default'>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <gravity>0 1 -9.81</gravity>
+
+    <model name='box_fdir_0'>
+      <pose>5.0 0.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.0 1.0 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_1'>
+      <pose>4.755282581475767 1.545084971874737 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.3090169943749474 0.9510565162951535 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_2'>
+      <pose>4.045084971874737 2.938926261462366 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.5877852522924731 0.8090169943749475 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_3'>
+      <pose>2.938926261462366 4.045084971874737 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.8090169943749475 0.5877852522924731 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_4'>
+      <pose>1.5450849718747373 4.755282581475767 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.9510565162951535 0.30901699437494745 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_5'>
+      <pose>3.061616997868383e-16 5.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-1.0 6.123233995736766e-17 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_6'>
+      <pose>-1.5450849718747368 4.755282581475768 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.9510565162951536 -0.30901699437494734 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_7'>
+      <pose>-2.938926261462365 4.045084971874737 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.8090169943749475 -0.587785252292473 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_8'>
+      <pose>-4.045084971874736 2.9389262614623664 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.5877852522924732 -0.8090169943749473 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_9'>
+      <pose>-4.755282581475767 1.5450849718747375 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-0.3090169943749475 -0.9510565162951535 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_fdir_10'>
+      <pose>-5.0 6.123233995736766e-16 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>-1.2246467991473532e-16 -1.0 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_0'>
+      <pose>6.0 0.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 0.0</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_1'>
+      <pose>5.706339097770921 1.8541019662496843 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 0.3141592653589793</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_2'>
+      <pose>4.854101966249685 3.526711513754839 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 0.6283185307179586</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_3'>
+      <pose>3.526711513754839 4.854101966249685 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 0.9424777960769379</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_4'>
+      <pose>1.8541019662496847 5.706339097770921 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 1.2566370614359172</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_5'>
+      <pose>3.6739403974420594e-16 6.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 1.5707963267948966</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_6'>
+      <pose>-1.854101966249684 5.706339097770922 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 1.8849555921538759</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_7'>
+      <pose>-3.5267115137548384 4.854101966249685 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 2.199114857512855</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_8'>
+      <pose>-4.854101966249684 3.5267115137548393 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 2.5132741228718345</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_9'>
+      <pose>-5.706339097770921 1.8541019662496852 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 2.827433388230814</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_collision_10'>
+      <pose>-6.0 7.347880794884119e-16 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 3.141592653589793</pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_0'>
+      <pose>7.0 0.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 0.0</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_1'>
+      <pose>6.657395614066075 2.1631189606246317 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 0.3141592653589793</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_2'>
+      <pose>5.663118960624632 4.114496766047312 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 0.6283185307179586</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_3'>
+      <pose>4.114496766047312 5.663118960624632 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 0.9424777960769379</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_4'>
+      <pose>2.163118960624632 6.657395614066075 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 1.2566370614359172</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_5'>
+      <pose>4.286263797015736e-16 7.0 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 1.5707963267948966</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_6'>
+      <pose>-2.1631189606246313 6.6573956140660755 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 1.8849555921538759</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_7'>
+      <pose>-4.114496766047311 5.663118960624632 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 2.199114857512855</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_8'>
+      <pose>-5.663118960624631 4.114496766047313 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 2.5132741228718345</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_9'>
+      <pose>-6.657395614066075 2.1631189606246326 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 2.827433388230814</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_link_10'>
+      <pose>-7.0 8.572527594031472e-16 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 3.141592653589793</pose>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_0'>
+      <pose>8.0 0.0 0.1 0 -0 0.0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_1'>
+      <pose>7.608452130361228 2.472135954999579 0.1 0 -0 0.3141592653589793</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_2'>
+      <pose>6.47213595499958 4.702282018339785 0.1 0 -0 0.6283185307179586</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_3'>
+      <pose>4.702282018339785 6.47213595499958 0.1 0 -0 0.9424777960769379</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_4'>
+      <pose>2.4721359549995796 7.608452130361228 0.1 0 -0 1.2566370614359172</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_5'>
+      <pose>4.898587196589413e-16 8.0 0.1 0 -0 1.5707963267948966</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_6'>
+      <pose>-2.4721359549995787 7.608452130361229 0.1 0 -0 1.8849555921538759</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_7'>
+      <pose>-4.702282018339784 6.47213595499958 0.1 0 -0 2.199114857512855</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_8'>
+      <pose>-6.472135954999579 4.702282018339786 0.1 0 -0 2.5132741228718345</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_9'>
+      <pose>-7.608452130361228 2.47213595499958 0.1 0 -0 2.827433388230814</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <model name='box_model_10'>
+      <pose>-8.0 9.797174393178826e-16 0.1 0 -0 3.141592653589793</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass>1</mass>
+          <inertia>
+            <ixx>0.02416666666666667</ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy>0.02416666666666667</iyy>
+            <iyz>0</iyz>
+            <izz>0.041666666666666664</izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.2</size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+
+    <gui fullscreen='0'>
+      <camera name='user_camera'>
+        <pose>-0.93396 -19.9626 11.7572 0 0.503643 1.6562</pose>
+        <view_controller>orbit</view_controller>
+        <projection_type>perspective</projection_type>
+      </camera>
+    </gui>
+  </world>
+</sdf>
diff --git a/test/worlds/friction_dir_test.world.erb b/test/worlds/friction_dir_test.world.erb
new file mode 100644
index 0000000..d039ff0
--- /dev/null
+++ b/test/worlds/friction_dir_test.world.erb
@@ -0,0 +1,265 @@
+<?xml version="1.0" ?>
+<%= "<!-- this file was generated using embedded ruby -->" %>
+<sdf version='1.6'>
+  <world name='default'>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <gravity>0 1 -9.81</gravity>
+<%
+  # Test pyramid friction model
+  # Set asymmetric friction coefficients and friction direction
+  require 'matrix'
+  def a_to_s(v)
+    Array(v).join(" ")
+  end
+
+  # box dimensions
+  dx = 0.5
+  dy = dx
+  dz = 0.2
+
+  box = {}
+  box[:size] = Vector[dx, dy, dz]
+  box[:mass] = 1
+  box[:ixx] = box[:mass] / 12.0 * (dy**2 + dz**2)
+  box[:iyy] = box[:mass] / 12.0 * (dz**2 + dx**2)
+  box[:izz] = box[:mass] / 12.0 * (dx**2 + dy**2)
+
+  box_count = 10
+  box_angles = Math::PI * Vector[*(0..box_count)] / box_count
+
+  rings = {}
+  rings["fdir"] = {:radius => 5}
+  rings["collision"] = {:radius => 6}
+  rings["link"] = {:radius => 7}
+  rings["model"] = {:radius => 8}
+
+  ring_name = "fdir"
+  ring = rings[ring_name]
+  box_angles.each_with_index do |a,i|
+    name = "box_#{ring_name}_#{i}"
+    pos_xy = ring[:radius] * Vector[Math.cos(a), Math.sin(a)]
+    fdir = Vector[-Math.sin(a), Math.cos(a)]
+%>
+    <model name='<%= name %>'>
+      <pose><%= a_to_s(pos_xy) %> 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1><%= a_to_s(fdir) %> 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+<%
+  end
+  ring_name = "collision"
+  ring = rings[ring_name]
+  box_angles.each_with_index do |a,i|
+    name = "box_#{ring_name}_#{i}"
+    pos_xy = ring[:radius] * Vector[Math.cos(a), Math.sin(a)]
+%>
+    <model name='<%= name %>'>
+      <pose><%= a_to_s(pos_xy) %> 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <pose>0 0 0  0 0 <%= a %></pose>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+<%
+  end
+  ring_name = "link"
+  ring = rings[ring_name]
+  box_angles.each_with_index do |a,i|
+    name = "box_#{ring_name}_#{i}"
+    pos_xy = ring[:radius] * Vector[Math.cos(a), Math.sin(a)]
+%>
+    <model name='<%= name %>'>
+      <pose><%= a_to_s(pos_xy) %> 0.1 0 -0 0</pose>
+      <link name='link_1'>
+        <pose>0 0 0  0 0 <%= a %></pose>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+<%
+  end
+  ring_name = "model"
+  ring = rings[ring_name]
+  box_angles.each_with_index do |a,i|
+    name = "box_#{ring_name}_#{i}"
+    pos_xy = ring[:radius] * Vector[Math.cos(a), Math.sin(a)]
+%>
+    <model name='<%= name %>'>
+      <pose><%= a_to_s(pos_xy) %> 0.1 0 -0 <%= a %></pose>
+      <link name='link_1'>
+        <inertial>
+          <mass><%= box[:mass] %></mass>
+          <inertia>
+            <ixx><%= box[:ixx] %></ixx>
+            <ixy>0</ixy>
+            <ixz>0</ixz>
+            <iyy><%= box[:iyy] %></iyy>
+            <iyz>0</iyz>
+            <izz><%= box[:izz] %></izz>
+          </inertia>
+        </inertial>
+        <collision name='collision'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>100</mu>
+                <mu2>0</mu2>
+                <fdir1>0 1 0</fdir1>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual'>
+          <geometry>
+            <box>
+              <size><%= a_to_s(box[:size]) %></size>
+            </box>
+          </geometry>
+          <material>
+            <script>
+              <name>Gazebo/Grey</name>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+            </script>
+          </material>
+        </visual>
+      </link>
+    </model>
+<%
+  end
+%>
+    <gui fullscreen='0'>
+      <camera name='user_camera'>
+        <pose>-0.93396 -19.9626 11.7572 0 0.503643 1.6562</pose>
+        <view_controller>orbit</view_controller>
+        <projection_type>perspective</projection_type>
+      </camera>
+    </gui>
+  </world>
+</sdf>
diff --git a/test/worlds/friction_spheres.world b/test/worlds/friction_spheres.world
new file mode 100644
index 0000000..9996bb0
--- /dev/null
+++ b/test/worlds/friction_spheres.world
@@ -0,0 +1,1568 @@
+<?xml version="1.0" ?>
+<!-- this file was generated using embedded ruby -->
+<sdf version='1.6'>
+  <world name='default'>
+    <gui>
+      <camera name='user_camera'>
+        <pose>17 3 22 0 1.1 3.141592653589793</pose>
+        <view_controller>orbit</view_controller>
+      </camera>
+    </gui>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <gravity>0 2 -9.81</gravity>
+
+    <model name="lowball_0.2a">
+      <pose>0 0 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0 -0.3  0 0 0</pose>
+          <mass>1.0</mass>
+          <inertia>
+            <ixx>0.016000000000000004</ixx>
+            <iyy>0.016000000000000004</iyy>
+            <izz>0.016000000000000004</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="lowball_0.2b">
+      <pose>2 0 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0 -0.3  0 0 0</pose>
+          <mass>2.0</mass>
+          <inertia>
+            <ixx>0.03200000000000001</ixx>
+            <iyy>0.03200000000000001</iyy>
+            <izz>0.03200000000000001</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="lowball_0.4a">
+      <pose>4 0 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0 -0.3  0 0 0</pose>
+          <mass>2.0</mass>
+          <inertia>
+            <ixx>0.03200000000000001</ixx>
+            <iyy>0.03200000000000001</iyy>
+            <izz>0.03200000000000001</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="lowball_0.4b">
+      <pose>6 0 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0 -0.3  0 0 0</pose>
+          <mass>4.0</mass>
+          <inertia>
+            <ixx>0.06400000000000002</ixx>
+            <iyy>0.06400000000000002</iyy>
+            <izz>0.06400000000000002</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="lowball_0.6a">
+      <pose>8 0 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0 -0.3  0 0 0</pose>
+          <mass>3.0</mass>
+          <inertia>
+            <ixx>0.048000000000000015</ixx>
+            <iyy>0.048000000000000015</iyy>
+            <izz>0.048000000000000015</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="lowball_0.6b">
+      <pose>10 0 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0 -0.3  0 0 0</pose>
+          <mass>6.0</mass>
+          <inertia>
+            <ixx>0.09600000000000003</ixx>
+            <iyy>0.09600000000000003</iyy>
+            <izz>0.09600000000000003</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="twoball_0.2a">
+      <pose>0 -2 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0.0 0  0 0 0</pose>
+          <mass>1.0</mass>
+          <inertia>
+            <ixx>0.09933333333333336</ixx>
+            <iyy>0.016000000000000004</iyy>
+            <izz>0.09933333333333336</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="twoball_0.2b">
+      <pose>2 -2 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0.0 0  0 0 0</pose>
+          <mass>2.0</mass>
+          <inertia>
+            <ixx>0.1986666666666667</ixx>
+            <iyy>0.03200000000000001</iyy>
+            <izz>0.1986666666666667</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="twoball_0.4a">
+      <pose>4 -2 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0.0 0  0 0 0</pose>
+          <mass>2.0</mass>
+          <inertia>
+            <ixx>0.1986666666666667</ixx>
+            <iyy>0.03200000000000001</iyy>
+            <izz>0.1986666666666667</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="twoball_0.4b">
+      <pose>6 -2 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0.0 0  0 0 0</pose>
+          <mass>4.0</mass>
+          <inertia>
+            <ixx>0.3973333333333334</ixx>
+            <iyy>0.06400000000000002</iyy>
+            <izz>0.3973333333333334</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="twoball_0.6a">
+      <pose>8 -2 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0.0 0  0 0 0</pose>
+          <mass>3.0</mass>
+          <inertia>
+            <ixx>0.29800000000000004</ixx>
+            <iyy>0.048000000000000015</iyy>
+            <izz>0.29800000000000004</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="twoball_0.6b">
+      <pose>10 -2 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0 0.0 0  0 0 0</pose>
+          <mass>6.0</mass>
+          <inertia>
+            <ixx>0.5960000000000001</ixx>
+            <iyy>0.09600000000000003</iyy>
+            <izz>0.5960000000000001</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>0 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="triball_0.2a">
+      <pose>0 -4 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0.0 0.0 0  0 0 0</pose>
+          <mass>1.0</mass>
+          <inertia>
+            <ixx>0.07155555555555557</ixx>
+            <iyy>0.07155555555555555</iyy>
+            <izz>0.12711111111111112</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="triball_0.2b">
+      <pose>2 -4 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0.0 0.0 0  0 0 0</pose>
+          <mass>2.0</mass>
+          <inertia>
+            <ixx>0.14311111111111113</ixx>
+            <iyy>0.1431111111111111</iyy>
+            <izz>0.25422222222222224</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Red</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="triball_0.4a">
+      <pose>4 -4 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0.0 0.0 0  0 0 0</pose>
+          <mass>2.0</mass>
+          <inertia>
+            <ixx>0.14311111111111113</ixx>
+            <iyy>0.1431111111111111</iyy>
+            <izz>0.25422222222222224</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="triball_0.4b">
+      <pose>6 -4 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0.0 0.0 0  0 0 0</pose>
+          <mass>4.0</mass>
+          <inertia>
+            <ixx>0.28622222222222227</ixx>
+            <iyy>0.2862222222222222</iyy>
+            <izz>0.5084444444444445</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Green</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="triball_0.6a">
+      <pose>8 -4 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0.0 0.0 0  0 0 0</pose>
+          <mass>3.0</mass>
+          <inertia>
+            <ixx>0.21466666666666673</ixx>
+            <iyy>0.21466666666666667</iyy>
+            <izz>0.3813333333333334</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.2</slip1>
+                <slip2>0.2</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+    <model name="triball_0.6b">
+      <pose>10 -4 0 0 0 0</pose>
+      <link name="link">
+        <pose>0 0 0.2  0 0 0</pose>
+        <inertial>
+          <pose>0.0 0.0 0  0 0 0</pose>
+          <mass>6.0</mass>
+          <inertia>
+            <ixx>0.42933333333333346</ixx>
+            <iyy>0.42933333333333334</iyy>
+            <izz>0.7626666666666668</izz>
+            <ixy>0.0</ixy>
+            <ixz>0.0</ixz>
+            <iyz>0.0</iyz>
+          </inertia>
+        </inertial>
+
+        <collision name='collision_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_a'>
+          <pose>0.3333333333333333 0 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_b'>
+          <pose>-0.16666666666666666 0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+        <collision name='collision_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>0.5</mu>
+                <mu2>0.5</mu2>
+                <slip1>0.1</slip1>
+                <slip2>0.1</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_c'>
+          <pose>-0.16666666666666666 -0.2886751345948129 0  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>0.2</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/Blue</name>
+            </script>
+          </material>
+        </visual>
+
+      </link>
+    </model>
+
+  </world>
+</sdf>
diff --git a/test/worlds/friction_spheres.world.erb b/test/worlds/friction_spheres.world.erb
new file mode 100644
index 0000000..581b649
--- /dev/null
+++ b/test/worlds/friction_spheres.world.erb
@@ -0,0 +1,182 @@
+<?xml version="1.0" ?>
+<%= "<!-- this file was generated using embedded ruby -->" %>
+<sdf version='1.6'>
+  <world name='default'>
+    <gui>
+      <camera name='user_camera'>
+        <pose>17 3 22 0 1.1 <%= Math::PI %></pose>
+        <view_controller>orbit</view_controller>
+      </camera>
+    </gui>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <gravity>0 2 -9.81</gravity>
+<%
+  # World with several models with varying number of collision spheres
+  # SI units (length in meters)
+  require "matrix"
+  def a_to_s(v)
+    Array(v).join(" ")
+  end
+
+  # Geometry
+  ball_radius   = 0.2
+  face_altitude = 0.5
+  side_length   = face_altitude / (Math::sqrt(3) / 2.0)
+  ball_volume   = 4.0 / 3.0 * Math::PI * ball_radius**3
+  def sphere_collision(name_suffix, pos, radius, color="Green", slip=1, friction=0.5)
+    """<collision name='collision_#{name_suffix}'>
+          <pose>#{ a_to_s(pos) }  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>#{ radius }</radius>
+            </sphere>
+          </geometry>
+          <surface>
+            <friction>
+              <ode>
+                <mu>#{ friction }</mu>
+                <mu2>#{ friction }</mu2>
+                <slip1>#{ slip }</slip1>
+                <slip2>#{ slip }</slip2>
+              </ode>
+            </friction>
+          </surface>
+        </collision>
+        <visual name='visual_#{ name_suffix }'>
+          <pose>#{ a_to_s(pos) }  0 0 0</pose>
+          <geometry>
+            <sphere>
+              <radius>#{ radius }</radius>
+            </sphere>
+          </geometry>
+          <material>
+            <script>
+              <uri>file://media/materials/scripts/gazebo.material</uri>
+              <name>Gazebo/#{ color }</name>
+            </script>
+          </material>
+        </visual>"""
+  end
+
+  models = {}
+  # "lowball" has one collision sphere with a hanging center of mass,
+  # which makes the ball slide instead of roll
+  models["lowball"] = {
+    :inertia_offset => Vector[0, 0, -0.3],
+    :ball_locations => {
+      "a" => Vector[0, 0, 0] ,
+    }
+  }
+  # "twoball" has two collision spheres
+  # it will slide in one direction and roll in the other direction
+  models["twoball"] = {
+    :ball_locations => {
+      "a" => Vector[0,  side_length / 2.0, 0] ,
+      "b" => Vector[0, -side_length / 2.0, 0] ,
+    }
+  }
+  # "triball" has three collision spheres arranged in an equilateral triangle
+  # it will slide in any direction
+  models["triball"] = {
+    :ball_locations => {
+      "a" => Vector[ 2.0 / 3.0 * face_altitude, 0,                  0] ,
+      "b" => Vector[-1.0 / 3.0 * face_altitude,  side_length / 2.0, 0] ,
+      "c" => Vector[-1.0 / 3.0 * face_altitude, -side_length / 2.0, 0] ,
+    }
+  }
+
+  # there are several pairs of test cases
+  # each pair has the same product of mass and slip,
+  mass_slip = {}
+  mass_slip["0.2a"] = { :mass => 1.0, :slip => 0.2, :color => "Red"}
+  mass_slip["0.2b"] = { :mass => 2.0, :slip => 0.1, :color => "Red"}
+  mass_slip["0.4a"] = { :mass => 2.0, :slip => 0.2, :color => "Green"}
+  mass_slip["0.4b"] = { :mass => 4.0, :slip => 0.1, :color => "Green"}
+  mass_slip["0.6a"] = { :mass => 3.0, :slip => 0.2, :color => "Blue"}
+  mass_slip["0.6b"] = { :mass => 6.0, :slip => 0.1, :color => "Blue"}
+
+  models.keys.each_with_index do |model_prefix, i|
+    model = models[model_prefix]
+    ball_locations = model[:ball_locations]
+    ball_count = ball_locations.length
+    inertia_offset = model[:inertia_offset]
+    inertia_offset = model.key?(:inertia_offset) ? model[:inertia_offset] : Vector[0, 0, 0]
+
+    mass_slip.keys.each_with_index do |ms_name, ii|
+      ms = mass_slip[ms_name]
+      mass = ms[:mass]
+      slip = ms[:slip]
+      color = ms[:color]
+
+      # inertia
+      link_mass = mass
+      ball_mass = link_mass * 1.0/ball_count
+      ball_ixx  = 2.0/5.0 * ball_mass * ball_radius**2
+      ball_iyy  = 2.0/5.0 * ball_mass * ball_radius**2
+      ball_izz  = 2.0/5.0 * ball_mass * ball_radius**2
+
+      # center of mass (com) and lumped inertia of balls
+      ball_com = Vector[0, 0, 0]
+      ball_locations.keys.each do |k|
+        ball_com += ball_locations[k] / ball_count
+      end
+      link_ixx = ball_count * ball_ixx
+      link_iyy = ball_count * ball_iyy
+      link_izz = ball_count * ball_izz
+      link_ixy = 0.0
+      link_ixz = 0.0
+      link_iyz = 0.0
+      ball_locations.keys.each do |k|
+        dx = ball_locations[k][0] - ball_com[0]
+        dy = ball_locations[k][1] - ball_com[1]
+        dz = ball_locations[k][2] - ball_com[2]
+        link_ixx += ball_mass * (dy**2 + dz**2)
+        link_iyy += ball_mass * (dz**2 + dx**2)
+        link_izz += ball_mass * (dx**2 + dy**2)
+        link_ixy -= ball_mass * dx*dy
+        link_ixz -= ball_mass * dx*dz
+        link_iyz -= ball_mass * dy*dz
+      end
+
+      model_name = "#{model_prefix}_#{ms_name}"
+      model_pose = Vector[2*ii, -2*i, 0, 0, 0, 0]
+%>
+    <model name="<%= model_name %>">
+      <pose><%= a_to_s(model_pose) %></pose>
+      <link name="link">
+        <pose>0 0 <%= ball_radius %>  0 0 0</pose>
+        <inertial>
+          <pose><%= a_to_s(ball_com + inertia_offset) %>  0 0 0</pose>
+          <mass><%= link_mass %></mass>
+          <inertia>
+            <ixx><%= link_ixx %></ixx>
+            <iyy><%= link_iyy %></iyy>
+            <izz><%= link_izz %></izz>
+            <ixy><%= link_ixy %></ixy>
+            <ixz><%= link_ixz %></ixz>
+            <iyz><%= link_iyz %></iyz>
+          </inertia>
+        </inertial>
+<%
+      # Place sphere collision and visual at each corner
+      ball_locations.keys.each_index do |first|
+        key = ball_locations.keys[first]
+        pos = ball_locations[key]
+%>
+        <%= sphere_collision(key, pos, ball_radius, color, slip) %>
+<%
+      end
+%>
+      </link>
+    </model>
+<%
+    end
+  end
+%>
+  </world>
+</sdf>
diff --git a/test/worlds/heightmap_material.world b/test/worlds/heightmap_lod_plugin.world
similarity index 80%
copy from test/worlds/heightmap_material.world
copy to test/worlds/heightmap_lod_plugin.world
index a64ce54..8b0f21d 100644
--- a/test/worlds/heightmap_material.world
+++ b/test/worlds/heightmap_lod_plugin.world
@@ -24,12 +24,9 @@
               <pos>0 0 0</pos>
             </heightmap>
           </geometry>
-          <material>
-            <script>
-              <uri>file://media/materials/scripts/gazebo.material</uri>
-              <name>Gazebo/Red</name>
-            </script>
-          </material>
+          <plugin name="lod" filename="libHeightmapLODPlugin.so">
+            <lod>5</lod>
+          </plugin>
         </visual>
       </link>
     </model>
diff --git a/test/worlds/heightmap_material.world b/test/worlds/heightmap_material.world
index a64ce54..8e5c757 100644
--- a/test/worlds/heightmap_material.world
+++ b/test/worlds/heightmap_material.world
@@ -1,6 +1,11 @@
 <?xml version="1.0" ?>
 <sdf version="1.6">
   <world name="default">
+
+    <include>
+      <uri>model://sun</uri>
+    </include>
+
     <include><uri>model://camera</uri></include>
 
     <model name="heightmap">
diff --git a/test/worlds/heightmap_material.world b/test/worlds/heightmap_material_shader.world
similarity index 82%
copy from test/worlds/heightmap_material.world
copy to test/worlds/heightmap_material_shader.world
index a64ce54..963ec6f 100644
--- a/test/worlds/heightmap_material.world
+++ b/test/worlds/heightmap_material_shader.world
@@ -1,6 +1,11 @@
 <?xml version="1.0" ?>
 <sdf version="1.6">
   <world name="default">
+
+    <include>
+      <uri>model://sun</uri>
+    </include>
+
     <include><uri>model://camera</uri></include>
 
     <model name="heightmap">
@@ -26,8 +31,8 @@
           </geometry>
           <material>
             <script>
-              <uri>file://media/materials/scripts/gazebo.material</uri>
-              <name>Gazebo/Red</name>
+              <uri>file://media/materials/scripts/heightmap_custom.material</uri>
+              <name>Gazebo/CustomHeightmapShader</name>
             </script>
           </material>
         </visual>
diff --git a/test/worlds/inertia_rotations.world b/test/worlds/inertia_rotations.world
index f662919..4feb41c 100644
--- a/test/worlds/inertia_rotations.world
+++ b/test/worlds/inertia_rotations.world
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
+<!-- this file was generated using embedded ruby -->
 <sdf version="1.5">
   <world name="inertia_rotations">
     <include>
diff --git a/test/worlds/inertia_rotations.world.erb b/test/worlds/inertia_rotations.world.erb
index e925507..c35aa44 100644
--- a/test/worlds/inertia_rotations.world.erb
+++ b/test/worlds/inertia_rotations.world.erb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
+<%= "<!-- this file was generated using embedded ruby -->" %>
 <sdf version="1.5">
   <world name="inertia_rotations">
     <include>
diff --git a/test/worlds/pendulum_axes.world b/test/worlds/pendulum_axes.world
index e3c7ce5..8033876 100644
--- a/test/worlds/pendulum_axes.world
+++ b/test/worlds/pendulum_axes.world
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
+<!-- this file was generated using embedded ruby -->
 
 <sdf version="1.5">
   <world name="default">
diff --git a/test/worlds/pendulum_axes.world.erb b/test/worlds/pendulum_axes.world.erb
index e59f970..24667b3 100644
--- a/test/worlds/pendulum_axes.world.erb
+++ b/test/worlds/pendulum_axes.world.erb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
+<%= "<!-- this file was generated using embedded ruby -->" %>
 <%
   # Pendulum axes test
   # Pendulums with different link frame orientations
diff --git a/test/worlds/torsional_friction_test.world b/test/worlds/torsional_friction_test.world
index 64eace6..62af2e3 100644
--- a/test/worlds/torsional_friction_test.world
+++ b/test/worlds/torsional_friction_test.world
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
+<!-- this file was generated using embedded ruby -->
 
 <sdf version="1.5">
   <world name="default">
diff --git a/test/worlds/torsional_friction_test.world.erb b/test/worlds/torsional_friction_test.world.erb
index d1ee8ee..81cf01e 100644
--- a/test/worlds/torsional_friction_test.world.erb
+++ b/test/worlds/torsional_friction_test.world.erb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
+<%= "<!-- this file was generated using embedded ruby -->" %>
 <%
   # Torsional friction test world
   # Spheres with single points of contact. Torque about the vertical axis
diff --git a/tools/gz.cc b/tools/gz.cc
index b44fe2c..b7bc1a5 100644
--- a/tools/gz.cc
+++ b/tools/gz.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/gz.hh b/tools/gz.hh
index c12e27f..65cb34d 100644
--- a/tools/gz.hh
+++ b/tools/gz.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/gz_TEST.cc b/tools/gz_TEST.cc
index bf8f4a0..b86957c 100644
--- a/tools/gz_TEST.cc
+++ b/tools/gz_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013-2016 Open Source Robotics Foundation
+ * Copyright (C) 2013 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/gz_log.cc b/tools/gz_log.cc
index cdc062c..2445889 100644
--- a/tools/gz_log.cc
+++ b/tools/gz_log.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/gz_log.hh b/tools/gz_log.hh
index fc01965..79a9d32 100644
--- a/tools/gz_log.hh
+++ b/tools/gz_log.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/gz_log_TEST.cc b/tools/gz_log_TEST.cc
index 30d8bf5..d5b3bc0 100644
--- a/tools/gz_log_TEST.cc
+++ b/tools/gz_log_TEST.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -147,7 +147,7 @@ TEST(gz_log, EchoFilter)
   else if (std::string("1.5").compare(SDF_VERSION) == 0)
     EXPECT_EQ(shasum, "6ab471e6c410ebe90a939383bd168660ba9019e8");
   else if (std::string("1.6").compare(SDF_VERSION) == 0)
-    EXPECT_EQ(shasum, "fa985e8b71e5bef52b1c8c824d4536bb5ad8b3b4");
+    EXPECT_EQ(shasum, "da29428454cff7ef3b54115db8cd52b11dc055f9");
   else
     FAIL() << "Please add support for sdf version: " << SDF_VERSION;
 
@@ -308,7 +308,7 @@ TEST(gz_log, Step)
   else if (std::string("1.5").compare(SDF_VERSION) == 0)
     EXPECT_EQ(shasum, "cc55bc387eec68fc2b2aef70bfb7372a2706a6dc");
   else if (std::string("1.6").compare(SDF_VERSION) == 0)
-    EXPECT_EQ(shasum, "eefcf9d19040d39c9dbb49d3ee771fee820032d3");
+    EXPECT_EQ(shasum, "414d50cf03c3650c112062a90a8c87acccbab893");
   else
     FAIL() << "Please add support for sdf version: " << SDF_VERSION;
 
@@ -320,7 +320,7 @@ TEST(gz_log, Step)
   else if (std::string("1.5").compare(SDF_VERSION) == 0)
     EXPECT_EQ(shasum, "37934b37eb4e2e7d88ed764c296232124c8a38ab");
   else if (std::string("1.6").compare(SDF_VERSION) == 0)
-    EXPECT_EQ(shasum, "e4a90a629b65ff0eede877f75bcf203cfa2f7891");
+    EXPECT_EQ(shasum, "c713b28ea4da6a7a9750aba1d9e65c12756ce026");
   else
     FAIL() << "Please add support for sdf version: " << SDF_VERSION;
 }
diff --git a/tools/gz_topic.cc b/tools/gz_topic.cc
index fca4ef6..141682d 100644
--- a/tools/gz_topic.cc
+++ b/tools/gz_topic.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/gz_topic.hh b/tools/gz_topic.hh
index 9000480..021b458 100644
--- a/tools/gz_topic.hh
+++ b/tools/gz_topic.hh
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014-2016 Open Source Robotics Foundation
+ * Copyright (C) 2014 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/gzprop.1.ronn b/tools/gzprop.1.ronn
index 6453fda..557ab3b 100644
--- a/tools/gzprop.1.ronn
+++ b/tools/gzprop.1.ronn
@@ -21,7 +21,7 @@ Package an existing model directory into a tarball suitable for upload to thepro
   Open Source Robotics Foundation
 
 ## COPYRIGHT 
-  Copyright (C) 2012-2016 Open Source Robotics Foundation
+  Copyright (C) 2012 Open Source Robotics Foundation
        
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/tools/sdf2pov.cc b/tools/sdf2pov.cc
index 769a0c1..1ea4c5e 100644
--- a/tools/sdf2pov.cc
+++ b/tools/sdf2pov.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2016 Open Source Robotics Foundation
+ * Copyright (C) 2012 Open Source Robotics Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tools/website/backup.rb b/tools/website/backup.rb
index 4e391c4..0a6cd8d 100755
--- a/tools/website/backup.rb
+++ b/tools/website/backup.rb
@@ -1,6 +1,6 @@
 #!/usr/bin/env ruby
 
-# Copyright (C) 2012-2016 Open Source Robotics Foundation
+# Copyright (C) 2012 Open Source Robotics Foundation
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
diff --git a/tools/website/gazebo_install.run b/tools/website/gazebo_install.run
index c67d5f9..9937aba 100755
--- a/tools/website/gazebo_install.run
+++ b/tools/website/gazebo_install.run
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Copyright (C) 2012-2016 Open Source Robotics Foundation
+# Copyright (C) 2012 Open Source Robotics Foundation
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
diff --git a/worlds/attach_lights.world b/worlds/attach_lights.world
new file mode 100644
index 0000000..76641e5
--- /dev/null
+++ b/worlds/attach_lights.world
@@ -0,0 +1,83 @@
+<?xml version="1.0" ?>
+<sdf version="1.6">
+  <world name="default">
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+
+    <!-- blue point light -->
+    <light type="point" name="point">
+      <pose>0 0 0 0 0 0</pose>
+      <diffuse>0 0 1 1</diffuse>
+      <specular>.1 .1 .1 1</specular>
+      <attenuation>
+        <range>1</range>
+        <linear>0.2</linear>
+        <constant>0.8</constant>
+        <quadratic>0.01</quadratic>
+      </attenuation>
+      <cast_shadows>false</cast_shadows>
+    </light>
+
+    <!-- red point light -->
+    <light type="point" name="point2">
+      <pose>0 0 0 0 0 0</pose>
+      <diffuse>1 0 0 1</diffuse>
+      <specular>.1 .1 .1 1</specular>
+      <attenuation>
+        <range>20</range>
+        <linear>0.2</linear>
+        <constant>0.8</constant>
+        <quadratic>0.01</quadratic>
+      </attenuation>
+      <cast_shadows>false</cast_shadows>
+    </light>
+
+    <!-- green spot light -->
+    <light type="spot" name="spot">
+      <pose>0 0 0 0 0 0</pose>
+      <diffuse>0 1 0 1</diffuse>
+      <specular>.2 .2 .2 1</specular>
+      <attenuation>
+        <range>10</range>
+        <linear>0.01</linear>
+        <constant>0.2</constant>
+        <quadratic>0.0</quadratic>
+      </attenuation>
+      <direction>0 0 -1</direction>
+      <spot>
+        <inner_angle>0.1</inner_angle>
+        <outer_angle>0.5</outer_angle>
+        <falloff>1.2</falloff>
+      </spot>
+      <cast_shadows>false</cast_shadows>
+    </light>
+
+    <!-- double pendulum with point and spot lights attached -->
+    <model name="double_pendulum_with_lights">
+      <include>
+        <uri>model://double_pendulum_with_base</uri>
+      </include>
+      <plugin name="attach_light" filename="libAttachLightPlugin.so">
+        <link>
+          <link_name>double_pendulum_with_base::upper_link</link_name>
+          <light>
+            <light_name>point</light_name>
+          </light>
+          <light>
+            <pose>0 0 0.45 0 0 0</pose>
+            <light_name>point2</light_name>
+          </light>
+        </link>
+        <link>
+          <link_name>double_pendulum_with_base::lower_link</link_name>
+          <light>
+            <pose>0 0 0.9 3.14 0 0</pose>
+            <light_name>spot</light_name>
+          </light>
+        </link>
+      </plugin>
+    </model>
+
+  </world>
+</sdf>
diff --git a/worlds/touch_plugin_demo.world b/worlds/touch_plugin_demo.world
new file mode 100644
index 0000000..0c29987
--- /dev/null
+++ b/worlds/touch_plugin_demo.world
@@ -0,0 +1,227 @@
+<?xml version="1.0" ?>
+<sdf version="1.5">
+  <world name="default">
+    <include>
+      <uri>model://ground_plane</uri>
+    </include>
+    <include>
+      <uri>model://sun</uri>
+    </include>
+
+    <model name="white_box">
+      <pose>0 0 0.25 0 0 0</pose>
+
+      <link name="link">
+        <collision name="collision">
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.5</size>
+            </box>
+          </geometry>
+          <surface>
+            <contact>
+              <ode>
+                <max_vel>0.00</max_vel>
+                <min_depth>0.01</min_depth>
+              </ode>
+            </contact>
+          </surface>
+        </collision>
+        <visual name="visual">
+          <geometry>
+            <box>
+              <size>0.5 0.5 0.5</size>
+            </box>
+          </geometry>
+        </visual>
+
+        <sensor name="white_box_sensor" type="contact">
+          <contact>
+            <collision>collision</collision>
+          </contact>
+        </sensor>
+
+      </link>
+
+      <plugin name="touch_box" filename="libTouchPlugin.so">
+        <sensor>white_box_sensor</sensor>
+        <target>green_box</target>
+        <time>3</time>
+        <namespace>white_touches_only_green</namespace>
+        <enabled>true</enabled>
+      </plugin>
+
+    </model>
+
+    <model name="red_yellow_box">
+      <pose>2 0 0.5 0 0 0</pose>
+
+      <link name="red">
+        <collision name="collision">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <surface>
+            <contact>
+              <ode>
+                <max_vel>0.00</max_vel>
+                <min_depth>0.01</min_depth>
+              </ode>
+            </contact>
+          </surface>
+        </collision>
+        <visual name="visual">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <material>
+            <ambient>1 0 0 1</ambient>
+            <emissive>1 0 0 1</emissive>
+          </material>
+        </visual>
+
+        <sensor name="red_box_sensor" type="contact">
+          <contact>
+            <collision>collision</collision>
+          </contact>
+        </sensor>
+
+      </link>
+
+      <link name="yellow">
+        <pose>0 2 0 0 0 0</pose>
+        <collision name="collision">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <surface>
+            <contact>
+              <ode>
+                <max_vel>0.00</max_vel>
+                <min_depth>0.01</min_depth>
+              </ode>
+            </contact>
+          </surface>
+        </collision>
+        <visual name="visual">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <material>
+            <ambient>1 1 0 1</ambient>
+            <emissive>1 1 0 1</emissive>
+          </material>
+        </visual>
+
+        <sensor name="yellow_box_sensor" type="contact">
+          <contact>
+            <collision>collision</collision>
+          </contact>
+        </sensor>
+
+      </link>
+
+      <plugin name="touch_box" filename="libTouchPlugin.so">
+        <sensor>red_box_sensor</sensor>
+        <sensor>yellow_box_sensor</sensor>
+        <target>green_box</target>
+        <time>5</time>
+        <namespace>red_and_yellow_touch_only_green</namespace>
+        <enabled>true</enabled>
+      </plugin>
+
+    </model>
+
+    <model name="blue_box">
+      <pose>-2 0 0.5 0 0 0</pose>
+
+      <link name="link">
+        <collision name="collision">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <surface>
+            <contact>
+              <ode>
+                <max_vel>0.00</max_vel>
+                <min_depth>0.01</min_depth>
+              </ode>
+            </contact>
+          </surface>
+        </collision>
+        <visual name="visual">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <material>
+            <ambient>0 0 1 1</ambient>
+            <emissive>0 0 1 1</emissive>
+          </material>
+        </visual>
+
+        <sensor name="blue_box_sensor" type="contact">
+          <contact>
+            <collision>collision</collision>
+          </contact>
+        </sensor>
+
+      </link>
+
+      <plugin name="touch_box" filename="libTouchPlugin.so">
+        <sensor>blue_box_sensor</sensor>
+        <target>green_box</target>
+        <time>2</time>
+        <namespace>blue_touches_only_green</namespace>
+      </plugin>
+
+    </model>
+
+    <model name="green_box">
+      <pose>4 0 0.5 0 0 0</pose>
+
+      <link name="link">
+        <collision name="collision">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <surface>
+            <contact>
+              <ode>
+                <max_vel>0.00</max_vel>
+                <min_depth>0.01</min_depth>
+              </ode>
+            </contact>
+          </surface>
+        </collision>
+        <visual name="visual">
+          <geometry>
+            <box>
+              <size>1 1 1</size>
+            </box>
+          </geometry>
+          <material>
+            <ambient>0 1 0 1</ambient>
+            <emissive>0 1 0 1</emissive>
+          </material>
+        </visual>
+
+      </link>
+
+    </model>
+
+  </world>
+</sdf>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/gazebo.git



More information about the debian-science-commits mailing list