kinematics_helper.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Eigen/Dense"
4 
6 
7 namespace hebi {
8 namespace experimental {
9 namespace arm {
10 namespace internal {
11 
12 // A small helper class for computing IK and storing preferences about how this is done.
14 
15 public:
16  void setJointLimits(
17  const robot_model::RobotModel& robot_model,
18  const Eigen::VectorXd& min_positions,
19  const Eigen::VectorXd& max_positions);
20 
21  void clearJointLimits();
22 
23  Eigen::Vector3d FK3Dof(
24  const robot_model::RobotModel& robot_model,
25  const Eigen::VectorXd& positions) const;
26 
27  void FK5Dof(
28  const robot_model::RobotModel& robot_model,
29  const Eigen::VectorXd& positions,
30  Eigen::Vector3d& xyz_out,
31  Eigen::Vector3d& tip_axis) const;
32 
33  void FK6Dof(
34  const robot_model::RobotModel& robot_model,
35  const Eigen::VectorXd& positions,
36  Eigen::Vector3d& xyz_out,
37  Eigen::Matrix3d& orientation) const;
38 
39  Eigen::VectorXd solveIK3Dof(
40  const robot_model::RobotModel& robot_model,
41  const Eigen::VectorXd& initial_positions,
42  const Eigen::Vector3d& target_xyz) const;
43 
44  Eigen::VectorXd solveIK5Dof(
45  const robot_model::RobotModel& robot_model,
46  const Eigen::VectorXd& initial_positions,
47  const Eigen::Vector3d& target_xyz,
48  const Eigen::Vector3d& end_tip) const;
49 
50  Eigen::VectorXd solveIK6Dof(
51  const robot_model::RobotModel& robot_model,
52  const Eigen::VectorXd& initial_positions,
53  const Eigen::Vector3d& target_xyz,
54  const Eigen::Matrix3d& orientation) const;
55 
56 private:
58  Eigen::VectorXd min_positions_{};
59  Eigen::VectorXd max_positions_{};
60 };
61 
62 } // namespace internal
63 } // namespace arm
64 } // namespace experimental
65 } // namespace hebi
hebi::experimental::arm::internal::KinematicsHelper::clearJointLimits
void clearJointLimits()
Definition: kinematics_helper.cpp:38
hebi::experimental::arm::internal::KinematicsHelper::FK3Dof
Eigen::Vector3d FK3Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &positions) const
Definition: kinematics_helper.cpp:126
hebi::experimental::arm::internal::KinematicsHelper::solveIK6Dof
Eigen::VectorXd solveIK6Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &initial_positions, const Eigen::Vector3d &target_xyz, const Eigen::Matrix3d &orientation) const
Definition: kinematics_helper.cpp:98
hebi::experimental::arm::internal::KinematicsHelper::FK6Dof
void FK6Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &positions, Eigen::Vector3d &xyz_out, Eigen::Matrix3d &orientation) const
Definition: kinematics_helper.cpp:147
hebi::experimental::arm::internal::KinematicsHelper::setJointLimits
void setJointLimits(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &min_positions, const Eigen::VectorXd &max_positions)
Definition: kinematics_helper.cpp:8
hebi::experimental::arm::internal::KinematicsHelper::solveIK3Dof
Eigen::VectorXd solveIK3Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &initial_positions, const Eigen::Vector3d &target_xyz) const
Definition: kinematics_helper.cpp:45
hebi::experimental::arm::internal::KinematicsHelper::use_joint_limits_
bool use_joint_limits_
Definition: kinematics_helper.hpp:57
hebi::experimental::arm::internal::KinematicsHelper
Definition: kinematics_helper.hpp:13
hebi
Definition: arm.cpp:5
hebi::experimental::arm::internal::KinematicsHelper::max_positions_
Eigen::VectorXd max_positions_
Definition: kinematics_helper.hpp:59
hebi::experimental::arm::internal::KinematicsHelper::FK5Dof
void FK5Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &positions, Eigen::Vector3d &xyz_out, Eigen::Vector3d &tip_axis) const
Definition: kinematics_helper.cpp:135
hebi::experimental::arm::internal::KinematicsHelper::solveIK5Dof
Eigen::VectorXd solveIK5Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &initial_positions, const Eigen::Vector3d &target_xyz, const Eigen::Vector3d &end_tip) const
Definition: kinematics_helper.cpp:70
robot_model.hpp
hebi::experimental::arm::internal::KinematicsHelper::min_positions_
Eigen::VectorXd min_positions_
Definition: kinematics_helper.hpp:58
hebi::robot_model::RobotModel
Represents a chain or tree of robot elements (rigid bodies and joints).
Definition: robot_model.hpp:419


hebi_cpp_api_ros
Author(s): Chris Bollinger , Matthew Tesch
autogenerated on Fri Aug 2 2024 08:35:18