Files
allwpilib/simulation/frc_gazebo_plugin/src/RobotMapParser.h
Alex Henning 40628a817d Added support for PacGoat robot for artf2591.
This also includes support for solenoids (artf2592) in the gazebo plugin and WPILibJavaSim, fixes a concurrency issue with JavaGazebo.

Change-Id: I5bd19556a7511387852c98414e4a29fdfd68b8cd
2014-06-23 14:43:45 -07:00

47 lines
1.5 KiB
C++

#include "components/RobotComponent.h"
#include <gazebo/sensors/sensors.hh>
#include <gazebo/physics/Model.hh>
#include <tinyxml2.h>
#ifndef _ROBOTMAPPARSER_H_
#define _ROBOTMAPPARSER_H_
using namespace std;
using namespace tinyxml2;
using namespace gazebo;
class RobotMapParser {
public:
RobotMapParser(string robot, string filename, physics::ModelPtr model);
void parse(vector<RobotComponentPtr> &components);
private:
string robot, filename;
physics::ModelPtr model;
physics::WorldPtr world;
RobotComponentPtr parseMotor(XMLElement *node);
RobotComponentPtr parsePiston(XMLElement *node);
RobotComponentPtr parsePotentiometer(XMLElement *node);
RobotComponentPtr parseEncoder(XMLElement *node);
RobotComponentPtr parseGyro(XMLElement *node);
RobotComponentPtr parseInternalLimitSwitch(XMLElement *node);
RobotComponentPtr parseExternalLimitSwitch(XMLElement *node);
RobotComponentPtr parseRangefinder(XMLElement *node);
string locationToPath(XMLElement *location);
string portLocationToPath(XMLElement *location);
string doublePortLocationToPath(XMLElement *location);
string getChildTagValue(XMLElement *node, string tag, string default_value="");
string getTagAttribute(XMLElement *node, string attr, string default_value="");
string getChildTagAttribute(XMLElement *node, string tag, string attr, string default_value="");
physics::JointPtr getJoint(XMLElement *node);
physics::LinkPtr getLink(XMLElement *node);
sensors::SensorPtr getSensor(XMLElement *node);
};
#endif /* _ROBOTMAPPARSER_H_ */