Tesseract 0.28.4
Loading...
Searching...
No Matches
rtp_vs_kdl_benchmarks.cpp File Reference

Benchmark comparing RTPInvKin (OPW + 1-DOF tool positioner) against the three KDLInvKinChain{NR_JL, NR, LMA} solvers on the same 7-DOF ABB IRB2400 + tool positioner fixture. Reports per-call wall time plus solution-count / success counters. Note: the solvers produce fundamentally different solution sets (RTP enumerates, KDL returns at most one), so compare time-to-first-solution, not total work. KDLInvKinChainNR and KDLInvKinChainLMA do not enforce joint limits and may converge to out-of-limits configurations. More...

#include <tesseract/common/macros.h>
#include <benchmark/benchmark.h>
#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <random>
#include <vector>
#include "abb_opw_fixture.h"
#include "kinematics_test_utils.h"
#include <tesseract/common/kinematic_limits.h>
#include <tesseract/common/resource_locator.h>
#include <tesseract/kinematics/inverse_kinematics.h>
#include <tesseract/kinematics/rtp_inv_kin.h>
#include <tesseract/kinematics/utils.h>
#include <tesseract/kinematics/kdl/kdl_fwd_kin_chain.h>
#include <tesseract/kinematics/kdl/kdl_inv_kin_chain_nr_jl.h>
#include <tesseract/kinematics/kdl/kdl_inv_kin_chain_nr.h>
#include <tesseract/kinematics/kdl/kdl_inv_kin_chain_lma.h>
#include <tesseract/scene_graph/graph.h>
#include <tesseract/scene_graph/scene_state.h>
#include <tesseract/state_solver/kdl/kdl_state_solver.h>

Functions

int main (int argc, char **argv)
 

Detailed Description

Benchmark comparing RTPInvKin (OPW + 1-DOF tool positioner) against the three KDLInvKinChain{NR_JL, NR, LMA} solvers on the same 7-DOF ABB IRB2400 + tool positioner fixture. Reports per-call wall time plus solution-count / success counters. Note: the solvers produce fundamentally different solution sets (RTP enumerates, KDL returns at most one), so compare time-to-first-solution, not total work. KDLInvKinChainNR and KDLInvKinChainLMA do not enforce joint limits and may converge to out-of-limits configurations.