Gazebo Answers logo

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

Originally posted by Zheng yo chen on Gazebo Answers with karma: 80 on 2015-07-30

Post score: 0

Original comments

Comment by AndreiHaidu on 2015-07-31:
If you didn't get any segfaults it means you have access to the scene manager. You can also take a look at a VisualPlugin if you don't want to use the cameraplugin.


1 Answer 1


Gazebo Answers logo

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.

Originally posted by Zheng yo chen with karma: 80 on 2015-08-12

This answer was ACCEPTED on the original site

Post score: 0


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.