forked from RobotLocomotion/drake
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrigid_body_actuator.h
43 lines (39 loc) · 1.27 KB
/
rigid_body_actuator.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once
#include <limits>
#include <string>
template <typename T>
class RigidBody;
/**
* Defines a physical actuator (i.e., an electric motor and step-down
* transmission) that operates on a joint. This class assumes the actuator
* has a single DOF.
*/
class RigidBodyActuator {
public:
/**
* The constructor.
*
* @param[in] name The name of the actuator.
*
* @param[in] body A pointer to the rigid body whose joint's actuator is
* being described by this class.
*
* @param[in] reduction The gear reduction ratio of the actuator.
*
* @param[in] effort_limit_min The actuator's minimum effort limit. This
* has units of Nm for revolute joints and N for prismatic joints.
*
* @param[in] effort_limit_max The actuator's maximum effort limit. This
* has units of Nm for revolute joints and N for prismatic joints.
*/
RigidBodyActuator(
const std::string& name, const RigidBody<double>* body,
double reduction = 1.0,
double effort_limit_min = -std::numeric_limits<double>::infinity(),
double effort_limit_max = std::numeric_limits<double>::infinity());
const std::string name_;
const RigidBody<double>* const body_;
const double reduction_;
const double effort_limit_min_;
const double effort_limit_max_;
};