Move Camera to model
This tutorial gives an introduction to Gazebo's service /gui/move_to/model
. This service will allow to move the camera to a specific model taking into account distance to the model and camera angle.
How to move the camera to a model
- Load the View Angle plugin. This service is only available when the View Angle plugin is loaded.
- Call the service using the request message type
gz.msgs.GUICamera
and the response message typegz.msgs.Boolean
. The distance to the object is defined as the z coordinate, and the direction of the camera with a quaternion. It's possible to select the projection type.
For example, Let's move the camera to the box
model looking down from 5 meters away. This example uses the shapes.sdf
world.
gz service -s /gui/move_to/model --reqtype gz.msgs.GUICamera --reptype gz.msgs.Boolean -r 'name: "box", pose: {position: {z:5}, orientation: {x:0, y:0, z: -1, w:0}}, projection_type: "orbit"' --timeout 5000
The camera can also be placed far away, for example 20 meters:
gz service -s /gui/move_to/model --reqtype gz.msgs.GUICamera --reptype gz.msgs.Boolean -r 'name: "box", pose: {position: {z:20}, orientation: {x:0, y:0, z: -1, w:0}}, projection_type: "orbit"' --timeout 5000
In the following gif you can see the workflow of this service: