Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

rviz is broken with latest Ogre #708

Closed
tfoote opened this Issue Jan 15, 2014 · 11 comments

Comments

Projects
None yet
5 participants
Contributor

tfoote commented Jan 15, 2014

From ros-gbp/rviz-release#1 via @zootboy

Hi. I'm the maintainer for the ROS packages on Archlinux. I've been trying to update some of my packages, but it seems that the latest Ogre has made changes that break rviz.

Trying to build against Ogre 1.9.0, rviz tag release/groovy/rviz/1.9.32-0. I patched the change from OGRE/OgreFontManager.h -> OGRE/Overlay/OgreFontManager.h, but there are more errors that I am less sure of how to solve. Here's the build log:

==> Starting build()...
Cloning into '/home/sean/arch-ros-stacks/groovy/rviz/src/rviz'...
remote: Counting objects: 3846, done.
remote: Compressing objects: 100% (2204/2204), done.
remote: Total 3846 (delta 1685), reused 3721 (delta 1560)
Receiving objects: 100% (3846/3846), 4.79 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1685/1685), done.
Checking connectivity... done.
Note: checking out '5eb6b85696f49eb21e58e929ea0561703e2bd783'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

patching file rviz/src/rviz/ogre_helpers/movable_text.cpp
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.55.0
-- Found the following Boost libraries:
--   filesystem
--   program_options
--   signals
--   system
--   thread
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28")
-- checking for module 'eigen3'
--   found eigen3, version 3.2.0
-- Found Eigen: /usr/include/eigen3
-- Eigen found (include: /usr/include/eigen3)
-- checking for module 'OGRE'
--   found OGRE, version 1.9.0
-- OGRE_PLUGIN_PATH=/usr/lib/OGRE
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib64/libX11.so
-- Found OpenGL: /usr/lib64/libGL.so
-- Found PythonLibs: /usr/lib/libpython2.7.so (found version "2.7.6")
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake-qt4 (found version "4.8.5")
-- Using CATKIN_DEVEL_PREFIX: /home/sean/arch-ros-stacks/groovy/rviz/src/build/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/groovy
-- This workspace overlays: /opt/ros/groovy
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.6")
-- Using default Python package layout
-- Found PY_em: /usr/lib/python2.7/site-packages/em.pyc
-- Using CATKIN_ENABLE_TESTING: ON
-- Skip enable_testing() when building binary package
-- Using CATKIN_TEST_RESULTS_DIR: /home/sean/arch-ros-stacks/groovy/rviz/src/build/test_results
-- Found gtest: gtests will be built
-- catkin 0.5.77
making version 1.9.32.
-- Found assimp v3
TODO: convert rviz tests to catkin.
-- Using default python: -python2.7
-- libshiboken built for Release
-- Using default python: -python2.7
-- Shiboken binding generator available.
-- SIP binding generator available.
Python binding generators: shiboken;sip
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sean/arch-ros-stacks/groovy/rviz/src/build
[  1%] [  1%] [  1%] [  1%] [  2%] Generating moc_tool_properties_panel.cxx
Generating moc_display_group.cxx
Generating moc_display.cxx
Generating moc_display_context.cxx
Generating moc_displays_panel.cxx
[  2%] Generating moc_failed_panel.cxx
[  2%] Generating moc_frame_manager.cxx
[  2%] [  3%] [  3%] Generating moc_frame_position_tracking_view_controller.cxx
[  3%] Generating moc_help_panel.cxx
Generating image/moc_image_display_base.cxx
Generating moc_loading_dialog.cxx
[  4%] [  4%] Generating moc_message_filter_display.cxx
[  4%] Generating moc_new_object_dialog.cxx
Generating moc_panel_dock_widget.cxx
[  4%] [  5%] Generating moc_panel.cxx
[  5%] Generating properties/moc_bool_property.cxx
Generating properties/moc_color_editor.cxx
[  5%] Generating properties/moc_color_property.cxx
[  5%] Generating properties/moc_combo_box.cxx
[  6%] Generating properties/moc_display_visibility_property.cxx
[  6%] Generating properties/moc_display_group_visibility_property.cxx
[  6%] [  6%] Generating properties/moc_editable_combo_box.cxx
Generating properties/moc_editable_enum_property.cxx
[  7%] [  7%] Generating properties/moc_float_edit.cxx
Generating properties/moc_enum_property.cxx
[  7%] [  8%] Generating properties/moc_float_property.cxx
Generating properties/moc_int_property.cxx
[  8%] Generating properties/moc_line_edit_with_button.cxx
[  8%] Generating properties/moc_property.cxx
[  8%] [  9%] Generating properties/moc_property_tree_delegate.cxx
Generating properties/moc_property_tree_model.cxx
[  9%] [  9%] Generating properties/moc_property_tree_widget.cxx
Generating properties/moc_property_tree_with_help.cxx
[  9%] [ 10%] Generating properties/moc_quaternion_property.cxx
[ 10%] Generating properties/moc_ros_topic_property.cxx
Generating properties/moc_splitter_handle.cxx
[ 10%] [ 10%] Generating properties/moc_status_list.cxx
[ 11%] Generating properties/moc_status_property.cxx
Generating properties/moc_string_property.cxx
[ 11%] Generating properties/moc_tf_frame_property.cxx
[ 11%] [ 11%] [ 12%] Generating properties/moc_vector_property.cxx
Generating moc_render_panel.cxx
[ 12%] Generating robot/moc_robot.cxx
[ 12%] Generating robot/moc_robot_link.cxx
Generating robot/moc_robot_joint.cxx
[ 13%] [ 13%] Generating moc_screenshot_dialog.cxx
Generating moc_scaled_image_widget.cxx
[ 13%] [ 13%] Generating selection/moc_selection_manager.cxx
[ 14%] Generating moc_splash_screen.cxx
Generating moc_time_panel.cxx
[ 14%] Generating moc_tool_manager.cxx
[ 14%] [ 14%] Generating moc_tool.cxx
Generating moc_view_controller.cxx
[ 15%] Generating moc_view_manager.cxx
[ 15%] [ 15%] Generating moc_visualization_frame.cxx
Generating moc_views_panel.cxx
[ 15%] [ 16%] Generating moc_visualization_manager.cxx
[ 16%] Generating moc_visualizer_app.cxx
[ 16%] Generating moc_wait_for_master_dialog.cxx
Generating moc_widget_geometry_change_detector.cxx
[ 16%] Generating moc_selection_panel.cxx
Scanning dependencies of target rviz
[ 16%] [ 16%] [ 17%] Building CXX object src/rviz/CMakeFiles/rviz.dir/bit_allocator.cpp.o
[ 17%] Building CXX object src/rviz/CMakeFiles/rviz.dir/config.cpp.o
[ 17%] Building CXX object src/rviz/CMakeFiles/rviz.dir/display.cpp.o
Building CXX object src/rviz/CMakeFiles/rviz.dir/display_group.cpp.o
Building CXX object src/rviz/CMakeFiles/rviz.dir/display_factory.cpp.o
[ 17%] Building CXX object src/rviz/CMakeFiles/rviz.dir/displays_panel.cpp.o
[ 18%] Building CXX object src/rviz/CMakeFiles/rviz.dir/failed_display.cpp.o
[ 18%] Building CXX object src/rviz/CMakeFiles/rviz.dir/failed_panel.cpp.o
[ 18%] Building CXX object src/rviz/CMakeFiles/rviz.dir/failed_tool.cpp.o
[ 18%] Building CXX object src/rviz/CMakeFiles/rviz.dir/failed_view_controller.cpp.o
[ 19%] Building CXX object src/rviz/CMakeFiles/rviz.dir/frame_manager.cpp.o
[ 19%] Building CXX object src/rviz/CMakeFiles/rviz.dir/load_resource.cpp.o
[ 19%] Building CXX object src/rviz/CMakeFiles/rviz.dir/frame_position_tracking_view_controller.cpp.o
[ 19%] Building CXX object src/rviz/CMakeFiles/rviz.dir/geometry.cpp.o
In file included from /usr/include/boost/signals.hpp:9:0,
                 from /opt/ros/groovy/include/tf/tf.h:46,
                 from /opt/ros/groovy/include/tf/transform_listener.h:38,
                 from /opt/ros/groovy/include/tf/message_filter.h:36,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/frame_manager.h:47,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/frame_manager.cpp:30:
