From c80d35ebcd583002d986cb7fd33feb5d96fa31b1 Mon Sep 17 00:00:00 2001 From: Ryan Friedman Date: Fri, 19 Apr 2024 23:16:20 -0600 Subject: [PATCH 1/2] Add note about this repo for gazebo classic Signed-off-by: Ryan Friedman --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d8e0432b..596c479c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ -# Gazebo Tutorials # +# Gazebo-classicTutorials # -This repository contains the source for each gazebo tutorial found on [Gazebo Tutorials](http://classic.gazebosim.org/tutorials). +This repository contains the source for each Gazebo-classic tutorial found on [Gazebo-classicClassic Tutorials](http://classic.gazebosim.org/tutorials). + +> :warning: **WARNING:** This repository is for Gazebo-classic, which has been superseded by [Gazebo](https://gazebosim.org/home). +Click [here](https://github.com/gazebosim/docs/tree/master) to find the source code to the [latest Gazebo release tutorials](https://gazebosim.org/docs/harmonic/tutorials). ## Tips for creating tutorials From a9c3350ec1919cb93b44673f838b60d7e7272a4b Mon Sep 17 00:00:00 2001 From: Ryan Friedman Date: Fri, 19 Apr 2024 23:47:26 -0600 Subject: [PATCH 2/2] Aggressive rename of Gazebo to Gazebo-classic * First did a find & replace for "Gazebo " to "Gazebo-clasic ", then filtered the diff manually * This should help make it obvious when searching online to not confuse the gazebo versions Signed-off-by: Ryan Friedman --- actor/tutorial.md | 20 +-- add_laser/tutorial.md | 4 +- add_laser/tutorial_6+.md | 6 +- aerodynamics/tutorial.md | 10 +- animated_box/tutorial.md | 10 +- animated_box/tutorial_4.md | 10 +- animated_box/tutorial_6.md | 10 +- apply_force_torque/tutorial.md | 2 +- architecture/tutorial.md | 6 +- attach_gripper/tutorial-1.9+.md | 2 +- attach_gripper/tutorial.md | 2 +- attach_meshes/tutorial.md | 2 +- build_model/tutorial-7.md | 6 +- build_model/tutorial.md | 6 +- build_robot/tutorial.md | 4 +- build_world/tutorial.md | 4 +- build_world/tutorial_1.9.md | 4 +- build_world/tutorial_2.2.md | 4 +- building_editor/tutorial.md | 4 +- camera_distortion/tutorial.md | 4 +- camera_save/tutorial.md | 2 +- clone_simulation/tutorial.md | 6 +- collide_bitmask/tutorial.md | 2 +- components/tutorial.md | 28 ++-- contact_sensor/tutorial.md | 4 +- contact_sensor/tutorial_4-0.md | 4 +- contact_sensor/tutorial_7-0.md | 4 +- contain_plugin/tutorial_7.md | 6 +- contain_plugin/tutorial_9.md | 4 +- contrib_code/tutorial.md | 38 +++--- custom_messages/tutorial-8.0.md | 28 ++-- custom_messages/tutorial.md | 28 ++-- dem/tutorial.md | 18 +-- dem/tutorial_3.0.md | 18 +-- drcsim_atlas_mixer/tutorial.md | 2 +- drcsim_create_atlas_world/tutorial.md | 2 +- drcsim_install/tutorial.md | 2 +- drcsim_launchfiles/tutorial.md | 6 +- drcsim_modify_world/tutorial.md | 2 +- drcsim_multisense/tutorial.md | 2 +- drcsim_ros_python/tutorial.md | 4 +- drcsim_set_joint_damping/tutorial.md | 2 +- drcsim_visualization/tutorial.md | 2 +- elevators/tutorial.md | 2 +- extrude_svg/tutorial.md | 20 +-- flashlight_plugin/tutorial_9-3.md | 6 +- fluids/tutorial.md | 4 +- friction/tutorial.md | 4 +- ftu/tutorial2.md | 14 +- ftu/tutorial3.md | 12 +- gazebojs_camera_topics/tutorial.md | 4 +- gazebojs_install/tutorial.md | 14 +- gazebojs_install_mac/tutorial.md | 18 +-- gazebojs_models/tutorial.md | 8 +- gazebojs_pubsub/tutorial.md | 14 +- gravity_compensation/tutorial.md | 8 +- gui_overlay/tutorial.md | 18 +-- gui_overlay/tutorial7.md | 18 +-- gui_overlay/tutorial9.md | 20 +-- guided_a/tutorial1.md | 8 +- guided_a/tutorial2.md | 28 ++-- guided_a/tutorial3.md | 12 +- guided_a/tutorial4.md | 8 +- guided_a/tutorial5.md | 20 +-- guided_b/tutorial1.md | 14 +- guided_b/tutorial2.md | 12 +- guided_b/tutorial3.md | 8 +- guided_i/tutorial1.md | 12 +- guided_i/tutorial2.md | 8 +- guided_i/tutorial3.md | 2 +- guided_i/tutorial4.md | 2 +- guided_i/tutorial5.md | 20 +-- guided_i/tutorial6.md | 6 +- gzweb_development/tutorial.md | 2 +- gzweb_development/tutorial_1.9.md | 2 +- gzweb_install/tutorial.md | 18 +-- gzweb_install/tutorial_1.9.md | 10 +- gzweb_install/tutorial_7.md | 16 +-- haptix_comm/tutorial.md | 8 +- haptix_install/tutorial.md | 20 +-- haptix_logging/tutorial.md | 16 +-- haptix_luke_hand/tutorial.md | 6 +- haptix_matlab/tutorial.md | 4 +- haptix_optitrack/tutorial.md | 12 +- haptix_scoring_plugin/tutorial.md | 4 +- haptix_sim_api/tutorial.md | 10 +- haptix_tactors/tutorial.md | 4 +- haptix_unboxing/tutorial.md | 14 +- haptix_world_sim_api/tutorial.md | 4 +- hydra/tutorial.md | 12 +- hydra_gzjs_pub/tutorial.md | 2 +- hydrodynamics/tutorial.md | 4 +- import_mesh/tutorial.md | 6 +- inertia/tutorial.md | 8 +- .../tutorial-8.md | 62 ++++----- install_dependencies_from_source/tutorial.md | 120 +++++++++--------- install_from_source/tutorial_8.md | 28 ++-- install_from_source/tutorial_default.md | 30 ++--- install_from_source/tutorial_old.md | 30 ++--- install_on_mac/tutorial_11-0.md | 8 +- install_on_mac/tutorial_9-0.md | 8 +- install_on_windows/tutorial_11-0.md | 24 ++-- install_other_linux/tutorial-9.0.md | 24 ++-- install_other_linux/tutorial.md | 18 +-- install_ubuntu/tutorial_11.0.md | 6 +- install_ubuntu/tutorial_9-0.md | 8 +- install_unstable/tutorial.md | 10 +- instrument_hdf5_datasets/tutorial.md | 4 +- introspection/tutorial.md | 8 +- joint_events/tutorial.md | 2 +- led_plugin/tutorial_9-3.md | 2 +- lightmap/tutorial.md | 4 +- lockstep_physics_sensors/tutorial.md | 2 +- log_filtering/tutorial.md | 4 +- log_filtering/tutorial_4-0.md | 8 +- logging_playback/tutorial.md | 20 +-- logical_camera_sensor/tutorial_7+.md | 2 +- model_contrib/tutorial.md | 4 +- model_editor/tutorial.md | 8 +- model_editor/tutorial_6.md | 4 +- model_editor/tutorial_7.md | 6 +- model_population/tutorial.md | 2 +- model_structure/tutorial.md | 6 +- nested_model/tutorial.md | 6 +- oculus/tutorial.md | 10 +- oculus/tutorial_3.md | 16 +-- parallel/tutorial.md | 22 ++-- performance_metrics/tutorial.md | 6 +- physics_params/tutorial.md | 8 +- plugins_hello_world/tutorial-2.2.md | 20 +-- plugins_hello_world/tutorial-6.md | 20 +-- plugins_model/tutorial.md | 2 +- plugins_model/tutorial_1-9.md | 2 +- plugins_random_velocity/tutorial-6.md | 6 +- plugins_world/tutorial-7-8.md | 6 +- plugins_world/tutorial.md | 6 +- plugins_world/tutorial1_9.md | 6 +- plugins_world_properties/tutorial.md | 2 +- plugins_world_properties/tutorial_2-2.md | 2 +- plugins_world_properties/tutorial_7.md | 2 +- preset_manager/tutorial.md | 16 +-- preset_manager/tutorial_3.md | 16 +-- preset_manager/tutorial_7.md | 16 +-- process/tutorial.md | 18 +-- profiler/tutorial.md | 18 +-- quick_start/tutorial.md | 14 +- random_numbers/tutorial.md | 6 +- ros2_installing/tutorial.md | 20 +-- ros2_overview/tutorial.md | 22 ++-- ros_advanced/tutorial.md | 2 +- ros_comm/tutorial.md | 28 ++-- ros_control/tutorial.md | 16 +-- ros_depth_camera/tutorial.md | 26 ++-- ros_gzplugins/tutorial.md | 26 ++-- ros_installing/tutorial.md | 34 ++--- ros_overview/tutorial.md | 16 +-- ros_plugins/tutorial.md | 8 +- ros_roslaunch/tutorial.md | 60 ++++----- ros_urdf/tutorial.md | 52 ++++---- ros_wrapper_versions/tutorial.md | 42 +++--- screenshot/tutorial.md | 2 +- screenshot/tutorial_1-9.md | 2 +- sensor_noise/tutorial-7_0.md | 4 +- sensor_noise/tutorial.md | 4 +- set_velocity/tutorial_7.md | 4 +- simple_gripper/tutorial.md | 2 +- simple_gripper/tutorial_1-9.md | 2 +- static_map_plugin/tutorial.md | 4 +- stereo_glasses/tutorial.md | 4 +- system_plugin/tutorial.md | 2 +- system_plugin/tutorial_3-0.md | 4 +- system_plugin/tutorial_5-0.md | 2 +- system_plugin/tutorial_7-0.md | 2 +- system_plugin/tutorial_8-0.md | 2 +- topics_subscribe/tutorial.md | 14 +- topics_subscribe/tutorial_1-9.md | 10 +- topics_subscribe/tutorial_2-2.md | 12 +- torsional_friction/tutorial.md | 6 +- visual_layers/tutorial.md | 2 +- wide_angle_camera/tutorial.md | 12 +- 180 files changed, 1008 insertions(+), 1008 deletions(-) diff --git a/actor/tutorial.md b/actor/tutorial.md index 362a3fd6..9cdb33c5 100644 --- a/actor/tutorial.md +++ b/actor/tutorial.md @@ -1,4 +1,4 @@ -#**This tutorial applies to Gazebo versions 8+** +#**This tutorial applies to Gazebo-classic versions 8+** # Overview @@ -58,7 +58,7 @@ meshes, links and joints. # Scripted trajectories This is the high level animation of actors, which consists of specifying -a series of poses to be reached at specific times. Gazebo takes care of +a series of poses to be reached at specific times. Gazebo-classic takes care of interpolating the motion between them so the movement is fluid. ## Example world @@ -188,7 +188,7 @@ the next section! # Skeleton -Gazebo supports two different skeleton animation file formats: +Gazebo-classic supports two different skeleton animation file formats: [COLLADA (.dae)](https://www.khronos.org/collada/wiki/Main_page) and [Biovision Hierarchy (.bvh)](http://research.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html). @@ -226,7 +226,7 @@ described within the `` tag. > **Note**: If you've made [custom](/tutorials?tut=import_mesh&cat=build_robot) -Gazebo models before, you might have used COLLADA files as visuals and +Gazebo-classic models before, you might have used COLLADA files as visuals and collisions for your models. When used within *links*, COLLADA animations are ignored, but when used within *skins*, they are loaded! @@ -234,14 +234,14 @@ The file specified in `` can be an absolute path, for example: /home//my_gazebo_models/skeleton_model/skeleton.dae -You can also tell Gazebo to look for the mesh in all the directories contained in +You can also tell Gazebo-classic to look for the mesh in all the directories contained in the environment variable [`GAZEBO_MODEL_PATH`](/tutorials?tut=components), like this: model://skeketon_model/skeleton.dae -Finally, you can use a few example meshes which are installed with Gazebo by +Finally, you can use a few example meshes which are installed with Gazebo-classic by referencing directly to their filenames. Below is the list of the ones available. Take a look at some of them substituting into the `walk.world` above! @@ -260,7 +260,7 @@ available. Take a look at some of them substituting into the `walk.world` above! ### Combining different skins and animations Sometimes, it is useful to combine different skins with different animations. -Gazebo allows us to take the skin from one file, and the animation from +Gazebo-classic allows us to take the skin from one file, and the animation from another file, as long as they have compatible skeletons. For example, the files `walk.dae` and `moonwalk.dae` are compatible so they can @@ -353,7 +353,7 @@ and try that, I'll even give you an example: Go ahead and load it and see what happens. That's not what yopu expected, -right? The actor's legs are not moving at all. That's because Gazebo doesn't +right? The actor's legs are not moving at all. That's because Gazebo-classic doesn't know which animation to match with which trajectory. So let's change the animation name to match the trajectory type like this: @@ -395,10 +395,10 @@ that is, it is not taking any feedback from the environment. Now we're going to take a look at an example of how to change the trajectory dinamically using plugins. -> **Tip**: If you're not familiar with Gazebo plugins, take a look at some +> **Tip**: If you're not familiar with Gazebo-classic plugins, take a look at some [plugin tutorials](/tutorials?cat=write_plugin) first. -Gazebo has an example world with actors moving around while avoiding obstacles. +Gazebo-classic has an example world with actors moving around while avoiding obstacles. Take a look at it running: gazebo worlds/cafe.world diff --git a/add_laser/tutorial.md b/add_laser/tutorial.md index 3b1c0cdf..c9f80a12 100644 --- a/add_laser/tutorial.md +++ b/add_laser/tutorial.md @@ -4,7 +4,7 @@ This tutorials demonstrates how the user can create composite models directly from other models in the -[Gazebo Model Database](https://github.com/osrf/gazebo_models) +[Gazebo-classic Model Database](https://github.com/osrf/gazebo_models) by using the [\](http://sdformat.org/spec?ver=1.5&elem=world#world_include) tags and @@ -41,7 +41,7 @@ Adding a laser to a robot, or any model, is simply a matter of including the sen ~~~ - The `` block tells Gazebo to find a model, and insert it at a + The `` block tells Gazebo-classic to find a model, and insert it at a given `` relative to the parent model. In this case we place the hokuyo laser forward and above the robot. The `` block tells gazebo where to find the model inside its model database (note, you can see a diff --git a/add_laser/tutorial_6+.md b/add_laser/tutorial_6+.md index a70d50b5..e4025a2b 100644 --- a/add_laser/tutorial_6+.md +++ b/add_laser/tutorial_6+.md @@ -4,7 +4,7 @@ This tutorials demonstrates how the user can create composite models directly from other models in the -[Gazebo Model Database](https://github.com/osrf/gazebo_models) +[Gazebo-classic Model Database](https://github.com/osrf/gazebo_models) by using the [\](http://sdformat.org/spec?ver=1.5&elem=world#world_include) tags and @@ -34,7 +34,7 @@ Adding a laser to a robot, or any model, is simply a matter of including the sen ~~~ - The `` block tells Gazebo to find a model, and insert it at a + The `` block tells Gazebo-classic to find a model, and insert it at a given `` relative to the parent model. In this case we place the hokuyo laser forward and above the robot. The `` block tells gazebo where to find the model inside its model database (note, you can see a @@ -55,7 +55,7 @@ Adding a laser to a robot, or any model, is simply a matter of including the sen When the hokuyo model is inserted, the hokuyo's links are namespaced with their model name. In this case the model name is `hokuyo`, so each link in the hokuyo model is prefaced with `hokuyo::`. -1. Now start gazebo, and add the robot to the simulation using the Insert tab on the GUI. If the hokuyo model does not exist locally, Gazebo will pull the model from the [Model Database](https://github.com/osrf/gazebo_models). Alternatively, manually download the model files to your local cache: +1. Now start gazebo, and add the robot to the simulation using the Insert tab on the GUI. If the hokuyo model does not exist locally, Gazebo-classic will pull the model from the [Model Database](https://github.com/osrf/gazebo_models). Alternatively, manually download the model files to your local cache: cd ~/.gazebo/models wget -q -R *index.html*,*.tar.gz --no-parent -r -x -nH http://models.gazebosim.org/hokuyo/ diff --git a/aerodynamics/tutorial.md b/aerodynamics/tutorial.md index 907256aa..bfe3657f 100644 --- a/aerodynamics/tutorial.md +++ b/aerodynamics/tutorial.md @@ -1,7 +1,7 @@ # Overview This tutorial gives an overview of the physical phenomena of lift and drag -and how they are implemented in Gazebo in the [LiftDragPlugin](http://gazebosim.org/api/code/dev/classgazebo_1_1LiftDragPlugin.html). After this +and how they are implemented in Gazebo-classic in the [LiftDragPlugin](http://gazebosim.org/api/code/dev/classgazebo_1_1LiftDragPlugin.html). After this tutorial, you will be able to simulate aerodynamic robots. # Physics background @@ -11,7 +11,7 @@ tutorial, you will be able to simulate aerodynamic robots. Fluid mechanics is the study of the forces on or due to liquids and gases. Solving fluid mechanics problems is complex, and a truly faithful simulation of fluid mechanics would be computationally prohibitive. -Thus, Gazebo simulates the forces on an object immersed in a fluid and applies +Thus, Gazebo-classic simulates the forces on an object immersed in a fluid and applies the forces to the object's links directly. In particular, the phenomena of lift and drag are instrumental to underwater and aerodynamic vehicles. @@ -65,7 +65,7 @@ and drag coefficient. Note in this example, the airfoil has non-zero camber, and has a net positive lift at zero angle of attack. To obtain equivalent representation -using the current Gazebo `LiftDragPlugin` plugin parameters, shift the entire +using the current Gazebo-classic `LiftDragPlugin` plugin parameters, shift the entire curve to the right such that the zero lift point corresponds to zero angle of attack. And we can label the original zero angle of attack location as `a0` in the shifted curve, i.e. `a0` is 5 degrees. @@ -149,7 +149,7 @@ types: * [CessnaPlugin](http://gazebosim.org/api/code/dev/classgazebo_1_1CessnaPlugin.html): This model plugin exposes the topic `~/cessna_c172/control` for controlling the -thrust and control surfaces via Gazebo messages. It also publishes the state of +thrust and control surfaces via Gazebo-classic messages. It also publishes the state of the model into the topic `~/cessna_c172/state`. Please, read the documentation included in the header file of this plugin for a detailed explanation of its required and optional parameters. Here is the plugin block included in our @@ -203,7 +203,7 @@ the Cessna: gz topic -e /gazebo/default/cessna_c172/state ~~~ -In the Gazebo window, right click on the model and press `Follow`. The user +In the Gazebo-classic window, right click on the model and press `Follow`. The user camera will follow the plane during the flight and you will not lose it. Press '1' to start the preset for take-off. The propeller diff --git a/animated_box/tutorial.md b/animated_box/tutorial.md index beb70cbc..c3a4210b 100644 --- a/animated_box/tutorial.md +++ b/animated_box/tutorial.md @@ -4,7 +4,7 @@ This tutorial creates a simulation world with a simple box that is animated in a 10 second repeating loop where it slides around on the ground. This tutorial also demonstrates several different ways of viewing, -accessing, and interacting with simulation using the Gazebo executable +accessing, and interacting with simulation using the Gazebo-classic executable or your own custom executable. The simulated box broadcasts its pose, @@ -43,7 +43,7 @@ cmake ../ make ~~~ -Make sure Gazebo can load the plugins later +Make sure Gazebo-classic can load the plugins later ~~~ export GAZEBO_PLUGIN_PATH=`pwd`:$GAZEBO_PLUGIN_PATH @@ -71,9 +71,9 @@ You should see a graphical interface that displays the pose of the box. # Connect to a simulation with your own executable -Make sure Gazebo is not running. +Make sure Gazebo-classic is not running. -We will start Gazebo as above, and then run the independent listener +We will start Gazebo-classic as above, and then run the independent listener executable that connects to Gazebo. The independent listener receives the location and timestamp of the box and prints it out. @@ -84,7 +84,7 @@ gazebo animated_box.world & ./build/independent_listener # Run the simulation and connect with your own executable -Make sure Gazebo is not running. +Make sure Gazebo-classic is not running. The integrated_main example demonstrates the following: diff --git a/animated_box/tutorial_4.md b/animated_box/tutorial_4.md index 751c5399..2e9548ca 100644 --- a/animated_box/tutorial_4.md +++ b/animated_box/tutorial_4.md @@ -4,7 +4,7 @@ This tutorial creates a simulation world with a simple box that is animated in a 10 second repeating loop where it slides around on the ground. This tutorial also demonstrates several different ways of viewing, -accessing, and interacting with simulation using the Gazebo executable +accessing, and interacting with simulation using the Gazebo-classic executable or your own custom executable. The simulated box broadcasts its pose, @@ -41,7 +41,7 @@ cmake ../ make ~~~ -Make sure Gazebo can load the plugins later +Make sure Gazebo-classic can load the plugins later ~~~ export GAZEBO_PLUGIN_PATH=`pwd`:$GAZEBO_PLUGIN_PATH @@ -69,9 +69,9 @@ You should see a graphical interface that displays the pose of the box. # Connect to a simulation with your own executable -Make sure Gazebo is not running. +Make sure Gazebo-classic is not running. -We will start Gazebo as above, and then run the independent listener +We will start Gazebo-classic as above, and then run the independent listener executable that connects to Gazebo. The independent listener receives the location and timestamp of the box and prints it out. @@ -82,7 +82,7 @@ gazebo animated_box.world & ./build/independent_listener # Run the simulation and connect with your own executable -Make sure Gazebo is not running. +Make sure Gazebo-classic is not running. The integrated_main example demonstrates the following: diff --git a/animated_box/tutorial_6.md b/animated_box/tutorial_6.md index 212e9b81..bc2d36c0 100644 --- a/animated_box/tutorial_6.md +++ b/animated_box/tutorial_6.md @@ -4,7 +4,7 @@ This tutorial creates a simulation world with a simple box that is animated in a 10 second repeating loop where it slides around on the ground. This tutorial also demonstrates several different ways of viewing, -accessing, and interacting with simulation using the Gazebo executable +accessing, and interacting with simulation using the Gazebo-classic executable or your own custom executable. The simulated box broadcasts its pose, @@ -43,7 +43,7 @@ cmake ../ make ~~~ -Make sure Gazebo can load the plugins later +Make sure Gazebo-classic can load the plugins later ~~~ export GAZEBO_PLUGIN_PATH=`pwd`:$GAZEBO_PLUGIN_PATH @@ -71,9 +71,9 @@ You should see a graphical interface that displays the pose of the box. # Connect to a simulation with your own executable -Make sure Gazebo is not running. +Make sure Gazebo-classic is not running. -We will start Gazebo as above, and then run the independent listener +We will start Gazebo-classic as above, and then run the independent listener executable that connects to Gazebo. The independent listener receives the location and timestamp of the box and prints it out. @@ -84,7 +84,7 @@ gazebo animated_box.world & ./build/independent_listener # Run the simulation and connect with your own executable -Make sure Gazebo is not running. +Make sure Gazebo-classic is not running. The integrated_main example demonstrates the following: diff --git a/apply_force_torque/tutorial.md b/apply_force_torque/tutorial.md index a4d883e9..81d163f1 100644 --- a/apply_force_torque/tutorial.md +++ b/apply_force_torque/tutorial.md @@ -4,7 +4,7 @@ This tutorial will explain how to apply force and/or torque to models during sim # Applying force and torque examples -Let's go through an example of applying force and torque to simple models. Open Gazebo and from the insert tab, insert a `Simple Arm` into the scene. Then, from the top toolbar, insert a box. Make sure the simulation is not paused. +Let's go through an example of applying force and torque to simple models. Open Gazebo-classic and from the insert tab, insert a `Simple Arm` into the scene. Then, from the top toolbar, insert a box. Make sure the simulation is not paused. [[file:files/insert_models.png|800px]] diff --git a/architecture/tutorial.md b/architecture/tutorial.md index 0b0c8ed3..3d24ed0a 100644 --- a/architecture/tutorial.md +++ b/architecture/tutorial.md @@ -1,6 +1,6 @@ # Introduction -Gazebo uses a distributed architecture +Gazebo-classic uses a distributed architecture with separate libraries for physics simulation, rendering, user interface, communication, and sensor generation. Additionally, gazebo provides two executable programs for running simulations: @@ -27,7 +27,7 @@ of Gazebo. ## System -### Gazebo Master +### Gazebo-classic Master This is essentially a topic name server. It provides name lookup, and topic management. @@ -37,7 +37,7 @@ sensor generators, and GUIs. ### Communication Library * **Dependencies:** Protobuf and boost::ASIO - * **External API:** Support communication with Gazebo nodes over named topics + * **External API:** Support communication with Gazebo-classic nodes over named topics * **Internal API:** None * **Advertised Topics:** None * **Subscribed Topics:** None diff --git a/attach_gripper/tutorial-1.9+.md b/attach_gripper/tutorial-1.9+.md index bd67b75f..bf11944c 100644 --- a/attach_gripper/tutorial-1.9+.md +++ b/attach_gripper/tutorial-1.9+.md @@ -50,6 +50,6 @@ Start up gazebo and make sure you can load the models from the two previous tuto -1. Make sure the `model.config` and `manipulator.sdf` files above are saved, start Gazebo and spawn the model above by using the **insert** tab and choosing **Simple Mobile Manipulator** model. You should see something similar to: +1. Make sure the `model.config` and `manipulator.sdf` files above are saved, start Gazebo-classic and spawn the model above by using the **insert** tab and choosing **Simple Mobile Manipulator** model. You should see something similar to: [[file:files/Simple_mobile_manipulator.png|640px]] diff --git a/attach_gripper/tutorial.md b/attach_gripper/tutorial.md index 73a4b771..92170666 100644 --- a/attach_gripper/tutorial.md +++ b/attach_gripper/tutorial.md @@ -50,6 +50,6 @@ Start up gazebo and make sure you can load the models from the two previous tuto -1. Make sure the `model.config` and `manipulator.sdf` files above are saved, start Gazebo and spawn the model above by using the **insert** tab and choosing **Simple Mobile Manipulator** model. You should see something similar to: +1. Make sure the `model.config` and `manipulator.sdf` files above are saved, start Gazebo-classic and spawn the model above by using the **insert** tab and choosing **Simple Mobile Manipulator** model. You should see something similar to: [[file:files/Simple_mobile_manipulator.png|640px]] diff --git a/attach_meshes/tutorial.md b/attach_meshes/tutorial.md index f09c5764..d1dd878e 100644 --- a/attach_meshes/tutorial.md +++ b/attach_meshes/tutorial.md @@ -45,7 +45,7 @@ The most common use case for a mesh is to create a realistic looking visual. ls -l ~/.gazebo/models/pioneer2dx/meshes/chassis.dae - If the mesh file does not exist, make Gazebo pull the model from the [Model Database](https://github.com/osrf/gazebo_models) by spawning the `Pioneer 2DX` model at least once in gazebo (under `Insert->http://gazebosim.org/models`). + If the mesh file does not exist, make Gazebo-classic pull the model from the [Model Database](https://github.com/osrf/gazebo_models) by spawning the `Pioneer 2DX` model at least once in gazebo (under `Insert->http://gazebosim.org/models`). Or manually download the model files to your local cache: diff --git a/build_model/tutorial-7.md b/build_model/tutorial-7.md index ac6040ae..a4551bfe 100644 --- a/build_model/tutorial-7.md +++ b/build_model/tutorial-7.md @@ -27,13 +27,13 @@ SDF Models can range from simple shapes to complex robots. It refers to the ` **Tip:** Use your 3D modeling software to move each mesh so that it is centered on the origin. This will make placement of the model in Gazebo significantly easier. +> **Tip:** Use your 3D modeling software to move each mesh so that it is centered on the origin. This will make placement of the model in Gazebo-classic significantly easier. > **Tip:** Collada and OBJ file formats allow you to attach materials to the meshes. Use this mechanism to improve the visual appearance of your meshes. diff --git a/build_model/tutorial.md b/build_model/tutorial.md index cdc28a76..d0895ddc 100644 --- a/build_model/tutorial.md +++ b/build_model/tutorial.md @@ -24,13 +24,13 @@ SDF Models can range from simple shapes to complex robots. It refers to the ` **Tip:** Use your 3D modeling software to move each mesh so that it is centered on the origin. This will make placement of the model in Gazebo significantly easier. +> **Tip:** Use your 3D modeling software to move each mesh so that it is centered on the origin. This will make placement of the model in Gazebo-classic significantly easier. > **Tip:** Collada file formats allow you to attach materials to the meshes. Use this mechanism to improve the visual appearance of your meshes. diff --git a/build_robot/tutorial.md b/build_robot/tutorial.md index cf2d7924..2b025346 100644 --- a/build_robot/tutorial.md +++ b/build_robot/tutorial.md @@ -4,7 +4,7 @@ The tutorial demonstrates Gazebo's basic model management, and exercises familia ## Setup your model directory ## -Read through the [Model Database documentation](/tutorials?tut=model_structure&cat=build_robot). You will be creating your own model, which must follow the formatting rules for the Gazebo Model Database directory structure. Also, for details on model description formats, please refer to the [SDF reference](http://gazebosim.org/sdf). +Read through the [Model Database documentation](/tutorials?tut=model_structure&cat=build_robot). You will be creating your own model, which must follow the formatting rules for the Gazebo-classic Model Database directory structure. Also, for details on model description formats, please refer to the [SDF reference](http://gazebosim.org/sdf). 1. Create a model directory: @@ -50,7 +50,7 @@ Read through the [Model Database documentation](/tutorials?tut=model_structure&c ~~~ -At this point we have the basic contents for a model. The `model.config` file describes the robot with some extra meta data. The `model.sdf` file contains the necessary tags to instantiate a model named `my_robot` using Gazebo linked against SDF version 1.4. +At this point we have the basic contents for a model. The `model.config` file describes the robot with some extra meta data. The `model.sdf` file contains the necessary tags to instantiate a model named `my_robot` using Gazebo-classic linked against SDF version 1.4. ## Build the Model's Structure ## diff --git a/build_world/tutorial.md b/build_world/tutorial.md index d649354f..b46acd3c 100644 --- a/build_world/tutorial.md +++ b/build_world/tutorial.md @@ -8,7 +8,7 @@ This tutorial describes the process of creating a world with both static and dyn # Setup -1. Make sure Gazebo is [installed](/tutorials?cat=install). +1. Make sure Gazebo-classic is [installed](/tutorials?cat=install). 1. Start up gazebo, and you should see a world with just a ground plane. @@ -20,7 +20,7 @@ This tutorial describes the process of creating a world with both static and dyn # Adding Objects -Gazebo provides two mechanisms for adding objects to Gazebo. +Gazebo-classic provides two mechanisms for adding objects to Gazebo. 1. The first is a set of simple shapes, located above the render window. diff --git a/build_world/tutorial_1.9.md b/build_world/tutorial_1.9.md index fbc8ff86..85e0e54e 100644 --- a/build_world/tutorial_1.9.md +++ b/build_world/tutorial_1.9.md @@ -8,7 +8,7 @@ This tutorial describes the process of creating a world with both static and dyn # Setup -1. Make sure Gazebo is [installed](/tutorials?cat=install). +1. Make sure Gazebo-classic is [installed](/tutorials?cat=install). 1. Create a working directory for this tutorial: @@ -26,7 +26,7 @@ This tutorial describes the process of creating a world with both static and dyn # Adding Objects -Gazebo provides two mechanisms for adding objects to Gazebo. +Gazebo-classic provides two mechanisms for adding objects to Gazebo. 1. The first is a set of simple shapes, located above the render window. diff --git a/build_world/tutorial_2.2.md b/build_world/tutorial_2.2.md index ce00e244..edba80e4 100644 --- a/build_world/tutorial_2.2.md +++ b/build_world/tutorial_2.2.md @@ -8,7 +8,7 @@ This tutorial describes the process of creating a world with both static and dyn # Setup -1. Make sure Gazebo is [installed](/tutorials?cat=install). +1. Make sure Gazebo-classic is [installed](/tutorials?cat=install). 1. Start up gazebo, and you should see a world with just a ground plane. @@ -20,7 +20,7 @@ This tutorial describes the process of creating a world with both static and dyn # Adding Objects -Gazebo provides two mechanisms for adding objects to Gazebo. +Gazebo-classic provides two mechanisms for adding objects to Gazebo. 1. The first is a set of simple shapes, located above the render window. diff --git a/building_editor/tutorial.md b/building_editor/tutorial.md index f54e93a9..067b4d02 100644 --- a/building_editor/tutorial.md +++ b/building_editor/tutorial.md @@ -4,7 +4,7 @@ This tutorial describes the process of creating a building using the Building Ed ## Open the Building Editor -1. Make sure Gazebo is [installed](/tutorials?cat=install). +1. Make sure Gazebo-classic is [installed](/tutorials?cat=install). 1. Start up gazebo. @@ -234,7 +234,7 @@ Colors and textures can be chosen from the Palette and assigned to items on your [[file:files/color_texture_palette.png|800px]] - > **New in Gazebo 5.1:** To choose a custom color, click on `More` on the Palette. A dialog opens where you can specify custom colors. + > **New in Gazebo-classic 5.1:** To choose a custom color, click on `More` on the Palette. A dialog opens where you can specify custom colors. [[file:files/custom_color.png|640px]] diff --git a/camera_distortion/tutorial.md b/camera_distortion/tutorial.md index 54a15a73..2cfa0f44 100644 --- a/camera_distortion/tutorial.md +++ b/camera_distortion/tutorial.md @@ -6,11 +6,11 @@ Using camera calibration tools such as Matlab or OpenCV, it is possible to extra ## Implementation -Gazebo supports simulation of camera based on the [Brown's distortion model](http://en.wikipedia.org/wiki/Distortion_(optics)#Software_correction). It expects 5 distortion coefficients `k1`, `k2`, `k3`, `p1`, `p2` that you can get from the camera calibration tools. The `k` coefficients are the radial components of the distortion model, while the `p` coefficients are the tangential components. +Gazebo-classic supports simulation of camera based on the [Brown's distortion model](http://en.wikipedia.org/wiki/Distortion_(optics)#Software_correction). It expects 5 distortion coefficients `k1`, `k2`, `k3`, `p1`, `p2` that you can get from the camera calibration tools. The `k` coefficients are the radial components of the distortion model, while the `p` coefficients are the tangential components. There are a few limitations with the current implementation that needs to be taken into account: -1. In Gazebo versions 5 and 6, only barrel distortion is supported, which typically has a negative `k1` value. Pincushion model is added in Gazebo 7.7. +1. In Gazebo-classic versions 5 and 6, only barrel distortion is supported, which typically has a negative `k1` value. Pincushion model is added in Gazebo-classic 7.7. 1. Distortion is applied to the camera image texture. This means taking the generated image data and just warping it. This has the caveat that the final image (especially at the corners) has a narrower field of view than a real camera lens with barrel distortion. One workaround to compensate for this effect is to increase the field of view of the camera sensor in Gazebo. diff --git a/camera_save/tutorial.md b/camera_save/tutorial.md index 5953f848..29a4ab0f 100644 --- a/camera_save/tutorial.md +++ b/camera_save/tutorial.md @@ -2,7 +2,7 @@ This tutorial shows how to create a video from a camera sensor in a gazebo world. # Save Camera Images -Gazebo can automatically save camera images to disk. +Gazebo-classic can automatically save camera images to disk. To do so, a `` tag must be added to a camera sensor. ## Create a world with a camera diff --git a/clone_simulation/tutorial.md b/clone_simulation/tutorial.md index e2c8d492..502e3767 100644 --- a/clone_simulation/tutorial.md +++ b/clone_simulation/tutorial.md @@ -11,7 +11,7 @@ current simulation. # Clone the simulation using the GUI -1. Start Gazebo by typing the following command at the command prompt: +1. Start Gazebo-classic by typing the following command at the command prompt: ~~~ gazebo @@ -42,7 +42,7 @@ confirming that the world has been cloned. ~~~ %%% - Gazebo multi-robot simulator, version 4.0.0 + Gazebo-classic multi-robot simulator, version 4.0.0 Copyright (C) 2012-2014 Open Source Robotics Foundation. Released under the Apache 2 License. http://gazebosim.org @@ -91,7 +91,7 @@ you will need to kill it manually: It's also possible to clone a simulation programmatically using the Gazebo transport system. As an example, we'll describe the example code shipped with -Gazebo in the folder `examples/stand_alone/clone_simulation`. +Gazebo-classic in the folder `examples/stand_alone/clone_simulation`. Create a new directory named `clone_simulation` for this tutorial: diff --git a/collide_bitmask/tutorial.md b/collide_bitmask/tutorial.md index f0ce418f..c4ead3bf 100644 --- a/collide_bitmask/tutorial.md +++ b/collide_bitmask/tutorial.md @@ -40,7 +40,7 @@ programming languages, indicates to the simulation engine that collisions should be generated. The result is that **boxC** will come to rest on top of **boxA** and **boxB**. -This example is available as a run-able Gazebo demo. +This example is available as a run-able Gazebo-classic demo. 1. Run the demo world, and start in a paused state diff --git a/components/tutorial.md b/components/tutorial.md index 6e75c02e..ec55e18e 100644 --- a/components/tutorial.md +++ b/components/tutorial.md @@ -1,10 +1,10 @@ -This page describes each of the items involved in running a Gazebo simulation. +This page describes each of the items involved in running a Gazebo-classic simulation. # World Files The world description file contains all the elements in a simulation, including robots, lights, sensors, and static objects. This file is formatted using [SDF (Simulation Description Format)](http://gazebosim.org/sdf.html), and typically has a `.world` extension. -The Gazebo server (`gzserver`) reads this file to generate and populate a world. +The Gazebo-classic server (`gzserver`) reads this file to generate and populate a world. A number of example worlds are shipped with Gazebo. These worlds are installed in `/share/gazebo-/worlds`; you can also see them in the [source code](https://github.com/osrf/gazebo/blob/master/worlds/). @@ -25,21 +25,21 @@ Read more about model files [here](/tutorials?tut=build_model). # Environment Variables -Gazebo uses a number of environment variables to locate files, and set up +Gazebo-classic uses a number of environment variables to locate files, and set up communications between the server and clients. Default values that work for most cases are compiled in. This means you don't need to set any variables. Here are the variables: -`GAZEBO_MODEL_PATH`: colon-separated set of directories where Gazebo will search for models +`GAZEBO_MODEL_PATH`: colon-separated set of directories where Gazebo-classic will search for models -`GAZEBO_RESOURCE_PATH`: colon-separated set of directories where Gazebo will search for other resources such as world and media files. +`GAZEBO_RESOURCE_PATH`: colon-separated set of directories where Gazebo-classic will search for other resources such as world and media files. -`GAZEBO_MASTER_URI`: URI of the Gazebo master. This specifies the IP and port where the server will be started and tells the clients where to connect to. +`GAZEBO_MASTER_URI`: URI of the Gazebo-classic master. This specifies the IP and port where the server will be started and tells the clients where to connect to. -`GAZEBO_PLUGIN_PATH`: colon-separated set of directories where Gazebo will search for the plugin shared libraries at runtime. +`GAZEBO_PLUGIN_PATH`: colon-separated set of directories where Gazebo-classic will search for the plugin shared libraries at runtime. -`GAZEBO_MODEL_DATABASE_URI`: URI of the online model database where Gazebo will download models from. +`GAZEBO_MODEL_DATABASE_URI`: URI of the online model database where Gazebo-classic will download models from. These defaults are also included in a shell script: @@ -49,11 +49,11 @@ source /share/gazebo/setup.sh If you want to modify Gazebo's behavior, e.g., by extending the path it searches for models, you should first source the shell script listed above, then modify the variables that it sets. -## New in Gazebo 8 +## New in Gazebo-classic 8 -Parts of Gazebo transitioned to use the [Ignition Transport](https://ignitionrobotics.org/libs/transport) +Parts of Gazebo-classic transitioned to use the [Ignition Transport](https://ignitionrobotics.org/libs/transport) library for inter-process communication instead of the built-in -Gazebo Transport library. Some features such as +Gazebo-classic Transport library. Some features such as [markers](https://github.com/osrf/gazebo/blob/gazebo8/examples/stand_alone/marker/) and the plotting utility are using Ignition Transport and may be affected by the following environment variables: @@ -67,7 +67,7 @@ the following environment variables: Read more about Ignition Transport environment variables [here](https://ignitionrobotics.org/tutorials/transport/4.0/md__data_ignition_ign-transport_tutorials_20_env_variables.html). -# Gazebo Server +# Gazebo-classic Server The server is the workhorse of Gazebo. It parses a world description file given on the command line, and then simulates the world using a physics and sensor engine. @@ -139,8 +139,8 @@ gzserver --verbose -s libRestWebPlugin.so The same mechanism is used by the graphical client, the supported command line flags are the following: -* Gazebo 7 and earlier: Use `-g` to load a GUI plugin -* Gazebo 8 and later: Use `--gui-client-plugin` to load a GUI plugin +* Gazebo-classic 7 and earlier: Use `-g` to load a GUI plugin +* Gazebo-classic 8 and later: Use `--gui-client-plugin` to load a GUI plugin For example, to load the `TimerGUIPlugin`: diff --git a/contact_sensor/tutorial.md b/contact_sensor/tutorial.md index 97ab3b68..cb90a5fd 100644 --- a/contact_sensor/tutorial.md +++ b/contact_sensor/tutorial.md @@ -127,7 +127,7 @@ Between the and tags in order to get output on the terminal It is also possible to create a plugin for the contact sensor. This plugin can get the collision data, manipulate it, and output it to an arbitrary destination (for example a ROS topic). -* **Note** This section of the tutorial requires you to compile a Gazebo plugin. For Gazebo version 3.0 and above, you will need to have the Gazebo dev packages installed. If you install Gazebo from source then you should already have the necessary files. If you install the Gazebo binary deb version, then you'll need to install a couple of additional packages. +* **Note** This section of the tutorial requires you to compile a Gazebo-classic plugin. For Gazebo-classic version 3.0 and above, you will need to have the Gazebo-classic dev packages installed. If you install Gazebo-classic from source then you should already have the necessary files. If you install the Gazebo-classic binary deb version, then you'll need to install a couple of additional packages. ~~~ sudo apt-get install libgazebo-dev libsdformat2-dev @@ -140,7 +140,7 @@ Start by modifying the `contact.world` SDF file. Add the following line directly ~~~ -This line tells Gazebo to load the `libcontact.so` sensor plugin. Which we will now define. +This line tells Gazebo-classic to load the `libcontact.so` sensor plugin. Which we will now define. Create a header file for the plugin, call it `ContactPlugin.hh` with the following contents: diff --git a/contact_sensor/tutorial_4-0.md b/contact_sensor/tutorial_4-0.md index c67d0acd..257dfe70 100644 --- a/contact_sensor/tutorial_4-0.md +++ b/contact_sensor/tutorial_4-0.md @@ -129,7 +129,7 @@ Between the `` and `` tags in order to get output on the term It is also possible to create a plugin for the contact sensor. This plugin can get the collision data, manipulate it, and output it to an arbitrary destination (for example a ROS topic). -* **Note** This section of the tutorial requires you to compile a Gazebo plugin. For Gazebo version 3.0 and above, you will need to have the Gazebo dev packages installed (something like `libgazebo*-dev`). Check the [installation tutorials](/tutorials?cat=install) for further instructions. +* **Note** This section of the tutorial requires you to compile a Gazebo-classic plugin. For Gazebo-classic version 3.0 and above, you will need to have the Gazebo-classic dev packages installed (something like `libgazebo*-dev`). Check the [installation tutorials](/tutorials?cat=install) for further instructions. Start by modifying the `contact.world` SDF file. Add the following line directly below ``: @@ -141,7 +141,7 @@ gedit contact.world ~~~ -This line tells Gazebo to load the `libcontact.so` sensor plugin. Which we will now define. +This line tells Gazebo-classic to load the `libcontact.so` sensor plugin. Which we will now define. Create a header file for the plugin, call it `ContactPlugin.hh`: diff --git a/contact_sensor/tutorial_7-0.md b/contact_sensor/tutorial_7-0.md index f5aa33e9..e7cd9501 100644 --- a/contact_sensor/tutorial_7-0.md +++ b/contact_sensor/tutorial_7-0.md @@ -130,7 +130,7 @@ Between the `` and `` tags in order to get output on the term It is also possible to create a plugin for the contact sensor. This plugin can get the collision data, manipulate it, and output it to an arbitrary destination (for example a ROS topic). -* **Note** This section of the tutorial requires you to compile a Gazebo plugin. For Gazebo version 3.0 and above, you will need to have the Gazebo dev packages installed (something like `libgazebo*-dev`). Check the [installation tutorials](/tutorials?cat=install) for further instructions. +* **Note** This section of the tutorial requires you to compile a Gazebo-classic plugin. For Gazebo-classic version 3.0 and above, you will need to have the Gazebo-classic dev packages installed (something like `libgazebo*-dev`). Check the [installation tutorials](/tutorials?cat=install) for further instructions. Start by modifying the `contact.world` SDF file. Add the following line directly below ``: @@ -142,7 +142,7 @@ gedit contact.world ~~~ -This line tells Gazebo to load the `libcontact.so` sensor plugin. Which we will now define. +This line tells Gazebo-classic to load the `libcontact.so` sensor plugin. Which we will now define. Create a header file for the plugin, call it `ContactPlugin.hh`: diff --git a/contain_plugin/tutorial_7.md b/contain_plugin/tutorial_7.md index 62065f3f..58c1e28f 100644 --- a/contain_plugin/tutorial_7.md +++ b/contain_plugin/tutorial_7.md @@ -14,11 +14,11 @@ The `filename` attribute must be set to `libContainPlugin.so`. ``` -# Topics in Gazebo 7, 8, and 9+ +# Topics in Gazebo-classic 7, 8, and 9+ This plugin uses two topics: `contain` and `enable`. In gazebo 7 these topics are gazebo topics using the message type `gazebo.msgs.Int`. A value of `1` is considered `true` and a value of `0` is `false`. -Gazebo 8 has these gazebo topics, and adds duplicates using ignition transport. +Gazebo-classic 8 has these gazebo topics, and adds duplicates using ignition transport. The ignition transport topics use a message of type `ignition.msgs.Boolean`. In gazebo 9 and beyond the gazebo topics are removed; only the ignition transport topics are available. @@ -86,7 +86,7 @@ Hit `CTRL + R` to restart the world if you missed it. ## ContainPlugin tracking a Moving Volume The `` tag on this plugin can be given relative to another entity. This allows the volume to move with the entity as if it were connected by a fixed joint. -Gazebo includes a world demonstrating this. +Gazebo-classic includes a world demonstrating this. Start gazebo in paused mode with the moving geometry world. diff --git a/contain_plugin/tutorial_9.md b/contain_plugin/tutorial_9.md index 49eb4ad7..f7745355 100644 --- a/contain_plugin/tutorial_9.md +++ b/contain_plugin/tutorial_9.md @@ -14,7 +14,7 @@ The `filename` attribute must be set to `libContainPlugin.so`. ``` -# Topics in Gazebo 9+ +# Topics in Gazebo-classic 9+ This plugin uses two ignition transport topics: `contain` and `enable`. The ignition transport topics use a message of type `ignition.msgs.Boolean`. ## Plugin parameters @@ -81,7 +81,7 @@ Hit `CTRL + R` to restart the world if you missed it. ## ContainPlugin tracking a Moving Volume The `` tag on this plugin can be given relative to another entity. This allows the volume to move with the entity as if it were connected by a fixed joint. -Gazebo includes a world demonstrating this. +Gazebo-classic includes a world demonstrating this. Start gazebo in paused mode with the moving geometry world. diff --git a/contrib_code/tutorial.md b/contrib_code/tutorial.md index e90eacac..af534828 100644 --- a/contrib_code/tutorial.md +++ b/contrib_code/tutorial.md @@ -12,7 +12,7 @@ applications that work). ### Steps to follow -We will use the Gazebo repository as an example, but the step apply equally +We will use the Gazebo-classic repository as an example, but the step apply equally well to other repositories maintained by OSRF. 1. Are you sure? @@ -22,8 +22,8 @@ well to other repositories maintained by OSRF. > > Check [answers.gazebosim.org](http://answers.gazebosim.org) and the [issue tracker](https://github.com/osrf/gazebo/issues). > -> 1. Get feedback from the Gazebo core team. -> Post a topic on [community.gazebosim.org](https://community.gazebosim.org), post a question on [answers.gazebosim.org](http://answers.gazebosim.org), or use the [issue tracker](https://github.com/osrf/gazebo/issues) to get feedback from Gazebo developers. +> 1. Get feedback from the Gazebo-classic core team. +> Post a topic on [community.gazebosim.org](https://community.gazebosim.org), post a question on [answers.gazebosim.org](http://answers.gazebosim.org), or use the [issue tracker](https://github.com/osrf/gazebo/issues) to get feedback from Gazebo-classic developers. 1. [Fork Gazebo](https://github.com/osrf/gazebo/fork) > This will create your own personal copy of Gazebo. All of your development should take place in your fork. @@ -44,7 +44,7 @@ well to other repositories maintained by OSRF. > Code must have zero compile warnings. This currently only applies to Linux. 1. Style -> A tool is provided in Gazebo (and other repositories) to check for correct style. Your code must have no errors after running the following command from the root of the source tree: +> A tool is provided in Gazebo-classic (and other repositories) to check for correct style. Your code must have no errors after running the following command from the root of the source tree: > > `sh tools/code_check.sh` > @@ -190,12 +190,12 @@ In general, we follow [Google's style guide](https://google.github.io/styleguide Check to make sure someone else is not currently working on the same feature, before embarking on a project to add something to Gazebo. Simply -send a quick email to the Gazebo mailing list expressing your interest and +send a quick email to the Gazebo-classic mailing list expressing your interest and idea. Someone will get back to you shortly about your idea. # Write Tests -All code should have a corresponding unit test. Gazebo uses [GTest](http://code.google.com/p/googletest) for unit testing. All regression test should be placed in `/test/regresssion/`. +All code should have a corresponding unit test. Gazebo-classic uses [GTest](http://code.google.com/p/googletest) for unit testing. All regression test should be placed in `/test/regresssion/`. Before creating a new regressions test file, check the current test files. If one closely matches the topic of your new code, simply add a new test @@ -210,9 +210,9 @@ 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 [lcov](http://ltp.sourceforge.net/coverage/lcov.php) and [gcov](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html) installed. +Gazebo-classic has a build target called `make coverage` that will produce a code coverage report. You'll need [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 and the tests with `-DCMAKE_BUILD_TYPE=Coverage` +1. In your `build` folder, compile Gazebo-classic and the tests with `-DCMAKE_BUILD_TYPE=Coverage` ~~~ cmake -DCMAKE_BUILD_TYPE=Coverage ..\ @@ -239,7 +239,7 @@ Gazebo has a build target called `make coverage` that will produce a code covera ~~~ -## Gazebo assertions +## Gazebo-classic assertions ### What is an assertion? @@ -253,7 +253,7 @@ stop the program immediately. GZ_ASSERT(p != NULL, "Object from some_crazy_function should never point to NULL") p->run() -### Gazebo runtime assertions: GZ_ASSERT +### Gazebo-classic runtime assertions: GZ_ASSERT In Gazebo, the GZ_ASSERT macro is designed to handle all our runtime assertions @@ -288,24 +288,24 @@ What could be an assertion and what would be an exception for our revolutionary ### 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 situations. There are three level of traces which can be obtained: +In order to provide meaningful backtraces when using a debugger, such as GDB, Gazebo-classic 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 situations. There are three level of traces which can be obtained: '''Maximum level of debugging support''' -: This can only be obtained by compiling Gazebo from source and setting the `CMAKE_BUILD_TYPE` to `DEBUG`. This will set up debugging symbols with no optimizations. It may be required by developers for problems that are especially difficult to track down. +: This can only be obtained by compiling Gazebo-classic from source and setting the `CMAKE_BUILD_TYPE` to `DEBUG`. This will set up debugging symbols with no optimizations. It may be required by developers for problems that are especially difficult to track down. '''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. +: This can be obtained installing the ''gazebo-dbg'' package (since 1.4 version) or compiling Gazebo-classic 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. These traces are particularly difficult to follow. +: This one is present in package versions previous to 1.4 (no ''-dbg'' package present) or compiling Gazebo-classic 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. These traces are particularly difficult to follow. ## Code Check -Code pushed into the Gazebo repository should pass a few simple tests. It is also helpful if patches submitted through GitHub pass these tests. Passing these tests is defined as generating no error or warning messages for each of the following tests. +Code pushed into the Gazebo-classic repository should pass a few simple tests. It is also helpful if patches submitted through GitHub pass these tests. Passing these tests is defined as generating no error or warning messages for each of the following tests. ### Regression Tests -In your Gazebo build directory run `make test`: +In your Gazebo-classic build directory run `make test`: make test @@ -315,11 +315,11 @@ All the tests should pass. If they do not, you can run and debug the tests indiv ### Static Code Check -Static code checking analyzes your code for bugs, such as potential memory leaks, and style. The Gazebo static code checker uses cppcheck, and a modified cpplint. You'll need to install cppcheck on your system. Ubuntu users can install via: +Static code checking analyzes your code for bugs, such as potential memory leaks, and style. The Gazebo-classic 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: +To check your code, run the following script from the root of the Gazebo-classic sources: sh tools/code_check.sh @@ -329,7 +329,7 @@ It takes a few minutes to run. Fix all errors and warnings until the output look ### `CMAKE_BUILD_TYPE=Check` compiles with no warnings -This test compiles Gazebo with numerous warning flags enabled. The source code for Gazebo should compile cleanly. This does not include code in the `deps` directory. As a rule of thumb, start looking for compilation warnings after the proto messages are built which appear as a series of blue text: +This test compiles Gazebo-classic with numerous warning flags enabled. The source code for Gazebo-classic should compile cleanly. This does not include code in the `deps` directory. As a rule of thumb, start looking for compilation warnings after the proto messages are built which appear as a series of blue text: Linking CXX executable gazebomsgs_out Running C++ protocol buffer compiler on axis.proto diff --git a/custom_messages/tutorial-8.0.md b/custom_messages/tutorial-8.0.md index 885589fe..13843d4a 100644 --- a/custom_messages/tutorial-8.0.md +++ b/custom_messages/tutorial-8.0.md @@ -1,20 +1,20 @@ # Introduction -Gazebo topics communicate through Google protobuf messages. There is an +Gazebo-classic topics communicate through Google protobuf messages. There is an extensive [list](http://osrf-distributions.s3.amazonaws.com/gazebo/msg-api/dev/classes.html) of message types provided by Gazebo, for use with subscribing and publishing -Gazebo topics. However, there are many situations where you want to build +Gazebo-classic topics. However, there are many situations where you want to build your own. This tutorial is an example of how to create your own custom messages, and -how to subscribe and publish them in a Gazebo plug-in. +how to subscribe and publish them in a Gazebo-classic plug-in. ## About this code At the end of this project you should have a plug-in that can create a 2D -collision map of a Gazebo World. The plug-in will rasterize a world in -Gazebo use a RayShape to do ray intersection below this grid. It will +collision map of a Gazebo-classic World. The plug-in will rasterize a world in +Gazebo-classic use a RayShape to do ray intersection below this grid. It will publish the created image to a custom topic and output to a file. The source code for this plug-in lives at [GitHub](https://github.com/osrf/collision_map_creator_plugin). @@ -35,7 +35,7 @@ or copy and paste the code into files as instructed below. Writing your own message is great if it's too difficult to cram the subscriber/publisher message into one of Gazebo's already available message types. Furthermore, you can combine many different message types if you want -to make complicated messages. Gazebo contains a library of messages already. +to make complicated messages. Gazebo-classic contains a library of messages already. The installed messages can be found in /usr/include/gazebo-/gazebo/msgs/proto for debian installs. This tutorial makes use of the [vector2d.proto @@ -170,7 +170,7 @@ target_link_libraries(collision_map_creator_msgs ${PROTOBUF_LIBRARY}) ## Collision Map Creator Plugin -This is the code for the custom Gazebo world plugin +This is the code for the custom Gazebo-classic world plugin (`~/collision_map_creator_plugin/collision_map_creator.cc`). @@ -187,7 +187,7 @@ The necessary system headers to include #include ~~~ -These are the necessary Gazebo headers we'll need. +These are the necessary Gazebo-classic headers we'll need. ~~~ #include "gazebo/gazebo.hh" @@ -227,7 +227,7 @@ to create a typedef for it. typedef const boost::shared_ptr CollisionMapRequestPtr; ~~~ -Creating a derived class of the Gazebo WorldPlugin. It needs to hold on to +Creating a derived class of the Gazebo-classic WorldPlugin. It needs to hold on to the `NodePtr`, `PublisherPtr`, `SubcriberPtr` and `WorldPtr`, so they must be added as class variables. @@ -342,7 +342,7 @@ GZ_REGISTER_WORLD_PLUGIN(CollisionMapCreator) ## Request Publisher Executable This executable lives outside of gazebo, but it shows how to pull in the -required libraries from Gazebo and publish to gazebo topics with a custom +required libraries from Gazebo-classic and publish to gazebo topics with a custom built message type. There are some extra steps that must be taken that aren't explained in plugin tutorials. You can see the source code by opening the file `~/collision_map_creator_plugin/request_publisher.cc`: @@ -485,7 +485,7 @@ command arguments. ~~~ This is a super important part of the main method. This initializes the -gazebo transport system. For plugins, Gazebo already takes care of this, but +gazebo transport system. For plugins, Gazebo-classic already takes care of this, but for our own executable we have to do it ourself. Also notice we're not using the gazebo namespace so we must be explicit. @@ -609,11 +609,11 @@ sudo cp libcollision_map_creator.so /usr/lib/gazebo-/plugin ## Running Assuming everything went fine, and that's probably a rough assumption -(seriously this one was long), you need to run Gazebo with a custom world file: +(seriously this one was long), you need to run Gazebo-classic with a custom world file: -Run Gazebo with this world: +Run Gazebo-classic with this world: ~~~ gazebo ~/collision_map_creator_plugin/map_creator.world @@ -626,7 +626,7 @@ map with a 1cm resolution. ~/collision_map_creator_plugin/build/request_publisher "(-10,10)(10,10)(10,-10)(-10,-10)" 10 0.01 ~/map.png ~~~ -Your executable terminal should show it connecting to Gazebo and display the +Your executable terminal should show it connecting to Gazebo-classic and display the request message. You should see your gazebo terminal display some messages and run a percent complete stat until it finishes. Your map.png should look like this below. diff --git a/custom_messages/tutorial.md b/custom_messages/tutorial.md index 0282dc7b..185b3abb 100644 --- a/custom_messages/tutorial.md +++ b/custom_messages/tutorial.md @@ -1,20 +1,20 @@ # Introduction -Gazebo topics communicate through Google protobuf messages. There is an +Gazebo-classic topics communicate through Google protobuf messages. There is an extensive [list](http://osrf-distributions.s3.amazonaws.com/gazebo/msg-api/8.2.0/classes.html) of message types provided by Gazebo, for use with subscribing and publishing -Gazebo topics. However, there are many situations where you want to build +Gazebo-classic topics. However, there are many situations where you want to build your own. This tutorial is an example of how to create your own custom messages, and -how to subscribe and publish them in a Gazebo plug-in. +how to subscribe and publish them in a Gazebo-classic plug-in. ## About this code At the end of this project you should have a plug-in that can create a 2D -collision map of a Gazebo World. The plug-in will rasterize a world in -Gazebo use a RayShape to do ray intersection below this grid. It will +collision map of a Gazebo-classic World. The plug-in will rasterize a world in +Gazebo-classic use a RayShape to do ray intersection below this grid. It will publish the created image to a custom topic and output to a file. The source code for this plug-in lives at [GitHub](https://github.com/osrf/collision_map_creator_plugin). @@ -33,7 +33,7 @@ or copy and paste the code into files as instructed below. Writing your own message is great if it's too difficult to cram the subscriber/publisher message into one of Gazebo's already available message types. Furthermore, you can combine many different message types if you want -to make complicated messages. Gazebo contains a library of messages already. +to make complicated messages. Gazebo-classic contains a library of messages already. The installed messages can be found in /usr/include/gazebo-/gazebo/msgs/proto for debian installs. This tutorial makes use of the [vector2d.proto @@ -168,7 +168,7 @@ target_link_libraries(collision_map_creator_msgs ${PROTOBUF_LIBRARY}) ## Collision Map Creator Plugin -This is the code for the custom Gazebo world plugin +This is the code for the custom Gazebo-classic world plugin (`~/collision_map_creator_plugin/collision_map_creator.cc`). @@ -185,7 +185,7 @@ The necessary system headers to include #include ~~~ -These are the necessary Gazebo headers we'll need. +These are the necessary Gazebo-classic headers we'll need. ~~~ #include "gazebo/gazebo.hh" @@ -224,7 +224,7 @@ to create a typedef for it. typedef const boost::shared_ptr CollisionMapRequestPtr; ~~~ -Creating a derived class of the Gazebo WorldPlugin. It needs to hold on to +Creating a derived class of the Gazebo-classic WorldPlugin. It needs to hold on to the `NodePtr`, `PublisherPtr`, `SubcriberPtr` and `WorldPtr`, so they must be added as class variables. @@ -325,7 +325,7 @@ GZ_REGISTER_WORLD_PLUGIN(CollisionMapCreator) ## Request Publisher Executable This executable lives outside of gazebo, but it shows how to pull in the -required libraries from Gazebo and publish to gazebo topics with a custom +required libraries from Gazebo-classic and publish to gazebo topics with a custom built message type. There are some extra steps that must be taken that aren't explained in plugin tutorials. You can see the source code by opening the file `~/collision_map_creator_plugin/request_publisher.cc`: @@ -467,7 +467,7 @@ command arguments. ~~~ This is a super important part of the main method. This initializes the -gazebo transport system. For plugins, Gazebo already takes care of this, but +gazebo transport system. For plugins, Gazebo-classic already takes care of this, but for our own executable we have to do it ourself. Also notice we're not using the gazebo namespace so we must be explicit. @@ -591,11 +591,11 @@ sudo cp libcollision_map_creator.so /usr/lib/gazebo-/plugin ## Running Assuming everything went fine, and that's probably a rough assumption -(seriously this one was long), you need to run Gazebo with a custom wold file: +(seriously this one was long), you need to run Gazebo-classic with a custom wold file: -Run Gazebo with this world: +Run Gazebo-classic with this world: ~~~ gazebo ~/collision_map_creator_plugin/map_creator.world @@ -608,7 +608,7 @@ map with a 1cm resolution. ~/collision_map_creator_plugin/build/request_publisher "(-10,10)(10,10)(10,-10)(-10,-10)" 10 0.01 ~/map.png ~~~ -Your executable terminal should show it connecting to Gazebo and display the +Your executable terminal should show it connecting to Gazebo-classic and display the request message. You should see your gazebo terminal display some messages and run a percent complete stat until it finishes. Your map.png should look like this below. diff --git a/dem/tutorial.md b/dem/tutorial.md index 707259d5..1c97dabc 100644 --- a/dem/tutorial.md +++ b/dem/tutorial.md @@ -2,9 +2,9 @@ A Digital Elevation Model (DEM) is a 3D representation of a terrain's surface that does not include any objects like buildings or vegetation. DEMs are frequently created by using a combination of sensors, such as LIDAR, radar, or cameras. The terrain elevations for ground positions are sampled at regularly-spaced horizontal intervals. [Wikipedia](http://en.wikipedia.org/wiki/Digital_elevation_model) is a good resource for getting more details about DEMs. -The term DEM is just a generic denomination, not a specific format. In fact, the DEMs can be represented as a grid of elevations (raster) or as a vector-based triangular irregular network (TIN). Currently, Gazebo only supports raster data in the supported formats available in [GDAL](http://www.gdal.org/). +The term DEM is just a generic denomination, not a specific format. In fact, the DEMs can be represented as a grid of elevations (raster) or as a vector-based triangular irregular network (TIN). Currently, Gazebo-classic only supports raster data in the supported formats available in [GDAL](http://www.gdal.org/). -The main motivation to support DEMs in Gazebo is to be able to simulate a realistic terrain. Rescue or agriculture applications might be interested in testing their robot behaviors using a simulated terrain that matches the real world. +The main motivation to support DEMs in Gazebo-classic is to be able to simulate a realistic terrain. Rescue or agriculture applications might be interested in testing their robot behaviors using a simulated terrain that matches the real world. # Bring DEM support to Gazebo @@ -33,20 +33,20 @@ unzip ~/Downloads/mtsthelens_before.zip -d /tmp mv /tmp/30.1.1.1282760.dem /tmp/mtsthelens.dem ~~~ -Usually, DEM files have big resolutions and Gazebo cannot handle it, so it's a good idea to adjust the resolution of your DEM. The next command will scale the terrain to 129x129 and will copy into the Gazebo `media/dem/` directory. +Usually, DEM files have big resolutions and Gazebo-classic cannot handle it, so it's a good idea to adjust the resolution of your DEM. The next command will scale the terrain to 129x129 and will copy into the Gazebo-classic `media/dem/` directory. ~~~ $ mkdir -p /tmp/media/dem/ $ gdalwarp -ts 129 129 /tmp/mtsthelens.dem /tmp/media/dem/mtsthelens_129.dem ~~~ -A DEM file in Gazebo is loaded in the same way that you load a heightmap image. Gazebo automatically detects if the file is a plain image or a DEM file. Create the file `volcano.world` and copy the next content. Save the file anywhere you want, for example, in `/tmp`. +A DEM file in Gazebo-classic is loaded in the same way that you load a heightmap image. Gazebo-classic automatically detects if the file is a plain image or a DEM file. Create the file `volcano.world` and copy the next content. Save the file anywhere you want, for example, in `/tmp`. -The `` element in the code above tells Gazebo whether to load the DEM with the original dimensions (when `` is not present) or to scale it (when `` is present). In case you prefer to scale the DEM, the `` element tells Gazebo the size in meters that the terrain will have in the simulation. If you want to maintain the correct aspect ratio, be sure to properly calculate its size in all three dimensions. In our example, the DEM will be scaled to a square of 150 x 150 meters and a height of 50 meters. The minimum elevation for this particular DEM file is 685 meters, so in the `` element, we translate the entire DEM in negative z direction so that it sits at z=0 in the world. +The `` element in the code above tells Gazebo-classic whether to load the DEM with the original dimensions (when `` is not present) or to scale it (when `` is present). In case you prefer to scale the DEM, the `` element tells Gazebo-classic the size in meters that the terrain will have in the simulation. If you want to maintain the correct aspect ratio, be sure to properly calculate its size in all three dimensions. In our example, the DEM will be scaled to a square of 150 x 150 meters and a height of 50 meters. The minimum elevation for this particular DEM file is 685 meters, so in the `` element, we translate the entire DEM in negative z direction so that it sits at z=0 in the world. -Launch Gazebo with the world containing your DEM file and you should see the volcano. In our case, the file is in the /tmp directory. +Launch Gazebo-classic with the world containing your DEM file and you should see the volcano. In our case, the file is in the /tmp directory. ~~~ # Be sure of sourcing gazebo setup.sh in your own installation path @@ -54,7 +54,7 @@ $ source /usr/share/gazebo/setup.sh $ GAZEBO_RESOURCE_PATH="$GAZEBO_RESOURCE_PATH:/tmp" gazebo /tmp/volcano.world ~~~ -Try doing the same with the DEM file for Mount St. Helens after the eruption. You should get a heightmap in Gazebo similar to the image below: +Try doing the same with the DEM file for Mount St. Helens after the eruption. You should get a heightmap in Gazebo-classic similar to the image below: [[file:files/gazebo_sthelens.png|640px]] @@ -92,12 +92,12 @@ Always try to download "finished" versions of DEM data sets, where the holes hav # Working with multiple DEMs in Gazebo -Although Gazebo does not directly support multiple DEMs, GDAL has a set of utilities for merging a set of DEMs into a single one. The first step is to download the set of DEMs that you want to merge. Note that the patches can even overlap with one another; GDAL will merge them seamlessly. Assuming that your current directory contains a set of Geotiff files ready to be merged, run the next command. +Although Gazebo-classic does not directly support multiple DEMs, GDAL has a set of utilities for merging a set of DEMs into a single one. The first step is to download the set of DEMs that you want to merge. Note that the patches can even overlap with one another; GDAL will merge them seamlessly. Assuming that your current directory contains a set of Geotiff files ready to be merged, run the next command. ~~~ $ gdal_merge.py *.tif -o dem_merged.tif ~~~ -Now, you can just use `dem_merged.tif` in your world file and Gazebo will load the terrain with all the patches merged. In the next screenshot you can see the result of merging four terrain patches surrounding the Canary Islands. +Now, you can just use `dem_merged.tif` in your world file and Gazebo-classic will load the terrain with all the patches merged. In the next screenshot you can see the result of merging four terrain patches surrounding the Canary Islands. [[file:files/gazebo_dem_merged.png|640px]] diff --git a/dem/tutorial_3.0.md b/dem/tutorial_3.0.md index ec895382..40ba1b3d 100644 --- a/dem/tutorial_3.0.md +++ b/dem/tutorial_3.0.md @@ -1,14 +1,14 @@ # DEM Compatibility -Gazebo packages are not compiled with support for DEM. You will need to compile gazebo from source using the default branch after have installed the gdal packages (remember to run cmake after the packages installation) to get a version of gazebo with DEM support. +Gazebo-classic packages are not compiled with support for DEM. You will need to compile gazebo from source using the default branch after have installed the gdal packages (remember to run cmake after the packages installation) to get a version of gazebo with DEM support. #Overview A Digital Elevation Model (DEM) is a 3D representation of a terrain's surface that does not include any objects like buildings or vegetation. DEMs are frequently created by using a combination of sensors, such as LIDAR, radar, or cameras. The terrain elevations for ground positions are sampled at regularly-spaced horizontal intervals. [Wikipedia](http://en.wikipedia.org/wiki/Digital_elevation_model) is a good resource for getting more details about DEMs. -The term DEM is just a generic denomination, not a specific format. In fact, the DEMs can be represented as a grid of elevations (raster) or as a vector-based triangular irregular network (TIN). Currently, Gazebo only supports raster data in the supported formats available in [GDAL](http://www.gdal.org/). +The term DEM is just a generic denomination, not a specific format. In fact, the DEMs can be represented as a grid of elevations (raster) or as a vector-based triangular irregular network (TIN). Currently, Gazebo-classic only supports raster data in the supported formats available in [GDAL](http://www.gdal.org/). -The main motivation to support DEMs in Gazebo is to be able to simulate a realistic terrain. Rescue or agriculture applications might be interested in testing their robot behaviors using a simulated terrain that matches the real world. +The main motivation to support DEMs in Gazebo-classic is to be able to simulate a realistic terrain. Rescue or agriculture applications might be interested in testing their robot behaviors using a simulated terrain that matches the real world. # Bring DEM support to Gazebo @@ -37,20 +37,20 @@ $ unzip ~/Downloads/mtsthelens_before.zip -d /tmp $ mv /tmp/30.1.1.1282760.dem /tmp/mtsthelens.dem ~~~ -Usually, DEM files have big resolutions and Gazebo cannot handle it, so it's a good idea to adjust the resolution of your DEM. The next command will scale the terrain to 129x129 and will copy into the Gazebo `media/dem/` directory. +Usually, DEM files have big resolutions and Gazebo-classic cannot handle it, so it's a good idea to adjust the resolution of your DEM. The next command will scale the terrain to 129x129 and will copy into the Gazebo-classic `media/dem/` directory. ~~~ $ mkdir -p /tmp/media/dem/ $ gdalwarp -ts 129 129 /tmp/mtsthelens.dem /tmp/media/dem/mtsthelens_129.dem ~~~ -A DEM file in Gazebo is loaded in the same way that you load a heightmap image. Gazebo automatically detects if the file is a plain image or a DEM file. Create the file `volcano.world` and copy the next content. Save the file anywhere you want, for example, in /tmp. +A DEM file in Gazebo-classic is loaded in the same way that you load a heightmap image. Gazebo-classic automatically detects if the file is a plain image or a DEM file. Create the file `volcano.world` and copy the next content. Save the file anywhere you want, for example, in /tmp. -The `` element in the code above tells Gazebo whether to load the DEM with the original dimensions (when `` is not present) or to scale it (when `` is present). In case you prefer to scale the DEM, the `` element tells Gazebo the size in meters that the terrain will have in the simulation. If you want to maintain the correct aspect ratio, be sure to properly calculate the width, height and elevation (which is the third number in ``). In our example, the DEM will be scaled to a square of 150 x 150 meters and a max elevation of 50 meters. +The `` element in the code above tells Gazebo-classic whether to load the DEM with the original dimensions (when `` is not present) or to scale it (when `` is present). In case you prefer to scale the DEM, the `` element tells Gazebo-classic the size in meters that the terrain will have in the simulation. If you want to maintain the correct aspect ratio, be sure to properly calculate the width, height and elevation (which is the third number in ``). In our example, the DEM will be scaled to a square of 150 x 150 meters and a max elevation of 50 meters. -Launch Gazebo with the world containing your DEM file and you should see the volcano. In our case, the file is in the /tmp directory. +Launch Gazebo-classic with the world containing your DEM file and you should see the volcano. In our case, the file is in the /tmp directory. ~~~ # Be sure of sourcing gazebo setup.sh in your own installation path @@ -93,12 +93,12 @@ Always try to download "finished" versions of DEM data sets, where the holes hav # Working with multiple DEMs in Gazebo -Although Gazebo does not directly support multiple DEMs, GDAL has a set of utilities for merging a set of DEMs into a single one. The first step is to download the set of DEMs that you want to merge. Note that the patches can even overlap with one another; GDAL will merge them seamlessly. Assuming that your current directory contains a set of Geotiff files ready to be merged, run the next command. +Although Gazebo-classic does not directly support multiple DEMs, GDAL has a set of utilities for merging a set of DEMs into a single one. The first step is to download the set of DEMs that you want to merge. Note that the patches can even overlap with one another; GDAL will merge them seamlessly. Assuming that your current directory contains a set of Geotiff files ready to be merged, run the next command. ~~~ $ gdal_merge.py *.tif -o dem_merged.tif ~~~ -Now, you can just use `dem_merged.tif` in your world file and Gazebo will load the terrain with all the patches merged. In the next screenshot you can see the result of merging four terrain patches surrounding the Canary Islands. +Now, you can just use `dem_merged.tif` in your world file and Gazebo-classic will load the terrain with all the patches merged. In the next screenshot you can see the result of merging four terrain patches surrounding the Canary Islands. [[file:files/gazebo_dem_merged.png|640px]] diff --git a/drcsim_atlas_mixer/tutorial.md b/drcsim_atlas_mixer/tutorial.md index b905744c..1d581142 100644 --- a/drcsim_atlas_mixer/tutorial.md +++ b/drcsim_atlas_mixer/tutorial.md @@ -22,7 +22,7 @@ sudo apt-get install python-pygame # Simulation setup -Start Gazebo with Atlas in a world where there's something to manipulate (be sure to do the usual `source /usr/share/drcsim/setup.sh` first): +Start Gazebo-classic with Atlas in a world where there's something to manipulate (be sure to do the usual `source /usr/share/drcsim/setup.sh` first): ~~~ roslaunch drcsim_gazebo qual_task_2.launch diff --git a/drcsim_create_atlas_world/tutorial.md b/drcsim_create_atlas_world/tutorial.md index d4e94d9e..f817b986 100644 --- a/drcsim_create_atlas_world/tutorial.md +++ b/drcsim_create_atlas_world/tutorial.md @@ -1,5 +1,5 @@ # Overview -This tutorial will teach you how to create a Gazebo world and spawn Atlas into it. +This tutorial will teach you how to create a Gazebo-classic world and spawn Atlas into it. ## Setup We assume that you've already done the [installation step](/tutorials/?tut=drcsim_install&cat=drcsim). diff --git a/drcsim_install/tutorial.md b/drcsim_install/tutorial.md index 4adfebc9..3f406913 100644 --- a/drcsim_install/tutorial.md +++ b/drcsim_install/tutorial.md @@ -84,7 +84,7 @@ There are several ways of getting a working gazebo installation to use with drcs 1. Install using apt-get from the OSRF repository 2. Install gazebo from source -Both are very well documented in the [Gazebo Installation](/tutorials?cat=install) page. +Both are very well documented in the [Gazebo-classic Installation](/tutorials?cat=install) page. ### Ubuntu and ROS Hydro diff --git a/drcsim_launchfiles/tutorial.md b/drcsim_launchfiles/tutorial.md index d56e88c0..7f61ee3f 100644 --- a/drcsim_launchfiles/tutorial.md +++ b/drcsim_launchfiles/tutorial.md @@ -92,11 +92,11 @@ If you want to launch Atlas with no hands, simply leave out `hand_suffix` or pas ## Other options -`extra_gazebo_args`: Use this argument to add extra options to Gazebo, such as `--verbose`. For a full list of Gazebo options, type `gazebo --help` into a terminal. +`extra_gazebo_args`: Use this argument to add extra options to Gazebo, such as `--verbose`. For a full list of Gazebo-classic options, type `gazebo --help` into a terminal. -`gzworld`: Load a different world file. You can use this with `atlas.launch` to place Atlas into any Gazebo world. +`gzworld`: Load a different world file. You can use this with `atlas.launch` to place Atlas into any Gazebo-classic world. -`gzname`: Specify the executable used to invoke Gazebo. Common options include `gazebo` or `gzserver`. If the Gazebo graphical window does not start, but no errors are printed to the terminal, try setting `gzname:="gazebo"`. `gzname` is set to `gzserver` by default for the `vrc_final` worlds, which means the graphical client window will not start unless `gzclient` is launched separately. +`gzname`: Specify the executable used to invoke Gazebo. Common options include `gazebo` or `gzserver`. If the Gazebo-classic graphical window does not start, but no errors are printed to the terminal, try setting `gzname:="gazebo"`. `gzname` is set to `gzserver` by default for the `vrc_final` worlds, which means the graphical client window will not start unless `gzclient` is launched separately. # Example Try launching Atlas v4 with RobotiQ hands in the world for DRC task 4: diff --git a/drcsim_modify_world/tutorial.md b/drcsim_modify_world/tutorial.md index 120849db..0d49c215 100644 --- a/drcsim_modify_world/tutorial.md +++ b/drcsim_modify_world/tutorial.md @@ -118,7 +118,7 @@ You should see something like this: [[file:files/Gazebo_with_drc_robot_and_primitives.png|640px]] -Now you can save your changes: in the Gazebo GUI, click "File->Save World As". When prompted for where to save it, browse to `world_modification_tutorial/worlds/atlas.world` to overwrite our copy of Atlas's simulation world. +Now you can save your changes: in the Gazebo-classic GUI, click "File->Save World As". When prompted for where to save it, browse to `world_modification_tutorial/worlds/atlas.world` to overwrite our copy of Atlas's simulation world. Now, modify the world file to remove the Atlas model. This is because the robot is spawned automatically. diff --git a/drcsim_multisense/tutorial.md b/drcsim_multisense/tutorial.md index 373e1367..1a4928c2 100644 --- a/drcsim_multisense/tutorial.md +++ b/drcsim_multisense/tutorial.md @@ -20,7 +20,7 @@ Start the Atlas robot simulation: roslaunch atlas_utils atlas.launch -the Gazebo gui should appear: +the Gazebo-classic gui should appear: [[file:files/Atlas_launch.png|640px]] diff --git a/drcsim_ros_python/tutorial.md b/drcsim_ros_python/tutorial.md index 86293723..6ae0154c 100644 --- a/drcsim_ros_python/tutorial.md +++ b/drcsim_ros_python/tutorial.md @@ -2,7 +2,7 @@ This tutorial will demonstrate how to control the Atlas robot with a joint trajectory controller. In the course of this tutorial we're going to make the Atlas robot try to take a step. It will fall down, and that's OK, because our trajectory is incredibly simple and not at all reactive. You're welcome to extend the example here to make the robot walk or go through other motions. -We're using the ROS topics demonstrated in the [previous tutorial that used C++](/tutorials/?tut=drcsim_ros_cmds&cat=drcsim). This general-purpose controller can be used to make a set of joints follow a desired trajectory specified as joint angles. The controller is executed as part of a Gazebo plugin. This arrangement allows the controller to run in-line with the simulation, approximating the on-robot situation in which the controller runs in a real-time environment. +We're using the ROS topics demonstrated in the [previous tutorial that used C++](/tutorials/?tut=drcsim_ros_cmds&cat=drcsim). This general-purpose controller can be used to make a set of joints follow a desired trajectory specified as joint angles. The controller is executed as part of a Gazebo-classic plugin. This arrangement allows the controller to run in-line with the simulation, approximating the on-robot situation in which the controller runs in a real-time environment. **Important note:** The approach to robot control described here is not the best or only way to control the Atlas robot. It is provided for demonstration purposes. DRC participants should be aware that we expect the control system in simulation to change substantially as more sophisticated controller become available. @@ -80,7 +80,7 @@ python traj_yaml.py Traj_data2.yaml touchdown_exhausted ### Restarting -To try it again, go to the Gazebo "Edit" menu and click on "Reset Model Poses" (you might need to do this several times, use `Shift+Ctrl+R` for convenience). That will teleport the robot back to its initial pose, from where you can run a trajectory again. In this way, you can iterate, making changes to the program sending the trajectory and checking the effect in simulation, without shutting everything down. +To try it again, go to the Gazebo-classic "Edit" menu and click on "Reset Model Poses" (you might need to do this several times, use `Shift+Ctrl+R` for convenience). That will teleport the robot back to its initial pose, from where you can run a trajectory again. In this way, you can iterate, making changes to the program sending the trajectory and checking the effect in simulation, without shutting everything down. ## The Code Explained diff --git a/drcsim_set_joint_damping/tutorial.md b/drcsim_set_joint_damping/tutorial.md index 92453a56..7402adfb 100644 --- a/drcsim_set_joint_damping/tutorial.md +++ b/drcsim_set_joint_damping/tutorial.md @@ -8,7 +8,7 @@ We assume that you've already done the [installation step](/tutorials/?tut=drcsi In this tutorial, we'll demonstrate how to call ROS services in command-line using [rosservice](http://www.ros.org/wiki/rosservice). -After running Gazebo with Atlas, `roslaunch drcsim_gazebo atlas_sandia_hands.launch`, you can then use `rosservice list` to look for existing services: +After running Gazebo-classic with Atlas, `roslaunch drcsim_gazebo atlas_sandia_hands.launch`, you can then use `rosservice list` to look for existing services: ~~~ rosservice list | grep damping diff --git a/drcsim_visualization/tutorial.md b/drcsim_visualization/tutorial.md index 9221ddcd..2339607e 100644 --- a/drcsim_visualization/tutorial.md +++ b/drcsim_visualization/tutorial.md @@ -46,7 +46,7 @@ Bring up the Atlas robot in Gazebo roslaunch atlas_utils atlas.launch -When it comes time to bring down this process, press Control + C in the same terminal window. Closing Gazebo from the GUI will not kill the additional processes spawned with roslaunch. +When it comes time to bring down this process, press Control + C in the same terminal window. Closing Gazebo-classic from the GUI will not kill the additional processes spawned with roslaunch. ## Visualizing Sensor Data with rviz diff --git a/elevators/tutorial.md b/elevators/tutorial.md index 65f6a792..4577431a 100644 --- a/elevators/tutorial.md +++ b/elevators/tutorial.md @@ -1,7 +1,7 @@ # Overview This tutorial describes how to use elevators in Gazebo. An elevator in -Gazebo consists of a car, that moves up and down, with a door. Primatic joints control the car and door. +Gazebo-classic consists of a car, that moves up and down, with a door. Primatic joints control the car and door. # Functionality diff --git a/extrude_svg/tutorial.md b/extrude_svg/tutorial.md index 0a393f97..a96f9d27 100644 --- a/extrude_svg/tutorial.md +++ b/extrude_svg/tutorial.md @@ -8,7 +8,7 @@ Before starting, make sure you're familiar with the [Model Editor](/tutorials?tut=model_editor). This tutorial will show you how to make a custom wheel as an .svg in Inkscape, - and import it into Gazebo so that it can be attached to a robot. + and import it into Gazebo-classic so that it can be attached to a robot. ### Using the Inkscape SVG editor @@ -55,13 +55,13 @@ You can use the different tools (pen, text, stars and shapes, etc.) to create a proper thickness. **Note**: a stick figure or two circles that touch each other would not - result in valid Gazebo models. The SVG paths must create an closed contour with + result in valid Gazebo-classic models. The SVG paths must create an closed contour with holes, where the holes cannot touch the contour or other holes. Holes inside holes are treated as solid parts (and they can have holes, too). [[file:files/inkscape-simple-wheel.png|400px]] -Gazebo only imports `paths`, but it's easy with Inkscape to transform any shape +Gazebo-classic only imports `paths`, but it's easy with Inkscape to transform any shape to a path. Select `Select All` from the `Edit` menu. Then select the `Path -> Object to Path` menu item. This will transform every object into separate paths and sub paths. This transformation is irreversible, so if you @@ -69,7 +69,7 @@ Gazebo only imports `paths`, but it's easy with Inkscape to transform any shape [[file:files/inkscape-select-all.png|400px]] -Gazebo does not support grouping. Use the `Ungroup` from the `Object` menu to +Gazebo-classic does not support grouping. Use the `Ungroup` from the `Object` menu to separate groups of paths. ### Save your drawing @@ -77,14 +77,14 @@ Gazebo does not support grouping. Use the `Ungroup` from the `Object` menu to Save your drawing to an SVG file you can use later in Gazebo. Use the `Save` option from the `File` menu. -### Create a Gazebo Model +### Create a Gazebo-classic Model [SDFormat](http://sdformat.org) does not support SVG directly; it supports 2D - poly lines. The Gazebo Model Editor has an import mechanism that extracts the + poly lines. The Gazebo-classic Model Editor has an import mechanism that extracts the poly lines from SVG files, and saves them as an SDF model file. -Launch Gazebo and Select `Model Editor` from the `Edit` menu to enter the - Gazebo Model Editor mode (as opposed to the simulation mode). +Launch Gazebo-classic and Select `Model Editor` from the `Edit` menu to enter the + Gazebo-classic Model Editor mode (as opposed to the simulation mode). Then press the `Add` button in the `Custom Shapes` section of the `Insert` tab. @@ -129,7 +129,7 @@ a copy of the generated 3D mesh. [[file:files/custom-wheel.png|400px]] -Next, select `Exit Model Editor` from the `File` menu. Gazebo will prompt you +Next, select `Exit Model Editor` from the `File` menu. Gazebo-classic will prompt you to save the new model to disk. Press the `Save and Exit` button on the Exit dialog, and the `Save Model` dialog will appear. @@ -138,6 +138,6 @@ Next, select `Exit Model Editor` from the `File` menu. Gazebo will prompt you Set the name of the new model to "HollowWheel", and fill in the information under the `Advanced Options` section. Press the `Save` button. -> Your new Gazebo model is now ready to roll ;-) +> Your new Gazebo-classic model is now ready to roll ;-) diff --git a/flashlight_plugin/tutorial_9-3.md b/flashlight_plugin/tutorial_9-3.md index 0a751981..51a48c5b 100644 --- a/flashlight_plugin/tutorial_9-3.md +++ b/flashlight_plugin/tutorial_9-3.md @@ -2,7 +2,7 @@ [[file:files/example.gif|640px]] -FlashLightPlugin is a [model plugin](/tutorials?tut=plugins_model&cat=write_plugin) included with Gazebo that flashes and dims light objects on a model. By giving parameters to the plugin, you can choose which lights to blink and also specify the duration and interval time of flashing for each of lights. By inheriting this plugin, you can also use internal features, e.g., turning the lights on/off. +FlashLightPlugin is a [model plugin](/tutorials?tut=plugins_model&cat=write_plugin) included with Gazebo-classic that flashes and dims light objects on a model. By giving parameters to the plugin, you can choose which lights to blink and also specify the duration and interval time of flashing for each of lights. By inheriting this plugin, you can also use internal features, e.g., turning the lights on/off. # Usage and Plugin Parameters Insert your plugin block with the `filename` attribute set to `libFlashLightPlugin.so` within the `` element. In the following example (the world file is available [here](https://github.com/osrf/gazebo/raw/gazebo9/worlds/flash_light_plugin_demo.world)), the model has two links each of which has two light objects. @@ -129,7 +129,7 @@ This setting will first provide 1 second of red light, followed by green and blu This element is optional. When it is given under the plugin, it specifies whether all the lights are enabled or not. If it is placed directly under an individual ``, it overrides the global one and affects the corresponding light. # Implementation Details -The diagram below shows an abstract structure of the plugin and its components. `FlashLightPlugin` class holds `FlashLightSetting` objects, each of which holds a unit of settings and maintains the corresponding light element by the Gazebo transport topic. +The diagram below shows an abstract structure of the plugin and its components. `FlashLightPlugin` class holds `FlashLightSetting` objects, each of which holds a unit of settings and maintains the corresponding light element by the Gazebo-classic transport topic. [[file:files/flashlight.png|640px]] @@ -139,7 +139,7 @@ Once the plugin is loaded, it reads the parameters given under the `` el To flash/dim the light, `FlashLightSetting` class has two functions: `Flash()` and `Dim()`. It continuously checks the simulation time and finds the right timing to call those functions. Let's say the light to control is now flashing. When the duration time has been passed, it calls `Dim()`. Then, it waits until the interval time is passed. After that, it calls `Flash()`, and repeats these steps above. If the flashlight is given with multiple ``, it switches to the next block so the light patterns are switched as described by the plugin parameters. ## ~/light/modify topic -Gazebo advertises `~/light/modify` topic to update lights in the simulation. `Flash()` and `Dim()` store values in [msgs::Light](https://github.com/osrf/gazebo/blob/gazebo9/gazebo/msgs/light.proto) and send it to this topic so a light appearance reflects to the specified values. Particularly, `Flash()` sets `range` to a non-zero value, and `Dim()` sets it to 0. +Gazebo-classic advertises `~/light/modify` topic to update lights in the simulation. `Flash()` and `Dim()` store values in [msgs::Light](https://github.com/osrf/gazebo/blob/gazebo9/gazebo/msgs/light.proto) and send it to this topic so a light appearance reflects to the specified values. Particularly, `Flash()` sets `range` to a non-zero value, and `Dim()` sets it to 0. # Extension of Plugin FlashLightPlugin class has member functions which are accessible to derived classes. These functions can dynamically turn the flashlights on and off, and can also update the duration and interval time. As the diagram below shows, a derived plugin calls member functions of FLashLightPlugin to control the flashlights. The plugin could let external entities control flashlights by reacting to external events or requests. diff --git a/fluids/tutorial.md b/fluids/tutorial.md index 8cdff2b2..4f5f4131 100644 --- a/fluids/tutorial.md +++ b/fluids/tutorial.md @@ -10,7 +10,7 @@ available the simulation will run in CPU mode). **Prerequisites:** * Nvidia graphics card - * Go through the basic Gazebo tutorials, especially through [world plugins](/tutorials?tut=plugins_world), [system plugins](/tutorials?tut=system_plugin), [transport library](/tutorials?cat=transport) examples. + * Go through the basic Gazebo-classic tutorials, especially through [world plugins](/tutorials?tut=plugins_world), [system plugins](/tutorials?tut=system_plugin), [transport library](/tutorials?cat=transport) examples. * For deeper understanding of the particle simulation look through some [Fluidix examples](http://onezero.ca/sample/?id=general_basic). # Install @@ -45,7 +45,7 @@ available the simulation will run in CPU mode). # How the package works The fluid simulation runs as a separate physics engine which interacts with -the rigid body physics engine of Gazebo through an interface +the rigid body physics engine of Gazebo-classic through an interface (`include/FluidEngine.hh`). The interaction includes: diff --git a/friction/tutorial.md b/friction/tutorial.md index 3827eeb8..5b3b10d6 100644 --- a/friction/tutorial.md +++ b/friction/tutorial.md @@ -1,6 +1,6 @@ # Introduction -Each physics engine in Gazebo (for example ODE, Bullet, Simbody, DART) has +Each physics engine in Gazebo-classic (for example ODE, Bullet, Simbody, DART) has different friction models. Please refer to the [SDF parameters](http://sdformat.org/spec?ver=1.5&elem=collision#surface_friction) for a complete listing of available friction parameters. @@ -18,7 +18,7 @@ When two object collide, such as a ball rolling on a plane, a friction term is g ODE will automatically compute the first and second friction directions for us. Note, you can manually specify the [first friction direction in SDF](http://sdformat.org/spec?ver=1.5&elem=collision#ode_fdir1), but this capability is out of the scope of this tutorial. -The two objects in collision each specify '''mu''' and '''mu2'''. Gazebo will choose the smallest '''mu''' and '''mu2''' from the two colliding objects. +The two objects in collision each specify '''mu''' and '''mu2'''. Gazebo-classic will choose the smallest '''mu''' and '''mu2''' from the two colliding objects. The valid range of values for '''mu''' and '''mu2''' is any non-negative number, where 0 equates to a friction-less contact diff --git a/ftu/tutorial2.md b/ftu/tutorial2.md index 28c8fedd..dc829590 100644 --- a/ftu/tutorial2.md +++ b/ftu/tutorial2.md @@ -4,17 +4,17 @@ Welcome to the Beginner Module! This module will guide you through the most basic features of Gazebo, with each tutorial building upon the last. We recommend following the tutorials in order. -These tutorials are intended for those new to Gazebo and/or folks with **no programming or Linux experience**. +These tutorials are intended for those new to Gazebo-classic and/or folks with **no programming or Linux experience**. # What is Gazebo? # -Gazebo is a 3D dynamic simulator with the ability to accurately and +Gazebo-classic is a 3D dynamic simulator with the ability to accurately and efficiently simulate populations of robots in complex indoor and outdoor -environments. While similar to game engines, Gazebo offers physics +environments. While similar to game engines, Gazebo-classic offers physics simulation at a much higher degree of fidelity, a suite of sensors, and interfaces for both users and programs. -Typical uses of Gazebo include: +Typical uses of Gazebo-classic include: * testing robotics algorithms, @@ -22,7 +22,7 @@ Typical uses of Gazebo include: * performing regression testing with realistic scenarios -A few key features of Gazebo include: +A few key features of Gazebo-classic include: * multiple physics engines, @@ -34,7 +34,7 @@ A few key features of Gazebo include: # System requirements # -Gazebo is currently best used on [Ubuntu](http://www.ubuntu.com/download), a flavor of [Linux](https://en.wikipedia.org/wiki/Linux). You will need a computer that has: +Gazebo-classic is currently best used on [Ubuntu](http://www.ubuntu.com/download), a flavor of [Linux](https://en.wikipedia.org/wiki/Linux). You will need a computer that has: * A dedicated [GPU](https://en.wikipedia.org/wiki/Graphics_processing_unit), * Nvidia cards tend to work well in Ubuntu @@ -74,7 +74,7 @@ Gazebo is currently best used on [Ubuntu](http://www.ubuntu.com/download), a fla 1. Wait until the window disappears. -# Run Gazebo # +# Run Gazebo-classic # 1. Press Alt-F2 2. Type "gazebo", and press Enter. diff --git a/ftu/tutorial3.md b/ftu/tutorial3.md index 1f830707..cf8325b5 100644 --- a/ftu/tutorial3.md +++ b/ftu/tutorial3.md @@ -1,8 +1,8 @@ # User Interface -This is an introduction to the Gazebo Graphical User Interface, or GUI. We will learn interface basics like what the buttons do and how to navigate in the scene. +This is an introduction to the Gazebo-classic Graphical User Interface, or GUI. We will learn interface basics like what the buttons do and how to navigate in the scene. -Start by double-clicking on the Gazebo icon to open Gazebo. +Start by double-clicking on the Gazebo-classic icon to open Gazebo. ## GUI @@ -10,7 +10,7 @@ This is what you should see: [[file:files/ftu3-boot-screen.png|800px]] -Note that the Gazebo interface consists of multiple sections, explained below. +Note that the Gazebo-classic interface consists of multiple sections, explained below. ### The Scene @@ -59,7 +59,7 @@ models selected in the Scene, the panel does not display any information. ### The Toolbars -The Gazebo interface has two Toolbars. One is located just above the Scene, and +The Gazebo-classic interface has two Toolbars. One is located just above the Scene, and the other is just below. #### Upper Toolbar @@ -85,7 +85,7 @@ known as the "real time factor" (RTF). It's the ratio of simulation time to real time. The RTF is a measure of how fast or slow your simulation is running compared to real time. -The state of the world in Gazebo is calculated once per iteration. You can +The state of the world in Gazebo-classic is calculated once per iteration. You can see the number of iterations on the right side of the bottom toolbar. Each iteration advances simulation by a fixed number of seconds, called the step size. By default, the step size is 1 ms. You can press @@ -96,7 +96,7 @@ a time using the step button. ### The Menu -Like most applications, Gazebo has an application menu up top. Some of the menu +Like most applications, Gazebo-classic has an application menu up top. Some of the menu options are duplicated in the Toolbars or as right-click context menu options in the Scene. Check out the various menus to familiarize yourself. diff --git a/gazebojs_camera_topics/tutorial.md b/gazebojs_camera_topics/tutorial.md index 5729309c..bffca036 100644 --- a/gazebojs_camera_topics/tutorial.md +++ b/gazebojs_camera_topics/tutorial.md @@ -10,7 +10,7 @@ Png files are uncompressed (whereas jpeg are smaller). If you want to save the i ## Project setup -Also, because the code tries to connect to the running simulation server, launch Gazebo in a separate terminal (if it is not already running) and verify that the simulation is running (and Sim Time is increasing): +Also, because the code tries to connect to the running simulation server, launch Gazebo-classic in a separate terminal (if it is not already running) and verify that the simulation is running (and Sim Time is increasing): gazebo @@ -116,7 +116,7 @@ gazebo.subscribeToImageTopic(src_topic, function (err, img){ ~~~ -Because of the asynchronous nature of our script, we setup callbacks to keep the script alive until all the images have been processed. The Gazebo object is referenced to avoid premature garbage collection on older versions of NodeJs. +Because of the asynchronous nature of our script, we setup callbacks to keep the script alive until all the images have been processed. The Gazebo-classic object is referenced to avoid premature garbage collection on older versions of NodeJs. ~~~ diff --git a/gazebojs_install/tutorial.md b/gazebojs_install/tutorial.md index b0bbd95e..2db0aaf8 100644 --- a/gazebojs_install/tutorial.md +++ b/gazebojs_install/tutorial.md @@ -1,9 +1,9 @@ # Overview -GazeboJs provides a scripting interface to the Gazebo simulator. Specifically, it provides a javascript client for the simulator, using NodeJs and built on Google's V8 script engine. +GazeboJs provides a scripting interface to the Gazebo-classic simulator. Specifically, it provides a javascript client for the simulator, using NodeJs and built on Google's V8 script engine. -GazeboJs is a C++ addon to NodeJs that is loaded inside node process at runtime (using the `require` javascript function). Once loaded, it provides javascript functions that communicate with the Gazebo simultation server (the gzserver process) over the network, using the Gazebo transport library. -This is the same mechanism that the Gazebo simulation client (the gzclient process) uses to communicate with the simulation server. +GazeboJs is a C++ addon to NodeJs that is loaded inside node process at runtime (using the `require` javascript function). Once loaded, it provides javascript functions that communicate with the Gazebo-classic simultation server (the gzserver process) over the network, using the Gazebo-classic transport library. +This is the same mechanism that the Gazebo-classic simulation client (the gzclient process) uses to communicate with the simulation server. The source code for this project can be found here: [[file:files/gazebojs_overview.png|640px]] @@ -12,12 +12,12 @@ This page explains how to install the GazeboJs Node bindings to Gazebo. ### Ubuntu Linux -This tutorial shows how to download, install and compile Gazebojs on a computer where Gazebo and its development libraries are installed. +This tutorial shows how to download, install and compile Gazebojs on a computer where Gazebo-classic and its development libraries are installed. #### Setup -Install the osrf repository and install the development libraries, dependending on the version of Gazebo you are using (for example, libgazebo4-dev for Gazebo 4. see http://gazebosim.org/tutorials?cat=install). The dev Debian package contains the Gazebo header files that are necessary for the gazebojs installation. This is because the NodeJs Gazebo modules are automatically compiled on your machine when the 'npm install gazebojs' is invoked (see below). -Like Gazebo, gazebojs module uses semantic versioning, so the major version of gazebojs should be the same as the major version of Gazebo you are using. You can specify rules about the version of gazebojs you want to use in the `package.json` file (see https://www.npmjs.org/doc/files/package.json.html). +Install the osrf repository and install the development libraries, dependending on the version of Gazebo-classic you are using (for example, libgazebo4-dev for Gazebo-classic 4. see http://gazebosim.org/tutorials?cat=install). The dev Debian package contains the Gazebo-classic header files that are necessary for the gazebojs installation. This is because the NodeJs Gazebo-classic modules are automatically compiled on your machine when the 'npm install gazebojs' is invoked (see below). +Like Gazebo, gazebojs module uses semantic versioning, so the major version of gazebojs should be the same as the major version of Gazebo-classic you are using. You can specify rules about the version of gazebojs you want to use in the `package.json` file (see https://www.npmjs.org/doc/files/package.json.html). Make sure you have curl @@ -81,7 +81,7 @@ failed message. Test your installation: -Launch Gazebo in a separate terminal and verify that the simulation is running (Sim Time increases): +Launch Gazebo-classic in a separate terminal and verify that the simulation is running (Sim Time increases): gazebo diff --git a/gazebojs_install_mac/tutorial.md b/gazebojs_install_mac/tutorial.md index d4208e69..27f85deb 100644 --- a/gazebojs_install_mac/tutorial.md +++ b/gazebojs_install_mac/tutorial.md @@ -1,9 +1,9 @@ # Overview -GazeboJs provides a scripting interface to the Gazebo simulator. Specifically, it provides a javascript client for the simulator, using Node.js and built on Google's V8 script engine. +GazeboJs provides a scripting interface to the Gazebo-classic simulator. Specifically, it provides a javascript client for the simulator, using Node.js and built on Google's V8 script engine. -GazeboJs is a C++ addon to Node.js that is loaded inside node process at runtime (using the `require` javascript function). Once loaded, it provides javascript functions that communicate with the Gazebo simultation server (the gzserver process) over the network, using the Gazebo transport library. -This is the same mechanism that the Gazebo simulation client (the gzclient process) uses to communicate with the simulation server. +GazeboJs is a C++ addon to Node.js that is loaded inside node process at runtime (using the `require` javascript function). Once loaded, it provides javascript functions that communicate with the Gazebo-classic simultation server (the gzserver process) over the network, using the Gazebo-classic transport library. +This is the same mechanism that the Gazebo-classic simulation client (the gzclient process) uses to communicate with the simulation server. The source code for this project can be found here: [[file:files/gazebojs_overview.png|640px]] @@ -15,13 +15,13 @@ This page explains how to install the GazeboJs Node bindings to Gazebo. ### Mac OSX (using homebrew) -This tutorial shows how to download, install and compile Gazebojs on a computer where Gazebo and its development libraries are installed. -Please refer to the [Install Gazebo on Mac (using homebrew)](/tutorials?tut=install_on_mac&cat=install). +This tutorial shows how to download, install and compile Gazebojs on a computer where Gazebo-classic and its development libraries are installed. +Please refer to the [Install Gazebo-classic on Mac (using homebrew)](/tutorials?tut=install_on_mac&cat=install). #### Setup -The homebrew install of Gazebo also install the corresponding development libraries (for example, libgazebo6-dev for Gazebo 6). The dev libraries also contain the Gazebo header files that are necessary for the gazebojs installation. This is because the Node.js Gazebo modules are automatically compiled on your machine when the `npm install gazebojs` is invoked (see below). -Like Gazebo, gazebojs module uses semantic versioning, so the major version of gazebojs should be the same as the major version of Gazebo you are using. You can specify rules about the version of gazebojs you want to use in the `package.json` file (see https://www.npmjs.org/doc/files/package.json.html). +The homebrew install of Gazebo-classic also install the corresponding development libraries (for example, libgazebo6-dev for Gazebo-classic 6). The dev libraries also contain the Gazebo-classic header files that are necessary for the gazebojs installation. This is because the Node.js Gazebo-classic modules are automatically compiled on your machine when the `npm install gazebojs` is invoked (see below). +Like Gazebo, gazebojs module uses semantic versioning, so the major version of gazebojs should be the same as the major version of Gazebo-classic you are using. You can specify rules about the version of gazebojs you want to use in the `package.json` file (see https://www.npmjs.org/doc/files/package.json.html). **Install Node.js and npm** @@ -36,7 +36,7 @@ This might give you the following results homebrew/versions/node04 node nodebrew leafnode nodenv -Gazebo 6 is compatible with node 0.10 (which is the version of node that is bundled with Ubuntu 14.04). The following versions have been found to work well together: node v0.10.40, npm 2.14.4 (node package manager), and Gazebo 6.4. +Gazebo-classic 6 is compatible with node 0.10 (which is the version of node that is bundled with Ubuntu 14.04). The following versions have been found to work well together: node v0.10.40, npm 2.14.4 (node package manager), and Gazebo-classic 6.4. To install node: @@ -85,7 +85,7 @@ compilation phase where a Node.js module is created. There should now be a **Test your installation**: -Launch Gazebo in a separate terminal and verify that the simulation is running (when simulation is running, the `Sim Time` increases in the status bar in the bottom of the screen): +Launch Gazebo-classic in a separate terminal and verify that the simulation is running (when simulation is running, the `Sim Time` increases in the status bar in the bottom of the screen): gazebo diff --git a/gazebojs_models/tutorial.md b/gazebojs_models/tutorial.md index df3576ea..4ed37603 100644 --- a/gazebojs_models/tutorial.md +++ b/gazebojs_models/tutorial.md @@ -1,7 +1,7 @@ # Introduction -This tutorial shows you how to fetch Gazebo information that is not available via the publishers and subscribers, like the model sdf information. +This tutorial shows you how to fetch Gazebo-classic information that is not available via the publishers and subscribers, like the model sdf information. ## Getting SDF information for a model @@ -23,7 +23,7 @@ And put the following code inside ([model.js](https://bitbucket.org/osrf/gazeboj ### Code explained -First we load the Gazebo bindings into the script engine, and create a client for the running simulation. +First we load the Gazebo-classic bindings into the script engine, and create a client for the running simulation. ~~~ var gazebojs = require('gazebojs') @@ -49,7 +49,7 @@ sim.model( model_uri, function (err, data) { ### Test your code: -Start Gazebo in a separate terminal. Then you can invoke the script with a model uri as a parameter: +Start Gazebo-classic in a separate terminal. Then you can invoke the script with a model uri as a parameter: node model.js model://bowl @@ -96,7 +96,7 @@ You can access the materials using Gazebojs. This section shows you how to do it node ~~~ -You can use the Gazebo object to query materials and also the local path of models, using the internal sim object: +You can use the Gazebo-classic object to query materials and also the local path of models, using the internal sim object: ~~~ > g = new (require('gazebojs')).Gazebo() diff --git a/gazebojs_pubsub/tutorial.md b/gazebojs_pubsub/tutorial.md index b73a670e..f84b7cd8 100644 --- a/gazebojs_pubsub/tutorial.md +++ b/gazebojs_pubsub/tutorial.md @@ -1,8 +1,8 @@ # Introduction -This page explains how to create publishers and subscribers to Gazebo topics +This page explains how to create publishers and subscribers to Gazebo-classic topics in javascript using GazeboJs. Publish / Subscribe is the communication pattern -used between the Gazebo server and its clients. +used between the Gazebo-classic server and its clients. ## Project setup @@ -26,9 +26,9 @@ Now you can create javascript files and execute them by invoking node. ## Publishers and subscribers Publishers allow clients and servers to initiate communication, using typed -messages.The messages are defined in Gazebo using Protobuf, and they are +messages.The messages are defined in Gazebo-classic using Protobuf, and they are accessed in javascript via a JSON representation. Publishers can be created -in the Gazebo server or the Node client, and messages are sent to unique topics +in the Gazebo-classic server or the Node client, and messages are sent to unique topics that subscribers can listen to. Messages can be published to existing topics, or new topics can be created for future subscribers. @@ -36,7 +36,7 @@ or new topics can be created for future subscribers. ### Node session Because the code tries to connect to the running simulation server, launch -Gazebo in a separate terminal (if it is not already running) and verify that +Gazebo-classic in a separate terminal (if it is not already running) and verify that the simulation is running (and Sim Time is increasing): gazebo @@ -47,8 +47,8 @@ interactive session: cd gazeboJsPubSub node -And type in the following two lines to load the Gazebo C++ module into the -Node V8 script engine, and crate an instance of the Gazebo class. +And type in the following two lines to load the Gazebo-classic C++ module into the +Node V8 script engine, and crate an instance of the Gazebo-classic class. ~~~ var gazebojs = require("gazebojs") diff --git a/gravity_compensation/tutorial.md b/gravity_compensation/tutorial.md index 37756518..f503a68e 100644 --- a/gravity_compensation/tutorial.md +++ b/gravity_compensation/tutorial.md @@ -10,7 +10,7 @@ # Overview -This tutorial explains how to use a model plugin for gravity compensation in Gazebo as well as how it complements the built-in PID joint controllers. +This tutorial explains how to use a model plugin for gravity compensation in Gazebo-classic as well as how it complements the built-in PID joint controllers. Gravity compensation is a technique used to mitigate the effects of gravity on a robot's behavior. A model of the robot and its current configuration are used to estimate the gravitational forces acting on the robot's links and the joint efforts necessary to balance them. Ideally, gravity compensation would cancel out accelerations due to gravity while allowing the robot to comply with other external forces. @@ -19,7 +19,7 @@ We will begin by controlling a 0.1 kg mass on a linear actuator using PID feedba # PID Control ## P Control -1. Start Gazebo with the simulation paused (-u option), and insert the `Mass on rails` model. +1. Start Gazebo-classic with the simulation paused (-u option), and insert the `Mass on rails` model. [[file:files/mass_on_rails.png|800px]] @@ -98,7 +98,7 @@ The PID controller now performs well for the `mass_on_rails` system. However, it ## Demonstration For the `mass_on_rails` system, gravity is the primary factor the controller must overcome. So, if we add gravity compensation (GC), we can reduce the PID gains and still have the mass settle near the target. -1. Open the example world in Gazebo with the simulation paused. +1. Open the example world in Gazebo-classic with the simulation paused. ~~~ gazebo -u --verbose worlds/gravity_compensation.world @@ -125,7 +125,7 @@ The following excerpt from `gravity_compensation.world` shows how it calls the ~~~ -The `` block tells Gazebo to add a model to the world, and the URI indicates which model to add. The `` block tells Gazebo to run the gravity compensation plugin for this model (the outer block). The `` block requires a model URI of its own, which identifies the model to use when calculating the forces due to gravity and the compensating joint efforts. +The `` block tells Gazebo-classic to add a model to the world, and the URI indicates which model to add. The `` block tells Gazebo-classic to run the gravity compensation plugin for this model (the outer block). The `` block requires a model URI of its own, which identifies the model to use when calculating the forces due to gravity and the compensating joint efforts. > *Note 1*: A model could be defined directly in the world file by replacing the `` block with a `` block and adding the necessary attributes and elements. diff --git a/gui_overlay/tutorial.md b/gui_overlay/tutorial.md index e4b0e923..4665d604 100644 --- a/gui_overlay/tutorial.md +++ b/gui_overlay/tutorial.md @@ -1,15 +1,15 @@ # Overview -The Gazebo GUI overlay can be thought of as a transparent 2D layer that sits +The Gazebo-classic GUI overlay can be thought of as a transparent 2D layer that sits on top of the render window. QT widgets can be added to this layer through a plugin interface. You can show or hide all GUI overlays by clicking on -`View->GUI Overlays` on the main Gazebo menu bar. This tutorial describes how to +`View->GUI Overlays` on the main Gazebo-classic menu bar. This tutorial describes how to create and use GUI overlay plugins to create custom interfaces for Gazebo. Two examples will be used to demonstrate the GUI Overlay functionality. The first example creates a button that spawns a sphere, and the second displays the current simulation time. These two examples show how to send data to -Gazebo and receive data from Gazebo. +Gazebo-classic and receive data from Gazebo. # Example 1: Spawn spheres @@ -80,7 +80,7 @@ The source code for this example is found [here](https://github.com/osrf/gazebo/ make ~~~ -1. Now we need to make sure Gazebo can find the plugin. You can do this by +1. Now we need to make sure Gazebo-classic can find the plugin. You can do this by appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable: ~~~ @@ -93,7 +93,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable common search path, such as `/usr/local/lib`, or into one of the paths specified by the `GAZEBO_PLUGIN_PATH` library. -1. We also need to tell Gazebo that it should load the overlay plugin. +1. We also need to tell Gazebo-classic that it should load the overlay plugin. There are two methods to accomplish this. @@ -108,7 +108,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable wget https://github.com/osrf/gazebo/raw/gazebo5/examples/plugins/gui_overlay_plugin_spawn/spawn_widget_example.world ~~~ - 1. **GUI INI file:** Modify the `~/.gazebo/gui.ini` file so the plugin is loaded every time Gazebo is run: + 1. **GUI INI file:** Modify the `~/.gazebo/gui.ini` file so the plugin is loaded every time Gazebo-classic is run: ~~~ gedit ~/.gazebo/gui.ini @@ -121,7 +121,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable filenames=libgui_example_spawn_widget.so ~~~ -1. Now when Gazebo is run, a button should appear in the upper left of the render window. +1. Now when Gazebo-classic is run, a button should appear in the upper left of the render window. If you created a custom SDF world file with with GUI plugin: @@ -203,7 +203,7 @@ The source code for this example is found [here](https://github.com/osrf/gazebo/ 1. Follow the same steps as the previous tutorial to compile the plugin and add the `GAZEBO_PLUGIN_PATH` -1. Tell Gazebo where to find it and load it via `gui.ini` or an SDF world file. +1. Tell Gazebo-classic where to find it and load it via `gui.ini` or an SDF world file. > **Tip:** You can add both plugins to `gui.ini` as follows: @@ -220,7 +220,7 @@ The source code for this example is found [here](https://github.com/osrf/gazebo/ > This will load both the spawn sphere plugin from the previous example and the time plugin from this example. -1. When Gazebo is run, a new text box to the right of the spawn button should show the simulation time. +1. When Gazebo-classic is run, a new text box to the right of the spawn button should show the simulation time. ~~~ gazebo diff --git a/gui_overlay/tutorial7.md b/gui_overlay/tutorial7.md index 06e159b0..6cebf720 100644 --- a/gui_overlay/tutorial7.md +++ b/gui_overlay/tutorial7.md @@ -1,15 +1,15 @@ # Overview -The Gazebo GUI overlay can be thought of as a transparent 2D layer that sits +The Gazebo-classic GUI overlay can be thought of as a transparent 2D layer that sits on top of the render window. QT widgets can be added to this layer through a plugin interface. You can show or hide all GUI overlays by clicking on -`View->GUI Overlays` on the main Gazebo menu bar. This tutorial describes how to +`View->GUI Overlays` on the main Gazebo-classic menu bar. This tutorial describes how to create and use GUI overlay plugins to create custom interfaces for Gazebo. Two examples will be used to demonstrate the GUI Overlay functionality. The first example creates a button that spawns a sphere, and the second displays the current simulation time. These two examples show how to send data to -Gazebo and receive data from Gazebo. +Gazebo-classic and receive data from Gazebo. # Example 1: Spawn spheres @@ -86,7 +86,7 @@ The source code for this example is found [here](https://github.com/osrf/gazebo/ make ~~~ -1. Now we need to make sure Gazebo can find the plugin. You can do this by +1. Now we need to make sure Gazebo-classic can find the plugin. You can do this by appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable: ~~~ @@ -99,7 +99,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable common search path, such as `/usr/local/lib`, or into one of the paths specified by the `GAZEBO_PLUGIN_PATH` library. -1. We also need to tell Gazebo that it should load the overlay plugin. +1. We also need to tell Gazebo-classic that it should load the overlay plugin. There are two methods to accomplish this. @@ -114,7 +114,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable wget https://github.com/osrf/gazebo/raw/gazebo7/examples/plugins/gui_overlay_plugin_spawn/spawn_widget_example.world ~~~ - 1. **GUI INI file:** Modify the `~/.gazebo/gui.ini` file so the plugin is loaded every time Gazebo is run: + 1. **GUI INI file:** Modify the `~/.gazebo/gui.ini` file so the plugin is loaded every time Gazebo-classic is run: ~~~ gedit ~/.gazebo/gui.ini @@ -127,7 +127,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable filenames=libgui_example_spawn_widget.so ~~~ -1. Now when Gazebo is run, a button should appear in the upper left of the render window. +1. Now when Gazebo-classic is run, a button should appear in the upper left of the render window. If you created a custom SDF world file with with GUI plugin: @@ -208,7 +208,7 @@ The source code for this example is found [here](https://github.com/osrf/gazebo/ > 1. Follow the same steps as the previous tutorial to compile the plugin, -tell Gazebo where to find it and load it via `gui.ini` or an SDF world file. +tell Gazebo-classic where to find it and load it via `gui.ini` or an SDF world file. > **Tip:** You can add both plugins to `gui.ini` as follows: @@ -225,7 +225,7 @@ tell Gazebo where to find it and load it via `gui.ini` or an SDF world file. > This will load both the spawn sphere plugin from the previous example and the time plugin from this example. -1. When Gazebo is run, a new text box to the right of the spawn button should show the simulation time. +1. When Gazebo-classic is run, a new text box to the right of the spawn button should show the simulation time. ~~~ gazebo diff --git a/gui_overlay/tutorial9.md b/gui_overlay/tutorial9.md index 820c6349..70a75dee 100644 --- a/gui_overlay/tutorial9.md +++ b/gui_overlay/tutorial9.md @@ -1,21 +1,21 @@ # Overview -The Gazebo GUI overlay can be thought of as a transparent 2D layer that sits +The Gazebo-classic GUI overlay can be thought of as a transparent 2D layer that sits on top of the render window. QT widgets can be added to this layer through a plugin interface. You can show or hide all GUI overlays by clicking on -`View->GUI Overlays` on the main Gazebo menu bar. This tutorial describes how to +`View->GUI Overlays` on the main Gazebo-classic menu bar. This tutorial describes how to create and use GUI overlay plugins to create custom interfaces for Gazebo. Two examples will be used to demonstrate the GUI Overlay functionality. The first example creates a button that spawns a sphere, and the second displays the current simulation time. These two examples show how to send data to -Gazebo and receive data from Gazebo. +Gazebo-classic and receive data from Gazebo. # Example 1: Spawn spheres The source code for this example is found [here](https://github.com/osrf/gazebo/blob/gazebo9/examples/plugins/gui_overlay_plugin_spawn). -1. Install the latest Gazebo version: follow the [instructions of the install page](/tutorials?cat=install) +1. Install the latest Gazebo-classic version: follow the [instructions of the install page](/tutorials?cat=install) 1. Start by creating a working directory @@ -82,7 +82,7 @@ The source code for this example is found [here](https://github.com/osrf/gazebo/ make ~~~ -1. Now we need to make sure Gazebo can find the plugin. You can do this by +1. Now we need to make sure Gazebo-classic can find the plugin. You can do this by appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable: ~~~ @@ -95,7 +95,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable common search path, such as `/usr/local/lib`, or into one of the paths specified by the `GAZEBO_PLUGIN_PATH` library. -1. We also need to tell Gazebo that it should load the overlay plugin. +1. We also need to tell Gazebo-classic that it should load the overlay plugin. There are two methods to accomplish this. @@ -110,7 +110,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable wget https://github.com/osrf/gazebo/raw/gazebo9/examples/plugins/gui_overlay_plugin_spawn/spawn_widget_example.world ~~~ - 1. **GUI INI file:** Modify the `~/.gazebo/gui.ini` file so the plugin is loaded every time Gazebo is run: + 1. **GUI INI file:** Modify the `~/.gazebo/gui.ini` file so the plugin is loaded every time Gazebo-classic is run: ~~~ gedit ~/.gazebo/gui.ini @@ -123,7 +123,7 @@ appending the `build` directory to the `GAZEBO_PLUGIN_PATH` environment variable filenames=libgui_example_spawn_widget.so ~~~ -1. Now when Gazebo is run, a button should appear in the upper left of the render window. +1. Now when Gazebo-classic is run, a button should appear in the upper left of the render window. If you created a custom SDF world file with with GUI plugin: @@ -204,7 +204,7 @@ The source code for this example is found [here](https://github.com/osrf/gazebo/ > 1. Follow the same steps as the previous tutorial to compile the plugin, -tell Gazebo where to find it and load it via `gui.ini` or an SDF world file. +tell Gazebo-classic where to find it and load it via `gui.ini` or an SDF world file. > **Tip:** You can add both plugins to `gui.ini` as follows: @@ -221,7 +221,7 @@ tell Gazebo where to find it and load it via `gui.ini` or an SDF world file. > This will load both the spawn sphere plugin from the previous example and the time plugin from this example. -1. When Gazebo is run, a new text box to the right of the spawn button should show the simulation time. +1. When Gazebo-classic is run, a new text box to the right of the spawn button should show the simulation time. ~~~ gazebo diff --git a/guided_a/tutorial1.md b/guided_a/tutorial1.md index 04238a38..69ae84d9 100644 --- a/guided_a/tutorial1.md +++ b/guided_a/tutorial1.md @@ -15,12 +15,12 @@ Each tutorial builds upon the last, so we recommend following the tutorials in o These tutorials are intended for those with basic experience using Gazebo, Ubuntu Linux, and writing C++ code. -> **Note**: It's possible to contribute to Gazebo if you're using a different +> **Note**: It's possible to contribute to Gazebo-classic if you're using a different operating system, but for simplicity, this tutorial is focusing on Ubuntu users. # Where is Gazebo's source code? -Gazebo is an open source project, and as such, its source code is publicly +Gazebo-classic is an open source project, and as such, its source code is publicly available online. It is currently hosted on a git repository at GitHub: [https://github.com/osrf/gazebo/](https://github.com/osrf/gazebo/) @@ -53,13 +53,13 @@ You might be asking, is this it, is that all the code needed to bring Gazebo to life? Well, not exactly. Gazebo, as most software, takes advantage of other existing libraries to perform specific tasks. These are called _dependencies_. -For example, Gazebo uses [Ogre](http://www.ogre3d.org/) for rendering, +For example, Gazebo-classic uses [Ogre](http://www.ogre3d.org/) for rendering, [Qt](https://www.qt.io/) for the graphical user interface and supports a few physics engines, such as [ODE](http://www.ode.org/) and [Bullet](http://bulletphysics.org/wordpress/). That's only to name a few. Among Gazebo's dependencies, there are some dependencies which are maintained -by the Gazebo core team. Gazebo development is often tied to the development of +by the Gazebo-classic core team. Gazebo-classic development is often tied to the development of these libraries, so everything that will be discussed on this series also applies to those libraries. All these libraries are hosted on GitHub using git. They are the following: diff --git a/guided_a/tutorial2.md b/guided_a/tutorial2.md index 4ef3c7c4..908c635c 100644 --- a/guided_a/tutorial2.md +++ b/guided_a/tutorial2.md @@ -1,7 +1,7 @@ # Run your own copy of Gazebo On the [previous tutorial](/tutorials?tut=guided_a1) -we covered where to find the source code for Gazebo and other dependencies. +we covered where to find the source code for Gazebo-classic and other dependencies. This tutorial will go through the process of getting your own copy of the code running. @@ -10,16 +10,16 @@ code running. We previously showed that Gazebo's source code lives on a git [repository](https://github.com/osrf/gazebo) on GitHub. But even though -everyone in the world is able to see and copy that code, only the Gazebo core +everyone in the world is able to see and copy that code, only the Gazebo-classic core team has write access to it. In order to modify the code, you'll need to get your own copy, which is called -a "fork". You can fork Gazebo as follows: +a "fork". You can fork Gazebo-classic as follows: 1. Click on [this link](https://github.com/osrf/gazebo/fork) 1. You can choose a custom name for the repository, but here we will leave the default value `gazebo`. -1. After you finish the fork process, you should have a copy of Gazebo on +1. After you finish the fork process, you should have a copy of Gazebo-classic on `https://github.com//gazebo`. > **Note**: Throughout these tutorials, substitute `` with your @@ -44,12 +44,12 @@ to your computer as follows: 1. Now we use git to "clone" our fork. What the clone command does is copy all the code across all branches from the internet to your computer. -Gazebo has a large codebase, so this process may take a while depending on +Gazebo-classic has a large codebase, so this process may take a while depending on your internet connection: git clone https://github.com//gazebo -1. Now you should have a local copy of Gazebo under `~/code/gazebo`. Let's +1. Now you should have a local copy of Gazebo-classic under `~/code/gazebo`. Let's move to that folder and list its contents: cd ~/code/gazebo @@ -80,18 +80,18 @@ Gazebo's code is organized into different branches with different purposes. 1. Branches prefixed with `remotes/origin` come from the official OSRF repository. -Most of the branches in Gazebo are branches where the core team is working +Most of the branches in Gazebo-classic are branches where the core team is working on fixing bugs or adding new features. But a few branches have special meaning, these are: * `master`: This is the bleeding edge code where all new features are being developed. You're automatically on this branch when you clone Gazebo. This is where new features and code that is incompatible with previous releases -(i.e. breaks API/ABI) will go. Since Gazebo 11 was the last release, the +(i.e. breaks API/ABI) will go. Since Gazebo-classic 11 was the last release, the `master` branch no longer exists. -* `gazebo`: Here, `N` is a number representing a Gazebo release. For example, -the code for the latest release of Gazebo 7 is found on branch `gazebo7`. +* `gazebo`: Here, `N` is a number representing a Gazebo-classic release. For example, +the code for the latest release of Gazebo-classic 7 is found on branch `gazebo7`. ## Build @@ -127,7 +127,7 @@ some special configuration, check out the full 1. Configure and build. This will take a while (easily more than one hour), leave it running and go watch some cool -[Gazebo videos](https://www.youtube.com/results?search_query=gazebo+simulator). +[Gazebo-classic videos](https://www.youtube.com/results?search_query=gazebo+simulator). cmake .. make -j4 @@ -142,11 +142,11 @@ leave it running and go watch some cool ## Check the installation -If you've installed Gazebo on your system before, you might be asking +If you've installed Gazebo-classic on your system before, you might be asking how do you know if you're running your own copy of Gazebo, or the one you had previously installed. A quick trick to figure that out is to: -1. Check where you're running Gazebo from: +1. Check where you're running Gazebo-classic from: which gazebo @@ -154,7 +154,7 @@ had previously installed. A quick trick to figure that out is to: /usr/local/bin/gazebo -1. Now check where you're installing Gazebo to. You can do this by re-running +1. Now check where you're installing Gazebo-classic to. You can do this by re-running install and looking for the install location, for example: cd ~/code/gazebo/build diff --git a/guided_a/tutorial3.md b/guided_a/tutorial3.md index 898a8c54..dd5d1401 100644 --- a/guided_a/tutorial3.md +++ b/guided_a/tutorial3.md @@ -61,7 +61,7 @@ from doxygen comments in C++ header files. ## Workflow example -You've previously built and run Gazebo locally, but you've never made any changes +You've previously built and run Gazebo-classic locally, but you've never made any changes to the source code. Let's go through a simple example of how you'd change something in the source code for the first time. @@ -73,8 +73,8 @@ For this example, let's pretend that we want to change the label which says 1. Before making changes to the code, it's always a good idea to make sure you're -running the latest Gazebo code. Let's move to the branch we want to target. Let's -say we want our change to be available from Gazebo 9 onwards, so we target +running the latest Gazebo-classic code. Let's move to the branch we want to target. Let's +say we want our change to be available from Gazebo-classic 9 onwards, so we target the `gazebo9` branch. Use the `git checkout` command to update your workspace to that branch: @@ -87,14 +87,14 @@ that branch: git pull https://github.com/osrf/gazebo 1. Now your local branch is in sync with the official repository. Let's build -and install Gazebo before making any changes: +and install Gazebo-classic before making any changes: cd build cmake .. make -j4 sudo make install -1. Check that Gazebo runs fine (it's a good idea to run Gazebo in verbose mode +1. Check that Gazebo-classic runs fine (it's a good idea to run Gazebo-classic in verbose mode to check if any errors happened): gazebo --verbose @@ -132,7 +132,7 @@ displayed within a widget that tells time. So let's open that file: sudo make install -1. If everything went well, let's open Gazebo from any terminal and check that the +1. If everything went well, let's open Gazebo-classic from any terminal and check that the label has been successfully changed: gazebo --verbose diff --git a/guided_a/tutorial4.md b/guided_a/tutorial4.md index dd0f1bb7..4bf0d3a0 100644 --- a/guided_a/tutorial4.md +++ b/guided_a/tutorial4.md @@ -13,7 +13,7 @@ features. If you're making changes to Gazebo, you should make sure it doesn't break any existing tests. If you're adding features, you should add tests to make sure other people don't break them in the future. -Gazebo uses [GTest](http://code.google.com/p/googletest) for general testing +Gazebo-classic 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: @@ -75,14 +75,14 @@ always possible due to complexity and time constraints. Try to write as complete of a test suite as possible, and use the coverage analysis tools as guide. -Gazebo has a build target called `make coverage` that will produce a code +Gazebo-classic has a build target called `make coverage` that will produce a code coverage report. Here are the steps to run coverage: 1. Install [lcov](http://ltp.sourceforge.net/coverage/lcov.php): sudo apt install lcov -1. In your `build` folder, compile Gazebo with `-DCMAKE_BUILD_TYPE=coverage` +1. In your `build` folder, compile Gazebo-classic with `-DCMAKE_BUILD_TYPE=coverage` cd ~/code/gazebo/build cmake -DCMAKE_BUILD_TYPE=coverage .. @@ -132,7 +132,7 @@ the style checker: sudo apt-get install cppcheck -1. Run the following script from the root of the Gazebo sources: +1. Run the following script from the root of the Gazebo-classic sources: cd ~/code/gazebo sh tools/code_check.sh diff --git a/guided_a/tutorial5.md b/guided_a/tutorial5.md index 69778515..d97f569c 100644 --- a/guided_a/tutorial5.md +++ b/guided_a/tutorial5.md @@ -4,7 +4,7 @@ You've come a long way. On previous tutorials you learned how to make changes to Gazebo's codebase locally in your computer. On this last tutorial of the series, you will learn how to integrate -your code into the official Gazebo repository! +your code into the official Gazebo-classic repository! ## Choosing an issue @@ -16,7 +16,7 @@ On GitHub, there is a list of "issues", which may be bugs or feature requests for each repository. Here are the links to the issue lists for each Gazebo-related repository: -* [All Gazebo issues](https://github.com/osrf/gazebo/issues) +* [All Gazebo-classic issues](https://github.com/osrf/gazebo/issues) * [All SDFormat issues](https://github.com/osrf/sdformat/issues) * [All Ignition Math issues](https://github.com/ignitionrobotics/ign-math/issues) * [All Ignition Transport issues](https://github.com/ignitionrobotics/ign-transport/issues) @@ -24,12 +24,12 @@ for each Gazebo-related repository: ### Issues for new developers -Among these issues, the Gazebo core team marks some of them with the label +Among these issues, the Gazebo-classic core team marks some of them with the label `good first issue`. These are issues which are considered good first issues for first time contributors like you ;) Take a look at the list and see if you find anything that's interesting to you. -* [Gazebo issues for new developers](https://github.com/osrf/gazebo/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) +* [Gazebo-classic issues for new developers](https://github.com/osrf/gazebo/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) * [SDFormat issues for new developers](https://github.com/osrf/sdformat/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) * [Ignition Math issues for new developers](https://github.com/ignitionrobotics/ign-math/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) * [Ignition Transport issues for new developers](https://github.com/ignitionrobotics/ign-transport/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) @@ -66,7 +66,7 @@ results of your search are: In this case, it's recommended you create a new issue yourself, explaining why you think that's an issue and how you plan on fixing it. Someone from - the community or from the Gazebo core team might comment on it shortly, + the community or from the Gazebo-classic core team might comment on it shortly, with tips on how to proceed, or maybe pointing you to other related issues you might have missed. @@ -118,7 +118,7 @@ branch we're currently at with the `git branch` command: 1. If you've been following the tutorials, you should now be at `gazebo9`. -1. It was mentioned earlier that different Gazebo releases live in different +1. It was mentioned earlier that different Gazebo-classic releases live in different branches. 1. If you're fixing a bug on an existing release, you'll want to start @@ -147,7 +147,7 @@ will do your magic! Use the tools you were introduced to in this series to fix the issue you chose to address. 1. If you get stuck at any time, you're welcome to ask questions on -[Gazebo Answers](http://answers.gazebosim.org/) or on the issue you're trying +[Gazebo-classic Answers](http://answers.gazebosim.org/) or on the issue you're trying to fix. 1. After you've made a few changes, be sure to "commit" your progress so it @@ -178,7 +178,7 @@ that the new branch is there. ## Make a pull request It's time to put your code through code review. You will request that the -Gazebo team pull your changes into the official repository through a +Gazebo-classic team pull your changes into the official repository through a "pull request". Here is the list of pull requests currently open for Gazebo: [https://github.com/osrf/gazebo/pulls](https://github.com/osrf/gazebo/pulls) @@ -187,7 +187,7 @@ It's a good idea to take a look at a couple of [pull requests which have been accepted](https://github.com/osrf/gazebo/pulls?q=is%3Apr+is%3Amerged) in the past so you get an idea of how the process works. -You can create a pull request for Gazebo on this link: +You can create a pull request for Gazebo-classic on this link: [https://github.com/osrf/gazebo/pulls/new](https://github.com/osrf/gazebo/pulls/new) @@ -200,6 +200,6 @@ pull request so we can give you extra guidance ;) At least two other people have to approve your pull request before it can be merged. Be responsive to any questions and comments and adapt your code accordingly. -Once it is merged, you're done! You've contributed to Gazebo and your code will +Once it is merged, you're done! You've contributed to Gazebo-classic and your code will be part of the next release! Congratulations! diff --git a/guided_b/tutorial1.md b/guided_b/tutorial1.md index 3e3fef2f..4a35da0f 100644 --- a/guided_b/tutorial1.md +++ b/guided_b/tutorial1.md @@ -6,17 +6,17 @@ features. Each tutorial builds upon the last, so we recommend following the tutorials in order. -These tutorials are intended for those new to Gazebo and/or folks with **no programming or Linux experience**. +These tutorials are intended for those new to Gazebo-classic and/or folks with **no programming or Linux experience**. # What is Gazebo? # -Gazebo is a 3D dynamic simulator with the ability to accurately and +Gazebo-classic is a 3D dynamic simulator with the ability to accurately and efficiently simulate populations of robots in complex indoor and outdoor -environments. While similar to game engines, Gazebo offers physics +environments. While similar to game engines, Gazebo-classic offers physics simulation at a much higher degree of fidelity, a suite of sensors, and interfaces for both users and programs. -Typical uses of Gazebo include: +Typical uses of Gazebo-classic include: * testing robotics algorithms, @@ -24,7 +24,7 @@ Typical uses of Gazebo include: * performing regression testing with realistic scenarios -A few key features of Gazebo include: +A few key features of Gazebo-classic include: * multiple physics engines, @@ -36,7 +36,7 @@ A few key features of Gazebo include: # System requirements # -Gazebo is currently best used on [Ubuntu](http://www.ubuntu.com/download), a flavor of [Linux](https://en.wikipedia.org/wiki/Linux). You will need a computer that has: +Gazebo-classic is currently best used on [Ubuntu](http://www.ubuntu.com/download), a flavor of [Linux](https://en.wikipedia.org/wiki/Linux). You will need a computer that has: * A dedicated [GPU](https://en.wikipedia.org/wiki/Graphics_processing_unit), * Nvidia cards tend to work well in Ubuntu @@ -85,7 +85,7 @@ If you run into problems during the install, please see the [complete install in 1. Wait until the window disappears -# Run Gazebo # +# Run Gazebo-classic # 1. Press Alt-F2 2. Type "gazebo", and press Enter. diff --git a/guided_b/tutorial2.md b/guided_b/tutorial2.md index 78360f2d..ae1e8ffb 100644 --- a/guided_b/tutorial2.md +++ b/guided_b/tutorial2.md @@ -1,8 +1,8 @@ # User Interface -This is an introduction to the Gazebo Graphical User Interface, or GUI. We will learn interface basics like what the buttons do and how to navigate in the scene. +This is an introduction to the Gazebo-classic Graphical User Interface, or GUI. We will learn interface basics like what the buttons do and how to navigate in the scene. -By now, you should have Gazebo [installed](/tutorials?cat=guided_b&tut=guided_b1&branch=ftu2). +By now, you should have Gazebo-classic [installed](/tutorials?cat=guided_b&tut=guided_b1&branch=ftu2). Start by opening Gazebo. Press Alt-F2, type Gazebo, and then press Enter. @@ -12,7 +12,7 @@ This is what you should see: [[file:files/ftu3-boot-screen.png|800px]] -Note that the Gazebo interface consists of multiple sections, explained below. +Note that the Gazebo-classic interface consists of multiple sections, explained below. ### The Scene @@ -62,7 +62,7 @@ models selected in the Scene, the panel does not display any information. ### The Toolbars -The Gazebo interface has two Toolbars. One is located just above the Scene, and +The Gazebo-classic interface has two Toolbars. One is located just above the Scene, and the other is just below. #### Upper Toolbar @@ -111,7 +111,7 @@ known as the "real time factor" (RTF). It's the ratio of simulation time to real time. The RTF is a measure of how fast or slow your simulation is running compared to real time. -The state of the world in Gazebo is calculated once per iteration. You can +The state of the world in Gazebo-classic is calculated once per iteration. You can see the number of iterations on the right side of the bottom toolbar. Each iteration advances simulation by a fixed number of seconds, called the step size. By default, the step size is 1 ms. You can press @@ -122,7 +122,7 @@ a time using the step button. ### The Menu -Like most applications, Gazebo has an application menu up top. Some of the menu +Like most applications, Gazebo-classic has an application menu up top. Some of the menu options are duplicated in the Toolbars or as right-click context menu options in the Scene. Check out the various menus to familiarize yourself. diff --git a/guided_b/tutorial3.md b/guided_b/tutorial3.md index 18061148..85cfc8d6 100644 --- a/guided_b/tutorial3.md +++ b/guided_b/tutorial3.md @@ -3,14 +3,14 @@ Now we'll construct our simple robot. We'll make a wheeled vehicle and add a sensor that allows us to make the robot follow a blob (person). The Model Editor lets us construct simple models right in the Graphical User Interface (GUI). For more complex models, you'll need to learn how to write [SDF](http://sdformat.org/) files, and check out the tutorials on [building a robot](/tutorials?cat=build_robot). -But for now, we can do everything right in the Gazebo GUI! +But for now, we can do everything right in the Gazebo-classic GUI! ## Model Editor User Interface To enter the Model Editor, click on `Edit` in the menu bar and select `Model Editor`. Or, use the hotkeys, Ctrl+M. **Physics and the simulation will be paused** as soon as you are in the Model Editor. -The Model Editor interface looks similar to the main Gazebo UI but with some subtle differences. The left panel and top Toolbar now contain only widgets for editing and creating parts of the model. The bottom Toolbar that displays simulation data is hidden since the simulation is now paused. +The Model Editor interface looks similar to the main Gazebo-classic UI but with some subtle differences. The left panel and top Toolbar now contain only widgets for editing and creating parts of the model. The bottom Toolbar that displays simulation data is hidden since the simulation is now paused. [[file:files/gazebo8_model_editor_ui.png|800px]] @@ -221,7 +221,7 @@ The vehicle we have built so far is complete with all of the physical and sensor 1. The plugin we are going to use is called `libFollowerPlugin.so` so enter this in the `Filename` field. The filename corresponds to the actual filename of the plugin library stored on your local machine. It exists in the form of a dynamically linked shared object library, hence the naming convention and the - extension `.so` (on Linux). Do not worry if you are using Gazebo on other operating systems as the extension will be automatically replaced with the correct one. + extension `.so` (on Linux). Do not worry if you are using Gazebo-classic on other operating systems as the extension will be automatically replaced with the correct one. [[file:files/ftu4-model_plugin_inspector_done.png|400px]] @@ -238,7 +238,7 @@ The vehicle we have built so far is complete with all of the physical and sensor [[file:files/ftu4-save_as.png|400px]] -1. Exit the Model Editor by going to `File` and selecting `Exit Model Editor`. Gazebo should now switch back to normal simulation mode. Hit the Play button to run the simulation. +1. Exit the Model Editor by going to `File` and selecting `Exit Model Editor`. Gazebo-classic should now switch back to normal simulation mode. Hit the Play button to run the simulation. [[file:files/ftu4-exit.png|600px]] diff --git a/guided_i/tutorial1.md b/guided_i/tutorial1.md index 1d274631..588f7572 100644 --- a/guided_i/tutorial1.md +++ b/guided_i/tutorial1.md @@ -4,7 +4,7 @@ Welcome to the Intermediate Module! This module will guide you through the process of creating a new simulation feature and contributing the feature to Gazebo. -We assume you are familiar with using Gazebo and Linux. We also assume that +We assume you are familiar with using Gazebo-classic and Linux. We also assume that you are an expert tutorial reader (read everything carefully, and completely). @@ -16,7 +16,7 @@ walk through 1. contributing the model to Gazebo's model database, 1. improving the model's appearance and data output, 1. controlling the model using a plugin, and -1. visualizing the sensor data in Gazebo and RViz. +1. visualizing the sensor data in Gazebo-classic and RViz. Each of the above topics will be covered in separate tutorials. The rest of this tutorial will focus on the creation of the Velodyne SDF model. @@ -130,7 +130,7 @@ Based on the Velodyne documentation, we will create a sensor that has: ``` 1. When building a new model, it is a good idea to periodically try out small -changes. Start Gazebo paused so that you can +changes. Start Gazebo-classic paused so that you can view the model without the physics engine altering the model's pose. There are also a few other graphical tools that can assist the development process, which we will cover over the course of this tutorial. @@ -157,7 +157,7 @@ as moments of inertia. The physics engine uses inertia information to calculate how a model will behave when forces act upon it. A model with incorrect, or no, inertia values will behave in a strange manner. -1. Start by visualizing the current inertia values. With Gazebo running, +1. Start by visualizing the current inertia values. With Gazebo-classic running, right-click on the Velodyne and select ```View->Inertia```. This will causes two purple boxes to appear. @@ -232,7 +232,7 @@ list of joints can be found on the [SDF website](http://sdformat.org/spec?ver=1.6&elem=joint#joint_type). Of course, it is possible to visualize joints. With -Gazebo running, Right click on a model, and choose ```View->Joints```. +Gazebo-classic running, Right click on a model, and choose ```View->Joints```. Joints are often located within a model, so you may have to make a model transparent to see the joint visualization (Right click on the model and select ```View->Transparent```). @@ -302,7 +302,7 @@ addition of the sensor. A sensor is used to generate data, from the environment or a model. In this section we'll add a `ray` sensor to the Velodyne model. A `ray` sensor in -Gazebo consists of one or more beams that generate distance, and potentially +Gazebo-classic consists of one or more beams that generate distance, and potentially intensity, data. A `ray` sensor consists of one `` and one `` SDF element. The `` element defines the layout and number of beams, and the `` element defines properties of an individual beam. diff --git a/guided_i/tutorial2.md b/guided_i/tutorial2.md index 5236ab51..46300e10 100644 --- a/guided_i/tutorial2.md +++ b/guided_i/tutorial2.md @@ -13,7 +13,7 @@ artist, or contact the manufacturer directly. Velodyne has a [STEP file](http://velodynelidar.com/docs/drawings/HDL32E_Outline_Model.STEP) for the HDL-32 located on [their website](http://velodynelidar.com). -Gazebo can only use STL, OBJ or Collada files, so we'll have to convert this +Gazebo-classic can only use STL, OBJ or Collada files, so we'll have to convert this file and then add it to our model. # Step 1: Mesh Acquisition @@ -56,7 +56,7 @@ file and then add it to our model. [[file:files/blender_import.png|800px]] -1. The units are currently in millimeters, and Gazebo requires meters. The +1. The units are currently in millimeters, and Gazebo-classic requires meters. The model is also rotated so that the top is facing along the Y-axis, and we would like the top to face along the Z-axis. @@ -96,7 +96,7 @@ In the next section, we will cover adding these meshes to the SDF model. # Step 2: Create the model structure -Gazebo has defined a model directory structure that supports stand-alone +Gazebo-classic has defined a model directory structure that supports stand-alone models, and the ability to share models via an online model database. Review [this tutorial](/tutorials?tut=model_structure&cat=build_robot) for more information. @@ -106,7 +106,7 @@ section, we will create a Velodyne SDF model and add the two mesh files, `velodyne_base.dae` and `velodyne_top.dae`. 1. Create a new directory to hold the Velodyne model. We will place the - directory in `~/.gazebo/models`, since Gazebo knows to look there for + directory in `~/.gazebo/models`, since Gazebo-classic knows to look there for models and this will speed the developement process. ``` diff --git a/guided_i/tutorial3.md b/guided_i/tutorial3.md index 9c06a738..2ad14cfc 100644 --- a/guided_i/tutorial3.md +++ b/guided_i/tutorial3.md @@ -10,7 +10,7 @@ Every, or nearly every, sensor has noise in the output. Cameras can have chromatic aberrations, sonars multi-path effects, and lasers incorrect distance readings. We have to add noise to the data generated in simulation in order to more closely match the type of data a real sensor produces. -Gazebo has a built in noise model that can apply Gaussian noise to a variety +Gazebo-classic has a built in noise model that can apply Gaussian noise to a variety of sensors. While Gaussian noise may not be very realistic, it is better than nothing and serves as a good first-pass approximation of noise. Gaussian noise is also relatively easy to apply to data streams. diff --git a/guided_i/tutorial4.md b/guided_i/tutorial4.md index 1d0dbd90..0673c00e 100644 --- a/guided_i/tutorial4.md +++ b/guided_i/tutorial4.md @@ -8,7 +8,7 @@ In this section, we will learn how to contribute the model to the online databas # Contribute the model to the online-database Contributing our model to Gazebo's online-databse benefits you and every -other user of Gazebo. When the model is hosted on the database, Gazebo will +other user of Gazebo. When the model is hosted on the database, Gazebo-classic will automatically download it when requested. This means you don't have to manage which computers have the model and which do not. Additionally, other people can use your model. diff --git a/guided_i/tutorial5.md b/guided_i/tutorial5.md index 4fcafc3f..1c5b2735 100644 --- a/guided_i/tutorial5.md +++ b/guided_i/tutorial5.md @@ -8,7 +8,7 @@ If you skipped the previous tutorials then download the [model here.](https://gi # Plugin overview -A plugin is a C++ library that is loaded by Gazebo at runtime. A plugin has +A plugin is a C++ library that is loaded by Gazebo-classic at runtime. A plugin has access to Gazebo's API, which allows a plugin to perform a wide variety of tasks including moving objects, adding/removing objects, and accessing sensor data. @@ -17,7 +17,7 @@ More information on plugins is available in [these tutorials](/tutorials?cat=write_plugin). It is highly recommended that you look over these tutorials before proceeding. -# Install Gazebo headers +# Install Gazebo-classic headers On some operating systems the development package must be installed prior to building a plugin. ``` @@ -70,7 +70,7 @@ namespace gazebo /// \brief Constructor public: VelodynePlugin() {} - /// \brief The load function is called by Gazebo when the plugin is + /// \brief The load function is called by Gazebo-classic when the plugin is /// inserted into simulation /// \param[in] _model A pointer to the model that this plugin is /// attached to. @@ -83,7 +83,7 @@ namespace gazebo } }; - // Tell Gazebo about this plugin, so that Gazebo can call Load on this plugin. + // Tell Gazebo-classic about this plugin, so that Gazebo-classic can call Load on this plugin. GZ_REGISTER_MODEL_PLUGIN(VelodynePlugin) } #endif @@ -171,9 +171,9 @@ cmake .. make ``` -Run the world. Note: It is important to run gazebo from within the `build` directory so that Gazebo can find the plugin library. +Run the world. Note: It is important to run gazebo from within the `build` directory so that Gazebo-classic can find the plugin library. -1. Gazebo version < 6 +1. Gazebo-classic version < 6 ``` cd ~/velodyne_plugin/build @@ -181,7 +181,7 @@ Run the world. Note: It is important to run gazebo from within the `build` dire gazebo ../velodyne.world ``` -1. Gazebo version >= 6 +1. Gazebo-classic version >= 6 ``` cd ~/velodyne_plugin/build @@ -339,9 +339,9 @@ communication. The function approach would create a new public function that adjusts the velocity. For this to work, a new plugin would inherit from our current -plugin. The child plugin would be instantiated by Gazebo instead of our +plugin. The child plugin would be instantiated by Gazebo-classic instead of our current plugin, and would control the velocity by calling our function. This -type of approach is most often used when interfacing Gazebo to ROS. +type of approach is most often used when interfacing Gazebo-classic to ROS. Due to the simplicity of our plugin, it's easy to implement both simultaneously. @@ -521,7 +521,7 @@ simultaneously. private: common::PID pid; }; - // Tell Gazebo about this plugin, so that Gazebo can call Load on this plugin. + // Tell Gazebo-classic about this plugin, so that Gazebo-classic can call Load on this plugin. GZ_REGISTER_MODEL_PLUGIN(VelodynePlugin) } #endif diff --git a/guided_i/tutorial6.md b/guided_i/tutorial6.md index 29c42749..d6e9a0f2 100644 --- a/guided_i/tutorial6.md +++ b/guided_i/tutorial6.md @@ -1,7 +1,7 @@ # Recap Our Velodyne sensor is fully functional, but we don't have any hooks to -a robot middleware, like ROS. One of the benefits of using Gazebo with ROS +a robot middleware, like ROS. One of the benefits of using Gazebo-classic with ROS is that it's easy to switch between the real-world and the simulated. In order to make this happen, we need to have our sensor play nicely with the ROS ecosystem. @@ -9,7 +9,7 @@ ROS ecosystem. # Add ROS transport We will modify our current plugin to include the ROS transport mechanism, -in a similar manner to how we add the Gazebo transport mechanism in the +in a similar manner to how we add the Gazebo-classic transport mechanism in the previous tutorial. We are assuming that [ROS is currently installed](http://ros.org/install) on @@ -162,7 +162,7 @@ your system. # Control Velodyne from ROS -We can now load the Gazebo plugin as usual, and it will listen on ROS topic +We can now load the Gazebo-classic plugin as usual, and it will listen on ROS topic for incoming float messages. These messages will then be used to set the Velodyne's rotational speed. diff --git a/gzweb_development/tutorial.md b/gzweb_development/tutorial.md index c23a676c..5391ddee 100644 --- a/gzweb_development/tutorial.md +++ b/gzweb_development/tutorial.md @@ -57,7 +57,7 @@ GzWeb makes use of the # C++ development -GzWeb communicates with `gzserver` by publishing and subscribing to Gazebo topics. +GzWeb communicates with `gzserver` by publishing and subscribing to Gazebo-classic topics. ## Workflow diff --git a/gzweb_development/tutorial_1.9.md b/gzweb_development/tutorial_1.9.md index c2dee9bf..b2d6e0a9 100644 --- a/gzweb_development/tutorial_1.9.md +++ b/gzweb_development/tutorial_1.9.md @@ -30,7 +30,7 @@ To install required Grunt packages: # C++ development -Gzweb communicates with `gzserver` by publishing and subscribing to Gazebo topics. +Gzweb communicates with `gzserver` by publishing and subscribing to Gazebo-classic topics. ## Work Flow: diff --git a/gzweb_install/tutorial.md b/gzweb_install/tutorial.md index 0e7d4acd..23589325 100644 --- a/gzweb_install/tutorial.md +++ b/gzweb_install/tutorial.md @@ -6,13 +6,13 @@ on a web browser. # Dependencies -The main dependencies for GzWeb are the Gazebo development libraries, version 9 or +The main dependencies for GzWeb are the Gazebo-classic development libraries, version 9 or greater, and NodeJS version 6 or greater. Take a look at [these tutorials](http://gazebosim.org/install) to choose the Gazebo installation that best fits your case. The simplest approach would be -to install Gazebo 9 as follows: +to install Gazebo-classic 9 as follows: ~~~ sudo apt install gazebo9 libgazebo9-dev @@ -37,7 +37,7 @@ Next install `nodejs` and `npm` using node's version manager `nvm`: nvm install 8 ~~~ -> You may run into conflict with the libssl version needed by Gazebo and nodejs when trying to install using `apt` on Ubuntu. +> You may run into conflict with the libssl version needed by Gazebo-classic and nodejs when trying to install using `apt` on Ubuntu. So the recommended way of installation is to use `nvm`. # Build GzWeb @@ -51,7 +51,7 @@ So the recommended way of installation is to use `nvm`. cd ~/gzweb git checkout gzweb_1.4.1 -1. The first time you build, you'll need to gather all the Gazebo models which +1. The first time you build, you'll need to gather all the Gazebo-classic models which you want to simulate in the right directory ('http/client/assets') and prepare them for the web. @@ -79,7 +79,7 @@ So the recommended way of installation is to use `nvm`. ## Options * To skip downloading models from the model database and grab only local models - in your Gazebo model path, do: + in your Gazebo-classic model path, do: npm run deploy --- -m local @@ -117,11 +117,11 @@ So the recommended way of installation is to use `nvm`. Running GzWeb involves the following pieces: -* `gzserver` running the headless Gazebo simulation (runs by default on +* `gzserver` running the headless Gazebo-classic simulation (runs by default on http://127.0.0.1:11345) * GzWeb's NodeJS server which communicates with `gzserver` using - [Gazebo Transport](/tutorials?tut=topics_subscribed&cat=transport). + [Gazebo-classic Transport](/tutorials?tut=topics_subscribed&cat=transport). It works as a bridge between the Javascript and the C++ code. * An HTTP server which serves static content such as models and website assets @@ -139,7 +139,7 @@ Start them as follows: gzserver --verbose - > **Tip**: see the port where the Gazebo master is communicating, such as + > **Tip**: see the port where the Gazebo-classic master is communicating, such as `[Msg] Connected to gazebo master @ http://127.0.0.1:11345` 1. On another terminal, from your GzWeb directory, run the following command to @@ -197,6 +197,6 @@ Start them as follows: ~/gzweb/tools/gzcoarse.cc:18:17: fatal error: gts.h : no such file or directory, #include - A: It seems that your Gazebo installation didn't install GTS headers. Try installing them manually: + A: It seems that your Gazebo-classic installation didn't install GTS headers. Try installing them manually: sudo apt-get install libgts-dev diff --git a/gzweb_install/tutorial_1.9.md b/gzweb_install/tutorial_1.9.md index f0b4c5c1..d95959a5 100644 --- a/gzweb_install/tutorial_1.9.md +++ b/gzweb_install/tutorial_1.9.md @@ -43,11 +43,11 @@ Gzweb is a graphical interface which communicates with gzserver. To use ~~~ cd ~/gzweb - # Note for Gazebo versions < 7, please use the gzweb_1.2.0 branch + # Note for Gazebo-classic versions < 7, please use the gzweb_1.2.0 branch git checkout gzweb_1.3.0 ~~~ - 1. The first time you build, you'll need to gather all the Gazebo models in the right directory and prepare them for the web. Before running the deploy script, you'll need to source the Gazebo setup.sh file: + 1. The first time you build, you'll need to gather all the Gazebo-classic models in the right directory and prepare them for the web. Before running the deploy script, you'll need to source the Gazebo-classic setup.sh file: >If you installed gazebo via deb packages: @@ -73,11 +73,11 @@ Gzweb is a graphical interface which communicates with gzserver. To use ./deploy.sh -m ~~~ - >Note: the `-m` flag tells the deploy script to grab models from the model database and any other models in your Gazebo paths. For all subsequent builds, the `-m` flag will not be needed. The process will also try to generate thumbnails, see note on thumbnails below. + >Note: the `-m` flag tells the deploy script to grab models from the model database and any other models in your Gazebo-classic paths. For all subsequent builds, the `-m` flag will not be needed. The process will also try to generate thumbnails, see note on thumbnails below. ## Options -* To skip downloading models from the model database and grab only local models in your Gazebo model path, do: +* To skip downloading models from the model database and grab only local models in your Gazebo-classic model path, do: ./deploy.sh -m local @@ -174,6 +174,6 @@ Gzweb is a graphical interface which communicates with gzserver. To use ~/gzweb/tools/gzcoarse.cc:18:17: fatal error: gts.h : no such file or directory, #include - A: It seems that your Gazebo installation didn't install GTS headers. Try installing them manually: + A: It seems that your Gazebo-classic installation didn't install GTS headers. Try installing them manually: sudo apt-get install libgts-dev diff --git a/gzweb_install/tutorial_7.md b/gzweb_install/tutorial_7.md index 1bf084b9..6d2f4bcf 100644 --- a/gzweb_install/tutorial_7.md +++ b/gzweb_install/tutorial_7.md @@ -6,13 +6,13 @@ on a web browser. # Dependencies -The main dependencies for GzWeb are the Gazebo development libraries, version 7 or +The main dependencies for GzWeb are the Gazebo-classic development libraries, version 7 or greater, and NodeJS version 4 up to version 8. Take a look at [these tutorials](http://gazebosim.org/install) to choose the Gazebo installation that best fits your case. The simplest approach would be -to install Gazebo 7 as follows: +to install Gazebo-classic 7 as follows: ~~~ sudo apt install gazebo7 libgazebo7-dev @@ -39,7 +39,7 @@ sudo apt install libjansson-dev nodejs npm nodejs-legacy libboost-dev imagemagic cd ~/gzweb git checkout gzweb_1.4.0 -1. The first time you build, you'll need to gather all the Gazebo models which +1. The first time you build, you'll need to gather all the Gazebo-classic models which you want to simulate in the right directory ('http/client/assets') and prepare them for the web. @@ -67,7 +67,7 @@ sudo apt install libjansson-dev nodejs npm nodejs-legacy libboost-dev imagemagic ## Options * To skip downloading models from the model database and grab only local models - in your Gazebo model path, do: + in your Gazebo-classic model path, do: npm run deploy --- -m local @@ -105,11 +105,11 @@ sudo apt install libjansson-dev nodejs npm nodejs-legacy libboost-dev imagemagic Running GzWeb involves the following pieces: -* `gzserver` running the headless Gazebo simulation (runs by default on +* `gzserver` running the headless Gazebo-classic simulation (runs by default on http://127.0.0.1:11345) * GzWeb's NodeJS server which communicates with `gzserver` using - [Gazebo Transport](/tutorials?tut=topics_subscribed&cat=transport). + [Gazebo-classic Transport](/tutorials?tut=topics_subscribed&cat=transport). It works as a bridge between the Javascript and the C++ code. * An HTTP server which serves static content such as models and website assets @@ -127,7 +127,7 @@ Start them as follows: gzserver --verbose - > **Tip**: see the port where the Gazebo master is communicating, such as + > **Tip**: see the port where the Gazebo-classic master is communicating, such as `[Msg] Connected to gazebo master @ http://127.0.0.1:11345` 1. On another terminal, from your GzWeb directory, run the following command to @@ -185,6 +185,6 @@ Start them as follows: ~/gzweb/tools/gzcoarse.cc:18:17: fatal error: gts.h : no such file or directory, #include - A: It seems that your Gazebo installation didn't install GTS headers. Try installing them manually: + A: It seems that your Gazebo-classic installation didn't install GTS headers. Try installing them manually: sudo apt-get install libgts-dev diff --git a/haptix_comm/tutorial.md b/haptix_comm/tutorial.md index 564268c4..407df62c 100644 --- a/haptix_comm/tutorial.md +++ b/haptix_comm/tutorial.md @@ -137,7 +137,7 @@ trajectory in Gazebo. The HAPTIX C API is composed of five C function calls: `hx_connect()`, `hx_robot_info()`, `hx_update()`, `hx_read_sensors()`, and `hx_close()`. `hx_connect()` and `hx_close()` are -optional for the Gazebo simulator, but are included for compatibility with MuJoCo. +optional for the Gazebo-classic simulator, but are included for compatibility with MuJoCo. `hx_robot_info()` requests information from a given device. In this tutorial, our device is a hand simulated in Gazebo. Note that this call @@ -171,11 +171,11 @@ state has been received. ## Troubleshooting -### I can not connect the Windows client with Gazebo Linux Server +### I can not connect the Windows client with Gazebo-classic Linux Server Usually you will receive a message from the command line launched by Visual Studio with an error message `hx_robot_info() Service call timed out`. This -means that the communication to the Gazebo Linux server failed. +means that the communication to the Gazebo-classic Linux server failed. **First check:** Are both machines in the same network and can reach each other? Simply using the ping command from both (windows command line and Linux shell), @@ -183,7 +183,7 @@ should be enough to check connectivity. If it is not working, there is a problem in network configuration, be sure that both are connected to the same network. **Second check:** Is the communication layer using the right network interface? -Double check that you have set the `IGN_IP` properly in **both** Gazebo Linux server +Double check that you have set the `IGN_IP` properly in **both** Gazebo-classic Linux server and Windows. In Windows this can be done from the Windows command line `echo %IGN_IP%`. To be completely sure, logout from your user session, login again and open Visual Studio. diff --git a/haptix_install/tutorial.md b/haptix_install/tutorial.md index 0f40e02b..58b9346f 100644 --- a/haptix_install/tutorial.md +++ b/haptix_install/tutorial.md @@ -2,8 +2,8 @@ The HAPTIX project simulates advanced robotic prosthetic limbs to allow researchers and developers to test their control software before running on the -real hardware. The HAPTIX setup is composed of a Gazebo simulator, a client -library and a client controller. The Gazebo simulator runs on a Linux machine, +real hardware. The HAPTIX setup is composed of a Gazebo-classic simulator, a client +library and a client controller. The Gazebo-classic simulator runs on a Linux machine, whereas the HAPTIX client library and the client controller can run on Linux and Windows hosts. This tutorial will guide your through the installation of Gazebo and the HAPTIX client library. Check out the rest of the HAPTIX tutorials for @@ -11,10 +11,10 @@ instructions on how to create your own hand controller. [[file:files/haptix_overview.png|800px]] -# Gazebo installation +# Gazebo-classic installation **Note: This section is only required if you do not yet have a Linux server -running Gazebo with the HAPTIX packages.** +running Gazebo-classic with the HAPTIX packages.** Before installing Gazebo, you need a machine with Ubuntu 14.04 64-bit installed. Once your Linux machine is ready, open up a terminal and run the @@ -24,14 +24,14 @@ following command: wget -O /tmp/haptix_gazebo_install.sh https://osrf-distributions.s3.amazonaws.com/haptix/haptix_gazebo_install.sh; sudo sh /tmp/haptix_gazebo_install.sh ~~~ -You can test your Gazebo installation by running the next +You can test your Gazebo-classic installation by running the next command in your terminal: ~~~ gazebo worlds/arat.world ~~~ -Gazebo will load a manipulation environment with a right Modular Prosthetic +Gazebo-classic will load a manipulation environment with a right Modular Prosthetic Limb (MPL). Alternatively, you can load a left arm by typing: ~~~ @@ -86,14 +86,14 @@ Click on `Edit the system environment variables`, and then, click on the button section to create a new environment variable with name `IGN_IP`. **Enter the IPv4 Address mentioned above**. -Now, we want to **create a partition** to group your Gazebo machine with all the +Now, we want to **create a partition** to group your Gazebo-classic machine with all the related machines (e.g.: your MATLAB/Octave/Visual Studio development machine). This is important because if you decide to later run a second or third Gazebo instance on the same network, you will get crosstalk if there is no partition. Click on the `New` button again and create a new environment variable with name `IGN_PARTITION`. Enter a name like `gazebo1`. Repeat this process on any Windows -machine that you plan to use with this Gazebo instance. +machine that you plan to use with this Gazebo-classic instance. ## Installing on Linux @@ -176,7 +176,7 @@ version of the simulator; the other is the version of the client SDK. ###Simulator version -To check the simulator version: Run Gazebo by either double-clicking the +To check the simulator version: Run Gazebo-classic by either double-clicking the `haptixStart` desktop icon, or running the following command in a terminal. ~~~ @@ -229,7 +229,7 @@ In this case, the client SDK version is 0.6.0. ##Version compatiblity -To ensure correct behavior between the Gazebo simulator and the client +To ensure correct behavior between the Gazebo-classic simulator and the client library SDK, you should check that you are using compatible versions of the two packages. The following table summarizes compatible combinations: diff --git a/haptix_logging/tutorial.md b/haptix_logging/tutorial.md index 7ff06fa7..4355caa9 100644 --- a/haptix_logging/tutorial.md +++ b/haptix_logging/tutorial.md @@ -1,6 +1,6 @@ # Overview -This tutorial will explain how to use the Gazebo logging capabilities for +This tutorial will explain how to use the Gazebo-classic logging capabilities for saving your simulation episode on disk and being able to reproduce it afterwards. @@ -8,17 +8,17 @@ We assume that you have already done the [installation step](/tutorials?tut=haptix_install&cat=haptix) and you are also familiar with the HAPTIX API. -# A Gazebo log file +# A Gazebo-classic log file -A Gazebo log file is a collection of State logs. State logs are recordings of +A Gazebo-classic log file is a collection of State logs. State logs are recordings of world state information from Gazebo. State includes pose, velocity, acceleration, -and forces applied to all links of all models. Gazebo will only record state +and forces applied to all links of all models. Gazebo-classic will only record state information for models that change over time. A state log file contains a header, the initial world description, and a time series of state. -# Enable Gazebo logging from the GUI +# Enable Gazebo-classic logging from the GUI -Start Gazebo and click on the top right icon of the menu bar when you are ready +Start Gazebo-classic and click on the top right icon of the menu bar when you are ready to start your logging. [[file:files/logging_1.png|800px]] @@ -35,7 +35,7 @@ subdirectory and a `state.log` file. Here is an example: ~/.gazebo/log/2013-07-25T07\:29\:05.122275/gzserver/state.log ~~~ -# Enable Gazebo logging from your C++ program +# Enable Gazebo-classic logging from your C++ program Follow the steps described in the [HAPTIX C-API tutorial](/tutorials?cat=haptix&tut=haptix_comm) @@ -60,7 +60,7 @@ and: When executed, this example should create a `/tmp/log/` directory containing a `state.log` file. -# Enable Gazebo logging from your MATLAB/Octave program +# Enable Gazebo-classic logging from your MATLAB/Octave program Follow the [HAPTIX Matlab and Octave API tutorial](/tutorials?cat=haptix&tut=haptix_matlab) diff --git a/haptix_luke_hand/tutorial.md b/haptix_luke_hand/tutorial.md index d4de3d85..5b2121fd 100644 --- a/haptix_luke_hand/tutorial.md +++ b/haptix_luke_hand/tutorial.md @@ -19,13 +19,13 @@ The model file will be provided in a zipped file that looks like Note that the generic haptix and simulation API documentation can be found [here](http://gazebosim.org/haptix/api). -### Installing Gazebo DEKA Luke hand model for handsim +### Installing Gazebo-classic DEKA Luke hand model for handsim ~~~ unzip Luke_Hand_Gazebo_vX.X.zip -d ~/.gazebo/models/ ~~~ -### Installing documentation for Gazebo DEKA Luke hand model +### Installing documentation for Gazebo-classic DEKA Luke hand model ~~~ unzip Luke_Hand_Gazebo_Doc_vX.X.zip -d /tmp/ @@ -37,7 +37,7 @@ To view documentation, open the following link in a browser: ## Running handsim with DEKA Luke hand model -To start Gazebo with the DEKA Luke hand model, type the following command +To start Gazebo-classic with the DEKA Luke hand model, type the following command in a terminal: ~~~ diff --git a/haptix_matlab/tutorial.md b/haptix_matlab/tutorial.md index 35736541..48e9a646 100644 --- a/haptix_matlab/tutorial.md +++ b/haptix_matlab/tutorial.md @@ -6,7 +6,7 @@ and Octave systems have the same API, but the steps to run each system differ sl We assume that you have already done the [installation step](/tutorials?tut=haptix_install&cat=haptix). -# Start the Gazebo simulation +# Start the Gazebo-classic simulation Double-click on the `haptixStart` desktop icon. @@ -90,7 +90,7 @@ trajectory in Gazebo. The HAPTIX Matlab/Octave API is composed of five functions: `hx_connect()`, `hx_robot_info()`, `hx_update()`, `hx_read_sensors()` and `hx_close()`. `hx_connect()` and `hx_close()` are -optional for the Gazebo simulator, but are included for compatibility with MuJoCo. +optional for the Gazebo-classic simulator, but are included for compatibility with MuJoCo. `hx_robot_info()` requests information from a given device. In this tutorial, our device is a hand simulated in Gazebo. Note that this call diff --git a/haptix_optitrack/tutorial.md b/haptix_optitrack/tutorial.md index e5b3b6a1..41e7ada0 100644 --- a/haptix_optitrack/tutorial.md +++ b/haptix_optitrack/tutorial.md @@ -1,10 +1,10 @@ # Overview -This tutorial describes how to configure the Optitrack motion tracking system for use with the HAPTIX Gazebo simulator. You will learn about each piece of equipment and how to calibrate the markers so that each component works properly. +This tutorial describes how to configure the Optitrack motion tracking system for use with the HAPTIX Gazebo-classic simulator. You will learn about each piece of equipment and how to calibrate the markers so that each component works properly. ## What you'll need All of the necessary items, including all software components, will be provided to participating HAPTIX teams. We are also providing links for any participants or hobbyists who want to create their own kit. -1. A Linux computer with the HAPTIX Gazebo simulator installed (see [here](/tutorials?cat=haptix&tut=haptix_install) for instructions). +1. A Linux computer with the HAPTIX Gazebo-classic simulator installed (see [here](/tutorials?cat=haptix&tut=haptix_install) for instructions). 1. A Windows computer or a Windows virtual machine (VM) with the Motive motion tracking software installed. HAPTIX team machines come pre-installed with a Windows VM that initializes on startup. (Motive software installation instructions are [here](https://www.naturalpoint.com/optitrack/downloads/motive.html)). @@ -51,7 +51,7 @@ Participating HAPTIX teams are provided with three motion tracking spheres attac [[file:files/spheres.png]] -These spheres will be attached to the corners of the monitor associated with the Gazebo machine. Adhere one to the top right corner of the monitor, one to the top left corner, and another to the middle of the right side. +These spheres will be attached to the corners of the monitor associated with the Gazebo-classic machine. Adhere one to the top right corner of the monitor, one to the top left corner, and another to the middle of the right side. [[file:files/monitor.png]] @@ -59,7 +59,7 @@ These spheres will be attached to the corners of the monitor associated with the If you received a premade set of tracking targets, download the Motive project file, [haptix_osrf.ttp](https://github.com/osrf/gazebo_tutorials/raw/master/haptix_optitrack/files/haptix_osrf.ttp) to the Desktop of the Windows machine. We are going to make a small modification to calibrate each component. ### Tracking rigid bodies -Make sure Gazebo is closed on Linux. On your Windows machine, make sure the Optitrack is plugged in via USB, and start the Motive software by clicking on the shortcut on your desktop. +Make sure Gazebo-classic is closed on Linux. On your Windows machine, make sure the Optitrack is plugged in via USB, and start the Motive software by clicking on the shortcut on your desktop. [[file:files/motive_icon.PNG]] @@ -109,7 +109,7 @@ If you are using Nvidia 3D glasses, put the head tracker on and hold your head s Hold the tracker as still as possible and click on "Create from Selection". Rename the rigid body "HeadTracker". -**Important: make sure the rigid body names are correct, otherwise Gazebo will not associate the motion tracking targets to the corresponding object in simulation!** +**Important: make sure the rigid body names are correct, otherwise Gazebo-classic will not associate the motion tracking targets to the corresponding object in simulation!** You should be able to move around the arm and head trackers and watch the positions change in the 3D view in Motive! @@ -122,7 +122,7 @@ Select "Save Project" under "File" in the top toolbar. Make sure it is saved to You should not need to modify the configuration in the future unless you change the placement of the individual markers on a tracker or unless you move the angle of the camera significantly. ## Starting Gazebo -Make sure the Optitrack is plugged in and then start Gazebo on the Linux machine +Make sure the Optitrack is plugged in and then start Gazebo-classic on the Linux machine by double-clicking on the `haptixStart` desktop icon. Put on the arm tracker and head tracker. Hold up your arm like the robot arm in simulation, and hold your head upright and straight. Then using your other hand, press `v`, `b` or `n` to unpause simulation. Wave your arm around to control the simulated arm. diff --git a/haptix_scoring_plugin/tutorial.md b/haptix_scoring_plugin/tutorial.md index 07fbdcad..c48a05b7 100644 --- a/haptix_scoring_plugin/tutorial.md +++ b/haptix_scoring_plugin/tutorial.md @@ -13,7 +13,7 @@ and we strongly recommend that you have completed the # Running the Simulation Example -To start Gazebo handsim scoring plugin example, run gazebo in terminal: +To start Gazebo-classic handsim scoring plugin example, run gazebo in terminal: ~~~ gazebo --verbose worlds/luke_hand.world @@ -168,7 +168,7 @@ side of the hand diagram used for contact sensor visualization. Note the `HaptixGUIPlugin::ScoringUpdate` function is spawned in its own thread [here](https://bitbucket.org/osrf/handsim/src/d8e8f7e996266a85dc15e63687d1c8ee15e4bab7/src/HaptixGUIPlugin.cc?at=default&fileviewer=file-view-default#HaptixGUIPlugin.cc-718). And the `HaptixGUIPlugin::OnSimEvents` function [referenced here](https://bitbucket.org/osrf/handsim/src/d8e8f7e996266a85dc15e63687d1c8ee15e4bab7/src/HaptixGUIPlugin.cc?at=default&fileviewer=file-view-default#HaptixGUIPlugin.cc-1560) [subscribes to state updates](https://bitbucket.org/osrf/handsim/src/d8e8f7e996266a85dc15e63687d1c8ee15e4bab7/src/HaptixGUIPlugin.cc?at=default&fileviewer=file-view-default#HaptixGUIPlugin.cc-463) published by the `SimEventsPlugin`. -For reference, the Gazebo SimEvents API documentation can be found +For reference, the Gazebo-classic SimEvents API documentation can be found [here](http://osrf-distributions.s3.amazonaws.com/gazebo/api/dev/classgazebo_1_1SimEventsPlugin.html). This plugin subscribes to gazebo topic `/gazebo/sim_events` to monitor for changes in the simulated spring joints. diff --git a/haptix_sim_api/tutorial.md b/haptix_sim_api/tutorial.md index 28857bb6..188cf87b 100644 --- a/haptix_sim_api/tutorial.md +++ b/haptix_sim_api/tutorial.md @@ -45,13 +45,13 @@ this tutorial. If it was moved or deleted, you can download it If you need to redownload it, make sure to place the script into the folder containing the HAPTIX MATLAB SDK, or on your MATLAB path. -To run the example, first make sure Gazebo is running (double-click on the desktop icon +To run the example, first make sure Gazebo-classic is running (double-click on the desktop icon or use the terminal). Open MATLAB and navigate to the HAPTIX SDK folder. Then type `hxs_example` into the command prompt. -Watch the Gazebo window as the script runs through each example API call. +Watch the Gazebo-classic window as the script runs through each example API call. ## Run the code: Octave on Linux Installing the `haptix-comm` package on Linux will install an `octave` folder to @@ -59,13 +59,13 @@ Installing the `haptix-comm` package on Linux will install an `octave` folder to used in this tutorial. If it was moved or deleted, you can download it [here](https://bitbucket.org/osrf/haptix-comm/raw/default/matlab/hxs_example.m) -To run the example, first make sure Gazebo is running (double-click on the desktop icon +To run the example, first make sure Gazebo-classic is running (double-click on the desktop icon or use the terminal). In a terminal, navigate to the aforementioned `haptix-comm/octave` folder and type `octave hxs_example.m`. -Watch the Gazebo window as the script runs through each example API call. +Watch the Gazebo-classic window as the script runs through each example API call. ## The code explained @@ -219,7 +219,7 @@ to drop through the table. We then set it back to the original collide mode. You can also specify a new name for the model and an initial position and orientation. To learn how to create a model in SDF, refer to the -[Gazebo model building tutorials](/tutorials?cat=build_robot) +[Gazebo-classic model building tutorials](/tutorials?cat=build_robot) or learn how to use the [model editor](/tutorials?cat=model_editor_top). `hxs_remove_model` removes the model with the matching name from the world. Note that diff --git a/haptix_tactors/tutorial.md b/haptix_tactors/tutorial.md index 8405cf69..8535736d 100644 --- a/haptix_tactors/tutorial.md +++ b/haptix_tactors/tutorial.md @@ -16,7 +16,7 @@ Hardware Software -------- -You will need a Linux machine with Gazebo and the handsim package. See [this tutorial](/tutorials?tut=haptix_install&cat=haptix) for installation instructions. +You will need a Linux machine with Gazebo-classic and the handsim package. See [this tutorial](/tutorials?tut=haptix_install&cat=haptix) for installation instructions. To program the Teensy USB board, you will need to install the [Arduino IDE](http://arduino.cc/en/Main/Software) and the [Teensyduino add-on](https://www.pjrc.com/teensy/teensyduino.html) for Arduino. @@ -211,7 +211,7 @@ cmake ..; make ~~~ -In a separate window, run the Gazebo HAPTIX simulator: +In a separate window, run the Gazebo-classic HAPTIX simulator: ~~~ gazebo worlds/arat.worlds diff --git a/haptix_unboxing/tutorial.md b/haptix_unboxing/tutorial.md index 9ebdc272..2e41a89b 100644 --- a/haptix_unboxing/tutorial.md +++ b/haptix_unboxing/tutorial.md @@ -25,7 +25,7 @@ There are two options to replicate the HAPTIX setup. One requires two physical c ## Two-computer setup -The two-computer HAPTIX system consists of both Linux computer and a Windows computer. Gazebo relies on Linux, while OptiTrack must run on Windows. A USB switch allows these two computers to share a single monitor, keyboard, and other peripherals. The following diagram depicts the connections between each component in the system. +The two-computer HAPTIX system consists of both Linux computer and a Windows computer. Gazebo-classic relies on Linux, while OptiTrack must run on Windows. A USB switch allows these two computers to share a single monitor, keyboard, and other peripherals. The following diagram depicts the connections between each component in the system. [[file:files/haptix_setup_diagram_final.svg]] @@ -73,7 +73,7 @@ For a one-computer setup, one Linux computer is required. A Windows virtual mach # Software setup -## Gazebo installation +## Gazebo-classic installation To install the full simulation environment, open a Terminal (under "Applications", "Accessories") and type: ~~~ @@ -89,7 +89,7 @@ sudo apt-get update sudo apt-get install handsim ~~~ -You can start Gazebo in the terminal by typing: +You can start Gazebo-classic in the terminal by typing: ~~~ gazebo --verbose worlds/arat.world @@ -121,7 +121,7 @@ On the desktop, you should see three icons. [[file:files/desktop.png]] -1. haptixStart: Double-click to launch the Gazebo prosthetic arm simulator. +1. haptixStart: Double-click to launch the Gazebo-classic prosthetic arm simulator. 1. haptixUpdate: Double-click to check for software updates and install them if found. @@ -176,11 +176,11 @@ You will need to restart your computer for the new drivers to take effect. 1. Make sure the stereo glasses are charged and turned on and the emitter is glowing dull green. -1. Double click on the Gazebo icon. You should see the Gazebo window come up, displaying the simulated prosthetic arm and manipulation environment. You should also see the stereo emitter change to bright green, indicating that stereo has been turned out. +1. Double click on the Gazebo-classic icon. You should see the Gazebo-classic window come up, displaying the simulated prosthetic arm and manipulation environment. You should also see the stereo emitter change to bright green, indicating that stereo has been turned out. 1. The screen should appear "blurry", as if there are two images on top of each other. -1. Put the glasses on. The Gazebo window should look 3D. +1. Put the glasses on. The Gazebo-classic window should look 3D. 1. You can use the keyboard to move the arm and the mouse to change the viewpoint. Or, you can use the Spacenav to control the arm and viewpoint position. Press the button on the Spacenav to toggle between arm and viewpoint. The number keys (1-5) will control pre-defined grasps (see the [teleop tutorial](/tutorials?cat=haptix&tut=haptix_teleop) for more information). @@ -202,4 +202,4 @@ You will need to restart your computer for the new drivers to take effect. If the Spacenav does not glow blue even if it is connected, or the terminal command does not work, contact OSRF support. -1. If Gazebo does not load or the arm is unresponsive to keyboard input, contact OSRF support. +1. If Gazebo-classic does not load or the arm is unresponsive to keyboard input, contact OSRF support. diff --git a/haptix_world_sim_api/tutorial.md b/haptix_world_sim_api/tutorial.md index cf87c520..2abf8d62 100644 --- a/haptix_world_sim_api/tutorial.md +++ b/haptix_world_sim_api/tutorial.md @@ -13,7 +13,7 @@ tutorials. The full world API documentation can be found [here](https://s3.amazonaws.com/osrf-distributions/haptix/api/0.7.1/haptix__sim_8h.html). -The documentation for building a Gazebo world using [SDF format](http://www.sdformat.org/) can be found [here](/tutorials?cat=build_world). +The documentation for building a Gazebo-classic world using [SDF format](http://www.sdformat.org/) can be found [here](/tutorials?cat=build_world). # Matlab Example @@ -89,7 +89,7 @@ Download tutorial files: - [custom_world.c](https://github.com/osrf/gazebo_tutorials/blob/master/haptix_world_sim_api/files/custom_world.c) -# Start Gazebo handsim simulation +# Start Gazebo-classic handsim simulation To run the example, start gazebo in terminal: diff --git a/hydra/tutorial.md b/hydra/tutorial.md index 2b930d89..6730e8cb 100644 --- a/hydra/tutorial.md +++ b/hydra/tutorial.md @@ -1,6 +1,6 @@ # Introduction -Gazebo supports the [Razer Hydra +Gazebo-classic supports the [Razer Hydra controller](http://en.wikipedia.org/wiki/Razer_Hydra). You will be able to use this motion and orientation detection controller to interact with your models in Gazebo. @@ -22,7 +22,7 @@ sudo cp 90-hydra.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules ~~~ -# Gazebo compilation with Razer Hydra support. +# Gazebo-classic compilation with Razer Hydra support. We need to install the optional `libusb` dependency. @@ -30,7 +30,7 @@ We need to install the optional `libusb` dependency. sudo apt-get install libusb-1.0-0-dev ~~~ -Once Hydra is configured and the extra dependency satisfied, you should be able to compile Gazebo from source with Hydra support. +Once Hydra is configured and the extra dependency satisfied, you should be able to compile Gazebo-classic from source with Hydra support. Follow [this](http://gazebosim.org/install) instructions to compile Gazebo. During the execution of the `cmake` command, you should see this message confirming that the SDK is found: @@ -40,7 +40,7 @@ Follow [this](http://gazebosim.org/install) instructions to compile Gazebo. Duri # Using Hydra within Gazebo. -Using Hydra in Gazebo requires two steps. The first step is to load the Hydra plugin in your world file. +Using Hydra in Gazebo-classic requires two steps. The first step is to load the Hydra plugin in your world file. ~~~ @@ -50,7 +50,7 @@ Using Hydra in Gazebo requires two steps. The first step is to load the Hydra pl This plugin will automatically publish messages on the topic `~/hydra`. The second step is to write a plugin that subscribes to the hydra topic and make something interesting. For this -tutorial, we are going to move a sphere by using the right joystick of Hydra. A `HydraDemoPlugin` is available in Gazebo in the `plugins/` directory. +tutorial, we are going to move a sphere by using the right joystick of Hydra. A `HydraDemoPlugin` is available in Gazebo-classic in the `plugins/` directory. Plugin code: @@ -175,7 +175,7 @@ Here is the complete world file of the tutorial (also available under ~~~ -It is time to run Gazebo and use the Hydra's right joystick to move the sphere. +It is time to run Gazebo-classic and use the Hydra's right joystick to move the sphere. Do not forget to plug your Hydra, and then: ~~~ diff --git a/hydra_gzjs_pub/tutorial.md b/hydra_gzjs_pub/tutorial.md index 80401d4d..10cf0908 100644 --- a/hydra_gzjs_pub/tutorial.md +++ b/hydra_gzjs_pub/tutorial.md @@ -35,7 +35,7 @@ The publisher code is located in the hydra_pub.js file ### Code explained -The first lines load the Gazebo C++ and the node-sixense modules into the Node V8 script engine, and creates and instance of the Gazebo class. +The first lines load the Gazebo-classic C++ and the node-sixense modules into the Node V8 script engine, and creates and instance of the Gazebo-classic class. ~~~ var hydra = require('node-sixense'); diff --git a/hydrodynamics/tutorial.md b/hydrodynamics/tutorial.md index 9dee9f1f..c1898506 100644 --- a/hydrodynamics/tutorial.md +++ b/hydrodynamics/tutorial.md @@ -73,7 +73,7 @@ Here is an example `BuoyancyPlugin` SDF: # Demo -Open the `underwater.world` environment with Gazebo paused: +Open the `underwater.world` environment with Gazebo-classic paused: ~~~ gazebo --verbose worlds/underwater.world -u @@ -81,7 +81,7 @@ gazebo --verbose worlds/underwater.world -u [[file:files/submarines.png | 600px]] -This world contains three submarines. When Gazebo is unpaused, the white +This world contains three submarines. When Gazebo-classic is unpaused, the white submarine will float to the top of the world, the black submarine will sink to the ground plane, and the yellow submarine will maintain a constant height if left undisturbed. diff --git a/import_mesh/tutorial.md b/import_mesh/tutorial.md index a0411b5c..c04ee524 100644 --- a/import_mesh/tutorial.md +++ b/import_mesh/tutorial.md @@ -2,7 +2,7 @@ This tutorial describes how to import 3D meshes into Gazebo. # Prepare the Mesh -Gazebo uses a right-hand coordinate system where +Z is up (vertical), +X is forward (into the screen), and +Y is to the left. +Gazebo-classic uses a right-hand coordinate system where +Z is up (vertical), +X is forward (into the screen), and +Y is to the left. **Reduce Complexity** @@ -14,7 +14,7 @@ Gazebo uses a right-hand coordinate system where +Z is up (vertical), +X is forw **Scale the mesh** - Gazebo uses the metric system. Many meshes (especially those from 3D warehouse), use English units. Use your favorite 3D editor to scale the mesh to a metric size. + Gazebo-classic uses the metric system. Many meshes (especially those from 3D warehouse), use English units. Use your favorite 3D editor to scale the mesh to a metric size. # Export the Mesh ### @@ -26,7 +26,7 @@ The easiest way to test a mesh is to create a simple world file [my_mesh.world]( -Then just launch Gazebo in the directory where is the file: +Then just launch Gazebo-classic in the directory where is the file: ~~~ gazebo my_mesh.world diff --git a/inertia/tutorial.md b/inertia/tutorial.md index 8ed8a007..fae95a66 100644 --- a/inertia/tutorial.md +++ b/inertia/tutorial.md @@ -21,7 +21,7 @@ For a guide on using SolidWorks, please refer to ## Mass The mass is most easily measured by weighing an object. -It is a scalar with default units in Gazebo of kilograms (kg). +It is a scalar with default units in Gazebo-classic of kilograms (kg). For a 3D uniform mesh, mass is computed by calculating the geometric volume [length3] and multiplying by density [mass / length3]. @@ -312,7 +312,7 @@ ie. `ixx + iyy >= izz`, `ixx + izz >= iyy` and `iyy + izz >= ixx`. To check if everything is done correctly, you can use Gazebo's GUI client. -* Using Gazebo standalone +* Using Gazebo-classic standalone 1. Run Gazebo gazebo @@ -320,7 +320,7 @@ To check if everything is done correctly, you can use Gazebo's GUI client. gz model -f my_robot.sdf -* Using Gazebo with ROS +* Using Gazebo-classic with ROS 1. Run Gazebo roslaunch gazebo_ros empty_world.launch @@ -334,7 +334,7 @@ To check if everything is done correctly, you can use Gazebo's GUI client. As soon as your model loads, pause the world and delete the ground_plane (this is not needed, but it usually makes debugging easier). -Go to the Gazebo menu and select `View->Inertia`. +Go to the Gazebo-classic menu and select `View->Inertia`. Every link should now display a purple box with green axes. The center of each box is aligned with the specified center of mass of its link. The sizes and orientations of the boxes correspond to unit-mass boxes with the same inertial behavior as their corresponding links. diff --git a/install_dependencies_from_source/tutorial-8.md b/install_dependencies_from_source/tutorial-8.md index beedfa59..1fe91121 100644 --- a/install_dependencies_from_source/tutorial-8.md +++ b/install_dependencies_from_source/tutorial-8.md @@ -2,7 +2,7 @@ This tutorial will go through the process of installing some of Gazebo's dependencies from source. The dependencies listed here are all maintained by -the Gazebo team and often new features in Gazebo are tied to new features in +the Gazebo-classic team and often new features in Gazebo-classic are tied to new features in these libraries. These libraries are: @@ -17,15 +17,15 @@ These libraries are: ## A bit of history All the libraries listed here are evolutions of libraries which were at some -point built within the Gazebo project itself. In an effort to make these -available for other projects and to make Gazebo more modular, they have been +point built within the Gazebo-classic project itself. In an effort to make these +available for other projects and to make Gazebo-classic more modular, they have been extracted from Gazebo. ### SDFormat #### SDF protocol -Gazebo uses the Simulation Description Format (SDF) protocol to describe every +Gazebo-classic uses the Simulation Description Format (SDF) protocol to describe every aspect of simulation. The SDF protocol is based on XML, you can take a look at its specification [here](http://sdformat.org/spec). The protocol consists of a series of (*.sdf) files. @@ -34,7 +34,7 @@ Current protocol versions available are 1.4, 1.5 and 1.6. #### SDFormat C++ library -Gazebo uses the SDFormat C++ library to parse the SDF protocol. +Gazebo-classic uses the SDFormat C++ library to parse the SDF protocol. > Both the SDF protocol and the SDFormat C++ parser are hosted in the same > repository and will be installed at the same time when performing an @@ -46,42 +46,42 @@ Gazebo uses the SDFormat C++ library to parse the SDF protocol. #### Versions -Gazebo has had a dependency on the SDFormat library (which automatically handles +Gazebo-classic has had a dependency on the SDFormat library (which automatically handles the SDF protocol supported) since early versions: -* Gazebo 1.9 - SDFormat > 1? (SDF protocol <= 1.4) -* Gazebo 2.2 - SDFormat > 1.4.7 and < 2.0 (SDF protocol <= 1.5) -* Gazebo 3 - SDFormat > 2.0.1 and < 3.0 (SDF protocol <= 1.5) -* Gazebo 4 - SDFormat > 2.0.1 and < 4.0 (SDF protocol <= 1.5) -* Gazebo 5 - SDFormat > 2.3.1 and < 4.0 (SDF protocol <= 1.5) -* Gazebo 6 - SDFormat > 3.1.1 and < 4.0 (SDF protocol <= 1.5) -* Gazebo 7 - SDFormat > 4.1.0 and < 5.0 (SDF protocol <= 1.6) -* Gazebo 8 - SDFormat 5.0 (SDF protocol <= 1.6) -* Gazebo 9 - SDFormat TBD +* Gazebo-classic 1.9 - SDFormat > 1? (SDF protocol <= 1.4) +* Gazebo-classic 2.2 - SDFormat > 1.4.7 and < 2.0 (SDF protocol <= 1.5) +* Gazebo-classic 3 - SDFormat > 2.0.1 and < 3.0 (SDF protocol <= 1.5) +* Gazebo-classic 4 - SDFormat > 2.0.1 and < 4.0 (SDF protocol <= 1.5) +* Gazebo-classic 5 - SDFormat > 2.3.1 and < 4.0 (SDF protocol <= 1.5) +* Gazebo-classic 6 - SDFormat > 3.1.1 and < 4.0 (SDF protocol <= 1.5) +* Gazebo-classic 7 - SDFormat > 4.1.0 and < 5.0 (SDF protocol <= 1.6) +* Gazebo-classic 8 - SDFormat 5.0 (SDF protocol <= 1.6) +* Gazebo-classic 9 - SDFormat TBD ### Ignition Math -Gazebo has a dependency on Ignition Math from version 6. +Gazebo-classic has a dependency on Ignition Math from version 6. -* Gazebo 6 - Ignition math 2.0 -* Gazebo 7 - Ignition math 2.4 -* Gazebo 8 - Ignition math 3 - The built-in gazebo::math library is completely deprecated. -* Gazebo 9 - Ignition math TBD - The built-in gazebo::math library is completely removed. +* Gazebo-classic 6 - Ignition math 2.0 +* Gazebo-classic 7 - Ignition math 2.4 +* Gazebo-classic 8 - Ignition math 3 - The built-in gazebo::math library is completely deprecated. +* Gazebo-classic 9 - Ignition math TBD - The built-in gazebo::math library is completely removed. ### Ignition Transport -Gazebo has a dependency on Ignition Transport from version 7. +Gazebo-classic has a dependency on Ignition Transport from version 7. -* Gazebo 7 - Ignition transport 1 or 2 -* Gazebo 8 - Ignition transport 3 -* Gazebo 9 - Ignition transport TBD +* Gazebo-classic 7 - Ignition transport 1 or 2 +* Gazebo-classic 8 - Ignition transport 3 +* Gazebo-classic 9 - Ignition transport TBD ### Ignition Messages -Gazebo has a dependency on Ignition Messages from version 8. +Gazebo-classic has a dependency on Ignition Messages from version 8. -* Gazebo 8 - Ignition msgs 0.4 -* Gazebo 9 - Ignition msgs TBD +* Gazebo-classic 8 - Ignition msgs 0.4 +* Gazebo-classic 9 - Ignition msgs TBD ## Remove packages to get a clean system @@ -93,7 +93,7 @@ like Debian or Ubuntu this can easily done by running: ## Build and install Ignition Math from source -SDFormat, Ignition Messages and Gazebo depend on the Ignition Math library. +SDFormat, Ignition Messages and Gazebo-classic depend on the Ignition Math library. 1. Install required dependencies: @@ -142,7 +142,7 @@ SDFormat, Ignition Messages and Gazebo depend on the Ignition Math library. ## Build and install SDFormat from source -Gazebo depends on the SDFormat package. +Gazebo-classic depends on the SDFormat package. 1. Install required dependencies (note that ign-math was left out): @@ -201,7 +201,7 @@ Gazebo depends on the SDFormat package. ## Build and install Ignition Messages from source -Gazebo and Ignition Transport depend on the Ignition Messages package. +Gazebo-classic and Ignition Transport depend on the Ignition Messages package. 1. Install required dependencies: @@ -249,7 +249,7 @@ Gazebo and Ignition Transport depend on the Ignition Messages package. ## Build and install Ignition Transport from source -Gazebo depends on the Ignition Transport package. +Gazebo-classic depends on the Ignition Transport package. Please follow the instructions on the Ignition Transport [documents](http://ignition-transport.readthedocs.io/en/latest/installation/installation.html#install-from-sources-ubuntu-linux). diff --git a/install_dependencies_from_source/tutorial.md b/install_dependencies_from_source/tutorial.md index f6c6cfd2..6baa6b64 100644 --- a/install_dependencies_from_source/tutorial.md +++ b/install_dependencies_from_source/tutorial.md @@ -2,7 +2,7 @@ This tutorial will go through the process of installing some of Gazebo's dependencies from source. The dependencies listed here are all maintained by -the Gazebo team and often new features in Gazebo are tied to new features in +the Gazebo-classic team and often new features in Gazebo-classic are tied to new features in these libraries. These libraries are: @@ -20,9 +20,9 @@ These libraries are: ## A bit of history All the libraries listed here are evolutions of libraries which were at some -point built within the Gazebo project itself. In an effort to make these -available for other projects and to make Gazebo more modular, they have been -extracted from Gazebo. Since March 2019, the Gazebo team has also been releasing +point built within the Gazebo-classic project itself. In an effort to make these +available for other projects and to make Gazebo-classic more modular, they have been +extracted from Gazebo. Since March 2019, the Gazebo-classic team has also been releasing a [new simulator](https://ignitionrobotics.org/libs/gazebo) entirely based on Ignition libraries. @@ -30,7 +30,7 @@ Ignition libraries. #### SDF protocol -Gazebo uses the Simulation Description Format (SDF) protocol to describe every +Gazebo-classic uses the Simulation Description Format (SDF) protocol to describe every aspect of simulation. The SDF protocol is based on XML, you can take a look at its specification [here](http://sdformat.org/spec). The protocol consists of a series of (*.sdf) files. @@ -39,7 +39,7 @@ Current protocol versions available are 1.4, 1.5, 1.6 and 1.7. #### SDFormat C++ library -Gazebo uses the SDFormat C++ library to parse the SDF protocol. +Gazebo-classic uses the SDFormat C++ library to parse the SDF protocol. > Both the SDF protocol and the SDFormat C++ parser are hosted in the same > repository and will be installed at the same time when performing an @@ -51,62 +51,62 @@ Gazebo uses the SDFormat C++ library to parse the SDF protocol. #### Versions -Gazebo has had a dependency on the SDFormat library (which automatically handles +Gazebo-classic has had a dependency on the SDFormat library (which automatically handles the SDF protocol supported) since early versions: -* Gazebo 1.9 - SDFormat > 1? (SDF protocol <= 1.4) -* Gazebo 2.2 - SDFormat > 1.4.7 and < 2.0 (SDF protocol <= 1.5) -* Gazebo 3 - SDFormat > 2.0.1 and < 3.0 (SDF protocol <= 1.5) -* Gazebo 4 - SDFormat > 2.0.1 and < 4.0 (SDF protocol <= 1.5) -* Gazebo 5 - SDFormat > 2.3.1 and < 4.0 (SDF protocol <= 1.5) -* Gazebo 6 - SDFormat > 3.1.1 and < 4.0 (SDF protocol <= 1.5) -* Gazebo 7 - SDFormat > 4.1.0 and < 5.0 (SDF protocol <= 1.6) -* Gazebo 8 - SDFormat 5.0 (SDF protocol <= 1.6) -* Gazebo 9 - SDFormat 6.0 (SDF protocol <= 1.6) -* Gazebo 10 - SDFormat > 6.0 and < 7.0 (SDF protocol <= 1.6) -* Gazebo 11 - SDFormat 9 (SDF protocol <= 1.7) +* Gazebo-classic 1.9 - SDFormat > 1? (SDF protocol <= 1.4) +* Gazebo-classic 2.2 - SDFormat > 1.4.7 and < 2.0 (SDF protocol <= 1.5) +* Gazebo-classic 3 - SDFormat > 2.0.1 and < 3.0 (SDF protocol <= 1.5) +* Gazebo-classic 4 - SDFormat > 2.0.1 and < 4.0 (SDF protocol <= 1.5) +* Gazebo-classic 5 - SDFormat > 2.3.1 and < 4.0 (SDF protocol <= 1.5) +* Gazebo-classic 6 - SDFormat > 3.1.1 and < 4.0 (SDF protocol <= 1.5) +* Gazebo-classic 7 - SDFormat > 4.1.0 and < 5.0 (SDF protocol <= 1.6) +* Gazebo-classic 8 - SDFormat 5.0 (SDF protocol <= 1.6) +* Gazebo-classic 9 - SDFormat 6.0 (SDF protocol <= 1.6) +* Gazebo-classic 10 - SDFormat > 6.0 and < 7.0 (SDF protocol <= 1.6) +* Gazebo-classic 11 - SDFormat 9 (SDF protocol <= 1.7) ### Ignition Common -* Gazebo 9 - Ignition common 1 -* Gazebo 10 - Ignition common 1 -* Gazebo 11 - Ignition common 3 +* Gazebo-classic 9 - Ignition common 1 +* Gazebo-classic 10 - Ignition common 1 +* Gazebo-classic 11 - Ignition common 3 ### Ignition Fuel Tools -* Gazebo 9 - Ignition fuel tools 1 -* Gazebo 10 - Ignition fuel tools 1 -* Gazebo 11 - Ignition fuel tools 4 +* Gazebo-classic 9 - Ignition fuel tools 1 +* Gazebo-classic 10 - Ignition fuel tools 1 +* Gazebo-classic 11 - Ignition fuel tools 4 ### Ignition Math -Gazebo has a dependency on Ignition Math from version 6. +Gazebo-classic has a dependency on Ignition Math from version 6. -* Gazebo 6 - Ignition math 2.0 -* Gazebo 7 - Ignition math 2.4 -* Gazebo 8 - Ignition math 3 - The built-in gazebo::math library is completely deprecated. -* Gazebo 9 - Ignition math 4 - The built-in gazebo::math library is completely removed. -* Gazebo 10 - Ignition math 4 -* Gazebo 11 - Ignition math 6 +* Gazebo-classic 6 - Ignition math 2.0 +* Gazebo-classic 7 - Ignition math 2.4 +* Gazebo-classic 8 - Ignition math 3 - The built-in gazebo::math library is completely deprecated. +* Gazebo-classic 9 - Ignition math 4 - The built-in gazebo::math library is completely removed. +* Gazebo-classic 10 - Ignition math 4 +* Gazebo-classic 11 - Ignition math 6 ### Ignition Transport -Gazebo has a dependency on Ignition Transport from version 7. +Gazebo-classic has a dependency on Ignition Transport from version 7. -* Gazebo 7 - Ignition transport 1 or 2 -* Gazebo 8 - Ignition transport 3 -* Gazebo 9 - Ignition transport 4 -* Gazebo 10 - Ignition transport 4 -* Gazebo 11 - Ignition transport 8 +* Gazebo-classic 7 - Ignition transport 1 or 2 +* Gazebo-classic 8 - Ignition transport 3 +* Gazebo-classic 9 - Ignition transport 4 +* Gazebo-classic 10 - Ignition transport 4 +* Gazebo-classic 11 - Ignition transport 8 ### Ignition Messages -Gazebo has a dependency on Ignition Messages from version 8. +Gazebo-classic has a dependency on Ignition Messages from version 8. -* Gazebo 8 - Ignition msgs 0.4 -* Gazebo 9 - Ignition msgs 1.0 -* Gazebo 10 - Ignition msgs 1.0 -* Gazebo 11 - Ignition msgs 5 +* Gazebo-classic 8 - Ignition msgs 0.4 +* Gazebo-classic 9 - Ignition msgs 1.0 +* Gazebo-classic 10 - Ignition msgs 1.0 +* Gazebo-classic 11 - Ignition msgs 5 ## Remove packages to get a clean system @@ -129,8 +129,8 @@ Many of the ignition packages are using the ignition cmake library. git clone https://github.com/ignitionrobotics/ign-cmake /tmp/ign-cmake cd /tmp/ign-cmake -1. Checkout the corresponding branch for a target Gazebo version: - (e.g. `ign-cmake0` for Gazebo 10) +1. Checkout the corresponding branch for a target Gazebo-classic version: + (e.g. `ign-cmake0` for Gazebo-classic 10) git checkout ign-cmake0 @@ -153,7 +153,7 @@ Many of the ignition packages are using the ignition cmake library. ## Build and install Ignition Math from source -SDFormat, Ignition Messages and Gazebo depend on the Ignition Math library. +SDFormat, Ignition Messages and Gazebo-classic depend on the Ignition Math library. 1. Install required dependencies: @@ -167,8 +167,8 @@ SDFormat, Ignition Messages and Gazebo depend on the Ignition Math library. git clone https://github.com/ignitionrobotics/ign-math /tmp/ign-math cd /tmp/ign-math -1. Checkout the corresponding branch for a target Gazebo version: - (e.g. `ign-math4` for Gazebo 10) +1. Checkout the corresponding branch for a target Gazebo-classic version: + (e.g. `ign-math4` for Gazebo-classic 10) git checkout ign-math4 @@ -203,7 +203,7 @@ SDFormat, Ignition Messages and Gazebo depend on the Ignition Math library. ## Build and install Ignition Common from source -Gazebo and Ignition Fuel Tools depend on the Ignition Common library. +Gazebo-classic and Ignition Fuel Tools depend on the Ignition Common library. 1. Install required dependencies (note that ignition-cmake and ignition-math are out): @@ -226,8 +226,8 @@ Gazebo and Ignition Fuel Tools depend on the Ignition Common library. git clone https://github.com/ignitionrobotics/ign-common /tmp/ign-common cd /tmp/ign-common -1. Checkout the corresponding branch for a target Gazebo version: - (e.g. `ign-common1` for Gazebo 10) +1. Checkout the corresponding branch for a target Gazebo-classic version: + (e.g. `ign-common1` for Gazebo-classic 10) git checkout ign-common1 @@ -262,7 +262,7 @@ Gazebo and Ignition Fuel Tools depend on the Ignition Common library. ## Build and install SDFormat from source -Gazebo depends on the SDFormat package. +Gazebo-classic depends on the SDFormat package. 1. Install required dependencies (note that ign-math was left out): @@ -281,8 +281,8 @@ Gazebo depends on the SDFormat package. git clone https://github.com/osrf/sdformat /tmp/sdformat cd /tmp/sdformat -1. Checkout the corresponding branch for a target Gazebo version: - (e.g. `sdf6` for Gazebo 10) +1. Checkout the corresponding branch for a target Gazebo-classic version: + (e.g. `sdf6` for Gazebo-classic 10) git checkout sdf6 @@ -317,7 +317,7 @@ Gazebo depends on the SDFormat package. ## Build and install Ignition Messages from source -Gazebo and Ignition Transport depend on the Ignition Messages package. +Gazebo-classic and Ignition Transport depend on the Ignition Messages package. 1. Install required dependencies: @@ -333,8 +333,8 @@ Gazebo and Ignition Transport depend on the Ignition Messages package. git clone https://github.com/ignitionrobotics/ign-msgs /tmp/ign-msgs cd /tmp/ign-msgs -1. Checkout the corresponding branch for a target Gazebo version: - (e.g. `ign-msgs1` for Gazebo 10) +1. Checkout the corresponding branch for a target Gazebo-classic version: + (e.g. `ign-msgs1` for Gazebo-classic 10) git checkout ign-msgs1 @@ -369,7 +369,7 @@ Gazebo and Ignition Transport depend on the Ignition Messages package. ## Build and install Ignition Fuel Tools -Gazebo depends optionally in the Ignition Fuel Tools +Gazebo-classic depends optionally in the Ignition Fuel Tools 1. Install required dependencies (note that ignition-cmake and ignition-common are out): @@ -385,8 +385,8 @@ Gazebo depends optionally in the Ignition Fuel Tools git clone https://github.com/ignitionrobotics/ign-fuel-tools /tmp/ign-fuel-tools cd /tmp/ign-fuel-tools -1. Checkout the corresponding branch for a target Gazebo version: - (e.g. `ign-fuel-tools1` for Gazebo 10) +1. Checkout the corresponding branch for a target Gazebo-classic version: + (e.g. `ign-fuel-tools1` for Gazebo-classic 10) git checkout ign-fuel-tools1 @@ -422,7 +422,7 @@ Gazebo depends optionally in the Ignition Fuel Tools ## Build and install Ignition Transport from source -Gazebo depends on the Ignition Transport package. +Gazebo-classic depends on the Ignition Transport package. Please follow the instructions on the Ignition Transport [documents](https://ignitionrobotics.org/tutorials/transport/4.0/md__data_ignition_ign-transport_tutorials_installation.html). diff --git a/install_from_source/tutorial_8.md b/install_from_source/tutorial_8.md index 0cf27cf7..b72b425b 100644 --- a/install_from_source/tutorial_8.md +++ b/install_from_source/tutorial_8.md @@ -1,6 +1,6 @@ -# Install Gazebo from source (Ubuntu and Mac) +# Install Gazebo-classic from source (Ubuntu and Mac) -## Install Gazebo from source on Ubuntu +## Install Gazebo-classic from source on Ubuntu ### Prerequisites @@ -51,7 +51,7 @@ In a clean Ubuntu installation you can install pre-compiled versions of all depe ### Optional Physics Engines -**Release Note:** in order to use DART, a full compilation of Gazebo from +**Release Note:** in order to use DART, a full compilation of Gazebo-classic from source is needed (as detailed in this document). The .deb packages are shipping the ODE, Bullet, and Simbody physics engines. @@ -81,7 +81,7 @@ To correctly parse the results of GUI regression tests, the xsltproc package is #### Man Page Support -To generate man-pages for the Gazebo executables, the ruby-ronn package is needed. +To generate man-pages for the Gazebo-classic executables, the ruby-ronn package is needed. sudo apt-get install ruby-ronn @@ -92,7 +92,7 @@ To generate man-pages for the Gazebo executables, the ruby-ronn package is neede ### Dependencies managed by OSRF -Gazebo development is tightly linked to the development of a few other libraries: +Gazebo-classic development is tightly linked to the development of a few other libraries: * [SDFormat](http://sdformat.org/) * [ignition-math](http://ignitionrobotics.org/libraries/math) @@ -130,7 +130,7 @@ desire more stability mkdir build cd build -1. Configure Gazebo (choose either method `a` or `b` below): +1. Configure Gazebo-classic (choose either method `a` or `b` below): a. Release mode: This will generate optimized code, but will not have debug symbols. Use this mode if you don't need to use GDB. @@ -141,7 +141,7 @@ desire more stability > cmake -DCMAKE_INSTALL_PREFIX=/home/$USER/local ../ - b. Debug mode: This will generate code with debug symbols. Gazebo will run slower, but you'll be able to use GDB. + b. Debug mode: This will generate code with debug symbols. Gazebo-classic will run slower, but you'll be able to use GDB. cmake -DCMAKE_BUILD_TYPE=Debug ../ @@ -186,9 +186,9 @@ Now try running gazebo: gazebo -***If Gazebo runs successfully, you're done!.*** +***If Gazebo-classic runs successfully, you're done!.*** -If Gazebo was installed to `/usr/local/` and running gazebo throws an error similar to: +If Gazebo-classic was installed to `/usr/local/` and running gazebo throws an error similar to: gazebo: error while loading shared libraries: libgazebo_common.so.1: cannot open shared object file: No such file or directory @@ -197,7 +197,7 @@ If Gazebo was installed to `/usr/local/` and running gazebo throws an error simi echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/gazebo.conf sudo ldconfig -1. If you are interested in using Gazebo with [ROS](http://www.ros.org), +1. If you are interested in using Gazebo-classic with [ROS](http://www.ros.org), see [Installing gazebo\_ros\_pkgs](/tutorials?cat=connect_ros). #### Install in a catkin workspace @@ -283,7 +283,7 @@ Then build the workspace using `catkin build`. Note that bullet and DART have several important cmake options. Using bullet with gazebo requires `BUILD_SHARED_LIBS=ON` and has better accuracy if `USE_DOUBLE_PRECISION=ON`. -Using DART with Gazebo is compatible with `BUILD_CORE_ONLY=ON`, +Using DART with Gazebo-classic is compatible with `BUILD_CORE_ONLY=ON`, which requires many fewer dependencies to be installed. For now, these options do not overlap, so they can be sent to all the packages: @@ -315,7 +315,7 @@ lists their dependencies. ### Uninstalling Source-based Install -If you need to uninstall Gazebo or switch back to a debian-based install of Gazebo when you currently have installed Gazebo from source, navigate to your source code directory's build folders and run make uninstall: +If you need to uninstall Gazebo-classic or switch back to a debian-based install of Gazebo-classic when you currently have installed Gazebo-classic from source, navigate to your source code directory's build folders and run make uninstall: cd ~/gazebo/build sudo make uninstall @@ -324,11 +324,11 @@ If you need to uninstall Gazebo or switch back to a debian-based install of Gaze ## Compiling From Source (Mac OS X) -Gazebo and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). Here are the instructions: +Gazebo-classic and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). Here are the instructions: 1. Install [homebrew](http://brew.sh): `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` -2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides X11 support and is required by Gazebo and OGRE +2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides X11 support and is required by Gazebo-classic and OGRE 3. For 10.8 and earlier, install [Xcode command-line tools](http://stackoverflow.com/questions/9329243/xcode-4-4-and-later-install-command-line-tools) by downloading them from Apple. For 10.9 and later, they should prompt you to install them when you install Homebrew in step 1. diff --git a/install_from_source/tutorial_default.md b/install_from_source/tutorial_default.md index 4b94c5f0..725d206a 100644 --- a/install_from_source/tutorial_default.md +++ b/install_from_source/tutorial_default.md @@ -1,6 +1,6 @@ -# Install Gazebo from source (Ubuntu and Mac) +# Install Gazebo-classic from source (Ubuntu and Mac) -## Install Gazebo from source on Ubuntu +## Install Gazebo-classic from source on Ubuntu ### Prerequisites @@ -50,7 +50,7 @@ In a clean Ubuntu installation you can install pre-compiled versions of all depe ### Optional Physics Engines -**Release Note:** in order to use DART, a full compilation of Gazebo from +**Release Note:** in order to use DART, a full compilation of Gazebo-classic from source is needed (as detailed in this document). The .deb packages are shipping the ODE, Bullet, and Simbody physics engines. @@ -79,7 +79,7 @@ To correctly parse the results of GUI regression tests, the xsltproc package is #### Man Page Support -To generate man-pages for the Gazebo executables, the ruby-ronn package is needed. +To generate man-pages for the Gazebo-classic executables, the ruby-ronn package is needed. sudo apt-get install ruby-ronn @@ -90,7 +90,7 @@ To generate man-pages for the Gazebo executables, the ruby-ronn package is neede ### Dependencies managed by OSRF -Gazebo development is tightly linked to the development of a few other libraries: +Gazebo-classic development is tightly linked to the development of a few other libraries: * [SDFormat](http://sdformat.org/) * [ignition-math](http://ignitionrobotics.org/libraries/math) @@ -104,7 +104,7 @@ from source. If you don't need a special version of these libraries, **you can skip this section**. If you're not sure if you need to build these from source, you can -ask for guidance at [Gazebo Answers](https://answers.gazebosim.org), explaining +ask for guidance at [Gazebo-classic Answers](https://answers.gazebosim.org), explaining your specific use case. To build these libraries from source, first go through the @@ -128,7 +128,7 @@ desire more stability mkdir build cd build -1. Configure Gazebo (choose either method `a` or `b` below): +1. Configure Gazebo-classic (choose either method `a` or `b` below): a. Release mode: This will generate optimized code, but will not have debug symbols. Use this mode if you don't need to use GDB. @@ -139,7 +139,7 @@ desire more stability > cmake -DCMAKE_INSTALL_PREFIX= ../ - b. Debug mode: This will generate code with debug symbols. Gazebo will run slower, but you'll be able to use GDB. + b. Debug mode: This will generate code with debug symbols. Gazebo-classic will run slower, but you'll be able to use GDB. cmake -DCMAKE_BUILD_TYPE=Debug ../ @@ -184,9 +184,9 @@ Now try running gazebo: gazebo -***If Gazebo runs successfully, you're done!.*** +***If Gazebo-classic runs successfully, you're done!.*** -If Gazebo was installed to `/usr/local/` and running gazebo throws an error similar to: +If Gazebo-classic was installed to `/usr/local/` and running gazebo throws an error similar to: gazebo: error while loading shared libraries: libgazebo_common.so.1: cannot open shared object file: No such file or directory @@ -195,7 +195,7 @@ If Gazebo was installed to `/usr/local/` and running gazebo throws an error simi echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/gazebo.conf sudo ldconfig -1. If you are interested in using Gazebo with [ROS](http://www.ros.org), +1. If you are interested in using Gazebo-classic with [ROS](http://www.ros.org), see [Installing gazebo\_ros\_pkgs](/tutorials?cat=connect_ros). #### Install in a catkin workspace @@ -281,7 +281,7 @@ Then build the workspace using `catkin build`. Note that bullet and DART have several important cmake options. Using bullet with gazebo requires `BUILD_SHARED_LIBS=ON` and has better accuracy if `USE_DOUBLE_PRECISION=ON`. -Using DART with Gazebo is compatible with `BUILD_CORE_ONLY=ON`, +Using DART with Gazebo-classic is compatible with `BUILD_CORE_ONLY=ON`, which requires many fewer dependencies to be installed. For now, these options do not overlap, so they can be sent to all the packages: @@ -313,7 +313,7 @@ lists their dependencies. ### Uninstalling Source-based Install -If you need to uninstall Gazebo or switch back to a debian-based install of Gazebo when you currently have installed Gazebo from source, navigate to your source code directory's build folders and run make uninstall: +If you need to uninstall Gazebo-classic or switch back to a debian-based install of Gazebo-classic when you currently have installed Gazebo-classic from source, navigate to your source code directory's build folders and run make uninstall: cd ~/gazebo/build sudo make uninstall @@ -322,11 +322,11 @@ If you need to uninstall Gazebo or switch back to a debian-based install of Gaze ## Compiling From Source (Mac OS X) -Gazebo and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). Here are the instructions: +Gazebo-classic and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). Here are the instructions: 1. Install [homebrew](http://brew.sh): `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` -2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides X11 support and is required by Gazebo and OGRE +2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides X11 support and is required by Gazebo-classic and OGRE 3. For 10.8 and earlier, install [Xcode command-line tools](http://stackoverflow.com/questions/9329243/xcode-4-4-and-later-install-command-line-tools) by downloading them from Apple. For 10.9 and later, they should prompt you to install them when you install Homebrew in step 1. diff --git a/install_from_source/tutorial_old.md b/install_from_source/tutorial_old.md index 997e49e6..609245b7 100644 --- a/install_from_source/tutorial_old.md +++ b/install_from_source/tutorial_old.md @@ -1,6 +1,6 @@ -# Install Gazebo from source (Ubuntu and Mac) +# Install Gazebo-classic from source (Ubuntu and Mac) -## Install Gazebo from source on Ubuntu +## Install Gazebo-classic from source on Ubuntu ### Prerequisites @@ -38,7 +38,7 @@ Install prerequisites. A clean Ubuntu system will need: ### Optional Physics Engines -**Release Note:** in order to use DART, a full compilation of Gazebo from +**Release Note:** in order to use DART, a full compilation of Gazebo-classic from source is needed (as detailed in this document). The .deb packages are shipping the ODE, Bullet, and Simbody physics engines. @@ -68,7 +68,7 @@ To correctly parse the results of GUI regression tests, the xsltproc package is #### Man Page Support -To generate man-pages for the Gazebo executables, the ruby-ronn package is needed. +To generate man-pages for the Gazebo-classic executables, the ruby-ronn package is needed. sudo apt-get install ruby-ronn @@ -78,7 +78,7 @@ To generate man-pages for the Gazebo executables, the ruby-ronn package is neede ### Build And Install ignition math -SDFormat and Gazebo depend on the ignition math library. +SDFormat and Gazebo-classic depend on the ignition math library. 1. Clone the repository into a directory and go into it: @@ -105,7 +105,7 @@ desire more stability (with the `git checkout ign-math2` command). ### Build And Install SDFormat -Gazebo depends on the SDFormat package. Let's build it, then build Gazebo off of that: +Gazebo-classic depends on the SDFormat package. Let's build it, then build Gazebo-classic off of that: 1. Clone the repository into a directory and go into it: @@ -145,7 +145,7 @@ desire more stability mkdir build cd build -1. Configure Gazebo (choose either method `a` or `b` below): +1. Configure Gazebo-classic (choose either method `a` or `b` below): > a. Release mode: This will generate optimized code, but will not have debug symbols. Use this mode if you don't need to use GDB. @@ -156,7 +156,7 @@ desire more stability >> cmake -DCMAKE_INSTALL_PREFIX=/home/$USER/local ../ - > b. Debug mode: This will generate code with debug symbols. Gazebo will run slower, but you'll be able to use GDB. + > b. Debug mode: This will generate code with debug symbols. Gazebo-classic will run slower, but you'll be able to use GDB. > cmake -DCMAKE_BUILD_TYPE=Debug ../ @@ -193,9 +193,9 @@ Now try running gazebo: gazebo -***If Gazebo runs successfully, you're done!.*** +***If Gazebo-classic runs successfully, you're done!.*** -If Gazebo was installed to `/usr/local/` and running gazebo throws an error similar to: +If Gazebo-classic was installed to `/usr/local/` and running gazebo throws an error similar to: gazebo: error while loading shared libraries: libgazebo_common.so.1: cannot open shared object file: No such file or directory @@ -204,7 +204,7 @@ If Gazebo was installed to `/usr/local/` and running gazebo throws an error simi echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/gazebo.conf sudo ldconfig -1. If you are interested in using Gazebo with [ROS](http://www.ros.org), +1. If you are interested in using Gazebo-classic with [ROS](http://www.ros.org), see [Installing gazebo\_ros\_pkgs](/tutorials?cat=connect_ros). #### Install in a catkin workspace @@ -290,7 +290,7 @@ Then build the workspace using `catkin build`. Note that bullet and DART have several important cmake options. Using bullet with gazebo requires `BUILD_SHARED_LIBS=ON` and has better accuracy if `USE_DOUBLE_PRECISION=ON`. -Using DART with Gazebo is compatible with `BUILD_CORE_ONLY=ON`, +Using DART with Gazebo-classic is compatible with `BUILD_CORE_ONLY=ON`, which requires many fewer dependencies to be installed. For now, these options do not overlap, so they can be sent to all the packages: @@ -322,7 +322,7 @@ lists their dependencies. ### Uninstalling Source-based Install -If you need to uninstall Gazebo or switch back to a debian-based install of Gazebo when you currently have installed Gazebo from source, navigate to your source code directory's build folders and run make uninstall: +If you need to uninstall Gazebo-classic or switch back to a debian-based install of Gazebo-classic when you currently have installed Gazebo-classic from source, navigate to your source code directory's build folders and run make uninstall: cd ~/gazebo/build sudo make uninstall @@ -331,11 +331,11 @@ If you need to uninstall Gazebo or switch back to a debian-based install of Gaze ## Compiling From Source (Mac OS X) -Gazebo and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). Here are the instructions: +Gazebo-classic and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). Here are the instructions: 1. Install [homebrew](http://brew.sh): `ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"` -2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides X11 support and is required by Gazebo and OGRE +2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides X11 support and is required by Gazebo-classic and OGRE 3. For 10.8 and earlier, install [Xcode command-line tools](http://stackoverflow.com/questions/9329243/xcode-4-4-and-later-install-command-line-tools) by downloading them from Apple. For 10.9 and later, they should prompt you to install them when you install Homebrew in step 1. diff --git a/install_on_mac/tutorial_11-0.md b/install_on_mac/tutorial_11-0.md index b42f09eb..a3ad9f0a 100644 --- a/install_on_mac/tutorial_11-0.md +++ b/install_on_mac/tutorial_11-0.md @@ -1,9 +1,9 @@ -# Install Gazebo on Mac (using homebrew) +# Install Gazebo-classic on Mac (using homebrew) -Gazebo and several of its dependencies can be compiled on OS X with +Gazebo-classic and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). -Gazebo is straightforward to install on Mac OS X 10.11 (El Capitan) or higher. +Gazebo-classic is straightforward to install on Mac OS X 10.11 (El Capitan) or higher. Installation on older versions requires changing the default standard library and rebuilding dependencies due to the [use of c++11](https://osrf-migration.github.io/gazebo-gh-pages/#!/osrf/gazebo/pull-requests/1340). @@ -27,7 +27,7 @@ the XCode command-line tools: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides -X11 support and is required by Gazebo and OGRE +X11 support and is required by Gazebo-classic and OGRE 3. Run the following commands to install gazebo quickly with a precompiled binary: diff --git a/install_on_mac/tutorial_9-0.md b/install_on_mac/tutorial_9-0.md index b619959f..4ce3eb8c 100644 --- a/install_on_mac/tutorial_9-0.md +++ b/install_on_mac/tutorial_9-0.md @@ -1,9 +1,9 @@ -# Install Gazebo on Mac (using homebrew) +# Install Gazebo-classic on Mac (using homebrew) -Gazebo and several of its dependencies can be compiled on OS X with +Gazebo-classic and several of its dependencies can be compiled on OS X with [Homebrew](http://brew.sh) using the [osrf/simulation tap](https://github.com/osrf/homebrew-simulation). -Gazebo is straightforward to install on Mac OS X 10.11 (El Capitan) or higher. +Gazebo-classic is straightforward to install on Mac OS X 10.11 (El Capitan) or higher. Installation on older versions requires changing the default standard library and rebuilding dependencies due to the [use of c++11](https://osrf-migration.github.io/gazebo-gh-pages/#!/osrf/gazebo/pull-requests/1340/). @@ -27,7 +27,7 @@ the XCode command-line tools: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2. Install [XQuartz](http://xquartz.macosforge.org/landing/), which provides -X11 support and is required by Gazebo and OGRE +X11 support and is required by Gazebo-classic and OGRE 3. Run the following commands to install gazebo quickly with a precompiled binary: diff --git a/install_on_windows/tutorial_11-0.md b/install_on_windows/tutorial_11-0.md index edf75d33..ecbdda67 100644 --- a/install_on_windows/tutorial_11-0.md +++ b/install_on_windows/tutorial_11-0.md @@ -1,16 +1,16 @@ # Install on Windows This document collects the different options available on Windows to bring -Gazebo into a Windows system. +Gazebo-classic into a Windows system. Windows is not a fully officially supported platform by Open Robotics for Gazebo. Open Robotics guarantees that the code is compatible with compilations -on Windows but there are no packages officially available. Since Gazebo is open -source, the Gazebo Community provides distribution using different projects. +on Windows but there are no packages officially available. Since Gazebo-classic is open +source, the Gazebo-classic Community provides distribution using different projects. ## Community support -The Gazebo Community runs different projects to facilitate the +The Gazebo-classic Community runs different projects to facilitate the Windows installation providing all the dependencies and patch the code to solve problems at runtime (help from Open Robotics is usually provided). @@ -18,37 +18,37 @@ For the different Community projects available, [checkout the issue tracker](https://github.com/osrf/gazebo/issues/2901). Below is a quick overview of some of them. -### Gazebo on Windows via conda-forge +### Gazebo-classic on Windows via conda-forge [conda-forge](https://conda-forge.org/) is a collection of packages to be used with the conda package manager. General feedback on using conda-forge is collected -[in this Gazebo issue](https://github.com/osrf/gazebo/issues/2899). +[in this Gazebo-classic issue](https://github.com/osrf/gazebo/issues/2899). -For contributions or bug reports on using Gazebo with conda the best place is the +For contributions or bug reports on using Gazebo-classic with conda the best place is the [conda-forge issue tracker](https://github.com/conda-forge/gazebo-feedstock). -### Gazebo on Windows via vcpkg +### Gazebo-classic on Windows via vcpkg [vcpkg](https://github.com/microsoft/vcpkg) is a package manager oriented to C and C++ libraries and tools managed by Microsoft. There is a port for [Gazebo](https://github.com/microsoft/vcpkg/tree/master/ports/gazebo). General feedback on using vcpkg is collected -[in this Gazebo issue](https://github.com/osrf/gazebo/issues/3202). +[in this Gazebo-classic issue](https://github.com/osrf/gazebo/issues/3202). -For contributions or bug reports on using Gazebo with vcpkg the best place is the +For contributions or bug reports on using Gazebo-classic with vcpkg the best place is the [vcpkg issue tracker](https://github.com/microsoft/vcpkg/issues) -### Gazebo on Windows via WSL (Windows Subsystem for Linux) +### Gazebo-classic on Windows via WSL (Windows Subsystem for Linux) [WSL](https://docs.microsoft.com/en-us/windows/wsl/install) is a compatibility layer for running Linux binary executables on Windows 10 and newer. The [Project DAVE](https://github.com/Field-Robotics-Lab/dave/wiki) provides [detailed instructions](https://github.com/Field-Robotics-Lab/dave/wiki/Install-on-Windows-using-WSL2) -to setup WSL and install Gazebo together with ROS Noetic using Ubuntu Linux +to setup WSL and install Gazebo-classic together with ROS Noetic using Ubuntu Linux installed on Windows. ROS installation can be avoided and just follow instructions until the point of installing ROS Noetic packages and use apt to install `libgazebo11-dev`. diff --git a/install_other_linux/tutorial-9.0.md b/install_other_linux/tutorial-9.0.md index 2ee23b4c..0b97eec2 100644 --- a/install_other_linux/tutorial-9.0.md +++ b/install_other_linux/tutorial-9.0.md @@ -1,6 +1,6 @@ -# Install Gazebo on Linux distributions (non Ubuntu) +# Install Gazebo-classic on Linux distributions (non Ubuntu) -Gazebo is available to install on other Linux distributions different than Ubuntu +Gazebo-classic is available to install on other Linux distributions different than Ubuntu ([Ubuntu install instructions](/tutorials?tut=install_ubuntu&cat=install) are hosted in a different tutorial). Linux distributions providing gazebo packages: Debian, Fedora, Arch and Gentoo. @@ -11,9 +11,9 @@ The one liner installation can be used in the Debian in the standard way: curl -ssL http://get.gazebosim.org | sh -If you prefer manual installations, [Gazebo in Debian +If you prefer manual installations, [Gazebo-classic in Debian Sid](https://packages.debian.org/source/sid/gazebo) is available as an official -package in Debian Sid (the Gazebo team is the official maintainer in Debian) +package in Debian Sid (the Gazebo-classic team is the official maintainer in Debian) which usually hosts the latest gazebo release. 1. Install Gazebo9 @@ -22,7 +22,7 @@ which usually hosts the latest gazebo release. # For developers that works on top of Gazebo, one extra package sudo apt-get install libgazebo9-dev -Gazebo in Debian stretch is provided by the packages.osrfoundation.org repository. +Gazebo-classic in Debian stretch is provided by the packages.osrfoundation.org repository. sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/debian-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - @@ -33,9 +33,9 @@ Gazebo in Debian stretch is provided by the packages.osrfoundation.org repositor ## Fedora -[Gazebo in Fedora](https://apps.fedoraproject.org/packages/gazebo) is available +[Gazebo-classic in Fedora](https://apps.fedoraproject.org/packages/gazebo) is available as an official package (the maintainer is Rich Mattes). Depending on the Fedora -version, the version of Gazebo available is different: +version, the version of Gazebo-classic available is different: * Rawhide is usually hosting one of the latest releases * Fedora 27: gazebo-8.1.1 @@ -48,7 +48,7 @@ version, the version of Gazebo available is different: ## Arch -[Gazebo in Arch](https://aur.archlinux.org/packages/gazebo/) is currently in the AUR: +[Gazebo-classic in Arch](https://aur.archlinux.org/packages/gazebo/) is currently in the AUR: Arch User Repository (racko is the maintainer). This means that it is not in the official package repositories and users need to compile it from source. The easiest way to install it is to use an AUR helper, such as yaourt @@ -62,7 +62,7 @@ or packer: ## Gentoo -[Gazebo in Gentoo](https://packages.gentoo.org/package/sci-electronics/gazebo) +[Gazebo-classic in Gentoo](https://packages.gentoo.org/package/sci-electronics/gazebo) is available as an official package (the maintainer is Alexis Ballier). It is currently masked as ~amd64 so please read about how to [mix software branches](https://wiki.gentoo.org/wiki/Handbook:AMD64/Portage/Branches) if you @@ -74,17 +74,17 @@ gentoolkit) to know more about the optional support: emerge --ask app-portage/gentoolkit equery uses gazebo -a -1. Install Gazebo on stable branch +1. Install Gazebo-classic on stable branch echo "sci-electronics/gazebo" >> /etc/portage/package.accept_keywords emerge gazebo -1. Install Gazebo on testing branch +1. Install Gazebo-classic on testing branch emerge gazebo ## Other linux distributions? -If you know of any other Linux distribution supporting Gazebo installation, +If you know of any other Linux distribution supporting Gazebo-classic installation, feel free to [create an issue](https://github.com/osrf/gazebo_tutorials/issues) to expand this tutorial. diff --git a/install_other_linux/tutorial.md b/install_other_linux/tutorial.md index f607ab86..75f306a5 100644 --- a/install_other_linux/tutorial.md +++ b/install_other_linux/tutorial.md @@ -1,16 +1,16 @@ -# Install Gazebo on Linux distributions (non Ubuntu) +# Install Gazebo-classic on Linux distributions (non Ubuntu) -Gazebo is available to install on other Linux distributions different than Ubuntu +Gazebo-classic is available to install on other Linux distributions different than Ubuntu ([Ubuntu install instructions](/tutorials?tut=install_ubuntu&cat=install) are hosted in a different tutorial). Linux distributions providing gazebo packages: Debian, Fedora, Arch and Gentoo. ## Debian -[Gazebo in Debian](https://packages.debian.org/source/sid/gazebo) is available -as an official package since Stretch. Debian Sid (the Gazebo team is the official +[Gazebo-classic in Debian](https://packages.debian.org/source/sid/gazebo) is available +as an official package since Stretch. Debian Sid (the Gazebo-classic team is the official maintainer in Debian) usually hosts the latest gazebo release. Depending on the -Debian version the version of Gazebo available is different: +Debian version the version of Gazebo-classic available is different: * Debian Sid is usually hosting one of the latest releases * Debian Buster: gazebo-9.6.0 @@ -24,7 +24,7 @@ Debian version the version of Gazebo available is different: ## Fedora -[Gazebo in Fedora](https://apps.fedoraproject.org/packages/gazebo) is available +[Gazebo-classic in Fedora](https://apps.fedoraproject.org/packages/gazebo) is available as an official package. * Rawhide: gazebo-10 @@ -38,7 +38,7 @@ as an official package. ## Arch -[Gazebo in Arch](https://aur.archlinux.org/packages/gazebo/) is currently in the AUR: +[Gazebo-classic in Arch](https://aur.archlinux.org/packages/gazebo/) is currently in the AUR: Arch User Repository (billypilgrim is the maintainer). This means that it is not in the official package repositories and users need to compile it from source. The easiest way to install it is to use an AUR helper, such as yaourt @@ -69,12 +69,12 @@ gentoolkit) to know more about the optional support: echo "sci-electronics/gazebo" >> /etc/portage/package.accept_keywords emerge gazebo -1. Install Gazebo on testing branch +1. Install Gazebo-classic on testing branch emerge gazebo ## Other linux distributions? -There is a large list of Gazebo packages available in many different +There is a large list of Gazebo-classic packages available in many different distributions, checking the great [repology](https://repology.org/project/gazebo/versions) project can help. diff --git a/install_ubuntu/tutorial_11.0.md b/install_ubuntu/tutorial_11.0.md index 68281546..99434508 100644 --- a/install_ubuntu/tutorial_11.0.md +++ b/install_ubuntu/tutorial_11.0.md @@ -1,6 +1,6 @@ -# Install Gazebo using Ubuntu packages +# Install Gazebo-classic using Ubuntu packages -This tutorial covers the installation of Gazebo packages using the +This tutorial covers the installation of Gazebo-classic packages using the `packages.osrfoundation.org` repository, designed for those who want to follow the faster development path but still a stable one. @@ -26,7 +26,7 @@ Some notes: but there is no official support nor updates for these binaries. * If you are a [ROS](http://ros.org) user, please read the tutorial about the - [ROS/Gazebo installation](/tutorials?tut=ros_wrapper_versions&cat=connect_ros). + [ROS/Gazebo-classic installation](/tutorials?tut=ros_wrapper_versions&cat=connect_ros). ## Default installation: one-liner diff --git a/install_ubuntu/tutorial_9-0.md b/install_ubuntu/tutorial_9-0.md index f5180328..83dbd7c9 100644 --- a/install_ubuntu/tutorial_9-0.md +++ b/install_ubuntu/tutorial_9-0.md @@ -1,10 +1,10 @@ -# Install Gazebo using Ubuntu packages +# Install Gazebo-classic using Ubuntu packages -This tutorial covers the installation of Gazebo packages using the the +This tutorial covers the installation of Gazebo-classic packages using the the `osrfoundation.org` repository, designed for those who want to follow the faster development path but still a stable one. -Gazebo is also released as an Ubuntu official package: ([check which +Gazebo-classic is also released as an Ubuntu official package: ([check which version](https://packages.ubuntu.com/search?suite=all§ion=all&arch=any&keywords=gazebo&searchon=sourcenames) is available for every distribution. If you are a [ROS](http://ros.org) user, please read the tutorial about [ROS/Gazebo @@ -66,7 +66,7 @@ installation](/tutorials?tut=ros_wrapper_versions&cat=connect_ros). Reading state information... Done E: Unable to locate package gazebo9 - It's possible the version of Gazebo you are looking for is not supported on the version of OS you are using. + It's possible the version of Gazebo-classic you are looking for is not supported on the version of OS you are using. For example, installing gazebo9 on Ubuntu Jammy (22.04) will produce the error above. Hint: Take a look at "Project Status" section at [http://gazebosim.org/#status](http://gazebosim.org/#status), next to each version is the supported ubuntu versions and ROS versions. diff --git a/install_unstable/tutorial.md b/install_unstable/tutorial.md index b6278ce5..efa9b252 100644 --- a/install_unstable/tutorial.md +++ b/install_unstable/tutorial.md @@ -5,16 +5,16 @@ ***Note:*** prereleases and nightlies are unsupported packages, they should only be used for development proposes. -Gazebo nightly and prereleases repositories are extensions to the stable +Gazebo-classic nightly and prereleases repositories are extensions to the stable repo which will add unstable builds to be installed by using `apt-get` in the same way as stable releases. These repositories rely on the presence of gazebo-stable repository in the system. ## Install and uninstall packages -### Gazebo prerelease repo +### Gazebo-classic prerelease repo -Gazebo prerelease versions are those released to test an upcoming release. +Gazebo-classic prerelease versions are those released to test an upcoming release. The prerelease packages repository is designed to work together with the stable repository, both need to be installed. @@ -26,9 +26,9 @@ sudo apt-get update sudo apt-get install gazebo11 ``` -### Gazebo nightly repo +### Gazebo-classic nightly repo -Gazebo nightlies are packages released every night which can be used for +Gazebo-classic nightlies are packages released every night which can be used for different purposes like testing the last feature added to gazebo code. The nighly packages repository is designed to work together with the stable repository, both need to be installed. diff --git a/instrument_hdf5_datasets/tutorial.md b/instrument_hdf5_datasets/tutorial.md index 78a5b7ac..9faf3d67 100644 --- a/instrument_hdf5_datasets/tutorial.md +++ b/instrument_hdf5_datasets/tutorial.md @@ -16,9 +16,9 @@ sudo apt-get install libhdf5-dev ~~~ ## Build Gazebo -This HDF5 instrument tool requires building Gazebo from source, with the cmake parameter +This HDF5 instrument tool requires building Gazebo-classic from source, with the cmake parameter `HDF5_INSTRUMENT` [default False] as True. -[Learn how to build Gazebo from source](/tutorials?tut=install_from_source&cat=install) +[Learn how to build Gazebo-classic from source](/tutorials?tut=install_from_source&cat=install) cd ~/gazebo mkdir build diff --git a/introspection/tutorial.md b/introspection/tutorial.md index 94d739b0..6c19e3b3 100644 --- a/introspection/tutorial.md +++ b/introspection/tutorial.md @@ -1,6 +1,6 @@ # Overview -A new code introspection utility has been introduced in Gazebo 8. This new +A new code introspection utility has been introduced in Gazebo-classic 8. This new service allows clients to receive updates with the value of some requested variables. The introspection service can be used to debug the state of internal variables within Gazebo, plugins, or even stand-alone applications. @@ -20,7 +20,7 @@ position, velocity, and acceleration of models and links, among other items. [[file:files/introspection_registration.png|300px]] You can learn more about the introspection manager and its API by looking at the -[Util/IntrospectionManager class](http://osrf-distributions.s3.amazonaws.com/gazebo/api/dev/classgazebo_1_1util_1_1IntrospectionManager.html) in the Gazebo source code. +[Util/IntrospectionManager class](http://osrf-distributions.s3.amazonaws.com/gazebo/api/dev/classgazebo_1_1util_1_1IntrospectionManager.html) in the Gazebo-classic source code. # Subscribing for receiving item updates @@ -90,7 +90,7 @@ GAZEBO_PLUGIN_PATH=`pwd` gazebo --verbose ../empty.world ~~~ Note that we are setting the `GAZEBO_PLUGIN_PATH` with the path to our build -directory in order to help Gazebo finding our plugin. Once Gazebo is ready, +directory in order to help Gazebo-classic finding our plugin. Once Gazebo-classic is ready, execute the following command on a new terminal: ~~~ @@ -160,7 +160,7 @@ come online. In theory, we could have multiple introspection managers running, although in -the case of Gazebo we will only have one. We're working under this assumption, +the case of Gazebo-classic we will only have one. We're working under this assumption, so we'll save the Id of the first introspection manager detected. diff --git a/joint_events/tutorial.md b/joint_events/tutorial.md index 4e3db4f2..cddbf402 100644 --- a/joint_events/tutorial.md +++ b/joint_events/tutorial.md @@ -86,7 +86,7 @@ As the force applied by user on the joint named `my_joint` enters or exits the e # Running simulation with joint events plugin -Launch Gazebo in a terminal with the following command +Launch Gazebo-classic in a terminal with the following command ~~~ gazebo --verbose joint_event.world diff --git a/led_plugin/tutorial_9-3.md b/led_plugin/tutorial_9-3.md index bbdba5da..f77766d2 100644 --- a/led_plugin/tutorial_9-3.md +++ b/led_plugin/tutorial_9-3.md @@ -47,7 +47,7 @@ This plugin inherits from [FlashLightPlugin](/tutorials?tut=flashlight_plugin&ca # Implementation Details The diagram below shows an abstract structure of the plugin and its components. -`LedPlugin` class holds `LedSetting` objects, each of which holds a unit of settings and maintains the corresponding light element by the Gazebo transport topic. `LedPlugin` and `LedSetting` are child classes of `FlashLightPlugin` and `FlashLightSetting` respectively so they have the functionalities of the base classes. +`LedPlugin` class holds `LedSetting` objects, each of which holds a unit of settings and maintains the corresponding light element by the Gazebo-classic transport topic. `LedPlugin` and `LedSetting` are child classes of `FlashLightPlugin` and `FlashLightSetting` respectively so they have the functionalities of the base classes. [[file:files/LED.png|640px]] diff --git a/lightmap/tutorial.md b/lightmap/tutorial.md index 4d4ac710..4751cb5d 100644 --- a/lightmap/tutorial.md +++ b/lightmap/tutorial.md @@ -140,7 +140,7 @@ Insert the `Lightmap Table` model into the scene: ## Apply Lightmap -If you pay attention earlier, you will notice that we have not made use of `table_lightmap.png` yet. This is the lightmap to be applied. But first, we will need to tell Gazebo that dynamic lighting should not be applied to the model since we want to use lightmaps. +If you pay attention earlier, you will notice that we have not made use of `table_lightmap.png` yet. This is the lightmap to be applied. But first, we will need to tell Gazebo-classic that dynamic lighting should not be applied to the model since we want to use lightmaps. Edit the `model.sdf` file: @@ -201,6 +201,6 @@ material Table/Marble_Lightmap } %%% -Finally, relaunch Gazebo and insert the table model: +Finally, relaunch Gazebo-classic and insert the table model: [[file:table_lightmap.png | 640px]] diff --git a/lockstep_physics_sensors/tutorial.md b/lockstep_physics_sensors/tutorial.md index f60ffe24..0a2a669e 100644 --- a/lockstep_physics_sensors/tutorial.md +++ b/lockstep_physics_sensors/tutorial.md @@ -6,7 +6,7 @@ For example, running a high-resolution camera sensor on a computer with limited computing power could result in the camera updates lagging behind physics, causing the camera frames to be out of sync with physics. -The lockstep feature, enabled by passing `--lockstep` to Gazebo server, allows +The lockstep feature, enabled by passing `--lockstep` to Gazebo-classic server, allows the sensor update rate to be strictly followed. This means that on computers with different computing resources, the specified update rate can always be respected, allowing for sensor updates and physics to diff --git a/log_filtering/tutorial.md b/log_filtering/tutorial.md index 89455c4d..1abd17c2 100644 --- a/log_filtering/tutorial.md +++ b/log_filtering/tutorial.md @@ -2,7 +2,7 @@ ## Introduction -State logs are recordings of world state information from Gazebo. State includes pose, velocity, acceleration, and forces applied to all links of all models. Gazebo will only record state information for models that change over time. A state log file contains a header, the initial world description, and a time series of state. +State logs are recordings of world state information from Gazebo. State includes pose, velocity, acceleration, and forces applied to all links of all models. Gazebo-classic will only record state information for models that change over time. A state log file contains a header, the initial world description, and a time series of state. ## Step 1: Create a state log file @@ -14,7 +14,7 @@ rm -rf ~/.gazebo/log/* We will use the PR2 world to create a state log file. -Start by running the Gazebo server with the `-r` command line option +Start by running the Gazebo-classic server with the `-r` command line option ~~~ gzserver -r worlds/pr2.world diff --git a/log_filtering/tutorial_4-0.md b/log_filtering/tutorial_4-0.md index 69063325..6d4b8648 100644 --- a/log_filtering/tutorial_4-0.md +++ b/log_filtering/tutorial_4-0.md @@ -1,10 +1,10 @@ # Introduction -State logs are recordings of world state information from Gazebo. State includes pose, velocity, acceleration, and forces applied to all links of all models. Gazebo will only record state information for models that change over time. A state log file contains a header, the initial world description, and a time series of state. +State logs are recordings of world state information from Gazebo. State includes pose, velocity, acceleration, and forces applied to all links of all models. Gazebo-classic will only record state information for models that change over time. A state log file contains a header, the initial world description, and a time series of state. -# Gazebo Log Command line tool +# Gazebo-classic Log Command line tool -Gazebo ships with a logging utility that is accessed via the `gz log` command. +Gazebo-classic ships with a logging utility that is accessed via the `gz log` command. View the help information using: @@ -34,7 +34,7 @@ rm -rf ~/.gazebo/log/* We will use the PR2 world to create a state log file. -Start by running the Gazebo server with the `-r` command line option +Start by running the Gazebo-classic server with the `-r` command line option ~~~ gzserver -r worlds/pr2.world diff --git a/logging_playback/tutorial.md b/logging_playback/tutorial.md index 0ce6e0f9..7f162c0e 100644 --- a/logging_playback/tutorial.md +++ b/logging_playback/tutorial.md @@ -1,12 +1,12 @@ # Overview -This tutorial explains how to use the Gazebo logging capabilities to +This tutorial explains how to use the Gazebo-classic logging capabilities to record your simulation and then reproduce it afterwards, using either the GUI or the command line. -# Gazebo log files +# Gazebo-classic log files -Gazebo log files are compressed `.log` files which contain an initial full +Gazebo-classic log files are compressed `.log` files which contain an initial full description of the whole world, followed by a series of "world states". The initial description contains complete information about everything in the @@ -65,7 +65,7 @@ generated. It will be inside a time-stamped directory. ## Logging from the command line From the command line, it is possible to log the whole simulation from the -moment Gazebo starts running until it stops, or to trigger logging from an +moment Gazebo-classic starts running until it stops, or to trigger logging from an arbitary time. ### Logging the whole simulation @@ -79,13 +79,13 @@ As an example, you can record the `random_velocity.world` as follows: > * **-p [--play] arg**: Play a log file. -> * **-r [ --record ]**: Record a log from the moment Gazebo is opened until it +> * **-r [ --record ]**: Record a log from the moment Gazebo-classic is opened until it is closed. > * **--record_encoding arg**: Compression encoding format for log data. The options are `zlib` (default), `bz2` and `txt`. -The log file will only be terminated when Gazebo is closed. You can check the +The log file will only be terminated when Gazebo-classic is closed. You can check the file was created by looking into the path given: $ ls ~/logs/random_velocity/ @@ -93,8 +93,8 @@ file was created by looking into the path given: ### Logging part of the simulation -Gazebo also provides the `gz log` tool, which can be used to trigger logging at -any moment. While Gazebo is running, open another terminal and run the following +Gazebo-classic also provides the `gz log` tool, which can be used to trigger logging at +any moment. While Gazebo-classic is running, open another terminal and run the following to start recording: gz log -d 1 @@ -113,14 +113,14 @@ ways. ## Visualize in GUI Currently, it is not possible to open a log file from the GUI, so playback must -be started from the command line. Simply start Gazebo using the `-p` option +be started from the command line. Simply start Gazebo-classic using the `-p` option to specify a log file, such as the one we recorded earlier: gazebo -u -p ~/logs/double_pendulum/2016-01-25T15\:09\:49.677400/gzserver/state.log > **Tip**: The `-u` option starts the log paused. -Gazebo will open in playback mode. You can play, pause, rewind and step through +Gazebo-classic will open in playback mode. You can play, pause, rewind and step through the playback. [[file:files/playback_gui.png|800px]] diff --git a/logical_camera_sensor/tutorial_7+.md b/logical_camera_sensor/tutorial_7+.md index 1be009db..61838c54 100644 --- a/logical_camera_sensor/tutorial_7+.md +++ b/logical_camera_sensor/tutorial_7+.md @@ -134,7 +134,7 @@ Only the most recently generated message is available. gazebo::msgs::LogicalCameraImage sensorOutput = logicalCamera->Image(); ~~~ -## Using Gazebo Transport +## Using Gazebo-classic Transport Logical camera sensor data is published using gazebo transport. The data is published to subscribers immediately after it is generated. diff --git a/model_contrib/tutorial.md b/model_contrib/tutorial.md index 48420f2b..fdeb5a21 100644 --- a/model_contrib/tutorial.md +++ b/model_contrib/tutorial.md @@ -1,11 +1,11 @@ # Overview This tutorial will explain how to add a model to the -[Gazebo Model Database](http://models.gazebosim.org/). +[Gazebo-classic Model Database](http://models.gazebosim.org/). You can read more about the database [here](/tutorials?tut=model_structure&cat=build_robot). -This tutorial assumes you have created an original Gazebo model and you'd like +This tutorial assumes you have created an original Gazebo-classic model and you'd like to share it with the community. This tutorial also assumes that you have an account on GitHub, and that you have a client for [Git](https://git-scm.com/). diff --git a/model_editor/tutorial.md b/model_editor/tutorial.md index 933b17ec..b053616f 100644 --- a/model_editor/tutorial.md +++ b/model_editor/tutorial.md @@ -6,7 +6,7 @@ of creating a simple mobile base with the model editor. ## Open the Model Editor -1. Make sure Gazebo is [installed](http://gazebosim.org/install). +1. Make sure Gazebo-classic is [installed](http://gazebosim.org/install). 1. Start up gazebo. @@ -59,7 +59,7 @@ that lets you find the mesh you want to add. 1. Click on `Browse` button and use the file browser to find the mesh file on your local machine. If you know the path of the mesh file, you can enter it -directly in the text field box next to the `Browse` button. Gazebo 8 supports +directly in the text field box next to the `Browse` button. Gazebo-classic 8 supports COLLADA (.dae), 3D Systems (.stl), Wavefront (.obj) and W3C SVG (.svg) files. 1. Click `Import` to load the mesh file. Then, add it to the 3D view. @@ -113,7 +113,7 @@ joint creation. The model editor supports editing properties of a link which you would also find in its SDF. -> **Note:** Gazebo 6+ supports editing +> **Note:** Gazebo-classic 6+ supports editing links, visuals, and collisions. The ability to edit sensors and plugins are to be implemented in later versions. @@ -175,7 +175,7 @@ you can also edit existing models that are already in the simulation. To edit an existing model: -* Make sure you have saved the model you created, and you have exited the model editor. Alternatively, start from a fresh Gazebo instance. +* Make sure you have saved the model you created, and you have exited the model editor. Alternatively, start from a fresh Gazebo-classic instance. * Insert a model from the `Insert` tab on the left. For example, let's insert a `Simple Arm`. diff --git a/model_editor/tutorial_6.md b/model_editor/tutorial_6.md index e65838eb..cc381704 100644 --- a/model_editor/tutorial_6.md +++ b/model_editor/tutorial_6.md @@ -4,7 +4,7 @@ This tutorial describes the process of creating a model using the Model Editor. ## Open the Model Editor -1. Make sure Gazebo is [installed](http://gazebosim.org/install). +1. Make sure Gazebo-classic is [installed](http://gazebosim.org/install). 1. Start up gazebo. @@ -106,7 +106,7 @@ rotation. The model editor supports editing properties of a link which you would also find in its SDF. -> **Note:** Gazebo 6 supports editing +> **Note:** Gazebo-classic 6 supports editing links, visuals, and collisions. The ability to edit sensors and plugins are to be implemented in later versions. diff --git a/model_editor/tutorial_7.md b/model_editor/tutorial_7.md index f71e421d..4f67919d 100644 --- a/model_editor/tutorial_7.md +++ b/model_editor/tutorial_7.md @@ -4,7 +4,7 @@ This tutorial describes the process of creating a model using the Model Editor. ## Open the Model Editor -1. Make sure Gazebo is [installed](http://gazebosim.org/install). +1. Make sure Gazebo-classic is [installed](http://gazebosim.org/install). 1. Start up gazebo. @@ -110,7 +110,7 @@ joint creation. The model editor supports editing properties of a link which you would also find in its SDF. -> **Note:** Gazebo 6+ supports editing +> **Note:** Gazebo-classic 6+ supports editing links, visuals, and collisions. The ability to edit sensors and plugins are to be implemented in later versions. @@ -172,7 +172,7 @@ you can also edit existing models that are already in the simulation. To edit an existing model: -* Make sure you have saved the model you created, and you have exited the model editor. Alternatively, start from a fresh Gazebo instance. +* Make sure you have saved the model you created, and you have exited the model editor. Alternatively, start from a fresh Gazebo-classic instance. * Insert a model from the `Insert` tab on the left. For example, let's insert a `Simple Arm`. diff --git a/model_population/tutorial.md b/model_population/tutorial.md index ca292dd4..eca38657 100644 --- a/model_population/tutorial.md +++ b/model_population/tutorial.md @@ -67,7 +67,7 @@ specified by the `name` attribute. Within the `population` tag, you can see how to select a model by using the `` tag. Each element of the population will be inserted into the simulation with a unique name that will be created by appending to the model name the suffix `_clone_i`, where `i` is the ith element -of the population. You can see the list of models spawned in the Gazebo scene +of the population. You can see the list of models spawned in the Gazebo-classic scene here: [[file:files/model_list_6-0.png|640px]] diff --git a/model_structure/tutorial.md b/model_structure/tutorial.md index 66795068..cb02a44f 100644 --- a/model_structure/tutorial.md +++ b/model_structure/tutorial.md @@ -1,13 +1,13 @@ # Overview -Gazebo is able to dynamically load models into simulation either programmatically or through the GUI. Models exist on your computer, after they have been downloaded or created by you. This tutorial describes Gazebo's model directory structure, and the necessary files within a model directory. +Gazebo-classic is able to dynamically load models into simulation either programmatically or through the GUI. Models exist on your computer, after they have been downloaded or created by you. This tutorial describes Gazebo's model directory structure, and the necessary files within a model directory. -Models in Gazebo define a physical entity with dynamic, kinematic, and +Models in Gazebo-classic define a physical entity with dynamic, kinematic, and visual properties. In addition, a model may have one or more plugins, which affect the model's behavior. A model can represent anything from a simple shape to a complex robot; even the ground is a model. -Gazebo relies on a database to store and maintain models available for use +Gazebo-classic relies on a database to store and maintain models available for use within simulation. The model database is a community-supported resource, so please upload and maintain models that you create and use. diff --git a/nested_model/tutorial.md b/nested_model/tutorial.md index 1a864381..612a4c64 100644 --- a/nested_model/tutorial.md +++ b/nested_model/tutorial.md @@ -12,7 +12,7 @@ It was seen in the model SDF is composed of a collection of `links` and `joints`. As of SDF 1.5, the `` SDF element has been extended to support self-referencing, which means allowing `` elements to be nested. Support for loading nested -`` elements has been added in Gazebo 7. +`` elements has been added in Gazebo-classic 7. Here is a basic example of a nested model SDF: @@ -63,8 +63,8 @@ Here is a basic example of a nested model SDF: ~~~ This model SDF is composed of a link (`link_00`), and a nested model -(`model_01`) with another link (`link_01`). Since a model in Gazebo is just an -abstract container for a group of objects, loading this model in Gazebo will +(`model_01`) with another link (`link_01`). Since a model in Gazebo-classic is just an +abstract container for a group of objects, loading this model in Gazebo-classic will result in just two rigid bodies being created in the physics engine; one for the sphere link and the other for the nested box link. By default, they will not self-collide just like other links within the same model. On the GUI client, diff --git a/oculus/tutorial.md b/oculus/tutorial.md index 66551d74..945769a7 100644 --- a/oculus/tutorial.md +++ b/oculus/tutorial.md @@ -1,6 +1,6 @@ # Introduction -Gazebo 6 and above supports the [Oculus Rift VR headset](http://www.oculusvr.com/) DK1 and DK2. +Gazebo-classic 6 and above supports the [Oculus Rift VR headset](http://www.oculusvr.com/) DK1 and DK2. After this tutorial, you will be able to attach a virtual Oculus Camera to one of the visual links of your model. @@ -21,9 +21,9 @@ sudo cp ../LibOVR/90-oculus.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules ~~~ -# Gazebo compilation with OculusVR support. +# Gazebo-classic compilation with OculusVR support. -Once Oculus VR SDK is installed, you should be able to compile Gazebo from source with Oculus Rift support. +Once Oculus VR SDK is installed, you should be able to compile Gazebo-classic from source with Oculus Rift support. Follow [these](/tutorials?tut=install_from_source&cat=install) instructions to compile Gazebo. During the execution of the `cmake` command, you should see this message confirming that the Oculus SDK is found: @@ -51,7 +51,7 @@ positioned correctly: [[file:files/display_setup.png|640px]] -1. We need to tell Gazebo where we put the Oculus screen, that is, on the +1. We need to tell Gazebo-classic where we put the Oculus screen, that is, on the top-right of the main display. The horizontal coordinate will be the end of the main monitor (`x` = monitor width) and the vertical coordinate will be the top of the screen (`y` = 0). @@ -106,7 +106,7 @@ top of the screen (`y` = 0). gazebo worlds/camera.world ~~~ -1. Once Gazebo is up and running, click on Window->Oculus Rift and you should be able to see the world from your Oculus headset. +1. Once Gazebo-classic is up and running, click on Window->Oculus Rift and you should be able to see the world from your Oculus headset. It is also possible to enable the Oculus window by default when starting Gazebo. Modify the `gui.ini` file and set `autolaunch=1`. Now, start gazebo and your Oculus Rift should be working without any intervention: diff --git a/oculus/tutorial_3.md b/oculus/tutorial_3.md index 42be52e4..78dc7fb9 100644 --- a/oculus/tutorial_3.md +++ b/oculus/tutorial_3.md @@ -1,7 +1,7 @@ # Introduction -Gazebo versions 3-5 supports the [Oculus Rift VR -headset](http://www.oculusvr.com/) DK1. If you want to use Oculus DK2, you will need to use Gazebo 6 or above and follow [this tutorial](/tutorials?tut=oculus&cat=rendering&ver=6.0). +Gazebo-classic versions 3-5 supports the [Oculus Rift VR +headset](http://www.oculusvr.com/) DK1. If you want to use Oculus DK2, you will need to use Gazebo-classic 6 or above and follow [this tutorial](/tutorials?tut=oculus&cat=rendering&ver=6.0). After this tutorial, you will be able to attach a virtual Oculus Camera to one of the visual links of your model. @@ -23,9 +23,9 @@ sudo cp ../LibOVR/90-oculus.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules ~~~ -# Gazebo compilation with OculusVR support. +# Gazebo-classic compilation with OculusVR support. -Once Oculus VR SDK is installed, you should be able to compile Gazebo from source with Oculus Rift support. +Once Oculus VR SDK is installed, you should be able to compile Gazebo-classic from source with Oculus Rift support. Follow [this](/tutorials?tut=install_from_source&cat=install) instructions to compile Gazebo. During the execution of the `cmake` command, you should see this message confirming that the Oculus SDK is found: @@ -34,7 +34,7 @@ Follow [this](/tutorials?tut=install_from_source&cat=install) instructions to co -- found OculusVR, version 0.2.5 ~~~ -# Configuring and running Gazebo with Oculus Rift support. +# Configuring and running Gazebo-classic with Oculus Rift support. Before starting Gazebo, open up your favourite editor and edit the file `~/.gazebo/gui.ini` file with the following content: @@ -50,7 +50,7 @@ visual= autolaunch=0 ~~~ -Do not forget to replace `x` with the value of the horizontal resolution of your monitor, and `visual` with the name of the visual link that you want to use with Oculus Rift. Gazebo will create a new window in the (x,y) coordinates, that should be rendered in the Oculus headset. +Do not forget to replace `x` with the value of the horizontal resolution of your monitor, and `visual` with the name of the visual link that you want to use with Oculus Rift. Gazebo-classic will create a new window in the (x,y) coordinates, that should be rendered in the Oculus headset. As an example, this is the content of our `gui.ini` file: @@ -66,13 +66,13 @@ visual=camera::link::visual autolaunch=0 ~~~ -After plugging in and enable your Oculus Rift headset, go ahead and start Gazebo with a world containing a camera: +After plugging in and enable your Oculus Rift headset, go ahead and start Gazebo-classic with a world containing a camera: ~~~ gazebo worlds/camera.world ~~~ -Once Gazebo is up and running, click on Window->Oculus Rift and you should be able to see the world from your Oculus headset. +Once Gazebo-classic is up and running, click on Window->Oculus Rift and you should be able to see the world from your Oculus headset. It is also possible to enable the Oculus window by default when starting Gazebo. Modify the `gui.ini` file and set `autolaunch=1`. Now, start gazebo and your Oculus Rift should be working without any intervention: diff --git a/parallel/tutorial.md b/parallel/tutorial.md index 3482e500..42199538 100644 --- a/parallel/tutorial.md +++ b/parallel/tutorial.md @@ -1,7 +1,7 @@ # Overview The complexity of simulated robots, spatial size of environments, and fidelity of sensor simulation all play a role in determining what can be simulated with the -constraint of operating at or near real-time. The Gazebo physics update loop is +constraint of operating at or near real-time. The Gazebo-classic physics update loop is one of the primary consumers of CPU cycles. With an limitation in the speed of solution algorithms to solve the underlying mathematical problem that represents those physical constraints, parallelization of the physics engine is the direction @@ -11,7 +11,7 @@ and environments in real-time. # Parallel Strategies Two strategies to parallelize physics have been implemented: island thread and position error correction thread. For more details about these two strategies results -and analysis, please refer to the [parallel physics reports on the Gazebo webpage](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf). +and analysis, please refer to the [parallel physics reports on the Gazebo-classic webpage](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf). Threading is enabled using SDFormat parameters: @@ -29,7 +29,7 @@ is recalculated. ## Position Error Correction Thread The second strategy attempts to speed up the constraint resolution algorithm within islands for the QuickStep solver. The ODE QuickStep solver is the default solver in -Gazebo and solves constraints posed as a Linear Complementarity Problem (LCP). As an +Gazebo-classic and solves constraints posed as a Linear Complementarity Problem (LCP). As an iterative, fixed time step solver, it is prone to position errors, such as interpenetration of objects. @@ -77,14 +77,14 @@ The following snippet shows how to configure the physics engine with ode with 3 engine in runtime with the command `gz physics -o ` ( for example: `gz physics -o unthrottled1`)**. - **Visit the tutorial [Manage physics profiles](/tutorials?tut=preset_manager&cat=physics) - for more details about Gazebo physics parameters. These parameters affect the + for more details about Gazebo-classic physics parameters. These parameters affect the performance, accuracy, and general behavior of physics simulation. The physics preset manager interface offers a way to easily switch between a set of physics parameters and save them to SDF.** # Running the code -Gazebo is currently instrumented with high-resolution diagnostic timers at several parts of the inner +Gazebo-classic is currently instrumented with high-resolution diagnostic timers at several parts of the inner loop. The timer resolution depends on the hardware in use and is approximately 100ns on our test machines. To prevent performance degradation during normal usage, the timers are disabled unless the `ENABLE_DIAGNOSTICS` symbol is defined during compilation. For each simulation step, the elapsed @@ -132,7 +132,7 @@ contact, articulation constraints, and multiple *islands*. ### Some results: revolute_joint_test.world -For these tests Gazebo is running as fast as possible because we want to track the improvement in the `real_time_factor` value. +For these tests Gazebo-classic is running as fast as possible because we want to track the improvement in the `real_time_factor` value. You can use some of the scripts described in the section below to run these tests locally. The scripts will subscribe to the topic: `/gazebo/default/diagnostics` and record the real_time_factor in a csv file. @@ -155,13 +155,13 @@ more threads is **not** going to help the performance. ### Running some experiments -For a quick review of how parallelization works in Gazebo we will run some experiments. For a deeper review of the experiments please refer to the [Gazebo parallel physics report](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf). +For a quick review of how parallelization works in Gazebo-classic we will run some experiments. For a deeper review of the experiments please refer to the [Gazebo-classic parallel physics report](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf). The following results measure the real time factor, this is a simplification -of the tests presented in the [Gazebo parallel physics report](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf) but if -you have installed Gazebo from packages it's another way (less precise) to +of the tests presented in the [Gazebo-classic parallel physics report](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf) but if +you have installed Gazebo-classic from packages it's another way (less precise) to check the performance of these parameters. You only can access to the -dianostics tools if you compile Gazebo from sources with the cmake flag +dianostics tools if you compile Gazebo-classic from sources with the cmake flag `-DENABLE_DIAGNOSTICS` as explained above. To run the experiment: @@ -249,4 +249,4 @@ python3 show_parallel_results.py dual_pr2/ If you have a look to the results obtained for the pr2. You will see that threaded islands don’t help the single PR2 scenario since the complex PR2 model cannot be partitioned and solved simultaneously over several threads. -Launch the other experiments and try to understand what is happening. Then review the [Gazebo parallel physics report](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf) to compare your thoughts +Launch the other experiments and try to understand what is happening. Then review the [Gazebo-classic parallel physics report](http://gazebosim.org/assets/parallel_physics-1f40fad62e6878895798c9cb3261d92164a083c2fdbdb18a09d0891fafdc5230.pdf) to compare your thoughts diff --git a/performance_metrics/tutorial.md b/performance_metrics/tutorial.md index d9c241df..7ad67119 100644 --- a/performance_metrics/tutorial.md +++ b/performance_metrics/tutorial.md @@ -1,6 +1,6 @@ # Performance metrics -Gazebo 9 and Gazebo 11 publish a message called `/gazebo/performance_metrics` that allows to check the performance +Gazebo-classic 9 and Gazebo-classic 11 publish a message called `/gazebo/performance_metrics` that allows to check the performance of each sensor in the world. # Learn how to read the measurements @@ -50,7 +50,7 @@ sensor { With the `lockstep` flag activated the `sim_update_rate` must correspond with the real value defined in the world. In this case we expect the `sim_update_rate` to be equal to 500 for the high resolution camera -and 30 for the low resolution camera. Then the `fps` value means that Gazebo is able to generate on average 337 frames in a *real second*. +and 30 for the low resolution camera. Then the `fps` value means that Gazebo-classic is able to generate on average 337 frames in a *real second*. The real time factor is likely less than 1.0. The exact number depends on your computing power. This shows that the sensor's update rate is strictly followed, and physics has slowed down in order to accommodate for the high update rate. @@ -162,7 +162,7 @@ sensor { The maximum time step size that can be taken by a variable time-step solver (such as simbody) during simulation. For physics engines with fixed-step solvers (like ODE), this is simply the time step size. The default value -in Gazebo is 0.001 seconds. +in Gazebo-classic is 0.001 seconds. When you choose the `update rate` of a sensor you need to take in account if you have enough precision defined in `max step size`. For example: diff --git a/physics_params/tutorial.md b/physics_params/tutorial.md index 1ce95378..ceb8ed97 100644 --- a/physics_params/tutorial.md +++ b/physics_params/tutorial.md @@ -14,22 +14,22 @@ The parameters listed in this section are defined under the `` tag [here](http://sdformat.org/spec?ver=1.6&elem=physics). These are shared among all physics engines. -1. `type`: The type of the dynamics engine. Currently Gazebo supports 4 physics +1. `type`: The type of the dynamics engine. Currently Gazebo-classic supports 4 physics engines: `ode`, `bullet`, `simbody` and `dart`. The default physics engine is `ode`. 1. `max_step_size`: The maximum time step size that can be taken by a variable time-step solver (such as simbody) during simulation. For physics engines with fixed-step solvers (like ODE), this is simply the time step size. -The default value in Gazebo is `0.001` seconds. +The default value in Gazebo-classic is `0.001` seconds. 1. `real_time_factor`: `max_step_size x real_time_update_rate` sets an upper bound of `real_time_factor`. If `real_time_factor < 1` the simulation is slower than real time. 1. `real_time_update_rate`: This is the frequency at which the simulation time steps -are advanced. The default value in Gazebo is `1000` Hz. Multiplying with the default +are advanced. The default value in Gazebo-classic is `1000` Hz. Multiplying with the default `max_step_size` of `0.001` seconds gives a `real_time_factor` of `1`. If `real_time_update_rate` -is set to `0` the simulation will run as fast as it can. If Gazebo is not able to update +is set to `0` the simulation will run as fast as it can. If Gazebo-classic is not able to update at the desired rate, it will update as fast as it can, based on the computing power. 1. `max_contacts`: The maximum number of contacts to be generated between two entities. diff --git a/plugins_hello_world/tutorial-2.2.md b/plugins_hello_world/tutorial-2.2.md index 9a3c3305..771cc706 100644 --- a/plugins_hello_world/tutorial-2.2.md +++ b/plugins_hello_world/tutorial-2.2.md @@ -1,7 +1,7 @@ -# Overview of Gazebo Plugins +# Overview of Gazebo-classic Plugins A plugin is a chunk of code that is compiled as a shared library and inserted into the simulation. -The plugin has direct access to all the functionality of Gazebo through the standard C++ classes. +The plugin has direct access to all the functionality of Gazebo-classic through the standard C++ classes. Plugins are useful because they: @@ -9,7 +9,7 @@ Plugins are useful because they: * are self-contained routines that are easily shared * can be inserted and removed from a running system -Previous versions of Gazebo utilized controllers. +Previous versions of Gazebo-classic utilized controllers. These behaved in much the same way as plugins, but were statically compiled into Gazebo. Plugins are more flexible, and allow users to pick and choose what functionality to include in their simulations. @@ -39,7 +39,7 @@ There are currently 5 types of plugins Each plugin type is managed by a different component of Gazebo. For example, a Model plugin is attached to and controls a specific model in Gazebo. Similarly, a World plugin is attached to a world, and a Sensor plugin to a specific sensor. -The System plugin is specified on the command line, and loads first during a Gazebo startup. +The System plugin is specified on the command line, and loads first during a Gazebo-classic startup. This plugin gives the user control over the startup process. A plugin type should be chosen based on the desired functionality. @@ -52,7 +52,7 @@ Use a Sensor plugin to acquire sensor information and control sensor properties. Plugins are designed to be simple. A bare bones world plugin contains a class with a few member functions. -First, if you installed Gazebo from debians, make sure you've installed the Gazebo development files. If you installed Gazebo from source, you can ignore this step. If you have a lower release than gazebo5, replace 5 with whatever version number you have. +First, if you installed Gazebo-classic from debians, make sure you've installed the Gazebo-classic development files. If you installed Gazebo-classic from source, you can ignore this step. If you have a lower release than gazebo5, replace 5 with whatever version number you have. ~~~ sudo apt-get install libgazebo5-dev @@ -69,7 +69,7 @@ $ gedit hello_world.cc Copy the following into hello_world.cc: -The above code is also located in the Gazebo sources: +The above code is also located in the Gazebo-classic sources: [examples/plugins/hello\_world/hello\_world.cc](http://github.com/osrf/gazebo/blob/gazebo_2.2/examples/plugins/hello_world), along with an appropriate CMakeLists.txt file. @@ -150,7 +150,7 @@ $ make Compiling will result in a shared library, `~/gazebo_plugin_tutorial/build/libhello_world.so`, -that can be inserted in a Gazebo simulation. +that can be inserted in a Gazebo-classic simulation. Lastly, add your library path to the `GAZEBO_PLUGIN_PATH`: @@ -163,8 +163,8 @@ $ export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:~/gazebo_plugin_tutorial/build Once you have a plugin compiled as a shared library (see above), you can attach it to a world or model in an SDF file (see [SDF documentation](http://gazebosim.org/sdf.html) for more info). -On startup, Gazebo parses the SDF file, locates the plugin, and loads the code. -It is important that Gazebo is capable of finding the plugin. +On startup, Gazebo-classic parses the SDF file, locates the plugin, and loads the code. +It is important that Gazebo-classic is capable of finding the plugin. Either the full path to the plugin is specified, or the plugin exists in one of the paths in the `GAZEBO_PLUGIN_PATH` environment variable. @@ -182,7 +182,7 @@ $ gzserver ~/gazebo_plugin_tutorial/hello.world --verbose You should see output similar to: ~~~ -Gazebo multi-robot simulator, version 1.9.5 +Gazebo-classic multi-robot simulator, version 1.9.5 Copyright (C) 2013 Open Source Robotics Foundation. Released under the Apache 2 License. http://gazebosim.org diff --git a/plugins_hello_world/tutorial-6.md b/plugins_hello_world/tutorial-6.md index e911f47a..a10c1567 100644 --- a/plugins_hello_world/tutorial-6.md +++ b/plugins_hello_world/tutorial-6.md @@ -1,7 +1,7 @@ -# Overview of Gazebo Plugins +# Overview of Gazebo-classic Plugins A plugin is a chunk of code that is compiled as a shared library and inserted into the simulation. -The plugin has direct access to all the functionality of Gazebo through the standard C++ classes. +The plugin has direct access to all the functionality of Gazebo-classic through the standard C++ classes. Plugins are useful because they: @@ -9,7 +9,7 @@ Plugins are useful because they: * are self-contained routines that are easily shared * can be inserted and removed from a running system -Previous versions of Gazebo utilized controllers. +Previous versions of Gazebo-classic utilized controllers. These behaved in much the same way as plugins, but were statically compiled into Gazebo. Plugins are more flexible, and allow users to pick and choose what functionality to include in their simulations. @@ -40,7 +40,7 @@ There are currently 6 types of plugins Each plugin type is managed by a different component of Gazebo. For example, a Model plugin is attached to and controls a specific model in Gazebo. Similarly, a World plugin is attached to a world, and a Sensor plugin to a specific sensor. -The System plugin is specified on the command line, and loads first during a Gazebo startup. +The System plugin is specified on the command line, and loads first during a Gazebo-classic startup. This plugin gives the user control over the startup process. A plugin type should be chosen based on the desired functionality. @@ -53,7 +53,7 @@ Use a Sensor plugin to acquire sensor information and control sensor properties. Plugins are designed to be simple. A bare bones world plugin contains a class with a few member functions. -First, if you installed Gazebo from debians, make sure you've installed the Gazebo development files. If you installed Gazebo from source, you can ignore this step. If you have a release other than gazebo6, replace 6 with whatever version number you have. +First, if you installed Gazebo-classic from debians, make sure you've installed the Gazebo-classic development files. If you installed Gazebo-classic from source, you can ignore this step. If you have a release other than gazebo6, replace 6 with whatever version number you have. ~~~ sudo apt-get install libgazebo6-dev @@ -70,7 +70,7 @@ $ gedit hello_world.cc Copy the following into hello_world.cc: -The above code is also located in the Gazebo sources: +The above code is also located in the Gazebo-classic sources: [examples/plugins/hello\_world/hello\_world.cc](http://github.com/osrf/gazebo/blob/gazebo6/examples/plugins/hello_world), along with an appropriate CMakeLists.txt file. @@ -159,7 +159,7 @@ $ make Compiling will result in a shared library, `~/gazebo_plugin_tutorial/build/libhello_world.so`, -that can be inserted in a Gazebo simulation. +that can be inserted in a Gazebo-classic simulation. Lastly, add your library path to the `GAZEBO_PLUGIN_PATH`: @@ -176,8 +176,8 @@ your plugin for every new temrinal you open, append the line above to the Once you have a plugin compiled as a shared library (see above), you can attach it to a world or model in an SDF file (see [SDF documentation](http://gazebosim.org/sdf.html) for more info). -On startup, Gazebo parses the SDF file, locates the plugin, and loads the code. -It is important that Gazebo is capable of finding the plugin. +On startup, Gazebo-classic parses the SDF file, locates the plugin, and loads the code. +It is important that Gazebo-classic is capable of finding the plugin. Either the full path to the plugin is specified, or the plugin exists in one of the paths in the `GAZEBO_PLUGIN_PATH` environment variable. @@ -200,7 +200,7 @@ $ gzserver ~/gazebo_plugin_tutorial/hello.world --verbose You should see output similar to: ~~~ -Gazebo multi-robot simulator, version 6.1.0 +Gazebo-classic multi-robot simulator, version 6.1.0 Copyright (C) 2012-2015 Open Source Robotics Foundation. Released under the Apache 2 License. http://gazebosim.org diff --git a/plugins_model/tutorial.md b/plugins_model/tutorial.md index 3e53cfda..46b00fc2 100644 --- a/plugins_model/tutorial.md +++ b/plugins_model/tutorial.md @@ -24,7 +24,7 @@ Assuming the reader has gone through the [Hello WorldPlugin tutorial](/tutorials -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libmodel_push.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libmodel_push.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ cd ~/gazebo_plugin_tutorial/build diff --git a/plugins_model/tutorial_1-9.md b/plugins_model/tutorial_1-9.md index a417dab9..ee9ab1b6 100644 --- a/plugins_model/tutorial_1-9.md +++ b/plugins_model/tutorial_1-9.md @@ -24,7 +24,7 @@ Assuming the reader has gone through the [Hello WorldPlugin tutorial](/tutorials -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libmodel_push.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libmodel_push.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ cd ~/gazebo_plugin_tutorial/build diff --git a/plugins_random_velocity/tutorial-6.md b/plugins_random_velocity/tutorial-6.md index fa21d82e..7743b09f 100644 --- a/plugins_random_velocity/tutorial-6.md +++ b/plugins_random_velocity/tutorial-6.md @@ -16,7 +16,7 @@ Once you have set the velocity magnitude, the direction is set on its own # Example 1. Change your current working directory to the location of the worlds folder -in your Gazebo source (use the path to your Gazebo source). +in your Gazebo-classic source (use the path to your Gazebo-classic source). 2. Open `random_velocity.world` in your default editor. ~~~ @@ -70,7 +70,7 @@ You can play with the values of ``initial_velocity``, ``velocity_factor``, The source code for this plugin is available on [GitHub](https://github.com/osrf/gazebo/blob/gazebo6/plugins/). -If you have installed Gazebo from source then you can find this file where you +If you have installed Gazebo-classic from source then you can find this file where you downloaded the repository. ~~~ @@ -110,7 +110,7 @@ All other `#include`s are necessary for various parts of code. For example: using namespace gazebo; ~~~ -To avoid writing gazebo repeatedly, before using Gazebo routines, structures or object classes. +To avoid writing gazebo repeatedly, before using Gazebo-classic routines, structures or object classes. ~~~ GZ_REGISTER_MODEL_PLUGIN(RandomVelocityPlugin) diff --git a/plugins_world/tutorial-7-8.md b/plugins_world/tutorial-7-8.md index 95e0e65f..fc3f3fed 100644 --- a/plugins_world/tutorial-7-8.md +++ b/plugins_world/tutorial-7-8.md @@ -42,7 +42,7 @@ The second method uses a World method to load a model based on string data. -The third method uses the message passing mechanism to insert a model. This method is most useful for stand alone applications that communicate with Gazebo over a network connection. +The third method uses the message passing mechanism to insert a model. This method is most useful for stand alone applications that communicate with Gazebo-classic over a network connection. @@ -53,7 +53,7 @@ Assuming the reader has gone through the [Plugin Overview Tutorial](/tutorials/? -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libfactory.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libfactory.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ mkdir ~/gazebo_plugin_tutorial/build @@ -219,4 +219,4 @@ Run Gazebo $ gazebo ~/gazebo_plugin_tutorial/factory.world ~~~ -The Gazebo window should show an environment with a sphere, box, and cylinder arranged in a row. +The Gazebo-classic window should show an environment with a sphere, box, and cylinder arranged in a row. diff --git a/plugins_world/tutorial.md b/plugins_world/tutorial.md index f6856449..b9a49b8b 100644 --- a/plugins_world/tutorial.md +++ b/plugins_world/tutorial.md @@ -42,7 +42,7 @@ The second method uses a World method to load a model based on string data. -The third method uses the message passing mechanism to insert a model. This method is most useful for stand alone applications that communicate with Gazebo over a network connection. +The third method uses the message passing mechanism to insert a model. This method is most useful for stand alone applications that communicate with Gazebo-classic over a network connection. @@ -53,7 +53,7 @@ Assuming the reader has gone through the [Plugin Overview Tutorial](/tutorials/? -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libfactory.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libfactory.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ mkdir ~/gazebo_plugin_tutorial/build @@ -219,4 +219,4 @@ Run Gazebo $ gazebo ~/gazebo_plugin_tutorial/factory.world ~~~ -The Gazebo window should show an environment with a sphere, box, and cylinder arranged in a row. +The Gazebo-classic window should show an environment with a sphere, box, and cylinder arranged in a row. diff --git a/plugins_world/tutorial1_9.md b/plugins_world/tutorial1_9.md index 18122f66..ea413a98 100644 --- a/plugins_world/tutorial1_9.md +++ b/plugins_world/tutorial1_9.md @@ -42,7 +42,7 @@ The second method uses a World method to load a model based on string data. -The third method uses the message passing mechanism to insert a model. This method is most useful for stand alone applications that communicate with Gazebo over a network connection. +The third method uses the message passing mechanism to insert a model. This method is most useful for stand alone applications that communicate with Gazebo-classic over a network connection. @@ -53,7 +53,7 @@ Assuming the reader has gone through the [Plugin Overview Tutorial](/tutorials/? -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libfactory.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libfactory.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ mkdir ~/gazebo_plugin_tutorial/build @@ -219,4 +219,4 @@ Run Gazebo $ gazebo ~/gazebo_plugin_tutorial/factory.world ~~~ -The Gazebo window should show an environment with a sphere, box, and cylinder arranged in a row. +The Gazebo-classic window should show an environment with a sphere, box, and cylinder arranged in a row. diff --git a/plugins_world_properties/tutorial.md b/plugins_world_properties/tutorial.md index ae2c089d..e8cfe742 100644 --- a/plugins_world_properties/tutorial.md +++ b/plugins_world_properties/tutorial.md @@ -53,7 +53,7 @@ Assuming the reader has gone through the [Plugin Overview Tutorial](/tutorials/? -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libworld_edit.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libworld_edit.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ mkdir ~/gazebo_plugin_tutorial/build diff --git a/plugins_world_properties/tutorial_2-2.md b/plugins_world_properties/tutorial_2-2.md index 3d1f915d..2d150b4b 100644 --- a/plugins_world_properties/tutorial_2-2.md +++ b/plugins_world_properties/tutorial_2-2.md @@ -53,7 +53,7 @@ Assuming the reader has gone through the [Plugin Overview Tutorial](/tutorials/? -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libworld_edit.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libworld_edit.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ mkdir ~/gazebo_plugin_tutorial/build diff --git a/plugins_world_properties/tutorial_7.md b/plugins_world_properties/tutorial_7.md index 39dd2c39..fbf23419 100644 --- a/plugins_world_properties/tutorial_7.md +++ b/plugins_world_properties/tutorial_7.md @@ -53,7 +53,7 @@ Assuming the reader has gone through the [Plugin Overview Tutorial](/tutorials/? -Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libworld_edit.so`, that can be inserted in a Gazebo simulation. +Compiling this code will result in a shared library, `~/gazebo_plugin_tutorial/build/libworld_edit.so`, that can be inserted in a Gazebo-classic simulation. ~~~ $ mkdir ~/gazebo_plugin_tutorial/build diff --git a/preset_manager/tutorial.md b/preset_manager/tutorial.md index 05013ff2..aa6a8436 100644 --- a/preset_manager/tutorial.md +++ b/preset_manager/tutorial.md @@ -2,7 +2,7 @@ This tutorial describes how to use the Preset Manager interface to store physics parameter profiles and switch between them. # Motivation -Gazebo has many parameters that affect the performance, accuracy, and general +Gazebo-classic has many parameters that affect the performance, accuracy, and general behavior of physics simulation. Some are shared between the different physics engines supported by Gazebo, like maximum step size and target real time factor, and some are not. The physics preset manager interface offers a way to @@ -15,9 +15,9 @@ In SDF, a physics profile is simply a `` element. As of SDF protocol ve which was introduced in SDFormat version 3, multiple physics elements are allowed in a world file, but they must be differentiated by the `name` attribute. When there are multiple physics elements -specified, Gazebo will choose the one with the `default` attribute set to true. -If no default physics profile is set, Gazebo will choose the first one. If -multiple default profiles are set, Gazebo will choose the first set as default. +specified, Gazebo-classic will choose the one with the `default` attribute set to true. +If no default physics profile is set, Gazebo-classic will choose the first one. If +multiple default profiles are set, Gazebo-classic will choose the first set as default. In the following world example ([downloadable here](https://github.com/osrf/gazebo_tutorials/raw/master/preset_manager/files/preset_example_sdf1_6.world)), @@ -102,10 +102,10 @@ For a shortcut, use `-o`: gazebo preset_example_sdf1_6.world -o ode_70iters ``` -You can also substitute `gazebo` with `gzserver` to run Gazebo headless +You can also substitute `gazebo` with `gzserver` to run Gazebo-classic headless (without the graphical client). -While Gazebo is running, you can switch the profile in another terminal +While Gazebo-classic is running, you can switch the profile in another terminal by using `gz physics`: ``` @@ -123,7 +123,7 @@ Download the -The script launches Gazebo first with the `ode_200iters` profile, +The script launches Gazebo-classic first with the `ode_200iters` profile, then switches to `ode_70iters` and the simulation goes unstable. The script then switches back to `ode_200iters` and resets the world, then switches between the `ode_200iters` and `ode_500iters` profiles 5 times, pausing for 5 seconds between each switch. @@ -170,5 +170,5 @@ will have to close and reopen the menu to refresh the GUI. [[file:files/worldtab.png|600px]] -Use this script as a base for your own experimentation and profiling with the Gazebo physics +Use this script as a base for your own experimentation and profiling with the Gazebo-classic physics library! diff --git a/preset_manager/tutorial_3.md b/preset_manager/tutorial_3.md index e2e43681..e8ae66c2 100644 --- a/preset_manager/tutorial_3.md +++ b/preset_manager/tutorial_3.md @@ -2,7 +2,7 @@ This tutorial describes how to use the Preset Manager interface to store physics parameter profiles and switch between them. # Motivation -Gazebo has many parameters that affect the performance, accuracy, and general +Gazebo-classic has many parameters that affect the performance, accuracy, and general behavior of physics simulation. Some are shared between the different physics engines supported by Gazebo, like maximum step size and target real time factor, and some are not. The physics preset manager interface offers a way to @@ -15,9 +15,9 @@ In SDF, a physics profile is simply a `` element. As of SDF protocol ve which was introduced in SDFormat version 3, multiple physics elements are allowed in a world file, but they must be differentiated by the `name` attribute. When there are multiple physics elements -specified, Gazebo will choose the one with the `default` attribute set to true. -If no default physics profile is set, Gazebo will choose the first one. If -multiple default profiles are set, Gazebo will choose the first set as default. +specified, Gazebo-classic will choose the one with the `default` attribute set to true. +If no default physics profile is set, Gazebo-classic will choose the first one. If +multiple default profiles are set, Gazebo-classic will choose the first set as default. In the following world example ([downloadable here](https://github.com/osrf/gazebo_tutorials/raw/master/preset_manager/files/preset_example.world)), @@ -102,10 +102,10 @@ For a shortcut, use `-o`: gazebo preset_world.world -o ode_70iters ``` -You can also substitute `gazebo` with `gzserver` to run Gazebo headless +You can also substitute `gazebo` with `gzserver` to run Gazebo-classic headless (without the graphical client). -While Gazebo is running, you can switch the profile in another terminal +While Gazebo-classic is running, you can switch the profile in another terminal by using `gz physics`: ``` @@ -123,7 +123,7 @@ Download the -The script launches Gazebo first with the `ode_200iters` profile, +The script launches Gazebo-classic first with the `ode_200iters` profile, then switches to `ode_70iters` and the simulation goes unstable. The script then switches back to `ode_200iters` and resets the world, then switches between the `ode_200iters` and `ode_500iters` profiles 5 times, pausing for 5 seconds between each switch. @@ -164,5 +164,5 @@ will have to close and reopen the menu to refresh the GUI. [[file:files/worldtab.png|600px]] -Use this script as a base for your own experimentation and profiling with the Gazebo physics +Use this script as a base for your own experimentation and profiling with the Gazebo-classic physics library! diff --git a/preset_manager/tutorial_7.md b/preset_manager/tutorial_7.md index 9647f873..7739b5d5 100644 --- a/preset_manager/tutorial_7.md +++ b/preset_manager/tutorial_7.md @@ -2,7 +2,7 @@ This tutorial describes how to use the Preset Manager interface to store physics parameter profiles and switch between them. # Motivation -Gazebo has many parameters that affect the performance, accuracy, and general +Gazebo-classic has many parameters that affect the performance, accuracy, and general behavior of physics simulation. Some are shared between the different physics engines supported by Gazebo, like maximum step size and target real time factor, and some are not. The physics preset manager interface offers a way to @@ -15,9 +15,9 @@ In SDF, a physics profile is simply a `` element. As of SDF protocol ve which was introduced in SDFormat version 3, multiple physics elements are allowed in a world file, but they must be differentiated by the `name` attribute. When there are multiple physics elements -specified, Gazebo will choose the one with the `default` attribute set to true. -If no default physics profile is set, Gazebo will choose the first one. If -multiple default profiles are set, Gazebo will choose the first set as default. +specified, Gazebo-classic will choose the one with the `default` attribute set to true. +If no default physics profile is set, Gazebo-classic will choose the first one. If +multiple default profiles are set, Gazebo-classic will choose the first set as default. In the following world example ([downloadable here](https://github.com/osrf/gazebo_tutorials/raw/master/preset_manager/files/preset_example_sdf1_6.world)), @@ -102,10 +102,10 @@ For a shortcut, use `-o`: gazebo preset_example_sdf1_6.world -o ode_70iters ``` -You can also substitute `gazebo` with `gzserver` to run Gazebo headless +You can also substitute `gazebo` with `gzserver` to run Gazebo-classic headless (without the graphical client). -While Gazebo is running, you can switch the profile in another terminal +While Gazebo-classic is running, you can switch the profile in another terminal by using `gz physics`: ``` @@ -123,7 +123,7 @@ Download the -The script launches Gazebo first with the `ode_200iters` profile, +The script launches Gazebo-classic first with the `ode_200iters` profile, then switches to `ode_70iters` and the simulation goes unstable. The script then switches back to `ode_200iters` and resets the world, then switches between the `ode_200iters` and `ode_500iters` profiles 5 times, pausing for 5 seconds between each switch. @@ -170,5 +170,5 @@ will have to close and reopen the menu to refresh the GUI. [[file:files/worldtab.png|600px]] -Use this script as a base for your own experimentation and profiling with the Gazebo physics +Use this script as a base for your own experimentation and profiling with the Gazebo-classic physics library! diff --git a/process/tutorial.md b/process/tutorial.md index 19bd0515..99103185 100644 --- a/process/tutorial.md +++ b/process/tutorial.md @@ -1,8 +1,8 @@ # Versioning -Gazebo version numbers are composed of three numbers, such as 1.9.2, that represent MAJOR.MINOR.PATCH +Gazebo-classic version numbers are composed of three numbers, such as 1.9.2, that represent MAJOR.MINOR.PATCH -As of Gazebo 2.0.0, each number is incremented according to: +As of Gazebo-classic 2.0.0, each number is incremented according to: 1. MAJOR is increased when breaking ABI/API changes are introduced. 2. MINOR is increased when ABI/API compatible new features are introduced. @@ -10,15 +10,15 @@ As of Gazebo 2.0.0, each number is incremented according to: This means all 2.x.x versions will be ABI/API compatible. -# Gazebo Branches and Pull-Requests +# Gazebo-classic Branches and Pull-Requests - The [Gazebo repository](https://github.com/osrf/gazebo) is located on [GitHub](http://github.com). + The [Gazebo-classic repository](https://github.com/osrf/gazebo) is located on [GitHub](http://github.com). ## Branches 1. ''master'': Contains all code that breaks ABI/API compatibility with the current released version - 2. ''gazeboX'': Contains code for Gazebo version X, where X is the MAJOR version. Only bugs fixes and features that do not break ABI/API may be submitted to this branch. + 2. ''gazeboX'': Contains code for Gazebo-classic version X, where X is the MAJOR version. Only bugs fixes and features that do not break ABI/API may be submitted to this branch. 3. All other branches are unstable development branches. @@ -42,8 +42,8 @@ As of Gazebo 2.0.0, each number is incremented according to: # OSRF Internal Development Process - The steps listed below detail how a Gazebo release is developed. - This process is enforced by the core Gazebo team, which currently resides at [OSRF](http://osrfoundation.org). + The steps listed below detail how a Gazebo-classic release is developed. + This process is enforced by the core Gazebo-classic team, which currently resides at [OSRF](http://osrfoundation.org). ## Step 1: New features and/or bug fixes @@ -55,7 +55,7 @@ As of Gazebo 2.0.0, each number is incremented according to: ## Step 3: Feature Freeze - A branch is created, typically named with the upcoming major.minor number. This branch will eventually become the final Gazebo release. No new features are allowed in this branch from this point on. Only bug fixes will be accepted. + A branch is created, typically named with the upcoming major.minor number. This branch will eventually become the final Gazebo-classic release. No new features are allowed in this branch from this point on. Only bug fixes will be accepted. ## Step 4: Code Freeze @@ -63,5 +63,5 @@ As of Gazebo 2.0.0, each number is incremented according to: ## Step 5: Release - A Debian package and source tarball is generated from the release branch. Documentation on the Gazebo website is updated. + A Debian package and source tarball is generated from the release branch. Documentation on the Gazebo-classic website is updated. diff --git a/profiler/tutorial.md b/profiler/tutorial.md index a6345f0e..a431c35b 100644 --- a/profiler/tutorial.md +++ b/profiler/tutorial.md @@ -1,12 +1,12 @@ # Profiler -Gazebo 11 uses the [Ignition Common Profiler](https://ignitionrobotics.org/api/common/3.5/profiler.html) to check and visualize the performance of the different threads, functions and methods. +Gazebo-classic 11 uses the [Ignition Common Profiler](https://ignitionrobotics.org/api/common/3.5/profiler.html) to check and visualize the performance of the different threads, functions and methods. -Gazebo 9 uses an internal fork of Ignition Common's profiler. +Gazebo-classic 9 uses an internal fork of Ignition Common's profiler. ## How to run and see the profiler results for Gazebo? -To use the compiler, Gazebo must be compiled from source with the CMake flag +To use the compiler, Gazebo-classic must be compiled from source with the CMake flag `-DENALE_PROFILER=1`, for example: ```bash @@ -27,13 +27,13 @@ gazebo profiler.world There's a convenient launcher script (Linux and macOS) for starting Remotery. -* On Gazebo 11: +* On Gazebo-classic 11: ``` ign_remotery_vis ``` -* On Gazebo 9: +* On Gazebo-classic 9: ``` gz_remotery_vis @@ -72,12 +72,12 @@ and `gzserver` loops. [[file:files/gzserverLoop.png|600px]] -## How can I add the profiler to custom Gazebo plugins? +## How can I add the profiler to custom Gazebo-classic plugins? -Using Gazebo 11, you can add profiler points to any Gazebo plugin. This -is not possible on Gazebo 9. +Using Gazebo-classic 11, you can add profiler points to any Gazebo-classic plugin. This +is not possible on Gazebo-classic 9. -If you want to add the profiler to your own Gazebo plugins you need to +If you want to add the profiler to your own Gazebo-classic plugins you need to follow these steps: * Include the header diff --git a/quick_start/tutorial.md b/quick_start/tutorial.md index 6ec777c1..65da3612 100644 --- a/quick_start/tutorial.md +++ b/quick_start/tutorial.md @@ -1,12 +1,12 @@ # Run Gazebo -These three steps will run Gazebo with a default world. +These three steps will run Gazebo-classic with a default world. 1. [Install]( http://gazebosim.org/tutorials?cat=install) Gazebo. 2. Open a terminal. On most Ubuntu systems you can press `CTRL+ALT+t` -3. Start Gazebo by entering the following at the command prompt. +3. Start Gazebo-classic by entering the following at the command prompt. ~~~ gazebo @@ -14,7 +14,7 @@ These three steps will run Gazebo with a default world. > Note: The first time you launch gazebo, it will try to download a couple of models so this process may take some time. -# Run Gazebo with a robot +# Run Gazebo-classic with a robot Let's simulate something a bit more interesting by loading a world with a pioneer2dx. @@ -24,19 +24,19 @@ Let's simulate something a bit more interesting by loading a world with a pionee gazebo worlds/pioneer2dx.world ~~~ - > Note: If you don't have the pioneer2dx model already, Gazebo will download it from the online model database which may take some time. + > Note: If you don't have the pioneer2dx model already, Gazebo-classic will download it from the online model database which may take some time. ## Where are the worlds located? You may have noticed the mysterious `worlds/pioneer2dx.world` argument in the above command. This instructs gazebo to find the `pioneer2dx.world` file, and load it on start. -World files are located in a versioned system directory, for example `/usr/share/gazebo-7` on Ubuntu. If you have Gazebo 7.0 installed on Ubuntu, in a terminal type the following to see a complete list of worlds. +World files are located in a versioned system directory, for example `/usr/share/gazebo-7` on Ubuntu. If you have Gazebo-classic 7.0 installed on Ubuntu, in a terminal type the following to see a complete list of worlds. ~~~ ls /usr/share/gazebo-7/worlds ~~~ -For a Gazebo 7.0 installation on OS X using Homebrew, type the following to see a complete list of worlds. +For a Gazebo-classic 7.0 installation on OS X using Homebrew, type the following to see a complete list of worlds. ~~~ ls /usr/local/share/gazebo-7/worlds @@ -70,6 +70,6 @@ Open another terminal and run the graphical client: gzclient ~~~ -At this point you should see the Gazebo user interface. You restart the +At this point you should see the Gazebo-classic user interface. You restart the `gzclient` application as often as you want, and even run multiple interfaces. diff --git a/random_numbers/tutorial.md b/random_numbers/tutorial.md index f66addee..58430163 100644 --- a/random_numbers/tutorial.md +++ b/random_numbers/tutorial.md @@ -1,10 +1,10 @@ # Introduction -Gazebo makes use of a random number generator. By default the seed is set to the PID of the process running Gazebo. It is possible to manually set the random number seed. The advantage of this feature is to obtain a deterministic sequence of random numbers, which is good for test repeatability. +Gazebo-classic makes use of a random number generator. By default the seed is set to the PID of the process running Gazebo. It is possible to manually set the random number seed. The advantage of this feature is to obtain a deterministic sequence of random numbers, which is good for test repeatability. # Command line -Gazebo can be initialized with a random number seed on the command line using the `--seed` argument: +Gazebo-classic can be initialized with a random number seed on the command line using the `--seed` argument: ~~~ gazebo --seed @@ -12,4 +12,4 @@ gazebo --seed # Message -Gazebo listens to the `~/world_control` topic, which requires messages of type [msgs::WorldControl](http://osrf-distributions.s3.amazonaws.com/gazebo/msg-api/dev/world__control_8proto.html). The world control message may contain a random number seed. +Gazebo-classic listens to the `~/world_control` topic, which requires messages of type [msgs::WorldControl](http://osrf-distributions.s3.amazonaws.com/gazebo/msg-api/dev/world__control_8proto.html). The world control message may contain a random number seed. diff --git a/ros2_installing/tutorial.md b/ros2_installing/tutorial.md index 18a3e7bd..b2a62d46 100644 --- a/ros2_installing/tutorial.md +++ b/ros2_installing/tutorial.md @@ -1,12 +1,12 @@ # Introduction -The set of ROS 2 packages for interfacing with Gazebo are contained within a +The set of ROS 2 packages for interfacing with Gazebo-classic are contained within a meta package named `gazebo_ros_pkgs`. See [ROS 2 Overview](/tutorials/?tut=ros2_overview) for background information before continuing here. -The packages support ROS 2 Crystal and later and Gazebo 9 and later, and can be installed from +The packages support ROS 2 Crystal and later and Gazebo-classic 9 and later, and can be installed from debian packages or from source. ## Prerequisites @@ -26,11 +26,11 @@ The current stable distribution is **Foxy**. ### Install Gazebo -You can install Gazebo either from source or from pre-build packages. See +You can install Gazebo-classic either from source or from pre-build packages. See [Install Gazebo](/tutorials?cat=install). -You should install Gazebo 9 or later. If installing from source, be sure to build the -appropriate branch, such as `gazebo11` for Gazebo 11. +You should install Gazebo-classic 9 or later. If installing from source, be sure to build the +appropriate branch, such as `gazebo11` for Gazebo-classic 11. > **Tip**: You may need to source Gazebo's setup file if you're having difficulty finding plugins and other resources. For example: `source /usr/share/gazebo/setup.sh`. @@ -122,13 +122,13 @@ The following setup assumes installation with `ros2` branch of `gazebo_ros_pkgs` > **Tip**: You can make this be automatically sourced for every new terminal by running this once: `echo "source ~/ws/install/setup.bash" >> ~/.bashrc` -## Testing Gazebo and ROS 2 integration +## Testing Gazebo-classic and ROS 2 integration -Assuming your ROS 2 and Gazebo environments have been properly setup and built, -you should now be able to load Gazebo worlds which contain ROS 2 plugins, and to +Assuming your ROS 2 and Gazebo-classic environments have been properly setup and built, +you should now be able to load Gazebo-classic worlds which contain ROS 2 plugins, and to insert models at runtime which have ROS 2 plugins in them. -Gazebo ROS packages provides several demo worlds for you to get a quick start +Gazebo-classic ROS packages provides several demo worlds for you to get a quick start with the plugins. The demo worlds can be found [here](https://github.com/ros-simulation/gazebo_ros_pkgs/tree/ros2/gazebo_plugins/worlds), and are installed by default under @@ -155,7 +155,7 @@ Let's try loading one of them now! gazebo --verbose /opt/ros/foxy/share/gazebo_plugins/worlds/gazebo_ros_diff_drive_demo.world -1. The Gazebo GUI should appear with a simple vehicle: +1. The Gazebo-classic GUI should appear with a simple vehicle: [[file:figs/gazebo_ros_diff_drive.png|600px]] diff --git a/ros2_overview/tutorial.md b/ros2_overview/tutorial.md index 9fb87055..8142e012 100644 --- a/ros2_overview/tutorial.md +++ b/ros2_overview/tutorial.md @@ -3,8 +3,8 @@ > For ROS 1, see [ROS integration overview](/tutorials?tut=ros_overview). -Gazebo is a stand-alone application which can be used independently of ROS or -ROS 2. The integration of Gazebo with either ROS version is done through a set +Gazebo-classic is a stand-alone application which can be used independently of ROS or +ROS 2. The integration of Gazebo-classic with either ROS version is done through a set of packages called [gazebo\_ros\_pkgs](https://github.com/ros-simulation/gazebo_ros_pkgs). These packages provide a bridge between Gazebo's C++ API and transport system, @@ -22,19 +22,19 @@ The ROS 2 package `gazebo_ros_pkgs` is a metapackage which contains the following packages: * `gazebo_dev`: Provides a cmake configuration for the default version of - Gazebo for the ROS distribution. So downstream packages can + Gazebo-classic for the ROS distribution. So downstream packages can just depend on `gazebo_dev` instead of needing to find - Gazebo by themselves. + Gazebo-classic by themselves. * `gazebo_msgs`: Message and service data structures for interacting with - Gazebo from ROS 2. + Gazebo-classic from ROS 2. * `gazebo_ros`: Provides convenient C++ classes and functions which can be used by other plugins, such as `gazebo_ros::Node`, conversion and testing utilities. It also provides some generally useful plugins. -* `gazebo_plugins`: A series of Gazebo plugins exposing sensors and other +* `gazebo_plugins`: A series of Gazebo-classic plugins exposing sensors and other features to ROS 2. For example, `gazebo_ros_camera` publishes ROS 2 images, and `gazebo_ros_diff_drive` provides an interface for controlling and instrospecting differential @@ -50,7 +50,7 @@ The code can also be built from source using the against [ROS 2 master branches](https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos). -Currently, the only supported Gazebo version is Gazebo 9. +Currently, the only supported Gazebo-classic version is Gazebo-classic 9. ## Differences from ROS 1 @@ -63,7 +63,7 @@ Some goals of the refactoring were: * Remove code which duplicates functionality already present in Gazebo. * Reduce duplication by standardizing common functionality, such as how to set ROS namespaces, parameters and topic remapping. -* Modernize the codebase, making use of the latest SDFormat, Gazebo and Ignition APIs, as well as ROS 2's +* Modernize the codebase, making use of the latest SDFormat, Gazebo-classic and Ignition APIs, as well as ROS 2's [style guidelines](https://github.com/ros2/ros2/wiki/Developer-Guide#c-1) and linters. * Add tests and demos for all ported functionality. @@ -74,10 +74,10 @@ See some general highlights below. ### Init -The ROS 1 integration required that Gazebo be launched with the +The ROS 1 integration required that Gazebo-classic be launched with the `gazebo_ros_api_plugin` system plugin, which would initialize ROS. -There's no such requirement with ROS 2. Gazebo can be started without any +There's no such requirement with ROS 2. Gazebo-classic can be started without any plugins and ROS-2-enabled plugins can be added at runtime. ### Node @@ -92,7 +92,7 @@ keeping callback queues - `gazebo_ros` handles all that internally. ### SDF parsing -There are several configurations which Gazebo ROS plugins commonly want to +There are several configurations which Gazebo-classic ROS plugins commonly want to set through SDF, and in the ROS 1 implementation, there was a lot of duplicate code on plugins parsing the same things, sometimes following loose conventions. diff --git a/ros_advanced/tutorial.md b/ros_advanced/tutorial.md index e0960c73..12e09402 100644 --- a/ros_advanced/tutorial.md +++ b/ros_advanced/tutorial.md @@ -2,7 +2,7 @@ ## Dynamic Reconfigure -Some of the physics properties can be adjusted within Gazebo as we described in the [modifying a world tutorial](/tutorials?tut=modifying_world&cat=build_world). In addition, we can modify this properties using ROS's dynamic reconfigure mechanism. +Some of the physics properties can be adjusted within Gazebo-classic as we described in the [modifying a world tutorial](/tutorials?tut=modifying_world&cat=build_world). In addition, we can modify this properties using ROS's dynamic reconfigure mechanism. As an example, we'll invert the gravity in the simulation. Make sure you have the following installed for jade: diff --git a/ros_comm/tutorial.md b/ros_comm/tutorial.md index 72d0ebd8..f24b1b4b 100644 --- a/ros_comm/tutorial.md +++ b/ros_comm/tutorial.md @@ -1,23 +1,23 @@ # Tutorial: ROS Communication -Gazebo provides a set of ROS API's that allows users to modify and get information about various aspects of the simulated world. In the following sections, we will demonstrate some of the utilities for manipulating the simulation world and objects. The complete list of ROS messages and services for gazebo can be found here also. +Gazebo-classic provides a set of ROS API's that allows users to modify and get information about various aspects of the simulated world. In the following sections, we will demonstrate some of the utilities for manipulating the simulation world and objects. The complete list of ROS messages and services for gazebo can be found here also. ## Prerequisites If you would like to follow along with the examples make sure you have the RRBot setup as described in the [Using URDF in Gazebo](/tutorials/?tut=ros_urdf). In this tutorial we'll have the RRBot "kick" a coke can using various techniques. -We'll assume you have Gazebo already launched using: +We'll assume you have Gazebo-classic already launched using: ~~~ roscore & rosrun gazebo_ros gazebo ~~~ -You may occasionally need to restart Gazebo after different commands listed below. +You may occasionally need to restart Gazebo-classic after different commands listed below. ## Terminologies -In the following context, the pose and twist of a rigid body object is referred to as its '''state''. An object also has intrinsic '''properties''', such as mass and friction coefficients. In Gazebo, a '''body''' refers to a rigid body, synonymous to '''link''' in the URDF context. A Gazebo '''model''' is a conglomeration of bodies connected by '''joints'''. +In the following context, the pose and twist of a rigid body object is referred to as its '''state''. An object also has intrinsic '''properties''', such as mass and friction coefficients. In Gazebo, a '''body''' refers to a rigid body, synonymous to '''link''' in the URDF context. A Gazebo-classic '''model''' is a conglomeration of bodies connected by '''joints'''. ## About the gazebo\_ros\_api\_plugin @@ -27,17 +27,17 @@ This plugin is only loaded with `gzserver`. ## About the gazebo\_ros\_paths_plugin -A secondary plugin named `gazebo_ros_paths_plugin` is available in the `gazebo_ros` package that simply allows Gazebo to find ROS resources, i.e. resolving ROS package path names. +A secondary plugin named `gazebo_ros_paths_plugin` is available in the `gazebo_ros` package that simply allows Gazebo-classic to find ROS resources, i.e. resolving ROS package path names. This plugin is loaded with both `gzserver` and `gzclient`. -## Gazebo Published Parameters +## Gazebo-classic Published Parameters Parameters: `/use_sim_time` : `Bool` - Notifies ROS to use published `/clock` topic for ROS time. -Gazebo uses the ROS parameter server to notify other applications, particularly Rviz, if simulation time should be used via the `/use_sim_time` parameter. This should be set automatically by Gazebo as true when you start `gazebo_ros` +Gazebo-classic uses the ROS parameter server to notify other applications, particularly Rviz, if simulation time should be used via the `/use_sim_time` parameter. This should be set automatically by Gazebo-classic as true when you start `gazebo_ros` `/use_sim_time` is true if gazebo_ros is publishing to the ROS `/clock` topic in order to provide a ROS system with simulation-synchronized time. For more info on simulation time, see [ROS C++ Time](http://www.ros.org/wiki/roscpp/Overview/Time). @@ -49,7 +49,7 @@ To see what the parameter is set as run: rosparam get /use_sim_time ~~~ -## Gazebo Subscribed Topics +## Gazebo-classic Subscribed Topics Topics: @@ -76,7 +76,7 @@ You should see the coke can hovering in front of the RRBot, just asking to be hi [[file:HoverCoke.png|600px]] -## Gazebo Published Topics +## Gazebo-classic Published Topics Topics: @@ -89,7 +89,7 @@ Topics: ### Retrieving Model and Link States Using Topics -Gazebo publishes `/gazebo/link_states` and `/gazebo/model_states` topics, containing pose and twist information of objects in simulation with respect to the gazebo world frame. You can see these in action by running: +Gazebo-classic publishes `/gazebo/link_states` and `/gazebo/model_states` topics, containing pose and twist information of objects in simulation with respect to the gazebo world frame. You can see these in action by running: ~~~ rostopic echo -n 1 /gazebo/model_states @@ -108,7 +108,7 @@ These services allow the user to spawn and destroy models dynamically in simulat `~/spawn_urdf_model` : `gazebo_msgs/SpawnModel` - Use this service to spawn a Universal Robotic Description Format (URDF) -`~/spawn_sdf_model` : `gazebo_msgs/SpawnModel` - Use this service to spawn a model written in Gazebo Simulation Description Format (SDF) +`~/spawn_sdf_model` : `gazebo_msgs/SpawnModel` - Use this service to spawn a model written in Gazebo-classic Simulation Description Format (SDF) `~/delete_model` : `gazebo_msgs/DeleteModel` - This service allows the user to delete a model from simulation. @@ -146,7 +146,7 @@ rosrun gazebo_ros spawn_model -h ### Delete Model -Deleting models that are already in Gazebo is easier as long as you know the model name you gave the object. If you spawned a rrbot named "rrbot1" as described in the previous section, you can remove it with: +Deleting models that are already in Gazebo-classic is easier as long as you know the model name you gave the object. If you spawned a rrbot named "rrbot1" as described in the previous section, you can remove it with: ~~~ rosservice call gazebo/delete_model '{model_name: rrbot1}' @@ -181,7 +181,7 @@ If you have not already added a coke can to your simulation run rosrun gazebo_ros spawn_model -database coke_can -gazebo -model coke_can -y 1 ~~~ -This should be prepackaged with Gazebo or available via the online model database (internet connection required). Place the coke can anywhere in the scene, it doesn't matter where. Now we'll call a service request to move the coke can into position of the RRBot: +This should be prepackaged with Gazebo-classic or available via the online model database (internet connection required). Place the coke can anywhere in the scene, it doesn't matter where. Now we'll call a service request to move the coke can into position of the RRBot: ~~~ rosservice call /gazebo/set_model_state '{model_state: { model_name: coke_can, pose: { position: { x: 0.3, y: 0.2 ,z: 0 }, orientation: {x: 0, y: 0.491983115673, z: 0, w: 0.870604813099 } }, twist: { linear: {x: 0.0 , y: 0 ,z: 0 } , angular: { x: 0.0 , y: 0 , z: 0.0 } } , reference_frame: world } }' @@ -310,7 +310,7 @@ These services allow the user to apply wrenches and forces to bodies and joints ### Apply Wrenches to Links -To demonstrate wrench applications on a Gazebo body, let's spawn an object with gravity turned off. Make sure the coke can has been added to the simulation: +To demonstrate wrench applications on a Gazebo-classic body, let's spawn an object with gravity turned off. Make sure the coke can has been added to the simulation: ~~~ rosrun gazebo_ros spawn_model -database coke_can -gazebo -model coke_can -y 1 diff --git a/ros_control/tutorial.md b/ros_control/tutorial.md index 4df6dc6c..65a05579 100644 --- a/ros_control/tutorial.md +++ b/ros_control/tutorial.md @@ -10,7 +10,7 @@ We encourage you to read an overview of the documentation on [ros_control](http: ## Data flow of ros_control and Gazebo -Simulating a robot's controllers in Gazebo can be accomplished using ros_control and a simple Gazebo plugin adapter. +Simulating a robot's controllers in Gazebo-classic can be accomplished using ros_control and a simple Gazebo-classic plugin adapter. An overview of the relationship between simulation, hardware, controllers and transmissions is shown below: [[file:Gazebo_ros_transmission.png|800px]] @@ -45,7 +45,7 @@ The rest of the names and elements are currently ignored. ## Add the gazebo\_ros\_control plugin -In addition to the transmission tags, a Gazebo plugin needs to be added to your URDF that actually parses the transmission tags and loads the appropriate hardware interfaces and controller manager. +In addition to the transmission tags, a Gazebo-classic plugin needs to be added to your URDF that actually parses the transmission tags and loads the appropriate hardware interfaces and controller manager. By default the gazebo\_ros\_control plugin is very simple, though it is also extensible via an additional plugin architecture to allow power users to create their own custom robot hardware interfaces between ros_control and Gazebo. The default plugin XML should be added to your URDF: @@ -78,10 +78,10 @@ The default behavior provides the following ros_control interfaces: ### Advanced: custom gazebo\_ros\_control Simulation Plugins -The gazebo\_ros\_control Gazebo plugin also provides a pluginlib-based interface to implement custom interfaces between Gazebo and ros_control for simulating more complex mechanisms (nonlinear springs, linkages, etc). +The gazebo\_ros\_control Gazebo-classic plugin also provides a pluginlib-based interface to implement custom interfaces between Gazebo-classic and ros_control for simulating more complex mechanisms (nonlinear springs, linkages, etc). These plugins must inherit gazebo\_ros\_control::RobotHWSim which implements a simulated ros\_control hardware\_interface::RobotHW. -RobotHWSim provides API-level access to read and command joint properties in the Gazebo simulator. +RobotHWSim provides API-level access to read and command joint properties in the Gazebo-classic simulator. The respective RobotHWSim sub-class is specified in a URDF model and is loaded when the robot model is loaded. For example, the following XML will load the default plugin (same behavior as when using no `` tag): @@ -97,7 +97,7 @@ For example, the following XML will load the default plugin (same behavior as wh ## RRBot Example -We add a `` block similar to the following for every joint that we wish to have Gazebo actuate. +We add a `` block similar to the following for every joint that we wish to have Gazebo-classic actuate. Note that the `` must be included in both the `` and `` tags (see [ros\_control issue here](https://github.com/ros-controls/ros_control/issues/177)). @@ -363,7 +363,7 @@ roslaunch rrbot_control rrbot_rqt.launch You can use that as a template for doing this with your own robot. -## Connect Rviz to Gazebo Simulation +## Connect Rviz to Gazebo-classic Simulation Now that you are using ros\_control to send commands to your robot in simulation, you can also use the ros\_control joint_state_controller to read the state of the robot from Gazebo. The idea behind a good simulator is that you should be able to use the same software on your real hardware as you do in simulation. @@ -377,7 +377,7 @@ rosrun rviz rviz Under "Global Options" change your "Fixed Frame" to "world" to resolve any errors it might be giving you. -Next, add a "RobotModel" display type to Rviz and you should then see your simulated robot in Gazebo being visualized in Rviz! +Next, add a "RobotModel" display type to Rviz and you should then see your simulated robot in Gazebo-classic being visualized in Rviz! # Demo Code @@ -386,4 +386,4 @@ The example code used for the RRBot in this tutorial is available in the reposit # Next Steps -Learn about ROS message and service calls that are available for use with Gazebo in the tutorial [ROS Communication with Gazebo](/tutorials/?tut=ros_comm). +Learn about ROS message and service calls that are available for use with Gazebo-classic in the tutorial [ROS Communication with Gazebo](/tutorials/?tut=ros_comm). diff --git a/ros_depth_camera/tutorial.md b/ros_depth_camera/tutorial.md index 2fb07892..087da444 100644 --- a/ros_depth_camera/tutorial.md +++ b/ros_depth_camera/tutorial.md @@ -1,16 +1,16 @@ -# Use a Gazebo Depth Camera with ROS +# Use a Gazebo-classic Depth Camera with ROS ## Introduction -In this tutorial, you'll learn how to connect a Gazebo depth camera to ROS. The +In this tutorial, you'll learn how to connect a Gazebo-classic depth camera to ROS. The tutorial consists of 3 main steps: - 1. Create a Gazebo model that includes a ROS depth camera plugin + 1. Create a Gazebo-classic model that includes a ROS depth camera plugin 2. Set up the depth camera in Gazebo 3. View the depth camera's output in RViz. This is a self-contained tutorial; it does not use the RRBot that is developed -in other Gazebo ROS tutorials. It is designed to help you get up and running +in other Gazebo-classic ROS tutorials. It is designed to help you get up and running quickly using computer vision in ROS and Gazebo. ### Prerequisites @@ -18,12 +18,12 @@ quickly using computer vision in ROS and Gazebo. You should [install gazebo\_ros\_pkgs](/tutorials?tut=ros_installing&cat=connect_ros) before doing this tutorial. -## Create a Gazebo Model with a Depth Camera Plugin +## Create a Gazebo-classic Model with a Depth Camera Plugin -Because Gazebo and ROS are separate projects that do not depend on each other, +Because Gazebo-classic and ROS are separate projects that do not depend on each other, sensors from the `gazebo_models` repository (such as depth cameras) do not include ROS plugins by default. This means you have to make a custom camera -based on those in the Gazebo model repository, and then add your own `` +based on those in the Gazebo-classic model repository, and then add your own `` tag to make the depth camera data publish point clouds and images to ROS topics. You should choose a depth camera to use from those available in Gazebo. This @@ -110,7 +110,7 @@ saved your changes, you should be ready to roll! ## Set up the Depth Camera in Gazebo -Open Gazebo with ROS support enabled (e.g. +Open Gazebo-classic with ROS support enabled (e.g. `roslaunch gazebo_ros empty_world.launch`). Use the Insert panel to find your "Kinect ROS" model, and insert it into the world. @@ -128,7 +128,7 @@ sensing setup using physically correct models. ## View Depth Camera Output in RViz -Now that the camera is in the Gazebo scene, it should be publishing images and +Now that the camera is in the Gazebo-classic scene, it should be publishing images and point clouds to ROS topics. You can check the topics that are being published by running `rostopic list` in a new terminal. You should see the topics you specified in the SDF plugin code listed. @@ -149,17 +149,17 @@ similar to the following from the PointCloud2: [[file:depth_camera_rviz.png|600px]] An Image display will show a grayscale version of the depth camera results. -If you have Gazebo 8 or newer, you can compare these RViz results to the depth -image results available in the Gazebo Topic Visualizer. +If you have Gazebo-classic 8 or newer, you can compare these RViz results to the depth +image results available in the Gazebo-classic Topic Visualizer. ### Troubleshooting **Problem:** `rostopic list` shows no camera topics. **Solution:** Make sure you added the correct model in Gazebo. Make sure that -the Gazebo simulation is running, not paused. Check the `model.sdf` file and +the Gazebo-classic simulation is running, not paused. Check the `model.sdf` file and ensure that the `` tag is in the correct location in the file. Try -running Gazebo in verbose mode (`rosrun gazebo_ros gazebo --verbose`) and +running Gazebo-classic in verbose mode (`rosrun gazebo_ros gazebo --verbose`) and see if there are any helpful warning or error messages that can help pinpoint the problem. diff --git a/ros_gzplugins/tutorial.md b/ros_gzplugins/tutorial.md index dd782a3d..3a3a70e3 100644 --- a/ros_gzplugins/tutorial.md +++ b/ros_gzplugins/tutorial.md @@ -1,7 +1,7 @@ -# Tutorial: Using Gazebo plugins with ROS +# Tutorial: Using Gazebo-classic plugins with ROS -Gazebo plugins give your URDF models greater functionality and can tie in ROS messages and service calls for sensor output and motor input. +Gazebo-classic plugins give your URDF models greater functionality and can tie in ROS messages and service calls for sensor output and motor input. In this tutorial we explain both how to setup preexisting plugins and how to create your own custom plugins that can work with ROS. ## Prerequisites @@ -11,7 +11,7 @@ Also make sure you have understood the use of the `` element within the ## Plugin Types -Gazebo supports +Gazebo-classic supports [several plugin types](/tutorials?tut=plugins_hello_world&cat=write_plugin), and all of them can be connected to ROS, but only a few types can be referenced through a URDF file: @@ -39,7 +39,7 @@ Also, it will be give a reference to the [SDF element](http://osrf-distributions ## Adding a `SensorPlugin` -Specifying sensor plugins is slightly different. [Sensors](https://osrf-distributions.s3.amazonaws.com/gazebo/api/dev/group__gazebo__sensors.html) in Gazebo are meant to be attached to links, +Specifying sensor plugins is slightly different. [Sensors](https://osrf-distributions.s3.amazonaws.com/gazebo/api/dev/group__gazebo__sensors.html) in Gazebo-classic are meant to be attached to links, so the `` element describing that sensor must be given a reference to that link. For example: @@ -120,7 +120,7 @@ A Xacro property is also defined: You should be able to launch the RRBot and see a red box attached to the end of the arm. -Next we will review the Gazebo plugin that gives us the camera functionality and publishes the image to a ROS message. In the RRBot we have been following the convention of putting Gazebo elements in the `rrbot.gazebo` file: +Next we will review the Gazebo-classic plugin that gives us the camera functionality and publishes the image to a ROS message. In the RRBot we have been following the convention of putting Gazebo-classic elements in the `rrbot.gazebo` file: ~~~ @@ -177,7 +177,7 @@ The link name "camera_link" must match the name of the link we added to the Xacr ~~~ -The sensor name "camera1" must be unique from all other sensor names. The name is not used many places except for within Gazebo plugins you can access +The sensor name "camera1" must be unique from all other sensor names. The name is not used many places except for within Gazebo-classic plugins you can access ~~~ 30.0 @@ -229,7 +229,7 @@ The coordinate frame the image is published under in the tf tree. ### Running the RRBot Example -After you have saved both `rrbot.xacro` and `rrbot.gazebo`, you should be able to launch both Rviz and Gazebo in separate terminals: +After you have saved both `rrbot.xacro` and `rrbot.gazebo`, you should be able to launch both Rviz and Gazebo-classic in separate terminals: ~~~ roslaunch rrbot_gazebo rrbot_world.launch @@ -238,7 +238,7 @@ roslaunch rrbot_description rrbot_rviz.launch In Rviz, add a ''Camera'' display and under ''Image Topic'' set it to `/rrbot/camera1/image_raw`. -You should see a camera view of your Gazebo environment. In the following two pictures, a soda can was added to the environment for better visuals. +You should see a camera view of your Gazebo-classic environment. In the following two pictures, a soda can was added to the environment for better visuals. The coke can added: @@ -369,7 +369,7 @@ In this code example there is both a left and right camera: ~~~ -You can find a more detailed description for configuring a depth camera in [Use a Gazebo Depth Camera with ROS](/tutorials/?tut=ros_depth_camera). +You can find a more detailed description for configuring a depth camera in [Use a Gazebo-classic Depth Camera with ROS](/tutorials/?tut=ros_depth_camera). ## GPU Laser @@ -471,7 +471,7 @@ Set these to the ROS topic name you would like to publish the laser scans to, an ### Running the RRBot Example -After you have saved both `rrbot.xacro` and `rrbot.gazebo`, you should be able to launch both Rviz and Gazebo in separate terminals: +After you have saved both `rrbot.xacro` and `rrbot.gazebo`, you should be able to launch both Rviz and Gazebo-classic in separate terminals: ~~~ roslaunch rrbot_gazebo rrbot.launch @@ -480,7 +480,7 @@ roslaunch rrbot_description rrbot_rviz.launch In Rviz, add a ''LaserScan'' display and under ''Topic'' set it to `/rrbot/laser/scan`. -You should see a faint laser scan line in your Gazebo environment. While the pendulum is swinging, you should also see the laser scan swing. If the scan is too faint, you can up the size of the laser scan in the properties of the LaserScan display in Rviz. A size of 1m is very easy to see. In the following two pictures, a house and construction barrel was added to the environment for better visuals. +You should see a faint laser scan line in your Gazebo-classic environment. While the pendulum is swinging, you should also see the laser scan swing. If the scan is too faint, you can up the size of the laser scan in the properties of the LaserScan display in Rviz. A size of 1m is very easy to see. In the following two pictures, a house and construction barrel was added to the environment for better visuals. View from Gazebo: @@ -678,7 +678,7 @@ save, then launch the same launch files as for GPU Laser. ## Skid Steering Drive -**Description:** model plugin that provides a basic controller for skid steering drive robots in Gazebo (Pioneer 3AT for instance). +**Description:** model plugin that provides a basic controller for skid steering drive robots in Gazebo-classic (Pioneer 3AT for instance). ~~~ @@ -790,5 +790,5 @@ If a 3rd party plugin is useful and generic enough, please consider pulling it i # Next Steps -Next we will analyze the `ros_control` packages integrated with Gazebo for tight controller/actuator/simulator integration +Next we will analyze the `ros_control` packages integrated with Gazebo-classic for tight controller/actuator/simulator integration [Actuators, controllers, and ros_control](/tutorials/?tut=ros_control). diff --git a/ros_installing/tutorial.md b/ros_installing/tutorial.md index 52e689c7..f18a3d9f 100644 --- a/ros_installing/tutorial.md +++ b/ros_installing/tutorial.md @@ -1,14 +1,14 @@ # Introduction -The set of ROS packages for interfacing with Gazebo are contained within a +The set of ROS packages for interfacing with Gazebo-classic are contained within a new meta package (catkin's version of stacks) named `gazebo_ros_pkgs`. See [Overview of new ROS integration](/tutorials/?tut=ros_overview) for background information before continuing here. -These instructions are for using the Gazebo versions that are fully integrated +These instructions are for using the Gazebo-classic versions that are fully integrated with ROS [Noetic](http://www.ros.org/wiki/noetic), [Melodic](http://www.ros.org/wiki/melodic) and ROS. It is recommended to first -read [Which combination of ROS/Gazebo version to use](/tutorials/?tut=ros_wrapper_versions) +read [Which combination of ROS/Gazebo-classic version to use](/tutorials/?tut=ros_wrapper_versions) before going on with this tutorial. Depending on your needs, you could need an alternative installation. @@ -26,13 +26,13 @@ See the [ROS installation page](http://www.ros.org/wiki/ROS/Installation) for mo ### Install Gazebo -You can install Gazebo either from source or from pre-build Ubuntu debians. +You can install Gazebo-classic either from source or from pre-build Ubuntu debians. See [Install Gazebo](/tutorials?cat=install). If installing from source, be sure to build the `gazebo_X.Y` (X.Y being your desired version) branch. -#### Test that stand-alone Gazebo works +#### Test that stand-alone Gazebo-classic works -Before attempting to install the `gazebo_ros_pkgs`, make sure the stand-alone Gazebo works by running in terminal: +Before attempting to install the `gazebo_ros_pkgs`, make sure the stand-alone Gazebo-classic works by running in terminal: ~~~ gazebo @@ -42,7 +42,7 @@ You should see the GUI open with an empty world. Also, test adding a model by cl #### Test that you have the right version of Gazebo -To check version of Gazebo run: +To check version of Gazebo-classic run: ~~~ gazebo --version @@ -91,7 +91,7 @@ sudo apt-get install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control ~~~ -If this installation method ends successfully for you, jump to the Testing Gazebo with ROS Integration section below. +If this installation method ends successfully for you, jump to the Testing Gazebo-classic with ROS Integration section below. #### Setup A Catkin Workspace @@ -155,7 +155,7 @@ Now jump to the [build the gazebo\_ros\_pkgs](#Buildthegazebo_ros_pkgs) section. #### Build the gazebo\_ros\_pkgs -To build the Gazebo ROS integration packages, run the following commands: +To build the Gazebo-classic ROS integration packages, run the following commands: ~~~ cd ~/catkin_ws/ @@ -164,7 +164,7 @@ catkin_make See [answers.gazebosim.org](http://answers.gazebosim.org/questions/) for issues or questions with building these packages. -## Testing Gazebo with ROS Integration +## Testing Gazebo-classic with ROS Integration Be sure to always source the appropriate ROS setup file, which for Noetic is done like so: @@ -174,7 +174,7 @@ source /opt/ros/noetic/setup.bash You might want to add that line to your `~/.bashrc`. -Assuming your ROS and Gazebo environment have been properly setup and built, you should now be able to run Gazebo through a simple `rosrun` command, after launching `roscore` if needed: +Assuming your ROS and Gazebo-classic environment have been properly setup and built, you should now be able to run Gazebo-classic through a simple `rosrun` command, after launching `roscore` if needed: Source the catkin setup.bash if it's not already in your .bashrc @@ -187,7 +187,7 @@ roscore & rosrun gazebo_ros gazebo ~~~ -The Gazebo GUI should appear with nothing inside the viewing window. +The Gazebo-classic GUI should appear with nothing inside the viewing window. [[file:figs/800px-EmptyGazebo.png|800px]] @@ -208,7 +208,7 @@ You should see within the lists topics such as: /gazebo/set_model_state %%% -You can also verify the Gazebo services exist: +You can also verify the Gazebo-classic services exist: ~~~ rosservice list @@ -259,25 +259,25 @@ There are several `rosrun` commands for starting Gazebo: rosrun gazebo_ros gazebo ~~~ -* Launch the Gazebo server only +* Launch the Gazebo-classic server only ~~~ rosrun gazebo_ros gzserver ~~~ -* Launch the Gazebo client only +* Launch the Gazebo-classic client only ~~~ rosrun gazebo_ros gzclient ~~~ -* Launches the Gazebo server only, in debug mode using GDB +* Launches the Gazebo-classic server only, in debug mode using GDB ~~~ rosrun gazebo_ros debug ~~~ -* Additionally, you can start Gazebo using `roslaunch` +* Additionally, you can start Gazebo-classic using `roslaunch` ~~~ roslaunch gazebo_ros empty_world.launch diff --git a/ros_overview/tutorial.md b/ros_overview/tutorial.md index a7268afe..bd345a26 100644 --- a/ros_overview/tutorial.md +++ b/ros_overview/tutorial.md @@ -6,7 +6,7 @@ To achieve ROS integration with stand-alone Gazebo, a set of ROS packages named [gazebo\_ros\_pkgs](http://ros.org/wiki/gazebo_ros_pkgs) provides wrappers around the stand-alone Gazebo. They provide the necessary interfaces to -simulate a robot in Gazebo using ROS messages, services and dynamic reconfigure +simulate a robot in Gazebo-classic using ROS messages, services and dynamic reconfigure Some features of `gazebo_ros_pkgs`: - Supports a stand alone system dependency of Gazebo, that has no ROS bindings on its own @@ -35,12 +35,12 @@ In a nutshell: - Within roslaunch files, `pkg="gazebo"` needs to be now renamed to `pkg="gazebo_ros"` - `gazebo_worlds` package has been removed. Most of the world files were rarely used and were not maintained with changes in SDF XML formats. -Thus, all worlds have been centralized within the Gazebo project itself, including `empty.world`. -- The best way to use Gazebo launch files is to simply inherit/include the master `empty_world` launch file located in the `gazebo_ros` package. +Thus, all worlds have been centralized within the Gazebo-classic project itself, including `empty.world`. +- The best way to use Gazebo-classic launch files is to simply inherit/include the master `empty_world` launch file located in the `gazebo_ros` package. ### CMakeLists.txt -The ROS-wrapped versiong of Gazebo was removed in favor of the system install of Gazebo. This may require reconfiguration of your +The ROS-wrapped versiong of Gazebo-classic was removed in favor of the system install of Gazebo. This may require reconfiguration of your CMake file. The following is an example CMakeLists.txt: ~~~ @@ -79,11 +79,11 @@ Add dependency on the new `gazebo_ros` package: ### Running Gazebo -The names of the ROS nodes to launch Gazebo have changed slightly to coincide with the Gazebo executable names: +The names of the ROS nodes to launch Gazebo-classic have changed slightly to coincide with the Gazebo-classic executable names: - - `rosrun gazebo_ros gazebo` launch both the Gazebo server and GUI. - - `rosrun gazebo_ros gzclient` launch the Gazebo GUI. - - `rosrun gazebo_ros gzserver` launch the Gazebo server. + - `rosrun gazebo_ros gazebo` launch both the Gazebo-classic server and GUI. + - `rosrun gazebo_ros gzclient` launch the Gazebo-classic GUI. + - `rosrun gazebo_ros gzserver` launch the Gazebo-classic server. Available nodes to run: diff --git a/ros_plugins/tutorial.md b/ros_plugins/tutorial.md index 281cf8d6..32878c72 100644 --- a/ros_plugins/tutorial.md +++ b/ros_plugins/tutorial.md @@ -1,6 +1,6 @@ # Tutorial: Ros Plugins -In this tutorial we'll walk through creating a very basic Gazebo plugin that is ROS-aware. +In this tutorial we'll walk through creating a very basic Gazebo-classic plugin that is ROS-aware. ## Create a ROS Package @@ -154,7 +154,7 @@ source devel/setup.bash roslaunch gazebo_tutorials hello.launch ~~~ -An empty Gazebo should open and in the terminal you should see it print out something like: +An empty Gazebo-classic should open and in the terminal you should see it print out something like: ~~~ INFO ros.gazebo_tutorials: Hello World! @@ -168,7 +168,7 @@ A template is available to help you quickly get a Gazebo-ROS plugin working: ## Adding Functionality -To make your plugin do something useful with Gazebo and ROS, we suggest you read the ROS-agnostic tutorials on [Plugins](/tutorials/?cat=write_plugin). +To make your plugin do something useful with Gazebo-classic and ROS, we suggest you read the ROS-agnostic tutorials on [Plugins](/tutorials/?cat=write_plugin). ## ROS Node Note @@ -178,7 +178,7 @@ All gazebo-ros plugins should check if the ROS node has already been initialized rosrun gazebo_ros gazebo ~~~ -or use the generic empty.world launch file. The `gazebo_ros/src/gazebo_ros_api_plugin.cpp` should be the only place in Gazebo that calls `ros::init()`. +or use the generic empty.world launch file. The `gazebo_ros/src/gazebo_ros_api_plugin.cpp` should be the only place in Gazebo-classic that calls `ros::init()`. ## Next Steps diff --git a/ros_roslaunch/tutorial.md b/ros_roslaunch/tutorial.md index fee3bc36..13621714 100644 --- a/ros_roslaunch/tutorial.md +++ b/ros_roslaunch/tutorial.md @@ -4,7 +4,7 @@ There are many ways to start Gazebo, open world models and spawn robot models in ## Using `roslaunch` to Open World Models -The [roslaunch](http://www.ros.org/wiki/roslaunch) tool is the standard method for starting ROS nodes and bringing up robots in ROS. To start an empty Gazebo world similar to the `rosrun` command in the previous tutorial, simply run +The [roslaunch](http://www.ros.org/wiki/roslaunch) tool is the standard method for starting ROS nodes and bringing up robots in ROS. To start an empty Gazebo-classic world similar to the `rosrun` command in the previous tutorial, simply run
 roslaunch gazebo_ros empty_world.launch
@@ -16,7 +16,7 @@ You can append the following arguments to the launch files to change the behavio
 
 **paused**
 
-  > Start Gazebo in a paused state (default false)
+  > Start Gazebo-classic in a paused state (default false)
 
 **use\_sim\_time**
 
@@ -24,7 +24,7 @@ You can append the following arguments to the launch files to change the behavio
 
 **gui**
 
-  > Launch the user interface window of Gazebo (default true)
+  > Launch the user interface window of Gazebo-classic (default true)
 
 **headless** (deprecated)
 **recording**  (previously called headless)
@@ -33,7 +33,7 @@ You can append the following arguments to the launch files to change the behavio
 
 **debug**
 
-  > Start gzserver (Gazebo Server) in debug mode using gdb (default false)
+  > Start gzserver (Gazebo-classic Server) in debug mode using gdb (default false)
 
 **verbose**
 
@@ -41,7 +41,7 @@ You can append the following arguments to the launch files to change the behavio
 
 **server\_required**
 
-  > Terminate launch script when gzserver (Gazebo Server) exits (default false)
+  > Terminate launch script when gzserver (Gazebo-classic Server) exits (default false)
 
 **gui\_required**
 
@@ -112,24 +112,24 @@ Continuing with our examination of the `mud_world.launch` file, we will now look
 
 **See the section below to view this full world file on your computer.**
 
-In this world file snippet you can see that three models are referenced. The three models are searched for within your local Gazebo Model Database. If not found there, they are automatically pulled from Gazebo's online database.
+In this world file snippet you can see that three models are referenced. The three models are searched for within your local Gazebo-classic Model Database. If not found there, they are automatically pulled from Gazebo's online database.
 
 You can learn more about world files in the [Build A World](/tutorials?cat=build_world) tutorial.
 
 #### Finding World Files On Your Computer
-World files are found within the `/worlds` directory of your Gazebo resource path. The location of this path depends on how you installed Gazebo and the type of system your are on. To find the location of your Gazebo resources, use the following command:
+World files are found within the `/worlds` directory of your Gazebo-classic resource path. The location of this path depends on how you installed Gazebo-classic and the type of system your are on. To find the location of your Gazebo-classic resources, use the following command:
 
 
 env | grep GAZEBO_RESOURCE_PATH
 
-An typical path might be something like `/usr/local/share/gazebo-1.9`. Add `/worlds` to the end of the path and you should have the directory containing the world files Gazebo uses, including the `mud.world` file. +An typical path might be something like `/usr/local/share/gazebo-1.9`. Add `/worlds` to the end of the path and you should have the directory containing the world files Gazebo-classic uses, including the `mud.world` file. -## Creating your own Gazebo ROS Package +## Creating your own Gazebo-classic ROS Package Before continuing on how to spawn robots into Gazebo, we will first go over file hierarchy standards for using -ROS with Gazebo so that we can make later assumptions. +ROS with Gazebo-classic so that we can make later assumptions. For now, we will assume your catkin workspace is named `catkin_ws`, though you can name this to whatever you want. @@ -141,7 +141,7 @@ Thus, your catkin workspace might be located on your computer at something like: Everything concerning your robot's model and description is located, as per ROS standards, in a package named `/MYROBOT_description` -and all the world files and launch files used with Gazebo is located in a ROS package named +and all the world files and launch files used with Gazebo-classic is located in a ROS package named `/MYROBOT_gazebo`. Replace 'MYROBOT' with the name of your bot in lower case letters. With these two packages, your hierarchy should be as follows: @@ -216,7 +216,7 @@ You can create custom `.world` files within your own ROS packages that are speci ~~~ -* You should now be able to launch your custom world (with a gas station) into Gazebo using the following command: +* You should now be able to launch your custom world (with a gas station) into Gazebo-classic using the following command: ~~~ . ~/catkin_ws/devel/setup.bash @@ -235,7 +235,7 @@ You can insert additional models into your robot's world file and use the `File- ## Using `roslaunch` to Spawn URDF Robots -There are two ways to launch your URDF-based robot into Gazebo using `roslaunch`: +There are two ways to launch your URDF-based robot into Gazebo-classic using `roslaunch`: **ROS Service Call Spawn Method** @@ -244,7 +244,7 @@ There are two ways to launch your URDF-based robot into Gazebo using `roslaunch` **Model Database Method** - > The second method allows you to include your robot within the `.world` file, which seems cleaner and more convenient but requires you to add your robot to the Gazebo model database by setting an environment variable. + > The second method allows you to include your robot within the `.world` file, which seems cleaner and more convenient but requires you to add your robot to the Gazebo-classic model database by setting an environment variable. We will go over both methods. Overall our recommended method is using the '''ROS Service Call Spawn Method''' @@ -287,7 +287,7 @@ You should then see something similar to: To integrate this directly into a ROS launch file, reopen the file `MYROBOT_gazebo/launch/YOUROBOT.launch` and add the following before the `` tag: ~~~ - + ~~~ @@ -307,7 +307,7 @@ Then adding this to your launch file created previously in this tutorial: - + ~~~ @@ -315,16 +315,16 @@ Launching this file, you should see the PR2 in the gas station as pictured: [[file:figs/PR2_GasStation.png|800px]] -Note: at this writing there are still a lot of errors and warnings from the console output that need to be fixed from the PR2's URDF due to Gazebo API changes. +Note: at this writing there are still a lot of errors and warnings from the console output that need to be fixed from the PR2's URDF due to Gazebo-classic API changes. ---- ### "Model Database" Robot Spawn Method -The second method of spawning robots into Gazebo allows you to include your robot within the `.world` file, which seems cleaner and more convenient but also requires you to add your robot to the Gazebo model database by setting an environment variable. This environment variable is required because of the separation of ROS dependencies from Gazebo; URDF package paths cannot be used directly inside `.world` files because Gazebo does not have a notion of ROS packages. +The second method of spawning robots into Gazebo-classic allows you to include your robot within the `.world` file, which seems cleaner and more convenient but also requires you to add your robot to the Gazebo-classic model database by setting an environment variable. This environment variable is required because of the separation of ROS dependencies from Gazebo; URDF package paths cannot be used directly inside `.world` files because Gazebo-classic does not have a notion of ROS packages. -To accomplish this method, you must make a new model database that contains just your single robot. This isn't the cleanest way to load your URDF into Gazebo but accomplishes the goal of not having to keep two copies of your robot URDF on your computer. If the following instructions are confusing, refer back to the [Gazebo Model Database](http://gazebosim.org/user_guide/started__models__database.html) documentation to understand why these steps are required. +To accomplish this method, you must make a new model database that contains just your single robot. This isn't the cleanest way to load your URDF into Gazebo-classic but accomplishes the goal of not having to keep two copies of your robot URDF on your computer. If the following instructions are confusing, refer back to the [Gazebo-classic Model Database](http://gazebosim.org/user_guide/started__models__database.html) documentation to understand why these steps are required. We will assume your ROS workspace file hierarchy is setup as described in the above sections. The only difference is that now a `model.config` file is added to your `MYROBOT_description` package like so: @@ -345,11 +345,11 @@ We will assume your ROS workspace file hierarchy is setup as described in the ab /cad ~~~ -This hierarchy is specially adapted for use as a Gazebo model database by means of the following folders/files: +This hierarchy is specially adapted for use as a Gazebo-classic model database by means of the following folders/files: -* **/home/user/catkin_workspace/src** - this is treated as the location of a Gazebo Model Database -* **/MYROBOT_description** - this directory is treated as a single Gazebo model folder -* **model.config** - this is a required configuration file for Gazebo to find this model in its database +* **/home/user/catkin_workspace/src** - this is treated as the location of a Gazebo-classic Model Database +* **/MYROBOT_description** - this directory is treated as a single Gazebo-classic model folder +* **model.config** - this is a required configuration file for Gazebo-classic to find this model in its database * **MYROBOT.urdf** - this is your robot description file, also used by Rviz, MoveIt!, etc * **/meshes** - put your .stl or .dae files in here, just as you would with regular URDFs @@ -371,11 +371,11 @@ Each model must have a model.config file in the model's root directory that cont -Unlike for SDFs, no version is required for the tag when it is used for URDFs. See the Gazebo Model Database documentation for more info. +Unlike for SDFs, no version is required for the tag when it is used for URDFs. See the Gazebo-classic Model Database documentation for more info. #### Environment Variable -Finally, you need to add an environment variable to your .bashrc file that tells Gazebo where to look for model databases. +Finally, you need to add an environment variable to your .bashrc file that tells Gazebo-classic where to look for model databases. Using the editor of your choice edit "~/.bashrc". Check if you already have a `GAZEBO_MODEL_PATH` defined. If you already have one, append to it using a semi-colon, otherwise add the new export. @@ -383,15 +383,15 @@ Assuming your Catkin workspace is in `~/catkin_ws/` Your path should look someth export GAZEBO_MODEL_PATH=/home/user/catkin_ws/src/ -#### Viewing In Gazebo - Manually +#### Viewing In Gazebo-classic - Manually -Now test to see if your new Gazebo Model Database is properly configured by launching Gazebo: +Now test to see if your new Gazebo-classic Model Database is properly configured by launching Gazebo: gazebo -And clicking the "Insert" tab on the left. You will probably see several different drop down lists that represent different model databases available on your system, including the online database. Find the database corresponding to your robot, open the sub menu, click on the name of your robot and then choose a location within Gazebo to place the robot, using your mouse. +And clicking the "Insert" tab on the left. You will probably see several different drop down lists that represent different model databases available on your system, including the online database. Find the database corresponding to your robot, open the sub menu, click on the name of your robot and then choose a location within Gazebo-classic to place the robot, using your mouse. -#### Viewing In Gazebo - `roslaunch` with the Model Database +#### Viewing In Gazebo-classic - `roslaunch` with the Model Database The advantage of the model database method is that now you can include your robot directly within your world files, without using a ROS package path. We'll use the same setup from the section "Creating a world file" but modify the world file: @@ -419,7 +419,7 @@ The advantage of the model database method is that now you can include your robo ~~~ -* You should now be able to launch your custom world with both the gas station and robot into Gazebo using the following command: +* You should now be able to launch your custom world with both the gas station and robot into Gazebo-classic using the following command:
 roslaunch MYROBOT_gazebo MYROBOT.launch
 
diff --git a/ros_urdf/tutorial.md b/ros_urdf/tutorial.md index 19341da0..7b56a59b 100644 --- a/ros_urdf/tutorial.md +++ b/ros_urdf/tutorial.md @@ -5,7 +5,7 @@ is an XML file format used in ROS to describe all elements of a robot. To use a URDF file in Gazebo, some additional simulation-specific tags must be added to work properly with Gazebo. This tutorial explains the necessary steps to successfully use your URDF-based robot in Gazebo, saving you from having to create a separate SDF file from scratch and duplicating description formats. -Under the hood, Gazebo will then convert the URDF to SDF automatically. +Under the hood, Gazebo-classic will then convert the URDF to SDF automatically. ## Background @@ -15,13 +15,13 @@ On the implementation side, the URDF syntax breaks proper formatting with heavy To deal with this issue, a new format called the [Simulation Description Format](http://sdformat.org) (SDF) -was created for use in Gazebo to solve the shortcomings of URDF. +was created for use in Gazebo-classic to solve the shortcomings of URDF. SDF is a complete description for everything from the world level down to the robot level. It is scalable, and makes it easy to add and modify elements. The SDF format is itself described using XML, which facilitates a simple upgrade tool to migrate old versions to new versions. It is also self-descriptive. -It is the intention of this author to make URDFs as fully documented and supported in Gazebo as possible, but it is relevant to the reader to understand why the two formats exist and the shortcomings of both. It would be nice if more work was put into URDFs to update them to the current needs of robotics. +It is the intention of this author to make URDFs as fully documented and supported in Gazebo-classic as possible, but it is relevant to the reader to understand why the two formats exist and the shortcomings of both. It would be nice if more work was put into URDFs to update them to the current needs of robotics. ## Overview of Converting to Gazebo @@ -34,7 +34,7 @@ There are several steps to get a URDF robot properly working in Gazebo. The foll ### Optional - Add a `` element for every `` - - Convert visual colors to Gazebo format + - Convert visual colors to Gazebo-classic format - Convert stl files to dae files for better textures - Add sensor plugins - Add a `` element for every `` @@ -53,11 +53,11 @@ We will discuss the attributes and elements within each type of `` eleme ## Prerequisites -The first step to getting your robot working in Gazebo is to have a working URDF file from the corresponding [ROS URDF Tutorials](http://www.ros.org/wiki/urdf/Tutorials). Test your URDF by viewing it in [Rviz](http://www.ros.org/wiki/rviz) before proceeding to configure your robot with Gazebo. In this tutorial, we'll use a simple demo robot named RRBot. Feel free to follow along with this robot or your own bot. +The first step to getting your robot working in Gazebo-classic is to have a working URDF file from the corresponding [ROS URDF Tutorials](http://www.ros.org/wiki/urdf/Tutorials). Test your URDF by viewing it in [Rviz](http://www.ros.org/wiki/rviz) before proceeding to configure your robot with Gazebo. In this tutorial, we'll use a simple demo robot named RRBot. Feel free to follow along with this robot or your own bot. ### Getting RRBot -RRBot, or ''Revolute-Revolute Manipulator Robot'', is a simple 3-linkage, 2-joint arm that we will use to demonstrate various features of Gazebo and URDFs. It essentially a [double inverted pendulum](http://en.wikipedia.org/wiki/Double_inverted_pendulum) and demonstrates some fun control concepts within a simulator. +RRBot, or ''Revolute-Revolute Manipulator Robot'', is a simple 3-linkage, 2-joint arm that we will use to demonstrate various features of Gazebo-classic and URDFs. It essentially a [double inverted pendulum](http://en.wikipedia.org/wiki/Double_inverted_pendulum) and demonstrates some fun control concepts within a simulator. To get RRBot, clone the [gazebo\_ros\_demos Github repo](https://github.com/ros-simulation/gazebo_ros_demos.git) @@ -112,7 +112,7 @@ rosed rrbot_description rrbot.xacro Note that we are using [Xacro](http://ros.org/wiki/xacro) to make some of the link and joint calculations easier. We are also including two additional files: - [rrbot.gazebo](https://github.com/ros-simulation/gazebo_ros_demos/blob/kinetic-devel/rrbot_description/urdf/rrbot.gazebo) -a Gazebo specific file that includes most of our Gazebo-specific XML elements including the tags +a Gazebo-classic specific file that includes most of our Gazebo-specific XML elements including the tags - [materials.xacro](https://github.com/ros-simulation/gazebo_ros_demos/blob/kinetic-devel/rrbot_description/urdf/materials.xacro) a simple Rviz colors file for storing rgba values, not really necessary but a nice convention @@ -124,7 +124,7 @@ You should also be able to launch RRBot into Gazebo: roslaunch rrbot_gazebo rrbot_world.launch
-In the launched Gazebo window you should see the robot standing straight up. Despite there being no intentional disturbances in the physics simulator by default, numerical errors should start to build up and cause the double inverted pendulum to fall after a few seconds. The following is a mid-swing screenshot of the RRBot: +In the launched Gazebo-classic window you should see the robot standing straight up. Despite there being no intentional disturbances in the physics simulator by default, numerical errors should start to build up and cause the double inverted pendulum to fall after a few seconds. The following is a mid-swing screenshot of the RRBot: [[file:figs/Swinging_Arm.png|700px]] @@ -132,7 +132,7 @@ Eventually the arm should come to a complete stop. We encourage you to tweak and ## Header of a URDF File -There have been many API changes in Gazebo and the required URDF format, one of which that Gazebo xml-schema namespaces are no longer needed. If your URDF has something like: +There have been many API changes in Gazebo-classic and the required URDF format, one of which that Gazebo-classic xml-schema namespaces are no longer needed. If your URDF has something like: ~~~ ` and `` elements -These tags work essentially the same in Gazebo as in Rviz. +These tags work essentially the same in Gazebo-classic as in Rviz. It is important that you specify both though, because unlike some ROS applications, -Gazebo will not use your `` elements as `` elements if you do not explicitly specify a `` element. -Instead, Gazebo will treat your link as "invisible" to laser scanners and collision checking. +Gazebo-classic will not use your `` elements as `` elements if you do not explicitly specify a `` element. +Instead, Gazebo-classic will treat your link as "invisible" to laser scanners and collision checking. #### Simplify collision model @@ -253,7 +253,7 @@ With the color orange defined separately such as in the file ~~~ -Unfortunately, this method of specifying link colors does not work in Gazebo as it adopts OGRE's material scripts for coloring and texturing links. Instead, a Gazebo material tag must be specified for each link, such as: +Unfortunately, this method of specifying link colors does not work in Gazebo-classic as it adopts OGRE's material scripts for coloring and texturing links. Instead, a Gazebo-classic material tag must be specified for each link, such as: ~~~ @@ -266,7 +266,7 @@ Gazebo-specific tag in a secondary file called [rrbot.gazebo](https://github.com/ros-simulation/gazebo_ros_demos/blob/master/rrbot_description/urdf/rrbot.gazebo). You can find the `` and `` elements there. -The default available materials in Gazebo can be found in the Gazebo source code at +The default available materials in Gazebo-classic can be found in the Gazebo-classic source code at [gazebo/media/materials/scripts/gazebo.material](https://github.com/osrf/gazebo/blob/master/media/materials/scripts/gazebo.material). For more advanced or custom materials, you can create your own OGRE colors or textures. See: @@ -276,11 +276,11 @@ For more advanced or custom materials, you can create your own OGRE colors or te #### STL and Collada files -Like in Rviz, Gazebo can use both [STL](http://en.wikipedia.org/wiki/STL_(file_format)) and [Collada](http://en.wikipedia.org/wiki/Collada) files. It is generally recommended you use Collada (.dae) files because they support colors and textures, whereas with STL files you can only have a solidly colored link. +Like in Rviz, Gazebo-classic can use both [STL](http://en.wikipedia.org/wiki/STL_(file_format)) and [Collada](http://en.wikipedia.org/wiki/Collada) files. It is generally recommended you use Collada (.dae) files because they support colors and textures, whereas with STL files you can only have a solidly colored link. ### `` Element -For the Gazebo physics engine to work properly, the `` element must be provided as documented on the [URDF link element](http://www.ros.org/wiki/urdf/XML/link) page. For links to not be ignored in Gazebo, their mass must be greater than zero. Additionally, links with zero principal moment of inertia (ixx, iyy, izz) could lead to infinite acceleration under any finite torque application. +For the Gazebo-classic physics engine to work properly, the `` element must be provided as documented on the [URDF link element](http://www.ros.org/wiki/urdf/XML/link) page. For links to not be ignored in Gazebo, their mass must be greater than zero. Additionally, links with zero principal moment of inertia (ixx, iyy, izz) could lead to infinite acceleration under any finite torque application. Determining the correct values for each link is required to get accurate physics approximations in Gazebo. This can be performed by conducting various measurements of the robots parts, or by using CAD software like Solidworks that includes features for approximating these values. For beginners, you can also just make the values up. @@ -297,7 +297,7 @@ An example inertia element from the RRBot first link: ~~~ -The origin tag represents the center of mass of this link. By setting the center of mass to half the height of the RRBot's rectangular link, we center the mass in the middle. You can visually check if your center of mass is correct in your URDF within Gazebo by clicking on the ''View'' menu of Gazebo and selecting both ''Wireframe'' and ''Center of Mass''. +The origin tag represents the center of mass of this link. By setting the center of mass to half the height of the RRBot's rectangular link, we center the mass in the middle. You can visually check if your center of mass is correct in your URDF within Gazebo-classic by clicking on the ''View'' menu of Gazebo-classic and selecting both ''Wireframe'' and ''Center of Mass''. In this example robot, both the mass and inertia matrix are made up values since this robot has no real-world counterpart. @@ -478,9 +478,9 @@ The cfmDamping element is deprecated and should be changed to implicitSpringDamp Again, similar to `` elements for `` and ``, any arbitrary blobs that are not parsed according to the table above are inserted into the the corresponding `` element in the SDF. This is particularly useful for plugins, as discussed in the [ROS Motor and Sensor Plugins](/tutorials?tut=ros_gzplugins) tutorial. -## Verifying the Gazebo Model Works +## Verifying the Gazebo-classic Model Works -With Gazebo installed, an easy tool exists to check if your URDF can be properly converted into a SDF. Simply run the following command: +With Gazebo-classic installed, an easy tool exists to check if your URDF can be properly converted into a SDF. Simply run the following command: # gazebo2 and below gzsdf print MODEL.urdf @@ -489,14 +489,14 @@ With Gazebo installed, an easy tool exists to check if your URDF can be properly This will show you the SDF that has been generated from your input URDF as well as any warnings about missing information required to generate the SDF. -Note: in Gazebo version 1.9 and greater, some of the debug info has been moved to a log file you can view with: +Note: in Gazebo-classic version 1.9 and greater, some of the debug info has been moved to a log file you can view with: cat ~/.gazebo/gzsdf.log ## Viewing the URDF In Gazebo -Viewing the RRBot in Gazebo was already covered at the beginning of this tutorial. For your own custom robot, we assume its URDF lives in a ROS package named `MYROBOT_description` in the subfolder `/urdf`. The method to open a URDF from that location into Gazebo using ROS was covered in the previous tutorial, [Using roslaunch Files to Spawn Models](/tutorials?tut=ros_roslaunch). If you have not completed that tutorial, do so now. +Viewing the RRBot in Gazebo-classic was already covered at the beginning of this tutorial. For your own custom robot, we assume its URDF lives in a ROS package named `MYROBOT_description` in the subfolder `/urdf`. The method to open a URDF from that location into Gazebo-classic using ROS was covered in the previous tutorial, [Using roslaunch Files to Spawn Models](/tutorials?tut=ros_roslaunch). If you have not completed that tutorial, do so now. From that tutorial you should have two ROS packages for your custom robot: `MYROBOT_description` and `MYROBOT_gazebo`. To view your robot and test it in Gazebo, you should be able to now run something like: @@ -504,7 +504,7 @@ From that tutorial you should have two ROS packages for your custom robot: `MYRO roslaunch MYROBOT_gazebo MYROBOT.launch -This should launch both the Gazebo server and GUI client with your robot automatically launched spawned inside. +This should launch both the Gazebo-classic server and GUI client with your robot automatically launched spawned inside. ## Tweaking your model @@ -514,10 +514,10 @@ If your robot model behaves unexpectedly within Gazebo, it is likely because you If you have a common robot that other's might want to use in Gazebo, you are encouraged to add your URDF to the -[Gazebo Model Database](/tutorials?tut=model_structure&cat=build_robot). -It is an online server that Gazebo connects to to pull down models from the internet. +[Gazebo-classic Model Database](/tutorials?tut=model_structure&cat=build_robot). +It is an online server that Gazebo-classic connects to to pull down models from the internet. Its Mercurial repository is located on [GitHub](https://github.com/osrf/gazebo_models). -See [Gazebo Model Database](/tutorials?tut=model_contrib&cat=build_robot) +See [Gazebo-classic Model Database](/tutorials?tut=model_contrib&cat=build_robot) documentation for how to submit a pull request to have your robot added to the database. ## Next steps diff --git a/ros_wrapper_versions/tutorial.md b/ros_wrapper_versions/tutorial.md index db01f2ef..18af1f75 100644 --- a/ros_wrapper_versions/tutorial.md +++ b/ros_wrapper_versions/tutorial.md @@ -2,7 +2,7 @@ This document provides an overview about the options to use different versions of ROS in combination with different versions of Gazebo. -It is recommended to read it before installing the Gazebo ROS wrappers. +It is recommended to read it before installing the Gazebo-classic ROS wrappers. # Important! simple analysis for a quick and correct decision @@ -15,19 +15,19 @@ by ROS. Warning: note that using a different gazebo version than the official version delivered from the ROS repositories could end up in conflicts or other integration problems with ROS packages. -# Gazebo versions and ROS integration +# Gazebo-classic versions and ROS integration -Gazebo is an independent project like boost, ogre or +Gazebo-classic is an independent project like boost, ogre or any other project used by ROS. Usually, the latest major version of gazebo available at the beginning of every ROS release cycle (for example `gazebo11` for ROS Noetic) is selected as the official one to be fully integrated and supported and will be kept during the whole life of the ROS distribution. -Gazebo development is not synced with ROS, so each new major version of Gazebo +Gazebo-classic development is not synced with ROS, so each new major version of Gazebo must be released before being used in a ROS distribution. The following sections cover how to use ROS with different versions of Gazebo. -Note that Gazebo ABI stability policy follows the +Note that Gazebo-classic ABI stability policy follows the [semantic versioning](http://semver.org/) philosophy, in which all versions that have the same major number (`gazebo_11.0.0`, `gazebo_11.1.0`, `gazebo_11.0.1`, ...) are binary compatible and thus interchangeable when using @@ -35,23 +35,23 @@ the same ROS distro. ## Installing Gazebo -### Gazebo Ubuntu packages +### Gazebo-classic Ubuntu packages -The easiest way of installing Gazebo is to use packages. There are two main repositories which host Gazebo packages: one is `packages.ros.org` and the other is `packages.osrfoundation.org`. At the time of writing: +The easiest way of installing Gazebo-classic is to use packages. There are two main repositories which host Gazebo-classic packages: one is `packages.ros.org` and the other is `packages.osrfoundation.org`. At the time of writing: * ***packages.ros.org*** - * ROS Melodic: Gazebo 9.x - * ROS Noetic: Gazebo 11.x - * ROS2 Foxy: Gazebo 11.x - * ROS2 Rolling: Gazebo 11.x + * ROS Melodic: Gazebo-classic 9.x + * ROS Noetic: Gazebo-classic 11.x + * ROS2 Foxy: Gazebo-classic 11.x + * ROS2 Rolling: Gazebo-classic 11.x * ***packages.osrfoundation.org*** * gazebo 9.x series (package name `gazebo9`) * gazebo 11.x series (package name `gazebo11`) -This means that including the osrfoundation repository is not strictly needed to get the Gazebo Ubuntu package. +This means that including the osrfoundation repository is not strictly needed to get the Gazebo-classic Ubuntu package. It can be installed from the ros repository. -### Gazebo built from source +### Gazebo-classic built from source If you have compiled a gazebo version from source, note that depending on the repository branch used (`gazebo9` or `gazebo11`) your gazebo will be @@ -65,7 +65,7 @@ Note that if you are using `default` branch, you are probably not binary compatible with any of the packages released, so you will need a catkin workspace for getting a valid `gazebo_ros_pkgs`. -## Using the default Gazebo version for a ROS distribution +## Using the default Gazebo-classic version for a ROS distribution For the users that need to run a specific version of ROS and want to use all the gazebo ROS related packages out-of-the-box, @@ -92,9 +92,9 @@ Gazebo. The way to proceed is just to use the ROS repository (it will automatically install `gazebo9`) and do ***not*** use the osrfoundation repository. -## Using a specific Gazebo version with ROS +## Using a specific Gazebo-classic version with ROS ***Warning!: Using this option, you won't be able to use any ROS Ubuntu package -related to Gazebo from ROS deb repository. The equivalent of `gazebo_ros_pkgs` +related to Gazebo-classic from ROS deb repository. The equivalent of `gazebo_ros_pkgs` can be installed from debian packages, but all other software (such as [turtlebot_gazebo](http://wiki.ros.org/turtlebot_gazebo)) must be built from source. Thanks to [catkin workspaces](http://wiki.ros.org/catkin/Tutorials/create_a_workspace) @@ -103,7 +103,7 @@ this is quite easy to do.*** There is a way of using any specific version of gazebo and ROS if really needed: -### Gazebo 11.x series +### Gazebo-classic 11.x series The OSRF repository provides `-gazebo11-` versions of ROS/Melodic or ROS2/Eloquent gazebo wrappers (`gazebo11_ros_pkgs`) which are built on top of @@ -123,7 +123,7 @@ If you don't need ROS support, the recommended version is the latest released ve #### I need to use gazebo11 and ROS Melodic what can I do? ***Warning!: Using this option, you won't be able to use any ROS Melodic package -related to Gazebo from ROS deb repository. The way to go is to build them from +related to Gazebo-classic from ROS deb repository. The way to go is to build them from source. Thanks to catkin workspaces this is quite easy to do.*** If you need some features only present in the version 11.x of Gazebo, there @@ -134,10 +134,10 @@ are in this same document. #### Some ROS packages conflict with GazeboX ROS Wrappers! Note that each ROS distribution is designed to be used with an specific version -of Gazebo (`gazebo9` in Melodic). When someone chooses to use a different version -of Gazebo than the one recommended in the ROS distribution, problems may appear +of Gazebo-classic (`gazebo9` in Melodic). When someone chooses to use a different version +of Gazebo-classic than the one recommended in the ROS distribution, problems may appear and some of them could be unsolvable. If you a find a dependency conflict (for example with RVIZ) after trying to install one of the versions described in this document, you will need to -probably install ROS or Gazebo from source. +probably install ROS or Gazebo-classic from source. diff --git a/screenshot/tutorial.md b/screenshot/tutorial.md index c9fbc661..9f48bac4 100644 --- a/screenshot/tutorial.md +++ b/screenshot/tutorial.md @@ -1,6 +1,6 @@ # Capture screenshots -To capture a screenshot of the scene displayed in the Gazebo 3D render window, find and click on the camera icon on the toolbar above the render window. +To capture a screenshot of the scene displayed in the Gazebo-classic 3D render window, find and click on the camera icon on the toolbar above the render window. [[file:files/screenshot_icon_gzclient_6-0.png|640px]] diff --git a/screenshot/tutorial_1-9.md b/screenshot/tutorial_1-9.md index 07e472ae..755d1a9d 100644 --- a/screenshot/tutorial_1-9.md +++ b/screenshot/tutorial_1-9.md @@ -1,6 +1,6 @@ # Capture screenshots -To capture a screenshot of the scene displayed in the Gazebo 3D render window, find and click on the camera icon on the toolbar above the render window. +To capture a screenshot of the scene displayed in the Gazebo-classic 3D render window, find and click on the camera icon on the toolbar above the render window. [[file:files/screenshot_icon_gzclient.png|640px]] diff --git a/sensor_noise/tutorial-7_0.md b/sensor_noise/tutorial-7_0.md index bdea0a8b..908b9ef8 100644 --- a/sensor_noise/tutorial-7_0.md +++ b/sensor_noise/tutorial-7_0.md @@ -1,7 +1,7 @@ # Introduction -Gazebo provides models of many common sensors. In the real world, sensors exhibit noise, in that they do not observe the world perfectly. By default, Gazebo's sensors will observe the world perfectly (though not the IMU; read more below). To present a more realistic environment in which to try out perception code, we need to explicitly add noise to the data generated by Gazebo's sensors. +Gazebo-classic provides models of many common sensors. In the real world, sensors exhibit noise, in that they do not observe the world perfectly. By default, Gazebo's sensors will observe the world perfectly (though not the IMU; read more below). To present a more realistic environment in which to try out perception code, we need to explicitly add noise to the data generated by Gazebo's sensors. -At the time of writing, Gazebo can add noise to the following types of sensors: +At the time of writing, Gazebo-classic can add noise to the following types of sensors: * Ray (e.g., lasers) * Camera diff --git a/sensor_noise/tutorial.md b/sensor_noise/tutorial.md index 4955fe88..84022498 100644 --- a/sensor_noise/tutorial.md +++ b/sensor_noise/tutorial.md @@ -1,7 +1,7 @@ # Introduction -Gazebo provides models of many common sensors. In the real world, sensors exhibit noise, in that they do not observe the world perfectly. By default, Gazebo's sensors will observe the world perfectly (though not the IMU; read more below). To present a more realistic environment in which to try out perception code, we need to explicitly add noise to the data generated by Gazebo's sensors. +Gazebo-classic provides models of many common sensors. In the real world, sensors exhibit noise, in that they do not observe the world perfectly. By default, Gazebo's sensors will observe the world perfectly (though not the IMU; read more below). To present a more realistic environment in which to try out perception code, we need to explicitly add noise to the data generated by Gazebo's sensors. -At the time of writing, Gazebo can add noise to the following types of sensors: +At the time of writing, Gazebo-classic can add noise to the following types of sensors: * Ray (e.g., lasers) * Camera diff --git a/set_velocity/tutorial_7.md b/set_velocity/tutorial_7.md index fdba2574..bbf7e61c 100644 --- a/set_velocity/tutorial_7.md +++ b/set_velocity/tutorial_7.md @@ -1,5 +1,5 @@ # Setting Velocity on Links And Joints -This tutorial will describe how to programatically set velocities on Joints and Links in Gazebo 7. +This tutorial will describe how to programatically set velocities on Joints and Links in Gazebo-classic 7. This is a common task done in a custom [plugin](tutorials?cat=plugins). # Examples @@ -59,7 +59,7 @@ It must be set every time step to keep the object at a constant velocity forever * When using to set a link's velocity all other degrees of freedom are locked Joints motors can be used to reach a velocity by applying the exact required force to a joint. -Gazebo only supports this method when using the ODE physics engine (the default engine). +Gazebo-classic only supports this method when using the ODE physics engine (the default engine). It relies on the [ODE Joint Motor feature](https://www.ode-wiki.org/wiki/index.php?title=Manual:_Joint_Types_and_Functions#Stops_and_motor_parameters). ### Setting Velocity Using PID Controllers diff --git a/simple_gripper/tutorial.md b/simple_gripper/tutorial.md index 8b7e17c8..d83d4a51 100644 --- a/simple_gripper/tutorial.md +++ b/simple_gripper/tutorial.md @@ -134,7 +134,7 @@ file: ... ~~~ -1. Start Gazebo again: +1. Start Gazebo-classic again: gazebo ~/simple_gripper_tutorial/gripper.world diff --git a/simple_gripper/tutorial_1-9.md b/simple_gripper/tutorial_1-9.md index 2cd6a6cf..a1b03c5e 100644 --- a/simple_gripper/tutorial_1-9.md +++ b/simple_gripper/tutorial_1-9.md @@ -118,7 +118,7 @@ Reference [Model Database documentation](/tutorials?tut=model_structure&cat=buil ... ~~~ -1. Start Gazebo again: +1. Start Gazebo-classic again: gazebo ~/simple_gripper_tutorial/gripper.world diff --git a/static_map_plugin/tutorial.md b/static_map_plugin/tutorial.md index 4f45ed50..0ddddb7a 100644 --- a/static_map_plugin/tutorial.md +++ b/static_map_plugin/tutorial.md @@ -26,7 +26,7 @@ and you should see the following: In this example world, the plugin will generate a map model with a unique name and save the model SDF and image files in to a self-contained model folder with `map_` prefix in `/.gazebo/models`. We are also telling the plugin that we don't want to use the image cache by setting `` to false so that subsequent launches will trigger the download of images (and recreate the model files) again. See the Plugin Parameters section below on how to specify you own model name or reuse image cache to prevent future image downloads. -Now try inserting a few models from the gazebo model database into the world (Left: original Google map view. Right Gazebo window): +Now try inserting a few models from the gazebo model database into the world (Left: original Google map view. Right Gazebo-classic window): [[file:files/static_map_models.png|800px]] @@ -53,5 +53,5 @@ Optional parameters: The Static Map Plugin currently has few limitations: * It is only able to generate square-shaped map models based on `` and does not support rectangular regions. -* Downloading of images happen in the main thread and thus blocks Gazebo window until all images are downloaded. The number of image tiles to download depends on the `` specified. +* Downloading of images happen in the main thread and thus blocks Gazebo-classic window until all images are downloaded. The number of image tiles to download depends on the `` specified. * Only the **Standard** Google Map API is supported, see [Usage Limits](https://developers.google.com/maps/documentation/static-maps/usage-limits) for more details. diff --git a/stereo_glasses/tutorial.md b/stereo_glasses/tutorial.md index 1542e030..99ffe462 100644 --- a/stereo_glasses/tutorial.md +++ b/stereo_glasses/tutorial.md @@ -1,6 +1,6 @@ # Introduction -This tutorial describes how to setup a machine and Gazebo for use with stereo glasses, such as those provided by [Nvidia 3D Vision](http://www.nvidia.com/object/3d-vision-main.html). +This tutorial describes how to setup a machine and Gazebo-classic for use with stereo glasses, such as those provided by [Nvidia 3D Vision](http://www.nvidia.com/object/3d-vision-main.html). This tutorial assumes that you will be using Ubuntu. @@ -52,7 +52,7 @@ This tutorial assumes that you will be using Ubuntu. sudo apt-get install nvidia-settings ~~~ -1. Gazebo [compiled from source](/tutorials?tut=install_from_source&cat=install). You may use the Gazebo6 debians when they are made available on July 27, 2015. +1. Gazebo-classic [compiled from source](/tutorials?tut=install_from_source&cat=install). You may use the Gazebo6 debians when they are made available on July 27, 2015. 1. If you are using the Unity desktop environment, stereo probably won't work. Install Gnome Classic: diff --git a/system_plugin/tutorial.md b/system_plugin/tutorial.md index f2c7b1e9..3e1dc7d2 100644 --- a/system_plugin/tutorial.md +++ b/system_plugin/tutorial.md @@ -22,7 +22,7 @@ Copy the following into `system_gui.cc` -Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo is loaded. +Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo-classic is loaded. On the first `Update`, we get a pointer to the user camera (the camera used in the graphical interface) and enable saving of frames. diff --git a/system_plugin/tutorial_3-0.md b/system_plugin/tutorial_3-0.md index ef785cef..3211a32e 100644 --- a/system_plugin/tutorial_3-0.md +++ b/system_plugin/tutorial_3-0.md @@ -46,7 +46,7 @@ namespace gazebo } ~~~ -Both the `Load` and `Init` functions must not block. The `Load` function is called at startup, before Gazebo is loaded. The `Init` function is called after Gazebo has been loaded. +Both the `Load` and `Init` functions must not block. The `Load` function is called at startup, before Gazebo-classic is loaded. The `Init` function is called after Gazebo-classic has been loaded. In our `Init` function, we get a pointer to the user camera (the camera used in the graphical interface) and enable saving of frames. @@ -79,7 +79,7 @@ add_library(system_gui SHARED system_gui.cc) target_link_libraries(system_gui ${GAZEBO_LIBRARIES} ${OGRE_LIBRARIES}) ~~~ -Note for Gazebo 1.10 and later, you will need to depend on `OGRE-Terrain` as well by adding these lines to you `CMakeLists.txt`: +Note for Gazebo-classic 1.10 and later, you will need to depend on `OGRE-Terrain` as well by adding these lines to you `CMakeLists.txt`: ~~~ pkg_check_modules(OGRE-Terrain OGRE-Terrain) diff --git a/system_plugin/tutorial_5-0.md b/system_plugin/tutorial_5-0.md index 2e5eb332..68525acc 100644 --- a/system_plugin/tutorial_5-0.md +++ b/system_plugin/tutorial_5-0.md @@ -22,7 +22,7 @@ Copy the following into `system_gui.cc` -Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo is loaded. +Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo-classic is loaded. On the first `Update`, we get a pointer to the user camera (the camera used in the graphical interface) and enable saving of frames. diff --git a/system_plugin/tutorial_7-0.md b/system_plugin/tutorial_7-0.md index a4e7b331..0d354ce7 100644 --- a/system_plugin/tutorial_7-0.md +++ b/system_plugin/tutorial_7-0.md @@ -22,7 +22,7 @@ Copy the following into `system_gui.cc` -Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo is loaded. +Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo-classic is loaded. On the first `Update`, we get a pointer to the user camera (the camera used in the graphical interface) and enable saving of frames. diff --git a/system_plugin/tutorial_8-0.md b/system_plugin/tutorial_8-0.md index bdc1942e..5b8215db 100644 --- a/system_plugin/tutorial_8-0.md +++ b/system_plugin/tutorial_8-0.md @@ -22,7 +22,7 @@ Copy the following into `system_gui.cc` -Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo is loaded. +Both the `Load` and `Init` functions must not block. The `Load` and `Init` functions are called at startup, before Gazebo-classic is loaded. On the first `Update`, we get a pointer to the user camera (the camera used in the graphical interface) and enable saving of frames. diff --git a/topics_subscribe/tutorial.md b/topics_subscribe/tutorial.md index c23ba488..b4e95db9 100644 --- a/topics_subscribe/tutorial.md +++ b/topics_subscribe/tutorial.md @@ -1,12 +1,12 @@ # Overview -Gazebo communicates on TCP/IP sockets, which allows separate programs to interface with Gazebo. [Boost ASIO](http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html) is used by Gazebo to manage the communication layer, and [Google Protobufs](https://code.google.com/p/protobuf/) are used as the message passing and serialization library. Messages are sent on named channels called **topics** via **publishers**. On the other side of a topic are **subscribers**, which receive callbacks when messages arrive. In summary, to send messages one must publish messages using a publisher on a named topic, and to receive messages one must subscribe to a named topic using a subscriber. +Gazebo-classic communicates on TCP/IP sockets, which allows separate programs to interface with Gazebo. [Boost ASIO](http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html) is used by Gazebo-classic to manage the communication layer, and [Google Protobufs](https://code.google.com/p/protobuf/) are used as the message passing and serialization library. Messages are sent on named channels called **topics** via **publishers**. On the other side of a topic are **subscribers**, which receive callbacks when messages arrive. In summary, to send messages one must publish messages using a publisher on a named topic, and to receive messages one must subscribe to a named topic using a subscriber. -The easiest way to communicate with Gazebo over TCP/IP sockets is to link against the Gazebo libraries, and use the provided functions. +The easiest way to communicate with Gazebo-classic over TCP/IP sockets is to link against the Gazebo-classic libraries, and use the provided functions. -The Gazebo transport system is documented [here](http://gazebosim.org/api/code/dev/group__gazebo__transport.html) and messages are documented [here](http://gazebosim.org/api/msgs/dev). +The Gazebo-classic transport system is documented [here](http://gazebosim.org/api/code/dev/group__gazebo__transport.html) and messages are documented [here](http://gazebosim.org/api/msgs/dev). -A list of all the topics in use on a running system can be found with the following command (make sure Gazebo is running first): +A list of all the topics in use on a running system can be found with the following command (make sure Gazebo-classic is running first): ~~~ gz topic -l @@ -16,7 +16,7 @@ gz topic -l This example subscribes to a [WorldStatistics message](http://gazebosim.org/api/msgs/dev/world__stats_8proto.html) and assumes that you can link against Gazebo. -First, if you installed Gazebo from debians, make sure you've installed the Gazebo development files. If you installed Gazebo from source, you can ignore this step. Replace X with whatever version number of Gazebo you have. +First, if you installed Gazebo-classic from debians, make sure you've installed the Gazebo-classic development files. If you installed Gazebo-classic from source, you can ignore this step. Replace X with whatever version number of Gazebo-classic you have. ~~~ sudo apt-get install libgazeboX-dev @@ -36,7 +36,7 @@ cmake .. make ~~~ -Run the listener program when an instance of Gazebo is already running. +Run the listener program when an instance of Gazebo-classic is already running. ~~~ cd ~/listener/build @@ -91,7 +91,7 @@ gazebo::transport::NodePtr node(new gazebo::transport::Node()); node->Init(); ~~~ -Create a subscriber on the ''world_stats'' topic. Gazebo publishes a stream of stats on this topic. +Create a subscriber on the ''world_stats'' topic. Gazebo-classic publishes a stream of stats on this topic. ~~~ gazebo::transport::SubscriberPtr sub = node->Subscribe("~/world_stats", cb); diff --git a/topics_subscribe/tutorial_1-9.md b/topics_subscribe/tutorial_1-9.md index b507b085..4aeabbc5 100644 --- a/topics_subscribe/tutorial_1-9.md +++ b/topics_subscribe/tutorial_1-9.md @@ -1,12 +1,12 @@ #Tutorial: How to subscribe to gazebo topics# -Gazebo communicates on TCP/IP sockets, which allows separate programs to interface with Gazebo. [Boost ASIO](http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html) is used by Gazebo to manage the communication layer, and [Google Protobufs](https://code.google.com/p/protobuf/) are used as the message passing and serialization library. Messages are sent on named channels called **topics** via **publishers**. On the other side of a topic are **subscribers**, which receive callbacks when messages arrive. In summary, to send messages one must publish messages using a publisher on a named topic, and to receive messages one must subscribe to a named topic using a subscriber. +Gazebo-classic communicates on TCP/IP sockets, which allows separate programs to interface with Gazebo. [Boost ASIO](http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html) is used by Gazebo-classic to manage the communication layer, and [Google Protobufs](https://code.google.com/p/protobuf/) are used as the message passing and serialization library. Messages are sent on named channels called **topics** via **publishers**. On the other side of a topic are **subscribers**, which receive callbacks when messages arrive. In summary, to send messages one must publish messages using a publisher on a named topic, and to receive messages one must subscribe to a named topic using a subscriber. -The easiest way to communicate with Gazebo over TCP/IP sockets is to link against the Gazebo libraries, and use the provided functions. +The easiest way to communicate with Gazebo-classic over TCP/IP sockets is to link against the Gazebo-classic libraries, and use the provided functions. -The Gazebo transport system is documented [here](http://gazebosim.org/api/code/dev/group__gazebo__transport.html) and messages are documented [here](http://gazebosim.org/api/msgs/dev). +The Gazebo-classic transport system is documented [here](http://gazebosim.org/api/code/dev/group__gazebo__transport.html) and messages are documented [here](http://gazebosim.org/api/msgs/dev). -A list of all the topics in use on a running system can be found with the following command (make sure Gazebo is running first): +A list of all the topics in use on a running system can be found with the following command (make sure Gazebo-classic is running first): gztopic list @@ -71,7 +71,7 @@ Next create a Node, which provides functions to create publishers and subscriber gazebo::transport::NodePtr node(new gazebo::transport::Node()); node->Init(); -Create a subscriber on the ''world_stats'' topic. Gazebo publishes a stream of stats on this topic. +Create a subscriber on the ''world_stats'' topic. Gazebo-classic publishes a stream of stats on this topic. gazebo::transport::SubscriberPtr sub = node->Subscribe("~/world_stats", cb); diff --git a/topics_subscribe/tutorial_2-2.md b/topics_subscribe/tutorial_2-2.md index dff8926a..dfe49a16 100644 --- a/topics_subscribe/tutorial_2-2.md +++ b/topics_subscribe/tutorial_2-2.md @@ -1,12 +1,12 @@ # Overview -Gazebo communicates on TCP/IP sockets, which allows separate programs to interface with Gazebo. [Boost ASIO](http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html) is used by Gazebo to manage the communication layer, and [Google Protobufs](https://code.google.com/p/protobuf/) are used as the message passing and serialization library. Messages are sent on named channels called **topics** via **publishers**. On the other side of a topic are **subscribers**, which receive callbacks when messages arrive. In summary, to send messages one must publish messages using a publisher on a named topic, and to receive messages one must subscribe to a named topic using a subscriber. +Gazebo-classic communicates on TCP/IP sockets, which allows separate programs to interface with Gazebo. [Boost ASIO](http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html) is used by Gazebo-classic to manage the communication layer, and [Google Protobufs](https://code.google.com/p/protobuf/) are used as the message passing and serialization library. Messages are sent on named channels called **topics** via **publishers**. On the other side of a topic are **subscribers**, which receive callbacks when messages arrive. In summary, to send messages one must publish messages using a publisher on a named topic, and to receive messages one must subscribe to a named topic using a subscriber. -The easiest way to communicate with Gazebo over TCP/IP sockets is to link against the Gazebo libraries, and use the provided functions. +The easiest way to communicate with Gazebo-classic over TCP/IP sockets is to link against the Gazebo-classic libraries, and use the provided functions. -The Gazebo transport system is documented [here](http://gazebosim.org/api/code/dev/group__gazebo__transport.html) and messages are documented [here](http://gazebosim.org/api/msgs/dev). +The Gazebo-classic transport system is documented [here](http://gazebosim.org/api/code/dev/group__gazebo__transport.html) and messages are documented [here](http://gazebosim.org/api/msgs/dev). -A list of all the topics in use on a running system can be found with the following command (make sure Gazebo is running first): +A list of all the topics in use on a running system can be found with the following command (make sure Gazebo-classic is running first): ~~~ gz topic -l @@ -29,7 +29,7 @@ cmake .. make ~~~ -Run the listener program when an instance of Gazebo is already running. +Run the listener program when an instance of Gazebo-classic is already running. ~~~ cd ~/listener/build @@ -84,7 +84,7 @@ gazebo::transport::NodePtr node(new gazebo::transport::Node()); node->Init(); ~~~ -Create a subscriber on the ''world_stats'' topic. Gazebo publishes a stream of stats on this topic. +Create a subscriber on the ''world_stats'' topic. Gazebo-classic publishes a stream of stats on this topic. ~~~ gazebo::transport::SubscriberPtr sub = node->Subscribe("~/world_stats", cb); diff --git a/torsional_friction/tutorial.md b/torsional_friction/tutorial.md index 86289d8b..8d00361c 100644 --- a/torsional_friction/tutorial.md +++ b/torsional_friction/tutorial.md @@ -16,7 +16,7 @@ When a box is rotating on top of a plane, there's a large surface of contact between them. At each point of contact, translational friction acts to decelerate the box. You can try it by yourself: -1. Open Gazebo with the default physics engine and insert a box +1. Open Gazebo-classic with the default physics engine and insert a box 1. Choose `View -> Transparent` and then `View -> Contacts`, so we can see the contact points. @@ -31,7 +31,7 @@ never stops. Why is that? [[file:files/box_and_sphere.png|600px]] -The different behaviours happen because Gazebo has translational friction +The different behaviours happen because Gazebo-classic has translational friction enabled by default with default parameters, but torsional friction is disabled by default. @@ -177,7 +177,7 @@ On SDF, the torsional friction for the sphere example would look as follows: # Example world -Gazebo comes with a demo world which you can run as follows: +Gazebo-classic comes with a demo world which you can run as follows: gazebo -u worlds/torsional_friction_demo.world diff --git a/visual_layers/tutorial.md b/visual_layers/tutorial.md index 68671b57..738cb902 100644 --- a/visual_layers/tutorial.md +++ b/visual_layers/tutorial.md @@ -1,6 +1,6 @@ # Overview -With Gazebo 6 it is possible to add meta data to the visuals in your +With Gazebo-classic 6 it is possible to add meta data to the visuals in your simulation. This tutorial explains how to add layer meta data to visuals so you can control which layers are visible via the graphical interface. diff --git a/wide_angle_camera/tutorial.md b/wide_angle_camera/tutorial.md index 2e4b0543..3c5a5260 100644 --- a/wide_angle_camera/tutorial.md +++ b/wide_angle_camera/tutorial.md @@ -233,10 +233,10 @@ Add one more camera. In topic visualization for this camera you should now see a It is possible play a bit with different camera's `lens` settings with a plugin. The following section requires you to build a plugin from source. -You will need Gazebo headers to build it. -If you install Gazebo from source then you should already have the necessary files. -If you install the Gazebo binary deb version, -then you'll need to install dev packages according to your Gazebo and sdformat versions. +You will need Gazebo-classic headers to build it. +If you install Gazebo-classic from source then you should already have the necessary files. +If you install the Gazebo-classic binary deb version, +then you'll need to install dev packages according to your Gazebo-classic and sdformat versions. 1. Create directory and pull source files: @@ -269,11 +269,11 @@ then you'll need to install dev packages according to your Gazebo and sdformat v make ~~~ -1. Tell Gazebo to search for plugins in current directory +1. Tell Gazebo-classic to search for plugins in current directory export GAZEBO_PLUGIN_PATH=`pwd`:$GAZEBO_PLUGIN_PATH -1. Start Gazebo with the example world +1. Start Gazebo-classic with the example world gazebo ../example.world