Apollo2.0自动驾驶之apollo/modules/calibration/republish_msg/republish_msg.h

/******************************************************************************
 * Copyright 2017 The Apollo Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *****************************************************************************/

/**
 * @file
 */

#ifndef MODEULES_CALIBRATION_REPUBLISH_MSG_H_
#define MODEULES_CALIBRATION_REPUBLISH_MSG_H_

#include <string>

#include "Eigen/Eigen"

#include "modules/calibration/republish_msg/proto/relative_odometry.pb.h"
#include "modules/common/apollo_app.h"
#include "modules/common/macro.h"
#include "modules/drivers/gnss/proto/ins.pb.h"
#include "modules/localization/proto/gps.pb.h"
#include "ros/include/ros/ros.h"

/**
 * @namespace apollo::calibration
 * @brief apollo::calibration
 */
namespace apollo {
namespace calibration {

class RepublishMsg : public apollo::common::ApolloApp {
 public:
  std::string Name() const override;
  apollo::common::Status Init() override;
  apollo::common::Status Start() override;
  void Stop() override;

 private:
  // Upon receiving INS status data
  void OnInsStat(const drivers::gnss::InsStat& msg);
  // Upon receiving GPS data
  void OnGps(const localization::Gps& msg);

  // Gps offset pose
  Eigen::Affine3d offset_;
  // first Gps message flag
  bool is_first_gps_msg_;
  // latest INS status
  uint32_t position_type_;
};

}  // namespace calibration
}  // namespace apollo

#endif  // MODULES_CALIBRATION_REPUBLISH_MSG_H_

下面是简要分析:

/******************************************************************************
 * Copyright 2017 The Apollo Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *****************************************************************************/

/**
 * @file
 */
/×这个头文件定义了一些消息传递函数,声明了GPS、INS等的数据更新机制。×/
#ifndef MODEULES_CALIBRATION_REPUBLISH_MSG_H_
#define MODEULES_CALIBRATION_REPUBLISH_MSG_H_

#include <string>

#include "Eigen/Eigen"

#include "modules/calibration/republish_msg/proto/relative_odometry.pb.h"
#include "modules/common/apollo_app.h"
#include "modules/common/macro.h"
#include "modules/drivers/gnss/proto/ins.pb.h"
#include "modules/localization/proto/gps.pb.h"
#include "ros/include/ros/ros.h"

/**
 * @namespace apollo::calibration
 * @brief apollo::calibration
 */
namespace apollo {
namespace calibration {

class RepublishMsg : public apollo::common::ApolloApp {//在这个头文件中声明了一个RepublishMsg,它继承自apollo::common::ApolloApp
 public:
  std::string Name() const override;//定义名称,状态初始化函数。
  apollo::common::Status Init() override;
  apollo::common::Status Start() override;
  void Stop() override;

 private:
  // Upon receiving INS status data
  void OnInsStat(const drivers::gnss::InsStat& msg);//INS全称Inertial Navigation System,即惯性导航系统,有时也简称为惯性系统或惯性导航
  // Upon receiving GPS data
  void OnGps(const localization::Gps& msg);//更新GPS、惯导数据。

  // Gps offset pose
  Eigen::Affine3d offset_;
  // first Gps message flag
  bool is_first_gps_msg_;
  // latest INS status
  uint32_t position_type_;
};

}  // namespace calibration
}  // namespace apollo

#endif  // MODULES_CALIBRATION_REPUBLISH_MSG_H_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值