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
This commit is contained in:
Alex Henning
2014-06-23 14:43:45 -07:00
parent 0f8c83f693
commit 40628a817d
34 changed files with 1807 additions and 62 deletions

View File

@@ -8,32 +8,36 @@
#ifndef _ROBOTMAPPARSER_H_
#define _ROBOTMAPPARSER_H_
using namespace std;
using namespace tinyxml2;
using namespace gazebo;
class RobotMapParser {
public:
RobotMapParser(std::string robot, std::string filename, physics::ModelPtr model);
void parse(std::vector<RobotComponentPtr> &components);
RobotMapParser(string robot, string filename, physics::ModelPtr model);
void parse(vector<RobotComponentPtr> &components);
private:
std::string robot, filename;
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);
std::string locationToPath(XMLElement *location);
std::string portLocationToPath(XMLElement *location);
std::string doublePortLocationToPath(XMLElement *location);
std::string getTagValue(XMLElement *node, std::string tag, std::string default_value="");
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);