SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
#include <CParserOsimForOldFiles.hpp>
Classes | |
struct | SOsimJoint |
Public Member Functions | |
virtual bool | readOsimBiomechFromFile (const std::string &arg_file, scl::SRobotParsed &arg_biomech, scl::SActuatorSetMuscleParsed &arg_msys) |
virtual bool | readMuscleSysFromFile (const std::string &arg_file, const std::string &arg_msys_name, scl::SActuatorSetMuscleParsed &arg_msys) |
virtual bool | readRobotFromFile (const std::string &arg_file, const std::string &arg_robot_name, scl::SRobotParsed &arg_robot) |
virtual bool | listRobotsInFile (const std::string &arg_file, std::vector< std::string > &arg_robot_names) |
virtual bool | saveRobotToFile (scl::SRobotParsed &arg_robot, const std::string &arg_file) |
virtual bool | listMuscleSysInFile (const std::string &arg_file, std::vector< std::string > &arg_msys_names) |
virtual bool | listGraphicsInFile (const std::string &arg_file, std::vector< std::string > &arg_graphics_names) |
virtual bool | readGraphicsFromFile (const std::string &arg_file, const std::string &arg_graphics_name, scl::SGraphicsParsed &arg_graphics) |
virtual bool | listUISpecsInFile (const std::string &arg_file, std::vector< std::string > &arg_ui_spec_names) |
virtual bool | readUISpecFromFile (const std::string &arg_file, const std::string &arg_ui_spec_name, scl::SUIParsed &arg_ui_spec) |
virtual bool | listControllersInFile (const std::string &arg_file, std::vector< std::pair< std::string, std::string > > &arg_ctrl_name_and_type) |
virtual bool | readGcControllerFromFile (const std::string &arg_file, const std::string &arg_ctrl_name, std::string &ret_must_use_robot, scl::SControllerGc &arg_ctrl) |
virtual bool | readTaskControllerFromFile (const std::string &arg_file, const std::string &arg_ctrl_name, std::string &ret_must_use_robot, std::vector< scl::STaskBase * > &ret_taskvec, std::vector< scl::SNonControlTaskBase * > &ret_task_non_ctrl_vec) |
Private Member Functions | |
bool | readBody (const scl_tinyxml::TiXmlHandle &arg_tiHndl_link, scl::SRobotParsed &arg_robot, const std::string &arg_joint_type) |
bool | readJoint (const scl_tinyxml::TiXmlHandle &arg_tiHndl_jnt, SOsimJoint &arg_joint) |
Private Attributes | |
const std::string | root_link_name_ |
This class implements a limited subset of the CParserBase API for the "Osim" file format:
Supports reading files of the type : UpperLowerBody.osim
|
inlinevirtualinherited |
Optional: The subclass may support read out the controller specifications in a file. Each controller is to be stored as a <name, type> pair
Reimplemented in scl::CParserScl.
|
inlinevirtualinherited |
Optional: Returns a list of graphics views in a file. Required : If readGraphicsFromFile() is implemented
Reimplemented in scl::CParserSai, and scl::CParserScl.
|
inlinevirtualinherited |
Optional: Returns a list of muscle systems in a file. Required : If readMuscleSysFromFile() is implemented
|
inlinevirtual |
Returns a list of robots and the files in which their specifications reside.
Implements scl::CParserBase.
|
inlinevirtualinherited |
Optional: If required, the subclass may support parsing user interface specifications.
Reimplemented in scl::CParserScl.
|
private |
Osim link specification reader: In case a body has multiple coordinates, it creates a series of joints/links for all the coordinates.
|
inlinevirtualinherited |
Optional: The subclass may support parsing gc controller specifications (There are 2 different controller reading functions because the data structures are totally incompatible)
Reimplemented in scl::CParserScl.
|
inlinevirtualinherited |
Optional: If required, the subclass may support parsing graphics specifications.
arg_graphics | The robot's data will be filled into this data structure |
Reimplemented in scl::CParserSai, and scl::CParserScl.
|
private |
Reads a joint for a body. Will be converted into multiple joints/links for scl.
Reads a joint for a body. Will be converted into none/multiple joints/links for scl.
CustomJoint: Osim has multiple dofs per joint. These will be split into multiple joints.
WeldJoint: Osim uses 0dof weld joints. These will be eliminated.
|
virtual |
Reads a muscle model from a file.
NOTE : MuscleViaPoint = Simbody::ConditionalPathPoint A class implementing a conditional path point, which is a point that is active only for a specified range of a coordinate. We will NOT support turning this point off.
NOTE : Simbody::MovingPathPoint A class implementing a moving muscle point, which is a muscle point that moves in a body's reference frame as a function of a coordinate.
NOTE : This presently requires picking an average point on the parent link instead of an actually moving point.
NOTE : Simbody::MovingPathPoint A class implementing a moving muscle point, which is a muscle point that moves in a body's reference frame as a function of a coordinate.
Reimplemented from scl::CParserBase.
|
virtual |
Only support reading from Osim files. Use the file converter to convert them into Scl files to also add controllers. (applications/scl_file_converter)
Tags not supported:
Notes:
|
virtual |
Required : Reads in a robot from the given file.
This function must be implemented by parsers who inherit from CParserBase. Its implementation will depend on the file format supported.
NOTE : Subclass implementation details for the readRobotFromFile() function: 1) Add a bunch of SRigidBody links to the SRobotParsed's branching representation, "robot_.robot_br_rep_", after reading in the values from a file 2) When all the links have been read in, call "robot_.robot_br_rep_.linkNodes()"
If you want to implement a new parser for a new filetype, please see how you should populate the SRobotParsed data structure from an existing parser. Eg. The Scl parser implements the full API
Implements scl::CParserBase.
|
inlinevirtualinherited |
Optional: The subclass may support parsing task controller specifications (There are 2 different controller reading functions because the data structures are totally incompatible)
ret_taskvec | Returns a vector of tasks that this task controller can execute. Typically, the task controller will execute all of them simultaneously with a priority order. |
Reimplemented in scl::CParserScl.
|
inlinevirtualinherited |
Optional: If required, the subclass may support parsing user interface specifications.
Reimplemented in scl::CParserScl.
|
inlinevirtualinherited |
Saves a robot definition to file. Takes the name of the robot and a file name as aguments.
Looks up the robot in the database and writes it to a file if it exists.
Reimplemented in scl::CParserSai, and scl::CParserScl.