|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |
Launch files
Messages
Services
Plugins
Recent questions tagged rdl_torch at Robotics Stack Exchange
|
rdl_torch package from rdl repordl rdl_dynamics rdl_model_parser rdl_torch |
ROS Distro
|
Package Summary
| Version | 0.0.0 |
| License | zlib |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://gitlab.com/jlack/rdl.git |
| VCS Type | git |
| VCS Version | master |
| Last Updated | 2026-08-21 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- jordan
Authors
#rdl_torch
rdl_torch is intended to become a libtorch-backed sibling to rdl_dynamics for batched rigid-body kinematics and dynamics on CPU and GPU.
Phase one is deliberately narrower than full rdl_dynamics parity. The target is a stable tensor backend for one fixed robot topology evaluated over many states in parallel, with native support for both torch.float32 and torch.float64.
Current Package Surface
The package now builds as a C++ shared library and exports a small smoke-test API in rdl_torch/rdl_torch.hpp. Public symbols live in RobotDynamics::rdl_torch; the package owns Torch-specific schemas and kernels while rdl_model_parser remains free of any Torch/CUDA dependency.
Current public helpers:
RobotDynamics::rdl_torch::isSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::checkSupportedFloatingPointDtype(...)RobotDynamics::rdl_torch::emptyBatchTensor(...)RobotDynamics::rdl_torch::ModelRobotDynamics::rdl_torch::Model::bodyName(...)RobotDynamics::rdl_torch::Model::findBody(...)RobotDynamics::rdl_torch::Model::bodyId(...)RobotDynamics::rdl_torch::Model::findFrame(...)RobotDynamics::rdl_torch::Model::frameId(...)RobotDynamics::rdl_torch::Model::frameName(...)RobotDynamics::rdl_torch::exportModel(...)RobotDynamics::rdl_torch::computeJointState(...)RobotDynamics::rdl_torch::computeKinematics(...)RobotDynamics::rdl_torch::splitState(...)RobotDynamics::rdl_torch::bodyTransform(...)RobotDynamics::rdl_torch::findFixedFrame(...)RobotDynamics::rdl_torch::fixedFrameTransform(...)RobotDynamics::rdl_torch::frameTransform(...)RobotDynamics::rdl_torch::bodyLinearVelocity(...)RobotDynamics::rdl_torch::worldLinearVelocity(...)RobotDynamics::rdl_torch::frameLinearVelocityInFrame(...)RobotDynamics::rdl_torch::frameLinearVelocityInWorld(...)RobotDynamics::rdl_torch::bodyAngularVelocity(...)RobotDynamics::rdl_torch::worldAngularVelocity(...)RobotDynamics::rdl_torch::frameAngularVelocityInFrame(...)RobotDynamics::rdl_torch::frameAngularVelocityInWorld(...)RobotDynamics::rdl_torch::composeTransforms(...)RobotDynamics::rdl_torch::applyMotionTransform(...)RobotDynamics::rdl_torch::applyForceTransformTranspose(...)RobotDynamics::rdl_torch::motionCross(...)RobotDynamics::rdl_torch::forceCross(...)RobotDynamics::rdl_torch::applyInertia(...)RobotDynamics::rdl_torch::intrinsicZYXAngles(...)
Phase One Goals
- Support batched execution on CPU and CUDA through libtorch tensors.
- Support both
float32andfloat64as first-class runtime dtypes. - Reuse
rdl_model_parserandrdl_dynamicsas the source of truth for model loading and numerical parity tests. - Cover the rigid-body core: forward kinematics, velocities, accelerations, Jacobians, inverse dynamics, joint-space inertia, and forward dynamics.
- Keep frame-checking objects and ROS-specific runtime behavior out of the device kernels.
Phase One Non-Goals
- Full API parity with frame-rich
rdl_dynamicsobjects. - Custom joints on day one.
- Contact solvers on day one.
- Hydrodynamics on day one.
- Mixed-topology batches in the first pass.
Phase One Chunks
Chunk 0: Package Skeleton
- Keep
rdl_torchas a standalone package under therdlrepo. - Add the package to the
rdlmeta-package. - Define the package as the future home for the torch backend, tests, and benchmarks.
Exit criteria:
- Package exists, builds as an empty ament package once
COLCON_IGNOREis removed, and has a working roadmap.
Chunk 1: Tensor Model Schema
- Define a topology-only model representation that can be copied to CPU or CUDA.
- Store parent indices, body indices, depth groups, joint type tags,
q/qdotoffsets, static joint transforms, inertias, centers of mass, and fixed-body mappings. - Keep this representation immutable after construction.
Exit criteria:
- A single struct or small group of structs can fully describe one robot topology without
ReferenceFramePtr, ROS nodes, or mutable scratch state.
Chunk 2: RDL-to-Torch Exporter
- Build a converter from
RobotDynamics::Modelinto the tensor model schema. - Reuse
rdl_model_parserfor URDF and MJCF ingestion. - Normalize naming and indexing so parity tests can compare CPU and torch outputs directly.
Exit criteria:
- A parsed
RobotDynamics::Modelcan be exported once and reused for repeated batched evaluations.
Chunk 3: Dtype and Device Policy
- Make dtype explicit at construction and execution time.
- Support
torch.float32andtorch.float64everywhere in the phase-one API. - Reject unsupported dtypes early with clear errors.
- Keep device transfer rules explicit rather than implicit.
Exit criteria:
- Every public entry point documents accepted dtypes and devices and behaves identically across CPU and CUDA for the same dtype within tolerance.
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_index_cpp | |
| ament_cmake_gtest | |
| ament_cmake_cppcheck | |
| ament_lint | |
| ament_cmake_lint_cmake | |
| ament_cmake_xmllint | |
| ament_cmake_clang_format | |
| rdl_dynamics | |
| rdl_model_parser |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| rdl |