Robotics StackExchange | Archived questions

RQT GUI with rosbuild

Hi I want to create a GUI to publish some message on a topic. I already tried following tutorial : http://www.ros.org/wiki/rqt/Tutorials/Writing%20a%20C%2B%2B%20Plugin without success. I'm new to ROS (groovy), QT and RQT.

My requirements:

I tried to follow the above mentioned tutorial (using catkin). But, I'm not sure, what to change exactly in the plugin.xml (from the tutorial) to get CPP-Plugins working. Right now, my plugin.xml looks like this:

<library path="lib/libmy_namespace">
  <class name="my_namespace/myPlugin" type="my_namespace::myPlugin" base_class_type="rqt_gui_cpp::Plugin">
    <description>
      My GUI in C++
    </description>
    <qtgui>

      <label>my_namespace</label>
      <icon type="theme">system-help</icon>
      <statustip>Great user interface to provide real value.</statustip>
    </qtgui>
  </class>
</library>

My CmakeLists.txt:

cmake_minimum_required(VERSION 2.8.3)
project(my_namespace)


find_package(catkin REQUIRED COMPONENTS rqt_gui rqt_gui_cpp)

find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED)


include(${QT_USE_FILE})

set(my_namespace_SRCS
  src/my_namespace/myPlugin.cpp
  src/my_namespace/mainwindow.cpp
)

set(my_namespace_HDRS
  include/my_namespace/myPlugin.h
   include/my_namespace/mainwindow.h
)

set(my_namespace_UIS
  src/my_namespace/mainwindow.ui
)

set(my_namespace_INCLUDE_DIRECTORIES
  include
  ${CMAKE_CURRENT_BINARY_DIR}
)

catkin_package(
        INCLUDE_DIRS ${my_namespace_INCLUDE_DIRECTORIES}
        LIBRARIES ${PROJECT_NAME}
        CATKIN_DEPENDS rqt_gui rqt_gui_cpp
)
catkin_python_setup()

qt4_wrap_cpp(my_namespace_MOCS ${my_namespace_HDRS})
qt4_wrap_ui(my_namespace_UIS_H ${my_namespace_UIS})

include_directories(${my_namespace_INCLUDE_DIRECTORIES} ${catkin_INCLUDE_DIRS})
add_library(${PROJECT_NAME} ${my_namespace_SRCS} ${my_namespace_MOCS} ${my_namespace_UIS_H})
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})

find_package(class_loader)
class_loader_hide_library_symbols(${PROJECT_NAME})

install(FILES plugin.xml
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)

install(TARGETS ${PROJECT_NAME}
  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION})

install(PROGRAMS scripts/my_namespace
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(DIRECTORY include/${PROJECT_NAME}/
  DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
)

My package.xml:

<?xml version="1.0"?>
<package>
  <name>my_namespace</name>
  <version>0.0.0</version>
  <description>The GUI package</description>


  <maintainer email="private@todo.todo">private</maintainer>

  <license>TODO</license>


  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>rqt_gui</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>rqt_gui_cpp</build_depend>
  <run_depend>rqt_gui</run_depend>
  <run_depend>rospy</run_depend>
  <run_depend>rqt_gui_cpp</run_depend>


  <export>

    <rqt_gui plugin="${prefix}/plugin.xml"/>


  </export>
</package>

MyFiles:

Asked by invoices on 2013-07-31 02:27:00 UTC

Comments

Could also describe what problems / error messages you have? Based on the above snippets I can at least spot some issues like invalid XML etc.

Asked by Dirk Thomas on 2013-07-31 05:31:52 UTC

In the folder my_namespace, I created a folder build. In that build folder, I called cmake .. and make after that, when I call rosrun my_namespace my_namespace, I get:

[rosrun] Couldn't find executable named my_namespace below /home/private/my_namespace [rosrun] Found the following, but they're either not files, [rosrun] or not executable: [rosrun] /home/private/my_namespace [rosrun] /home/private/my_namespace/build/devel/share/my_namespace [rosrun] /home/private/my_namespace/build/devel/lib/python2.7/dist-packages/my_namespace [rosrun] /home/private/my_namespace/build/catkin_generated/stamps/my_namespace

Asked by invoices on 2013-07-31 06:08:13 UTC

Answers