<<PackageHeader(python_trep)>> <<TOC(4)>> == Overview == Trep is a Python module for modeling articulated rigid body mechanical systems in generalized coordinates. Trep supports basic simulation but it is primarily designed to serve as a calculation engine for analysis and optimal control algorithms that require 1st and 2nd derivatives of the system’s dynamics. Full documentation is available at [[http://nxr.northwestern.edu/trep]]. == ROS Tools == Trep currently provides two features for usage in ROS packages - A URDF import tool and an extended MidpointVI class. === URDF Import Tool === Trep can create a system model using certain tags from the [[http://wiki.ros.org/urdf/XML|URDF XML specification]]. The following tags are supported: * Link - name * Inertial * origin * mass * inertia (only ixx,iyy,izz supported, off-axes should be zero) * Joint - name, type: fixed, continuous, prismatic (no joint limits) * origin * parent * child * dynamics (damping only) Additionally, one extra tag is supported on the Joint tag. Specifying kinematic='True' creates a kinematic configuration variable in trep for that joint. An example of a system created from a URDF on the parameter server is: {{{#!python import rospy import trep.ros as rostrep system = rostrep.import_urdf(rospy.get_param('robot_description')) }}} Additionally, import_urdf can import the URDF onto an existing system definition and can add a prefix to all of the frames and joints created from the URDF using the following syntax: {{{#!python system = rostrep.import_urdf(rospy.get_param('robot_description'), system=prev_system, prefix='new-prefix') }}} === ROSMidpointVI Integrator === The ROSMidpointVI class extends the MidpointVI class available in trep. This class automatically publishes all frames imported from the URDF to the {{{/tf}}} topic every time {{{ROSMidpointVI.step()}}} is called. == Example Package == An example package called `trep_urdf_demo` is available at [[https://github.com/MurpheyLab/trep_urdf_demo]]. This package has two demos which can be called from launch files. After cloning the package to your ROS workspace, run the following command: * '''RRbot simulator:''' {{{ roslaunch trep_urdf_demo rrbot.launch}}} * '''Interactive marionette simulator:''' {{{ roslaunch trep_urdf_demo puppet.launch}}} ## AUTOGENERATED DON'T DELETE ## CategoryPackage