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
void FK5Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &positions, Eigen::Vector3d &xyz_out, Eigen::Vector3d &tip_axis) const
Definition: arm.cpp:5
Represents a chain or tree of robot elements (rigid bodies and joints).
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
Eigen::VectorXd solveIK3Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &initial_positions, const Eigen::Vector3d &target_xyz) const
Eigen::Vector3d FK3Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &positions) const
void FK6Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &positions, Eigen::Vector3d &xyz_out, Eigen::Matrix3d &orientation) const
Eigen::VectorXd solveIK6Dof(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &initial_positions, const Eigen::Vector3d &target_xyz, const Eigen::Matrix3d &orientation) const
void setJointLimits(const robot_model::RobotModel &robot_model, const Eigen::VectorXd &min_positions, const Eigen::VectorXd &max_positions)


hebi_cpp_api_ros
Author(s): Chris Bollinger , Matthew Tesch
autogenerated on Thu May 28 2020 03:14:45