One Motor 0.6.0
RoboMaster全平台一站式电机驱动库
载入中...
搜索中...
未找到
J4310.hpp
浏览该文件的文档.
1
9#ifndef J4310_HPP
10#define J4310_HPP
11#include "J4310Frame.hpp"
14
15namespace OneMotor::Motor::DM
16{
20 class J4310
21 {
22 public:
23 J4310() = delete;
30 explicit J4310(Can::CanDriver& driver, uint16_t canId, uint16_t masterId);
35 tl::expected<void, Error> enable();
40 tl::expected<void, Error> disable();
45 tl::expected<void, Error> setZeroPosition();
50 tl::expected<void, Error> cleanError();
60 tl::expected<void, Error> MITControl(float position, float velocity, float torque, float kp, float kd);
67 tl::expected<void, Error> posVelControl(float position, float velocity);
73 tl::expected<void, Error> velControl(float velocity);
74
80 tl::expected<void, Error> refreshStatus() noexcept;
81
89
95 tl::expected<J4310Status, Error> getNewStatus(uint16_t usec = 500);
96
97 private:
99 Can::CanDriver& driver_;
100 uint16_t canId_;
101 uint16_t masterId_;
102 };
103}
104
105#endif //J4310_HPP
提供一个统一的CAN总线驱动接口。
定义 DoubleBuffer 类,用于在多线程模型下保证电机状态信息的安全更新
J4310 电机 CAN 帧定义
CAN总线驱动类,封装了底层CAN接口的打开、关闭、发送和接收回调注册等操作。
定义 CanDriver.hpp:35
定义 DoubleBuffer.hpp:22
tl::expected< J4310Status, Error > getNewStatus(uint16_t usec=500)
获取电机最新状态
定义 N_J4310.cpp:151
tl::expected< void, Error > MITControl(float position, float velocity, float torque, float kp, float kd)
MIT 控制模式
定义 N_J4310.cpp:74
J4310Status getStatus()
获取电机上一次接收到到的反馈帧状态 对电机进行各种控制操作均会获得反馈帧
定义 N_J4310.cpp:146
tl::expected< void, Error > disable()
禁用电机
定义 N_J4310.cpp:44
tl::expected< void, Error > setZeroPosition()
将当前位置设置为零
定义 N_J4310.cpp:54
tl::expected< void, Error > posVelControl(float position, float velocity)
位置和速度控制模式
定义 N_J4310.cpp:98
tl::expected< void, Error > enable()
启用电机
定义 N_J4310.cpp:34
tl::expected< void, Error > cleanError()
清除电机错误
定义 N_J4310.cpp:64
tl::expected< void, Error > refreshStatus() noexcept
刷新电机状态,仅支持V13以上固件
定义 N_J4310.cpp:132
tl::expected< void, Error > velControl(float velocity)
速度控制模式
定义 N_J4310.cpp:118
J4310 电机状态结构体
定义 J4310Frame.hpp:80