Gazebo | Ignition | Community
Ask Your Question

Zheng yo chen's profile - activity

2017-08-09 09:23:18 -0600 received badge  Notable Question (source)
2017-08-09 09:23:18 -0600 received badge  Famous Question (source)
2017-02-26 08:30:45 -0600 received badge  Famous Question (source)
2016-12-31 11:41:31 -0600 received badge  Notable Question (source)
2016-12-28 22:38:04 -0600 received badge  Popular Question (source)
2016-12-23 08:48:41 -0600 asked a question gazebo5 specular in material does not work !

this is my sdf file.

and I expect my ball would reflect blue specular light

but nothing happened,It just appears whole dark

what am I doing wrong??


<model name='socket'>
    <pose> 0 0 0 0 0 0 </pose>
    <link name="link">
        <collision name="collision">
        <visual name="visual">
                <ambient>0 0 0 1</ambient>
                <diffuse>0 0 0 1</diffuse>
                <specular>0 0 1 1</specular>

image description

2016-12-23 08:29:28 -0600 commented answer Streaming Camera Data to Separate Application

wrench_0_08m is nothing to do with that example, it can work well without that model,you can just simply remove wrench_0_08m. by the way,my example is a dumb implementation. OSRF did live stream by themselves, check this : (Gazebo Rendering Abstraction 2015-09-29)

2016-07-24 16:56:32 -0600 received badge  Famous Question (source)
2016-04-17 15:58:21 -0600 received badge  Taxonomist
2016-01-25 15:08:56 -0600 received badge  Famous Question (source)
2015-11-27 09:07:10 -0600 received badge  Famous Question (source)
2015-11-09 18:57:47 -0600 marked best answer how to use "MovableText"?

