有人经历过 ROS 的以下行为吗? tf.lookupTransform("map", "base_link", ros::Time(0), transform);
告诉你:"base_link" passed to lookupTransform argument target_frame does not exist但如果我输入:
rosrun tf tf_echo base_link map
At time 1549633095.937
- Translation: [-0.005, 0.020, -0.129]
- Rotation: in Quaternion [0.033, 0.063, 0.002, 0.997]
in RPY (radian) [0.066, 0.127, 0.009]
Run Code Online (Sandbox Code Playgroud)
我可以看到框架不仅存在,而且在map和之间存在有效的转换base_link?
我对这种奇怪的行为一无所知。任何帮助将非常受欢迎。该程序确实在我的笔记本电脑上运行,但在英特尔 NUC 上不起作用。
下面给出了完整的一段代码(实际上我在创建 costmap_2d::costmap2DROS 期间出现了分段错误,看起来是因为 tf.transform 失败):
#include <ros/ros.h>
#include <tf/transform_listener.h>
#include <costmap_2d/costmap_2d_ros.h>
int main(int argc, char **argv) {
ros::init(argc, argv, "hector_exploration_node");
ros::NodeHandle nh;
tf::TransformListener tf;
tf::StampedTransform transform;
try{ …Run Code Online (Sandbox Code Playgroud)