如何创建geometry_msgs::Point?

How to create a geometry_msgs::Point?

我正在使用 ROS 旋律。

这不是机器人问题,这是 C++ 问题。

我正在尝试这个 C++ 代码:

#include "ros/ros.h"
#include "geometry_msgs/Point.h"
#include "geometry_msgs/Twist.h"
#include "geometry_msgs/Quaternion.h"
#include "tf/transform_datatypes.h"
#include "tf/LinearMath/Matrix3x3.h"
#include "nav_msgs/Odometry.h"

#include <sstream>
#include <cmath>
#include <cstdlib>
#include <queue>

// ... More code

geometry_msgs::Point p;

但我收到以下错误消息:

no instance of constructor "geometry_msgs::Point_<containerallocator>::Point_ [with ContainerAllocator=std::allocator<void>]" matches the argument list -- argument types are: (double, double)

这是Point.hheader。

我做错了什么?

检查您是否在 package.xmlCMakeLists.txt 中添加了 geometry_msgs。如果没有那么就添加它。

package.xml中添加:

<depend>geometry_msgs</depend>

CMakeLists.txt中添加:

find_package(catkin REQUIRED COMPONENTS
  geometry_msgs
)

catkin_package(
  CATKIN_DEPENDS geometry_msgs
)