/usr/include/boost/signal.hpp:17:4: warning: #warning "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING." [-Wcpp]
 #  warning                  "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING."
    ^
[ 20%] Building CXX object src/rviz/CMakeFiles/rviz.dir/help_panel.cpp.o
In file included from /usr/include/boost/signals.hpp:9:0,
                 from /opt/ros/groovy/include/tf/tf.h:46,
                 from /opt/ros/groovy/include/tf/transform_listener.h:38,
                 from /opt/ros/groovy/include/tf/message_filter.h:36,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/frame_manager.h:47,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/frame_position_tracking_view_controller.cpp:35:
/usr/include/boost/signal.hpp:17:4: warning: #warning "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING." [-Wcpp]
 #  warning                  "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING."
    ^
[ 20%] Building CXX object src/rviz/CMakeFiles/rviz.dir/image/ros_image_texture.cpp.o
[ 20%] Building CXX object src/rviz/CMakeFiles/rviz.dir/image/image_display_base.cpp.o
[ 20%] Building CXX object src/rviz/CMakeFiles/rviz.dir/loading_dialog.cpp.o
[ 21%] Building CXX object src/rviz/CMakeFiles/rviz.dir/mesh_loader.cpp.o
In file included from /usr/include/boost/signals.hpp:9:0,
                 from /opt/ros/groovy/include/message_filters/subscriber.h:40,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/image/image_display_base.h:35,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/image/image_display_base.cpp:40:
