SRSSolver#
SRSSolver provides analytical IK for 7-DOF arms with a
spherical-rotational-spherical (S-R-S) joint structure, including joint limits
and multiple-solution sampling.
S-R-S describes three intersecting shoulder axes, one elbow axis, and three intersecting wrist axes. The extra degree of freedom permits multiple joint configurations for the same end-effector pose.
Configuration#
SRSSolver is configured via the SRSSolverCfg class, allowing detailed control over kinematic parameters and solver behavior.
from embodichain.data import get_data_path
from embodichain_robots.dexforce.w1.types import (
DexforceW1ArmSide,
DexforceW1Version,
)
from embodichain_robots.dexforce.w1.params import (
W1ArmKineParams,
)
from embodichain.lab.sim.motion.solvers.srs_solver import SRSSolver, SRSSolverCfg
arm_params = W1ArmKineParams(
arm_side=DexforceW1ArmSide.RIGHT,
version=DexforceW1Version.V021,
)
cfg = SRSSolverCfg(
urdf_path=get_data_path("DexforceW1V021/DexforceW1_v02_1.urdf"),
joint_names=[f"RIGHT_J{i+1}" for i in range(7)],
end_link_name="right_ee",
root_link_name="right_arm_base",
dh_params=arm_params.dh_params,
user_qpos_limits=arm_params.qpos_limits,
T_e_oe=arm_params.T_e_oe,
T_b_ob=arm_params.T_b_ob,
link_lengths=arm_params.link_lengths,
rotation_directions=arm_params.rotation_directions,
)
solver = SRSSolver(cfg, num_envs=1, device="cuda")
Solver-specific behavior#
See shared FK/IK conventions for the common call pattern and return order.
The default get_ik() result contains success flags (B,) and a selected
solution (B, 1, 7). return_all_solutions=True retains multiple solutions.
Configure arm-angle sampling and joint limits for the desired redundancy
resolution; the robot must match the S-R-S geometry.
References#
Analytical Inverse Kinematic Computation for 7-DOF Redundant Manipulators With Joint Limits and Its Application to Redundancy Resolution
Masayuki Shimizu, Hiromu Kakuya, Woo-Keun Yoon, Kosei Kitagaki, Kazuhiro Kosuge
IEEE Transactions on Robotics, 2008
DOI: 10.1109/TRO.2008.2003266
This paper presents an analytical approach for solving the inverse kinematics of 7-DOF redundant manipulators, including joint limit handling and redundancy resolution strategies.Position-based kinematics for 7-DoF serial manipulators with global configuration control, joint limit, and singularity avoidance
Carlos Faria, Flora Ferreira, Wolfram Erlhagen, Sérgio Monteiro, Estela Bicho
Mechanism and Machine Theory, 2018
DOI: 10.1016/j.mechmachtheory.2017.10.025
This work introduces position-based kinematic algorithms for 7-DOF manipulators, focusing on global configuration control, joint limit enforcement, and singularity avoidance.