ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Hector_quadrotor catkin_make fails compiling

asked 2014-11-27 12:12:17 -0500

scar gravatar image

Hi all, I am attempting to install hector_quadrotor_tutorial from source on ubuntu 14.10, ROS indigo. And I am experiencing the following problems: 1st I had to install hardware_interface package which was missing. After successful installation of the package still can't compile. Here is the output: Thanks in advance.

[ 98%] Building CXX object ros_control/controller_manager_tests/CMakeFiles/controller_manager_tests.dir/src/my_dummy_controller.cpp.o

In file included from /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:29:0: /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/include/hector_quadrotor_pose_estimation/pose_estimation_node.h:41:76: error: ‘StatePtr’ does not name a type QuadrotorPoseEstimationNode(const SystemPtr& system = SystemPtr(), const StatePtr& state = StatePtr()); ^ /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/include/hector_quadrotor_pose_estimation/pose_estimation_node.h:41:103: error: ISO C++ forbids declaration of ‘state’ with no type [-fpermissive] QuadrotorPoseEstimationNode(const SystemPtr& system = SystemPtr(), const StatePtr& state = StatePtr()); ^ /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/include/hector_quadrotor_pose_estimation/pose_estimation_node.h:41:103: error: ‘StatePtr’ was not declared in this scope /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:34:89: error: ‘StatePtr’ does not name a type QuadrotorPoseEstimationNode::QuadrotorPoseEstimationNode(const SystemPtr& system, const StatePtr& state) ^ /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:34:99: error: ISO C++ forbids declaration of ‘state’ with no type [-fpermissive] QuadrotorPoseEstimationNode::QuadrotorPoseEstimationNode(const SystemPtr& system, const StatePtr& state) ^ /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp: In constructor ‘hector_quadrotor_pose_estimation::QuadrotorPoseEstimationNode::QuadrotorPoseEstimationNode(const SystemPtr&, const int&)’: /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:35:37: error: no matching function for call to ‘hector_pose_estimation::PoseEstimationNode::PoseEstimationNode(const SystemPtr&, const int&)’ : PoseEstimationNode(system, state) ^ /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:35:37: note: candidates are: In file included from /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/include/hector_quadrotor_pose_estimation/pose_estimation_node.h:32:0, from /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:29: /home/marcello/hector_quadrotor_tutorial/src/hector_localization/hector_pose_estimation/include/hector_pose_estimation/pose_estimation_node.h:61:3: note: hector_pose_estimation::PoseEstimationNode::PoseEstimationNode(const SystemPtr&) PoseEstimationNode(const SystemPtr& system = SystemPtr()); ^ /home/marcello/hector_quadrotor_tutorial/src/hector_localization/hector_pose_estimation/include/hector_pose_estimation/pose_estimation_node.h:61:3: note: candidate expects 1 argument, 2 provided /home/marcello/hector_quadrotor_tutorial/src/hector_localization/hector_pose_estimation/include/hector_pose_estimation/pose_estimation_node.h:59:7: note: hector_pose_estimation::PoseEstimationNode::PoseEstimationNode(hector_pose_estimation::PoseEstimationNode&) class PoseEstimationNode { ^ /home/marcello/hector_quadrotor_tutorial/src/hector_localization/hector_pose_estimation/include/hector_pose_estimation/pose_estimation_node.h:59:7: note: candidate expects 1 argument, 2 provided /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp: In member function ‘void hector_quadrotor_pose_estimation::QuadrotorPoseEstimationNode::baroCallback(const AltimeterConstPtr&)’: /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:54:7: error: ‘sensor_pose_publisher_’ was not declared in this scope if (sensor_pose_publisher_) { ^ /home/marcello/hector_quadrotor_tutorial/src/hector_quadrotor/hector_quadrotor_pose_estimation/src/pose_estimation_node.cpp:56:5: error: ‘sensor_pose_’ was not declared in this scope sensor_pose_.pose.position.z = baro->getModel()->getAltitude(Baro::Update(altimeter->pressure, altimeter->qnh)) - baro->getElevation(); ^

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2014-11-29 17:19:50 -0500

I did a major update of the hector_pose_estimation packages during the last one or two weeks, which I merged into the catkin branch a few minutes ago. hector_quadrotor already had some patches that I accidentally pushed and that require the new version. The state of the repositories was therefore inconsistent for a few days. I am sorry.

If you want, please try again with the updated versions now. You have to build both repos, hector_quadrotor and hector_localization, from source.

It also should be noted here that with the default values of the launch file arguments the simulated quadrotor directly uses ground truth information from Gazebo for control and for the published tf transforms. hector_pose_estimation is only started if the quadrotor is spawned with the use_ground_truth_for_control:=true roslaunch argument.

For the hardware_interface issue: Please make sure that all dependencies are installed before building, e.g. using rosdep or rosinstall_generator. hardware_interface is an indirect dependency of hector_quadrotor_gazebo (and hector_quadrotor_demo):

$ rospack depends-why --target=hardware_interface hector_quadrotor_gazebo
Dependency chains from hector_quadrotor_gazebo to hardware_interface:
* hector_quadrotor_gazebo -> hector_quadrotor_controller_gazebo -> gazebo_ros_control -> controller_manager -> controller_interface -> hardware_interface 
* hector_quadrotor_gazebo -> hector_quadrotor_controller_gazebo -> gazebo_ros_control -> controller_manager -> hardware_interface 
* hector_quadrotor_gazebo -> hector_quadrotor_controller_gazebo -> hector_quadrotor_controller -> hardware_interface 
* hector_quadrotor_gazebo -> hector_quadrotor_controller_gazebo -> hector_quadrotor_controller -> controller_interface -> hardware_interface
edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2014-11-27 12:12:17 -0500

Seen: 247 times

Last updated: Nov 29 '14