/usr/include/boost/signal.hpp:17:4: warning: #warning "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING." [-Wcpp]
 #  warning                  "Boost.Signals is no longer being maintained and is now deprecated. Please switch to Boost.Signals2. To disable this warning message, define BOOST_SIGNALS_NO_DEPRECATION_WARNING."
    ^
[ 21%] Building CXX object src/rviz/CMakeFiles/rviz.dir/new_object_dialog.cpp.o
[ 21%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/apply_visibility_bits.cpp.o
[ 22%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/arrow.cpp.o
[ 22%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/axes.cpp.o
[ 22%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/billboard_line.cpp.o
[ 22%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/camera_base.cpp.o
[ 23%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/grid.cpp.o
[ 23%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/initialization.cpp.o
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/grid.cpp: In member function ‘void rviz::Grid::setUserData(const Ogre::Any&)’:
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/grid.cpp:242:36: warning: ‘virtual void Ogre::MovableObject::setUserAny(const Ogre::Any&)’ is deprecated (declared at /usr/include/OGRE/OgreMovableObject.h:329) [-Wdeprecated-declarations]
   manual_object_->setUserAny( data );
                                    ^
[ 23%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/line.cpp.o
[ 23%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/movable_text.cpp.o
[ 24%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/object.cpp.o
[ 24%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/ogre_logging.cpp.o
[ 24%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/ogre_render_queue_clearer.cpp.o
In file included from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/movable_text.cpp:41:0:
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/movable_text.h:100:3: error: ‘Font’ in namespace ‘Ogre’ does not name a type
   Ogre::Font *mpFont;
   ^
[ 24%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/orthographic.cpp.o
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/line.cpp: In member function ‘virtual void rviz::Line::setUserData(const Ogre::Any&)’:
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/line.cpp:126:36: warning: ‘virtual void Ogre::MovableObject::setUserAny(const Ogre::Any&)’ is deprecated (declared at /usr/include/OGRE/OgreMovableObject.h:329) [-Wdeprecated-declarations]
   manual_object_->setUserAny( data );
                                    ^
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/movable_text.cpp: In constructor ‘rviz::MovableText::MovableText(const String&, const String&, Ogre::Real, const Ogre::ColourValue&)’:
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/movable_text.cpp:80:3: error: class ‘rviz::MovableText’ does not have any field named ‘mpFont’
 , mpFont(NULL)
   ^
   assert(mpFont);
          ^
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/movable_text.cpp: In member function ‘void rviz::MovableText::_updateColors()’:
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/movable_text.cpp:516:10: error: ‘mpFont’ was not declared in this scope
   assert(mpFont);
          ^
[ 25%] Building CXX object src/rviz/CMakeFiles/rviz.dir/ogre_helpers/point_cloud.cpp.o
src/rviz/CMakeFiles/rviz.dir/build.make:1006: recipe for target 'src/rviz/CMakeFiles/rviz.dir/ogre_helpers/movable_text.cpp.o' failed
make[2]: *** [src/rviz/CMakeFiles/rviz.dir/ogre_helpers/movable_text.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/include/OGRE/OgreHardwareVertexBuffer.h:34:0,
                 from /usr/include/OGRE/OgreVertexIndexData.h:32,
                 from /usr/include/OGRE/OgreRenderOperation.h:32,
                 from /usr/include/OGRE/OgreRenderable.h:34,
                 from /usr/include/OGRE/OgreShadowCaster.h:32,
                 from /usr/include/OGRE/OgreMovableObject.h:37,
                 from /usr/include/OGRE/OgreSimpleRenderable.h:33,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/point_cloud.h:33,
                 from /home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/point_cloud.cpp:30:
/usr/include/OGRE/OgreSharedPtr.h: In instantiation of ‘Ogre::SharedPtr<T>::SharedPtr(const Ogre::SharedPtr<Y>&) [with Y = Ogre::Resource; T = Ogre::Material]’:
/home/sean/arch-ros-stacks/groovy/rviz/src/rviz/src/rviz/ogre_helpers/point_cloud.cpp:147:54:   required from here
/usr/include/OGRE/OgreSharedPtr.h:202:28: error: invalid conversion from ‘Ogre::Resource*’ to ‘Ogre::Material*’ [-fpermissive]
             , pInfo(r.pInfo)
                            ^
src/rviz/CMakeFiles/rviz.dir/build.make:1121: recipe for target 'src/rviz/CMakeFiles/rviz.dir/ogre_helpers/point_cloud.cpp.o' failed
make[2]: *** [src/rviz/CMakeFiles/rviz.dir/ogre_helpers/point_cloud.cpp.o] Error 1
CMakeFiles/Makefile2:298: recipe for target 'src/rviz/CMakeFiles/rviz.dir/all' failed
make[1]: *** [src/rviz/CMakeFiles/rviz.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
==> ERROR: A failure occurred in build().

@tfoote tfoote referenced this issue in ros-gbp/rviz-release Jan 15, 2014

Closed

latest groovy rviz is broken with latest Ogre #1

Contributor

tfoote commented Jan 15, 2014

Also discussed here: ros/rosdistro#2805 (comment)

zootboy commented Jan 15, 2014

Thanks for the link. We've gone with using a repackaged Ogre 1.8 for now, as I managed to patch the issue of the moved fontmanager header but am now stuck with the invalid conversion from ‘Ogre::Resource_’ to ‘Ogre::Material_’ issue. If there's any insight into that error, I'd like to hear, otherwise 1.8 works fine for now.

Owner

wjwwood commented Jan 15, 2014

@nkoenig have you guys run into similar problems in Gazebo?

nkoenig commented Jan 15, 2014

Yes. I can take a look at it. The changes shouldn't be too difficult.

Owner

wjwwood commented Jan 15, 2014

That would be appreciated, I can help you with testing and other stuff if you need it.

nkoenig commented Jan 16, 2014

Here is a fork that compiles against ogre-1.7.4, ogre-1.8.1, and ogre-1.9.0.
It still needs to be tested.

https://github.com/nkoenig/rviz

Owner

wjwwood commented Jan 16, 2014

@nkoenig Thanks! I'll take it from here.

I just posted this pull request: #716

I have tested against Ogre 1.7.4 (the version in Ubuntu 12.04) and against Ogre 1.10 (built from git sources). I have not tested on Ogre 1.8 or 1.9. Unfortunately I did not see @nkoenig 's patch until @wjwwood pointed it out to me just now.

My change goes a little farther than @nkoenig 's. It uses absolute paths for the Ogre libraries when there are 2 versions of Ogre installed. This allows rviz to compile correctly when there is more than one version of Ogre installed. It also #includes the Ogre headers such that they are found correctly when there are multiple Ogre installs. This is useful when testing against different versions of Ogre.

Otherwise the changes look similar (except for @nkoenig 's changes to property.h, view_controller.cpp, and view_controller.h which seem unrelated to Ogre).

Owner

wjwwood commented Feb 5, 2014

I'll compare them when I get around to testing them. I recently upgraded to OS X 10.9 and I am still getting things fixed building up to rviz, so once I get to rviz I will test these changes and figure out the best union of the two.

I realized there is another difference between the #716 change and the @nkoenig change. The #716 change adds code to create an Ogre::OverlaySystem singleton and register it as a RenderQueueListener on SceneManagers (added in render_system.cpp/h). This seemed necessary to prevent rviz crashes with Ogre 1.10 (I think it may be needed with Ogre 1.9 too).

Also the MaterialPtr/ResourcePtr problem (point_cloud.cpp/h) was addressed differently in the two changes, but I think either fix is valid.

Owner

wjwwood commented Feb 12, 2014

Ok, this is resolved with #716

@wjwwood wjwwood closed this Feb 12, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment