0
我得到这个奇怪的错误线#407__getDataType错误
/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
我想你将需要发布更多的代码,包括你正在显示的各种东西的类型。不知道代码是怎么调用的,如果是391-408,并且错误是407,那么除了大括号之外,407上没有任何内容。所以,发布内容并不完全正确。 –
好点,我现在将包含完整的代码。 –
您是否因为出错而更改了代码? 407:62是linenumber:columnnumber,并且第407行仍然是括号,除了括号外没有代码,所以第62列没有任何意义。通常,从错误中看,你应该使用'Float64'数据类型而不是'double',无论错误是从哪里收集'double'。 –