DifferentialSolver#
The DifferentialSolver is a differential inverse kinematics (IK) controller designed for robot manipulators. It computes joint-space commands to achieve desired end-effector positions or poses using various Jacobian-based methods.
Configuration Example#
from embodichain.data import get_data_path
from embodichain.lab.sim.motion.solvers.differential_solver import DifferentialSolver
from embodichain.lab.sim.motion.solvers.differential_solver import DifferentialSolverCfg
cfg = DifferentialSolverCfg(
urdf_path=get_data_path("UniversalRobots/UR5/UR5.urdf"),
end_link_name="ee_link",
root_link_name="base_link",
command_type="pose",
use_relative_mode=False,
ik_method="pinv",
ik_params={"k_val": 1.0}
)
solver = DifferentialSolver(cfg)
Solver-specific behavior#
See shared FK/IK conventions for the common call pattern and return order.
Select ik_method from pinv (pseudo-inverse), svd (singular value
decomposition), trans (Jacobian transpose), or dls (damped least squares).
get_ik() returns success flags (B,) and joint positions (B, DOF);
use max_iterations=1 for a single differential step.
return_all_solutions=True still returns one solution per target.