微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ROS GAZEBO:将插件注册到凉亭GZ_REGISTER_MODELPLUGIN时出现问题

如何解决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();
}

这个文件是我的头文件model2gazebo.hh

#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 举报,一经查实,本站将立刻删除。