// // Created by xtkuang on 2025/5/8. // #ifndef CMVR_ES_ABSTRACT_AGV_H #define CMVR_ES_ABSTRACT_AGV_H #pragma once #include "abstract_device.h" namespace cmvr::device{ class AbstractAGV: public AbstractDevice { public: explicit AbstractAGV(const XmlNode &config): AbstractDevice(config) {}; ~AbstractAGV() override=default; virtual void getState(AGVState &state) {} // navigation virtual void eStop() {} virtual void goHome() {} virtual void moveto(math::Pose2d &location, double speed_ratio) {} virtual void setVelocity(math::Vec3 linear, math::Vec3 angular) {} // map virtual void initMap(float resolution, int width, int height) {} virtual void updateMap() {} virtual void saveMap(const std::string& file_path) {} virtual void loadMap(const std::string& file_path) {} protected: AGVState state_; }; } #endif //CMVR_ES_ABSTRACT_AGV_H