GKD.RoboCtrl
载入中...
搜索中...
未找到
roboctrl::device::controlled_motor< motor_type, controller_type > 模板结构体 参考

被控制算法(例如PID)控制的电机 更多...

详细描述

template<motor motor_type, utils::controller controller_type>
requires (std::is_convertible_v<float, typename controller_type::input_type> && std::is_convertible_v<typename controller_type::state_type, float >)
struct roboctrl::device::controlled_motor< motor_type, controller_type >

被控制算法(例如PID)控制的电机

模板参数
motor_type电机类型
controller_type控制器类型

controlled_motor可以像普通电机一样被set,但set传入的值会先被传入到控制器中,然后通过控制器计算得到电机的输出值,并传入电机。 这个类常用于电机的PID控制。

示例:

controlled_motor<my_motor, linear_pid<float>> cmotor{"motor1", {1.0f, 0.1f, 0.01f}};
co_await cmotor.set(10.0f);
asio::awaitable< T > awaitable
协程任务类型。
Definition async.hpp:42

在文件 base.hpp142 行定义.

#include <base.hpp>

struct  params_type
 

Public 类型

using motor_key_type = typename motor_type::info_type::key_type
 

Public 成员函数

 controlled_motor (const motor_key_type &name, const typename controller_type::params_type &controller_params)
 
awaitable< voidset (float state)
 设置电机目标状态
 
motor_typemotor () const
 获取电机对象
 
fp32 angle () const
 获取电机角度(单位为rad)
 
fp32 angle_speed () const
 获取电机角速度(单位为rad/s)
 
fp32 torque () const
 获取电机扭矩(单位为A)
 
fp32 linear_speed () const
 获取电机线速度(单位为m/s)
 

Public 属性

controller_type controller
 
motor_key_type name
 

成员类型定义说明

◆ motor_key_type

template<motor motor_type, utils::controller controller_type>
using roboctrl::device::controlled_motor< motor_type, controller_type >::motor_key_type = typename motor_type::info_type::key_type

在文件 base.hpp143 行定义.

构造及析构函数说明

◆ controlled_motor()

template<motor motor_type, utils::controller controller_type>
roboctrl::device::controlled_motor< motor_type, controller_type >::controlled_motor ( const motor_key_type &  name,
const typename controller_type::params_type &  controller_params 
)
inline

在文件 base.hpp155 行定义.

成员函数说明

◆ angle()

template<motor motor_type, utils::controller controller_type>
fp32 roboctrl::device::controlled_motor< motor_type, controller_type >::angle ( ) const
inline

获取电机角度(单位为rad)

返回
fp32 电机角度(单位为rad)

在文件 base.hpp180 行定义.

◆ angle_speed()

template<motor motor_type, utils::controller controller_type>
fp32 roboctrl::device::controlled_motor< motor_type, controller_type >::angle_speed ( ) const
inline

获取电机角速度(单位为rad/s)

返回
fp32 电机角速度(单位为rad/s)

在文件 base.hpp187 行定义.

◆ linear_speed()

template<motor motor_type, utils::controller controller_type>
fp32 roboctrl::device::controlled_motor< motor_type, controller_type >::linear_speed ( ) const
inline

获取电机线速度(单位为m/s)

返回
fp32 电机线速度(单位为m/s)

在文件 base.hpp201 行定义.

◆ motor()

template<motor motor_type, utils::controller controller_type>
motor_type & roboctrl::device::controlled_motor< motor_type, controller_type >::motor ( ) const
inline

获取电机对象

返回
motor_type& 电机对象

在文件 base.hpp173 行定义.

◆ set()

template<motor motor_type, utils::controller controller_type>
awaitable< void > roboctrl::device::controlled_motor< motor_type, controller_type >::set ( float  state)
inline

设置电机目标状态

参数
state目标状态

在文件 base.hpp163 行定义.

◆ torque()

template<motor motor_type, utils::controller controller_type>
fp32 roboctrl::device::controlled_motor< motor_type, controller_type >::torque ( ) const
inline

获取电机扭矩(单位为A)

返回
fp32 电机扭矩(单位为A)

在文件 base.hpp194 行定义.

类成员变量说明

◆ controller

template<motor motor_type, utils::controller controller_type>
controller_type roboctrl::device::controlled_motor< motor_type, controller_type >::controller

在文件 base.hpp145 行定义.

◆ name

template<motor motor_type, utils::controller controller_type>
motor_key_type roboctrl::device::controlled_motor< motor_type, controller_type >::name

在文件 base.hpp146 行定义.


该结构体的文档由以下文件生成: