A C++ library for parsing URDF (Unified Robot Description Format) files, providing core data structures and XML parsing.
urdfdom is a core C++ library for parsing URDF (Unified Robot Description Format) files, which are XML-based descriptions of robot models. It provides essential data structures and a simple XML parser to populate these structures from URDF files, serving as a foundational component for robotics simulation and control systems.
Robotics software developers and researchers who need to programmatically load and interpret robot models defined in the standard URDF format, particularly those working with ROS (Robot Operating System) or other robotics frameworks.
Developers choose urdfdom because it is a reliable, standards-compliant parser that handles URDF version evolution (supporting versions 1.0, 1.1, and 1.2) while maintaining backward compatibility, ensuring robotics applications can depend on consistent model interpretation.
URDF parser
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports URDF versions 1.0, 1.1, and 1.2 with backward compatibility and strict validation, ensuring reliable parsing based on version attributes, as detailed in the compatibility table.
Provides essential in-memory classes for URDF elements like links, joints, and geometries, making it easy to integrate parsed models into robotics applications without reinventing the wheel.
Manages new features like quaternion orientation (version 1.1) and extended joint limits (version 1.2), allowing format updates while maintaining compatibility, as shown in the version-specific examples.
Designed to work seamlessly with ROS, with installation notes and release processes, though it can be used standalone, as indicated by the ROS-specific setup instructions.
The README describes a hacky installation process that can break ABI compatibility with ROS updates, indicating poor documentation and risk for non-debian builds.
It only parses URDF files into data structures; for simulation, visualization, or control, additional libraries like Gazebo or ROS are required, increasing dependency overhead.
Rejects URDF files with unsupported versions (e.g., future 2.0) immediately, causing compatibility issues until library updates, and lacks flexibility for experimental formats.
Beyond version details, the README is sparse, lacking API examples, tutorials, or guidance for non-ROS use, making adoption harder for new developers.