raisim::Track
struct · #include <raisim/object/ArticulatedSystem/Track.hpp>
A rigid track (continuous belt) of an articulated system, defined by a URDF <track> element.
The belt wraps the convex hull of its wheels, in the plane perpendicular to axis, and is rigidly attached to link. Its surface moves along the loop at the belt speed s = sum(gain * joint velocity) over the drives: where the outward surface normal is n, the surface velocity is s * (axis x n), the same as the rim of a wheel of radius gain turning about axis. Contacts on the belt therefore pull on the drive joints, so a drive torque moves the robot through friction and a blocked robot loads its drives.
The belt's collision geometry is one cylinder per wheel (radius: wheel radius + thickness) and one box per straight span; getCollisionBodies() lists them under the names in collisionBodies.
Public attributes
name
std::string nameTrack name.
link
std::string linkName of the link that carries the belt.
bodyIdx
size_t bodyIdxLocal index of the body that carries the belt (the link, or the body it is fixed to).
axis
Vec<3> axisBelt rotation axis, a unit vector in the link frame.
width
double widthBelt width along axis [m].
thickness
double thicknessBelt thickness [m]: the belt's outer surface lies this far outside the wheels.
drives
std::vector<TrackDrive> drivesJoints that move the belt.
collisionBodies
std::vector<size_t> collisionBodiesIndices into ArticulatedSystem::getCollisionBodies() of the belt's collision bodies.