[−][src]Trait k::InverseKinematicsSolver
IK solver
Required methods
fn solve_with_constraints(
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>,
constraints: &Constraints
) -> Result<(), IKError>
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>,
constraints: &Constraints
) -> Result<(), IKError>
Move the end transform of the arm
to target_pose
with constraints
Provided methods
fn solve(
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>
) -> Result<(), IKError>
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>
) -> Result<(), IKError>
Move the end transform of the arm
to target_pose
Implementors
impl<T> InverseKinematicsSolver<T> for JacobianIKSolver<T> where
T: RealField,
[src]
T: RealField,
fn solve(
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>
) -> Result<(), IKError>
[src]
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>
) -> Result<(), IKError>
Set joint positions of arm
to reach the target_pose
Examples
use k::prelude::*; let chain = k::Chain::<f32>::from_urdf_file("urdf/sample.urdf").unwrap(); // Create sub-`Chain` to make it easy to use inverse kinematics let target_joint_name = "r_wrist_pitch"; let r_wrist = chain.find(target_joint_name).unwrap(); let mut arm = k::SerialChain::from_end(r_wrist); println!("arm: {}", arm); // Set joint positions of `arm` let positions = vec![0.1, 0.2, 0.0, -0.5, 0.0, -0.3]; arm.set_joint_positions(&positions).unwrap(); println!("initial positions={:?}", arm.joint_positions()); // Get the transform of the end of the manipulator (forward kinematics) let mut target = arm.update_transforms().last().unwrap().clone(); println!("initial target pos = {}", target.translation); println!("move x: -0.1"); target.translation.vector.x -= 0.1; // Create IK solver with default settings let solver = k::JacobianIKSolver::default(); // solve and move the manipulator positions solver.solve(&arm, &target).unwrap(); println!("solved positions={:?}", arm.joint_positions());
fn solve_with_constraints(
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>,
constraints: &Constraints
) -> Result<(), IKError>
[src]
&self,
arm: &SerialChain<T>,
target_pose: &Isometry3<T>,
constraints: &Constraints
) -> Result<(), IKError>