One Motor 0.5.1
RoboMaster全平台一站式电机驱动库
载入中...
搜索中...
未找到
J4310.hpp
浏览该文件的文档.
1
10#ifndef J4310_HPP
11#define J4310_HPP
12#include "J4310Frame.hpp"
15
16namespace OneMotor::Motor::DM
17{
21 class J4310
22 {
23 using Result = std::expected<void, std::string>;
24
25 public:
26 J4310() = delete;
33 explicit J4310(Can::CanDriver& driver, uint16_t canId, uint16_t masterId);
38 Result enable();
43 Result disable();
48 Result setZeroPosition();
53 Result cleanError();
63 Result MITControl(float position, float velocity, float torque, float kp, float kd);
70 Result posVelControl(float position, float velocity);
76 Result velControl(float velocity);
81 std::expected<J4310Status, std::string> getStatus();
82
83 private:
84 J4310Status status_{};
85 Util::SpinLock lock_;
86 Can::CanDriver& driver_;
87 uint16_t canId_;
88 uint16_t masterId_;
89 };
90}
91
92#endif //J4310_HPP
提供一个统一的CAN总线驱动接口。
J4310 电机 CAN 帧定义
提供一个简单的自旋锁实现。
CAN总线驱动类,封装了底层CAN接口的打开、关闭、发送和接收回调注册等操作。
定义 CanDriver.hpp:32
std::expected< J4310Status, std::string > getStatus()
获取电机状态
定义 N_J4310.cpp:127
Result cleanError()
清除电机错误
定义 N_J4310.cpp:60
Result enable()
启用电机
定义 N_J4310.cpp:30
Result posVelControl(float position, float velocity)
位置和速度控制模式
定义 N_J4310.cpp:93
Result MITControl(float position, float velocity, float torque, float kp, float kd)
MIT 控制模式
定义 N_J4310.cpp:70
Result velControl(float velocity)
速度控制模式
定义 N_J4310.cpp:113
Result setZeroPosition()
将当前位置设置为零
定义 N_J4310.cpp:50
Result disable()
禁用电机
定义 N_J4310.cpp:40
一个基础的、非递归的自旋锁。
定义 SpinLock.hpp:25
J4310 电机状态结构体
定义 J4310Frame.hpp:82