8#ifndef DESIGNLAB_INTERFACE_HEXAPOD_COORDINATE_CONVERTER_H_
9#define DESIGNLAB_INTERFACE_HEXAPOD_COORDINATE_CONVERTER_H_
49 const Vector3& converted_position,
51 const Vector3& center_of_mass_global,
53 bool consider_rot)
const = 0;
64 const Vector3& converted_position,
66 const Vector3& center_of_mass_global,
68 bool consider_rot)
const = 0;
78 const Vector3& converted_position,
79 const Vector3& center_of_mass_global,
81 bool consider_rot)
const = 0;
85 const Vector3& converted_position,
86 int leg_index)
const = 0;
90 const Vector3& converted_position,
91 int leg_index)
const = 0;
ロボットは重心位置・アクチュエータなど様々な点を基準とする座標系を持つ. これらを相互に変換する処理のインターフェース.
virtual Vector3 ConvertLegToRobotCoordinate(const Vector3 &converted_position, int leg_index) const =0
脚座標系で表現されている座標を,ロボット座標系に変換する.
virtual ~IHexapodCoordinateConverter()=default
継承するクラスはデストラクタを virtualにすること.
virtual Vector3 ConvertRobotToLegCoordinate(const Vector3 &converted_position, int leg_index) const =0
ロボット座標系で表現されている座標を,脚座標系に変換する.
virtual Vector3 ConvertGlobalToLegCoordinate(const Vector3 &converted_position, int leg_index, const Vector3 ¢er_of_mass_global, const Quaternion &robot_quat, bool consider_rot) const =0
グローバル座標系で表現されている座標を,脚座標系に変換する.
virtual Vector3 ConvertLegToGlobalCoordinate(const Vector3 &converted_position, int leg_index, const Vector3 ¢er_of_mass_global, const Quaternion &robot_quat, bool consider_rot) const =0
脚座標系で表現されている座標を,グローバル座標系に変換する.
virtual Vector3 ConvertRobotToGlobalCoordinate(const Vector3 &converted_position, const Vector3 ¢er_of_mass_global, const Quaternion &robot_quat, bool consider_rot) const =0
ロボット座標系で表現されている座標を,グローバル座標系に変換する.