Ubuntu 14.04 と ROS Indigo を実行しています。MoveIt で生成された OctoMap にアクセスしたい! 標準の OctoMap 形式に変換して保存/処理します。次のコードでそれを行う必要があります。
void cloud_cb(const moveit_msgs::PlanningScenePtr& input)
{
moveit_msgs::PlanningScene::Ptr my_planning_scene(new moveit_msgs::PlanningScene);
*my_planning_scene = *input;
moveit_msgs::PlanningSceneWorld my_world = (*my_planning_scene).world;
moveit_msgs::PlanningSceneWorld::Ptr real_map(&my_world);
octomap_msgs::OctomapWithPose octomap_pose_content = (*real_map).octomap;
octomap_msgs::OctomapWithPose::Ptr octomap_pose(&octomap_pose_content);
octomap_msgs::Octomap octomap_content = (*octomap_pose).octomap;
octomap::AbstractOcTree* my_map = octomap_msgs::binaryMsgToMap(octomap_content);
}
名前の混乱と想像力の欠如を許してください。AbstractOcTree への変換までは機能します。catkin_make を実行すると、octomath::Quaternion::Quaternion(octomath::Quaternion const&) への参照など、非常に多くの参照が未定義であるというエラーが表示されます。octomap と octomath で使用できるすべてのヘッダーを含めても、エラーは同じままです。どうすればこれを解決できますか?