Problems trying to use RViz ViewController API
Hello everyone,
I'm trying to create a camera controller for RViz, which will allow me to track a flying target while standing stationary in the /map frame.
I found this topic and decided to use the ViewController API.
I wrote the following code:
#include <ros/ros.h>
#include <rviz/display.h>
#include "rviz/common.h"
#include "rviz/properties/forwards.h"
#include <last_letter_msgs/SimStates.h>
#define UPDATE_RATE 30
rviz::ViewController * cameraControls;
ros::Subscriber sub;
/////////////////////////////////////
// Callback to point camera to UAV //
/////////////////////////////////////
void pointCamera(const last_letter_msgs::SimStates& state){
float x = state.pose.position.x;
float y = state.pose.position.y;
float z = state.pose.position.z;
cameraControls.lookat(x,y,z);
}
//////////////////
//Main function //
//////////////////
int main(int argc, char **argv)
{
ros::init(argc, argv, "sceneControls");
ros::NodeHandle n;
sub = n.subscribe("states",1, pointCamera);
ros::Duration(10).sleep(); //wait for other nodes to get raised
ros::Rate spinner(UPDATE_RATE);
spinner.sleep();
cameraControls = VisualizationManager::getCurrentViewController;
ROS_INFO("sceneControls up");
while (ros::ok())
{
ros::spinOnce();
spinner.sleep();
if (isnan(uav.states.velocity.linear.x))
{
ROS_FATAL("State NAN detected on sceneControls!");
}
}
return 0;
}
However, I get this error message on catkin_make
:
In file included from /opt/ros/indigo/include/rviz/properties/status_property.h:32:0,
from /opt/ros/indigo/include/rviz/display.h:38,
from /home/george/catkin_ws/src/last_letter/last_letter/include/cameraController.hpp:2,
from /home/george/catkin_ws/src/last_letter/last_letter/src/cameraController.cpp:1:
/opt/ros/indigo/include/rviz/properties/property.h:34:19: fatal error: QObject: No such file or directory
#include <QObject>
^
compilation terminated.
make[2]: *** [last_letter/last_letter/CMakeFiles/cameraController.dir/src/cameraController.cpp.o] Error 1
make[1]: *** [last_letter/last_letter/CMakeFiles/cameraController.dir/all] Error 2
make: *** [all] Error 2
I'm running ROS Indigo on Ubuntu 14.04.2.
Thanks in advance!
Asked by Georacer on 2015-03-21 16:01:29 UTC
Answers
Hi, sorry to not add any answer to your question. I am also interested on controling the point of view and wondered if you succeeded in your attempt.
Thank's in advance.
Josep Arnau
Asked by Josep.Arnau on 2015-06-08 05:05:38 UTC
Comments
Hello Josep,
No, sadly I didn't manage to make any progress with this problem and as you saw, documentation is very scarce.
It's weird how some features, which you would expect they would be clearly documented and implemented, still lie outside the ROS wiki.
Asked by Georacer on 2015-06-08 08:23:07 UTC
Comments
The compile process can't find QObject
, part of Qt. This indicates you're missing build information from the CMakeLists.txt.
I haven't yet transitioned to catkin, so I'm not really in a position to give you proper guidance. But I suspect part of the issue is that you're looking at examples for ROS fuerte, which (if I recall correctly) only used rosbuild.
Again, as I recall, the rviz_animated_view_controller (referenced in your link above) was transitioned to catkin; you might take a look at the build files there for help.
Asked by kramer on 2015-06-09 08:18:10 UTC
Comments