如何解决ROS GAZEBO:将插件注册到凉亭GZ_REGISTER_MODELPLUGIN时出现问题
我正在尝试创建一个插件,该插件使用c ++编写的物理模型在世界范围内移动多维数据集。这是我将用于与c ++物理模型中的凉亭进行交互的代码。
即使这不是我的第一个凉亭插件,我也不明白为什么它不能编译。我尝试了许多不同的方法。也许有人发现了问题。
接下来,您将获得我的头文件,控制台中的代码和错误。感谢您的帮助。
error: expected constructor,destructor,or type conversion before ‘}’ token
101 | } // namespace gazebo
| ^
#include "model2gazebo.hh"
using namespace gazebo;
using namespace ignition;
/* ------------------------
INIT,DEL & RESET
------------------------ */
ModelToGazebo::ModelToGazebo() : ModelPlugin()
{
// Gazebo State Vectors
gaz_ace.resize(6);
gaz_vel.resize(6);
gaz_pos.resize(6);
// Model State Vectors
new_ace.resize(6);
new_vel.resize(6);
new_pos.resize(6);
}
ModelToGazebo::~ModelToGazebo()
{
ROS_INFO("ModelToGazebo: Closing.");
}
void ModelToGazebo::Reset()
{
ModelPlugin::Reset();
}
#ifndef MODEL_TO_GAZEBO_HH
#define MODEL_TO_GAZEBO_HH
// ROS
#include <ros/ros.h>
// ROS Msgs
#include <geometry_msgs/Vector3Stamped.h>
// Includes
#include <eigen3/Eigen/Dense>
#include <ignition/math/Vector3.hh>
#include <ignition/math/Pose3.hh>
#include <algorithm>
#include <fstream>
#include <mutex>
#include <thread>
#include <chrono>
#include <thread>
#include <string>
// Gazebo
#include <functional>
#include <gazebo/gazebo.hh>
#include <gazebo/physics/physics.hh>
#include <gazebo/common/common.hh>
namespace gazebo
{
class ModelToGazebo : public ModelPlugin
{
public:
ModelToGazebo();
virtual ~ModelToGazebo();
virtual void Reset();
void Load(physics::ModelPtr _parent,sdf::ElementPtr _sdf);
private:
void Update();
bool isLoopTime(const common::Time &time,double &dt);
void SetState();
void GetState();
void UpdateModel(const double &dt);
void PublishStateTruth();
Eigen::VectorXd gaz_ace,gaz_vel,gaz_pos;
Eigen::VectorXd new_ace,new_vel,new_pos;
ros::Publisher pub_state_truth_ace;
ros::Publisher pub_state_truth_vel;
ros::Publisher pub_state_truth_pos;
boost::shared_ptr<ros::NodeHandle> nh;
std::mutex mutex;
event::ConnectionPtr updateConnection;
transport::NodePtr gznode;
physics::ModelPtr model;
common::Time last_sim_time;
double dt_required;
};
GZ_REGISTER_MODELPLUGIN(ModelToGazebo)
} // namespace gazebo
#endif // MODEL_TO_GAZEBO_HH
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。