ROS中使用iiwa时遇到的问题:
我的使用环境:
Ubuntu的版本:16.04;
ROS的版本:kinetic
/home/yzx/ws/src/iiwa_force_control/src/…/…/iiwa_force_control/include/iiwa_force_control/ForceTrackStiffness.h:7:43: fatal error: iiwa_msgs/ConfigureSmartServo.h: No such file or directory
compilation terminated.
解决方法:在/ws/devel/include/iiwa_msgs/路径下没有ConfigureSmartServo.h文件,加入该文件即可。
ConfigureSmartServo.h文件内容如下:
//该文件来自于iiwa_stack包内,地址https://github.com/IFL-CAMP/iiwa_stack
// Generated by gencpp from file iiwa_msgs/ConfigureSmartServo.msg
// DO NOT EDIT!
#ifndef IIWA_MSGS_MESSAGE_CONFIGURESMARTSERVO_H
#define IIWA_MSGS_MESSAGE_CONFIGURESMARTSERVO_H
#include <ros/service_traits.h>
#include <iiwa_msgs/ConfigureSmartServoRequest.h>
#include <iiwa_msgs/ConfigureSmartServoResponse.h>
namespace iiwa_msgs
{
struct ConfigureSmartServo
{
typedef ConfigureSmartServoRequest Request;
typedef ConfigureSmartServoResponse Response;
Request request;
Response response;
typedef Request RequestType;
typedef Response ResponseType;
}; // struct ConfigureSmartServo
} // namespace iiwa_msgs
namespace ros
{
namespace service_traits
{
template<>
struct MD5Sum< ::iiwa_msgs::ConfigureSmartServo > {
static const char* value()
{
return "680a54772ae74cfe325dd171700c3d78";
}
static const char* value(const ::iiwa_msgs::ConfigureSmartServo&) { return value(); }
};
template<>
struct DataType< ::iiwa_msgs::ConfigureSmartServo > {
static const char* value()
{
return "iiwa_msgs/ConfigureSmartServo";
}
static const char* value(const ::iiwa_msgs::ConfigureSmartServo&) { return value(); }
};
// service_traits::MD5Sum< ::iiwa_msgs::ConfigureSmartServoRequest> should match
// service_traits::MD5Sum< ::iiwa_msgs::ConfigureSmartServo >
template<>
struct MD5Sum< ::iiwa_msgs::ConfigureSmartServoRequest>
{
static const char* value()
{
return MD5Sum< ::iiwa_msgs::ConfigureSmartServo >::value();
}
static const char* value(const ::iiwa_msgs::ConfigureSmartServoRequest&)
{
return value();
}
};
// service_traits::DataType< ::iiwa_msgs::ConfigureSmartServoRequest> should match
// service_traits::DataType< ::iiwa_msgs::ConfigureSmartServo >
template<>
struct DataType< ::iiwa_msgs::ConfigureSmartServoRequest>
{
static const char* value()
{
return DataType< ::iiwa_msgs::ConfigureSmartServo >::value();
}
static const char* value(const ::iiwa_msgs::ConfigureSmartServoRequest&)
{
return value();
}
};
// service_traits::MD5Sum< ::iiwa_msgs::ConfigureSmartServoResponse> should match
// service_traits::MD5Sum< ::iiwa_msgs::ConfigureSmartServo >
template<>
struct MD5Sum< ::iiwa_msgs::ConfigureSmartServoResponse>
{
static const char* value()
{
return MD5Sum< ::iiwa_msgs::ConfigureSmartServo >::value();
}
static const char* value(const ::iiwa_msgs::ConfigureSmartServoResponse&)
{
return value();
}
};
// service_traits::DataType< ::iiwa_msgs::ConfigureSmartServoResponse> should match
// service_traits::DataType< ::iiwa_msgs::ConfigureSmartServo >
template<>
struct DataType< ::iiwa_msgs::ConfigureSmartServoResponse>
{
static const char* value()
{
return DataType< ::iiwa_msgs::ConfigureSmartServo >::value();
}
static const char* value(const ::iiwa_msgs::ConfigureSmartServoResponse&)
{
return value();
}
};
} // namespace service_traits
} // namespace ros
#endif // IIWA_MSGS_MESSAGE_CONFIGURESMARTSERVO_H