Serial robot arms have complicated kinematic equations which must be solved to write effective arm planning and control software (the Inverse Kinematics Problem). Existing software packages for inverse kinematics often rely on numerical methods which have significant shortcomings. Here we report a new symbolic inverse kinematics solver which overcomes the limitations of numerical methods, and the shortcomings of previous symbolic software packages. We integrate Behavior Trees, an execution planning framework previously used for controlling intelligent robot behavior, to organize the equation solving process, and a modular architecture for each solution technique. The system successfully solved, generated a LaTex report, and generated a Python code template for 18 out of 19 example robots of 4-6 DOF. The system is readily extensible, maintainable, and multi-platform with few dependencies. The complete package is available with a Modified BSD license on Github.
@cite_5 's solver used a product-of-exponentials formula, which doesn't require D-H parameters, and is robust in dealing with kinematics singularities. However, it only showed the capability of handling numerical inputs and rendering numerical solutions, and very limited solving capability for complex robots (6-DOF robots @math 50 IKFast performs symbolic inverse kinematics analysis as part of the OpenRAVE package @cite_11 . Instead of general solving techniques, IKFast adapts a case-specific approach. It categories robots by their number of DOFs, and uses DOF-specific hard-coded algorithms for arms with different DOFs. IKFast generates a dependency tree". However, a tree cannot represent the multiple independent dependencies we found for some variables in some robots. The graph-based representation generated by IKBT solves this problem. We have tried to run IKFast to compare the performance differences with IKBT, but we encountered several problems: First, it requires the full installation of the OpenRave suite. Second, its exclusive dependency on older version of software packages is incompatible with current versions. In order to run IKFast, one needs to downgrade Python and related packages.
@cite_5 @cite_11
2132558143 2097236814 2166513231 2056358962
Real-time control of the end-effector of a humanoid robot in external coordinates requires computationally efficient solutions of the inverse kinematics problem. In this context, this paper investigates inverse kinematics learning for resolved motion rate control (RMRC) employing an optimization criterion to resolve kinematic redundancies. Our learning approach is based on the key observations that learning an inverse of a nonuniquely invertible function can be accomplished by augmenting the input representation to the inverse model and by using a spatially localized learning approach. We apply this strategy to inverse kinematics learning and demonstrate how a recently developed statistical learning algorithm, locally weighted projection regression, allows efficient learning of inverse kinematic mappings in an incremental fashion even when input spaces become rather high dimensional. Our results are illustrated with a 30-DOF humanoid robot. A closed-form inverse kinematics solver for non-redundant reconfigurable robots is developed based on the product-of-exponentials (POE) formula. Its novelty lies in the use of POE reduction techniques and subproblems to obtain inverse kinematics solutions of a large number of possible configurations in a systematic and convenient way. Three reduction techniques are introduced to simplify the POE equations. Eleven types of subproblems containing geometric solutions of those simplified equations are identified and solved. Based on the sequence and types of robot joints, the solved sub-problems can be re-used for inverse kinematics of different robot configurations. This solver can cope with closed-form inverse kinematics of all robots with DOFs of 4 or less, 90 percent of the 5-DOF robots and 50 percent of the 6-DOF robots, as well as frequently used industrial robots with both prismatic and revolute joints. The solver is implemented as a C++ software package and is demonstrated through an example. Neural networks with their inherent learning ability have been widely applied to solve the robot manipulator inverse kinematics problems. However, there are still two open problems: (1) without knowing inverse kinematic expressions, these solutions have the difficulty of how to collect training sets, and (2) the gradient-based learning algorithms can cause a very slow training process, especially for a complex configuration, or a large set of training data. Unlike these traditional implementations, the proposed metho trains neural network in joint subspace which can be easily calculated with electromagnetism-like method. The kinematics equation and its inverse are one-to-one mapping within the subspace. Thus the constrained training sets can be easily collected by forward kinematics relations. For issue 2, this paper uses a novel learning algorithm called extreme learning machine (ELM) which randomly choose the input weights and analytically determines the output weights of the single hidden layer feedforward neural networks (SLFNs). In theory, this algorithm tends to provide the best generalization performance at extremely fast learning speed. The results show that the proposed approach has not only greatly reduced the computation time but also improved the precision. In this paper, we focus on the problem of motion tracking in unknown environments using visual and inertial sensors. We term this estimation task visual-inertial odometry (VIO), in analogy to the well-known visual-odometry problem. We present a detailed study of extended Kalman filter (EKF)-based VIO algorithms, by comparing both their theoretical properties and empirical performance. We show that an EKF formulation where the state vector comprises a sliding window of poses (the multi-state-constraint Kalman filter (MSCKF)) attains better accuracy, consistency, and computational efficiency than the simultaneous localization and mapping (SLAM) formulation of the EKF, in which the state vector contains the current pose and the features seen by the camera. Moreover, we prove that both types of EKF approaches are inconsistent, due to the way in which Jacobians are computed. Specifically, we show that the observability properties of the EKF's linearized system models do not match those of the underlying system, which causes the filters to underestimate the uncertainty in the state estimates. Based on our analysis, we propose a novel, real-time EKF-based VIO algorithm, which achieves consistent estimation by (i) ensuring the correct observability properties of its linearized system model, and (ii) performing online estimation of the camera-to-inertial measurement unit (IMU) calibration parameters. This algorithm, which we term MSCKF 2.0, is shown to achieve accuracy and consistency higher than even an iterative, sliding-window fixed-lag smoother, in both Monte Carlo simulations and real-world testing.