UdonLibrary
1.0.0
機械システム研究部 C++ ライブラリ
Toggle main menu visibility
読み取り中…
検索中…
一致する文字列を見つけられません
MotorCommand.hpp
[詳解]
1
//
2
// 通信用メッセージ
3
//
4
5
#pragma once
6
7
#include <stdint.h>
8
#include <
Udon/Traits/EnumerableMacro.hpp
>
9
10
namespace
Udon
11
{
12
namespace
Message
13
{
14
16
enum class
ControlMode
: uint8_t
17
{
18
EmergencyStop
= 0,
// 非常停止
19
HoldPosition
= 1,
// 現在位置保持
20
Position
= 2,
// 位置制御モード
21
Velocity
= 3,
// 速度制御モード
22
PWM
= 4,
// PWM駆動モード
23
};
24
26
struct
MotorCommand
27
{
29
ControlMode
mode
;
30
32
float
targetValue
;
33
34
#ifdef ARDUINO
36
void
show()
const
37
{
38
Serial.print(
F
(
"mode: "
)), Serial.print(
static_cast<
int
>
(
mode
)), Serial.print(
'\t'
);
39
Serial.print(
F
(
"targetValue: "
)), Serial.print(
targetValue
), Serial.print(
'\t'
);
40
}
41
#endif
42
43
UDON_ENUMERABLE
(
mode
,
targetValue
);
44
};
45
46
48
struct
MotorFeedback
49
{
51
float
currentPosition
;
52
54
float
currentVelocity
;
55
56
#ifdef ARDUINO
58
void
show()
const
59
{
60
Serial.print(
F
(
"currentPosition: "
)), Serial.print(
currentPosition
), Serial.print(
'\t'
);
61
Serial.print(
F
(
"currentVelocity: "
)), Serial.print(
currentVelocity
), Serial.print(
'\t'
);
62
}
63
#endif
64
65
UDON_ENUMERABLE
(
currentPosition
,
currentVelocity
);
66
};
67
68
70
struct
MotorSetting
71
{
73
float
maxVelocity
;
74
76
float
maxAcceleration
;
77
79
bool
reset
;
80
81
#ifdef ARDUINO
83
void
show()
const
84
{
85
Serial.print(
F
(
"maxVelocity: "
)), Serial.print(
maxVelocity
), Serial.print(
'\t'
);
86
Serial.print(
F
(
"maxAcceleration: "
)), Serial.print(
maxAcceleration
), Serial.print(
'\t'
);
87
Serial.print(
F
(
"reset: "
)), Serial.print(
reset
), Serial.print(
'\t'
);
88
}
89
#endif
90
91
UDON_ENUMERABLE
(
maxVelocity
,
maxAcceleration
,
reset
);
92
};
93
94
}
// namespace Message
95
96
}
// namespace Udon
EnumerableMacro.hpp
F
#define F(x)
Definition
Show.hpp:17
Udon::Message
Definition
AirCylinder.hpp:16
Udon::Message::ControlMode
ControlMode
モータの動作モード
Definition
MotorCommand.hpp:17
Udon::Message::ControlMode::HoldPosition
@ HoldPosition
Definition
MotorCommand.hpp:19
Udon::Message::ControlMode::Position
@ Position
Definition
MotorCommand.hpp:20
Udon::Message::ControlMode::PWM
@ PWM
Definition
MotorCommand.hpp:22
Udon::Message::ControlMode::Velocity
@ Velocity
Definition
MotorCommand.hpp:21
Udon::Message::ControlMode::EmergencyStop
@ EmergencyStop
Definition
MotorCommand.hpp:18
Udon
Definition
Bit.hpp:12
Udon::Message::MotorCommand
モータに送信するコマンド
Definition
MotorCommand.hpp:27
Udon::Message::MotorCommand::UDON_ENUMERABLE
UDON_ENUMERABLE(mode, targetValue)
Udon::Message::MotorCommand::targetValue
float targetValue
モータの目標値
Definition
MotorCommand.hpp:32
Udon::Message::MotorCommand::mode
ControlMode mode
モータの動作モード
Definition
MotorCommand.hpp:29
Udon::Message::MotorFeedback
モータからのフィードバック情報
Definition
MotorCommand.hpp:49
Udon::Message::MotorFeedback::UDON_ENUMERABLE
UDON_ENUMERABLE(currentPosition, currentVelocity)
Udon::Message::MotorFeedback::currentVelocity
float currentVelocity
現在の速度
Definition
MotorCommand.hpp:54
Udon::Message::MotorFeedback::currentPosition
float currentPosition
現在の位置
Definition
MotorCommand.hpp:51
Udon::Message::MotorSetting
モータの制限値やパラメータ
Definition
MotorCommand.hpp:71
Udon::Message::MotorSetting::reset
bool reset
モータのリセットフラグ
Definition
MotorCommand.hpp:79
Udon::Message::MotorSetting::maxAcceleration
float maxAcceleration
最大加速度制限
Definition
MotorCommand.hpp:76
Udon::Message::MotorSetting::maxVelocity
float maxVelocity
最大速度制限
Definition
MotorCommand.hpp:73
Udon::Message::MotorSetting::UDON_ENUMERABLE
UDON_ENUMERABLE(maxVelocity, maxAcceleration, reset)