gpt4 book ai didi

c++ - __getDataType 错误

转载 作者:行者123 更新时间:2023-11-30 05:17:03 25 4
gpt4 key购买 nike

我在第 407 行收到这个奇怪的错误。

 /home/data/rover_workspace/src/mobility/src/mobility.cpp:407:62:   required from here
/opt/ros/indigo/include/ros/message_traits.h:143:36: error: request for member ‘__getDataType’ in ‘m’, which is of non-class type ‘const double’
return m.__getDataType().c_str();

我是 ROS 的新手,所以这个错误的确切含义,更重要的是如何修复它让我无法理解。这是第 391 - 408 行,错误发生在 mobility.cpp 中。

case STATE_MACHINE_ROTATE: {
stateMachineMsg.data = "ROTATING";
// Calculate the diffrence between current and desired
// heading in radians.
float errorYaw = angles::shortest_angular_distance(currentLocation.theta, goalLocation.theta);

// If angle > 0.4 radians rotate but dont drive forward.
if (fabs(angles::shortest_angular_distance(currentLocation.theta, goalLocation.theta)) > rotateOnlyAngleTolerance) {
// rotate but dont drive 0.05 is to prevent turning in reverse
sendDriveCommand(0.05, errorYaw);
break;
} else {
// move to differential drive step
stateMachineState = STATE_MACHINE_SKID_STEER;
//fall through on purpose.
} //ERROR HERE
}

任何关于出错的解释都会很棒!

完整的 mobility.cpp 文件可以在这里找到 http://pastebin.com/8ZxuY5QQ

最佳答案

好的,您的问题是当 theta 发布只能发布 std_msgs::Float32 时,您正试图向 thetaPublish 发送 std_msgs::Float64。我建议让发布者改为发布 float64。

但是,您将遇到问题,因为 ROS:INDIGO 已过时并且发布者无法发送 float64。您应该更新您的 ROS 版本。

关于c++ - __getDataType 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42321652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com