I found this class on api documentaion(

Its description said "description: This create create a billboarding object that display a text." (

So , I imaged that my gazebo window would be like this (

Because this class is under the namespace"rendering",

I thought "MovableText" should be used in system plugin

Then, i built a system plugin like this (

But ,nothing happened!

could you tell me how to use this class correctly,thank you~

2015-11-03 07:01:05 -0600 received badge  Famous Question (source)
2015-10-31 12:30:46 -0600 marked best answer How to use UserCamera->ViewController()?

I am running gazebo2.2.

I want to control UserCam ,and looked up in API doc(

I found three function as following:

EnableViewController(TRUE); SetFocalPoint(math::Vector3(0,0,0.1)); SetViewController("orbit",math::Vector3(0,1,0.5));

So , I imaged that my userCam would orbit the point(0,0,0.1)

but, It turned out nothing happened!

Did I miss some steps?

Thank you~!

if it is possible, can you check my code?

Here is my code:

2015-10-31 12:30:46 -0600 marked best answer how to change SetFrame Rate in Camera plugin?

in my camera plugin,I use this method "camera->SetRenderRate(30)"and"SaveFrame()"

but,the frame rate is really slow(

how can I save 30 frame per second?

Thank you~

2015-10-31 12:30:41 -0600 marked best answer where to find resource if I want to better/further understand gazebo::common::events

I want to learn more about Event::connect disconnect

but there is no tutorial on official website

API Documentation about "event" is very short,and I can't understand http://osrf-distributions.s3.amazonaw...11event11Events.html#ab0fefed82c8ab22f67cf5a3870bcb9ef

where to find resource if I want to better/further understand gazebo::common::events ??

Because I encountered a problem as following:

I have two plugin,

one world plugin "evaluationplatform", another one is model plugin "armcontrol"

in onUpdate() of the world plugin "evaluationplatform", I use DisconnectWorldUpdateBegin(updateconnection) to Disconnect "onUpdate()" under some condition

I tested these two plugin independently, and they worked well as I want,

but, when I used them together ,things went wrong

onUpdate() of the world plugin "evaluationplatform" cannot be disconnected

and I guess the critical point is in model plugin "arm_control"

So .I want to learn more about Event::connect & disconnect to find out the problem

Thank you!!


2015-10-31 12:12:43 -0600 marked best answer gazebo-2.0 is called when I want to execute gazebo-5.0.0

Given that I had two version of gazebo now ,2.0 and 5.0.

When I want to execute gazebo-5.0.0 (typing : ./usr/local/gazebo5/bin/gazebo-5.0.0) ,it turned out that gazebo-2.0 is called

But if I execute gzserver and gzclient separately, correct version ( aka gzserver-5.0 and gzclient 5.0)are called.

"which" command output

I have checked the shared library linked to gazebo-5.0.0,and their version are correct.

How can I deal with this problem? Thank you!

ldd gazebo-5.0.0 | grep gazebo => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f194247c000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f194221f000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1941fb1000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1941c2e000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1941978000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f19415d0000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1940798000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f193e022000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f193d985000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f193a468000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1939b03000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f19398f4000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1938893000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1935d24000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1935b1f000) => /usr/local/gazebo5/lib/x86_64-linux-gnu/ (0x00007f1935914000)

hello, here is my output

Thank you, this line does work!

but, I don't understand when I simply change into /usr/local/gazebo/bin and entering "./gazebo", I can't make a success?

2015-10-31 12:12:04 -0600 marked best answer How to return the controlling to default event handler?

Given that I had installed my own mouse event handler,

but how can I return the controlling to default/system event handler?

Because after installing my own mouse event handler,

and I pressed toolbar to add a sphere/box/cylinder to world

it turned out that the sphere/box/cylinder could not be released and placed on the ground

becuase "Mouse Release Event" is handled by my own mouse handler,default/system event handler cannot listen to this event

How can I deal with this problem?

Thank you~

2015-10-01 22:50:41 -0600 received badge  Critic (source)
2015-09-10 20:12:45 -0600 answered a question Getting simulation time from visual plugin

you can use static function: common::Time::GetWallTime()

2015-09-01 00:58:26 -0600 received badge  Notable Question (source)
2015-08-12 22:10:12 -0600 commented answer Why can I access Ogre ONLY in the SystemPlugin?

i managed to access ogre via rendering::Visual

2015-08-12 22:08:13 -0600 answered a question Why can I access Ogre ONLY in the SystemPlugin?

there is a alternative way to access Ogre.

I inherit a "rendering::visual" class,and override "Load()" function. In "Load()" function ,I can new a ManualObject and attach it to childSceneNode.

This really works. Now I can draw what I want instead of using SystemPlugin.

2015-08-06 11:04:00 -0600 received badge  Famous Question (source)
2015-08-06 00:30:03 -0600 commented answer Why can I access Ogre ONLY in the SystemPlugin?

ok thank you!

2015-08-04 12:31:06 -0600 commented question Set up to develop gazebo

I am using eclipse kepler,and it works well.

2015-08-04 04:08:44 -0600 received badge  Notable Question (source)
2015-08-02 01:43:24 -0600 commented question SpawnModel: Failure - model name already exist

what if you change another name?

2015-08-01 08:44:53 -0600 commented question Inertial parameters not taken into effect

just guess , maybe when you export dae file,the center of your model doesn't correspond to the origin of world coordinate.

2015-07-31 04:34:25 -0600 received badge  Popular Question (source)
2015-07-30 09:51:30 -0600 received badge  Organizer (source)
2015-07-30 09:50:50 -0600 asked a question Why can I access Ogre ONLY in the SystemPlugin?

Can I access Ogre::SceneManager through cameraplugin?

I do know I can draw some MovableObject in system plugin.


So , I think if I got sceneManager,I could attach any MovableObject to rootSceneNode. In Camera plugin, I can get sceneManager by these code

ogre_camera = camera_sensor->GetCamera()->GetOgreCamera();
scene_mgr = ogre_camera->getSceneManager();

But , it turned out nothing happened. Why?

any advice is useful for newbie, Thank you :)


I have tried VisualPlugin,CameraPlugin,SystemPlugin,ModelPlugin,WorldPlugin.

I tried to get RenderEngine by the following code


And ,all the Plugins mentioned above did print:


So, I thought that I got RenderingEngine successfully. Next,I wanted to attach a ninja mesh to rootSceneNode in order to check if I can access OGRE.

Ogre::ResourceGroupManager *resource_group_mgr = Ogre::ResourceGroupManager::getSingletonPtr();
resource_group_mgr->addResourceLocation("/usr/local/ogre/ogre-1.9.0/share/OGRE/Media/models","FileSystem",Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,false );
////////check resource list////////////////////////////////////////////////////
Ogre::FileInfoListPtr fileinfoiter= Ogre::ResourceGroupManager::getSingleton().listResourceFileInfo(Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) ;
for(unsigned int i=0;i<(*fileinfoiter).size();i++)

until this step ,every thing went well. When I added these two line:


It turned out that ONLY SystemPlugin can successfully show a ninja mesh,and except for SystemPlugin ,other Plugins just shut down whithout any error masseage

What am I doing wrong? What steps did I miss? Or would it be possible that GAZEBO was designed to access OGRE from SystemPlugin only?

Thank you

2015-06-26 14:04:54 -0600 received badge  Popular Question (source)
2015-06-12 08:57:10 -0600 received badge  Famous Question (source)
2015-06-11 19:41:33 -0600 commented answer plugin cannot be call and no error message

By the way. worldplugin works fine,but no matter my sensorplugin or sensorplugin of tutorial ,it doesn't work