tmcl_motor.h
Go to the documentation of this file.
1 
6 #ifndef TMCL_MOTOR_H
7 #define TMCL_MOTOR_H
8 
9 #include "tmcl_interpreter.h"
10 #include <ros/ros.h>
11 #include <ros/console.h>
12 #include "adi_tmcl/TmcInfo.h"
13 #include "geometry_msgs/Twist.h"
14 #include "std_msgs/Int32.h"
15 #include "std_msgs/String.h"
16 
17 /* Conversion constants */
18 
19 /* Derived from converting linear velocity (ROS velocity unit) to rpm (TMC board velocity unit) */
20 const double PI = 3.1415926535;
21 const uint8_t SECS_TO_MIN = 60;
22 
23 /* Used for converting degrees (general position/angular unit) to steps (TMC board position/angular unit) */
24 const uint16_t ANGULAR_FULL_ROTATION = 360;
25 
26 class Motor
27 {
28 public:
29  /* Constructor */
30  Motor(ros::NodeHandle* p_nh, TmclInterpreter *p_tmcl_interpreter,
31  uint16_t module_number, uint8_t motor_number);
32 
33  /* Destructor */
34  virtual ~Motor();
35 
36  /* Initialize Motor */
37  virtual void init();
38 
39 protected:
40  /* Publisher */
41  void initPublisher();
42  virtual void rosPublishTmcInfo(const ros::TimerEvent& event);
45  adi_tmcl::TmcInfo tmc_info_msg_;
47  std::string param_tmc_info_topic_;
49  uint32_t seq_ctr_;
50 
51  /* Subscriber */
52  virtual void initSubscriber();
53  virtual void cmdVelCallback(const geometry_msgs::Twist& msg);
54  virtual void cmdAbsPosCallback(const std_msgs::Int32 msg);
55  virtual void cmdRelPosCallback(const std_msgs::Int32 msg);
56  virtual void cmdTrqCallback(const std_msgs::Int32 msg);
61 
62  /* Pointers */
65 
66  /* Other Variables */
68  std::string s_node_name_;
69  std::string s_namespace_;
70  std::string frame_id_;
71  uint16_t module_number_;
72  uint8_t motor_number_;
73 
74  /* Motor Specific Settings (Ext YAML) */
86 
87 private:
88  /* Initialize Parameter for Motor Specific */
89  void initParams();
90 };
91 
92 #endif // TMCL_MOTOR_H
Motor::timer_callback_
ros::Timer timer_callback_
Definition: tmcl_motor.h:43
ros::Publisher
Motor::param_wheel_diameter_
float param_wheel_diameter_
Definition: tmcl_motor.h:82
Motor::tmc_cmd_relpos_sub_
ros::Subscriber tmc_cmd_relpos_sub_
Definition: tmcl_motor.h:59
Motor::tmc_cmd_trq_sub_
ros::Subscriber tmc_cmd_trq_sub_
Definition: tmcl_motor.h:60
Motor::cmdTrqCallback
virtual void cmdTrqCallback(const std_msgs::Int32 msg)
Definition: tmcl_motor.cpp:362
Motor::param_tmc_info_topic_
std::string param_tmc_info_topic_
Definition: tmcl_motor.h:47
Motor::s_node_name_
std::string s_node_name_
Definition: tmcl_motor.h:68
Motor::param_add_ratio_vel_
float param_add_ratio_vel_
Definition: tmcl_motor.h:83
Motor::frame_id_
std::string frame_id_
Definition: tmcl_motor.h:70
ros.h
PI
const double PI
Definition: tmcl_motor.h:20
Motor::cmdAbsPosCallback
virtual void cmdAbsPosCallback(const std_msgs::Int32 msg)
Definition: tmcl_motor.cpp:326
Motor::param_pub_rate_tmc_info_
float param_pub_rate_tmc_info_
Definition: tmcl_motor.h:46
ANGULAR_FULL_ROTATION
const uint16_t ANGULAR_FULL_ROTATION
Definition: tmcl_motor.h:24
Motor::param_tmc_cmd_vel_topic_
std::string param_tmc_cmd_vel_topic_
Definition: tmcl_motor.h:75
Motor::s_namespace_
std::string s_namespace_
Definition: tmcl_motor.h:69
Motor::param_tmc_cmd_trq_topic_
std::string param_tmc_cmd_trq_topic_
Definition: tmcl_motor.h:78
Motor::tmc_cmd_abspos_sub_
ros::Subscriber tmc_cmd_abspos_sub_
Definition: tmcl_motor.h:58
Motor::initPublisher
void initPublisher()
Definition: tmcl_motor.cpp:167
Motor::tmc_cmd_vel_sub_
ros::Subscriber tmc_cmd_vel_sub_
Definition: tmcl_motor.h:57
Motor::~Motor
virtual ~Motor()
Definition: tmcl_motor.cpp:23
Motor::Motor
Motor(ros::NodeHandle *p_nh, TmclInterpreter *p_tmcl_interpreter, uint16_t module_number, uint8_t motor_number)
Definition: tmcl_motor.cpp:11
console.h
Motor::param_tmc_cmd_abspos_topic_
std::string param_tmc_cmd_abspos_topic_
Definition: tmcl_motor.h:76
Motor::tmc_info_pub_
ros::Publisher tmc_info_pub_
Definition: tmcl_motor.h:44
TmclInterpreter
Definition: tmcl_interpreter.h:98
Motor::p_tmcl_interpreter_
TmclInterpreter * p_tmcl_interpreter_
Definition: tmcl_motor.h:64
Motor::p_nh_
ros::NodeHandle * p_nh_
Definition: tmcl_motor.h:63
Motor::module_number_
uint16_t module_number_
Definition: tmcl_motor.h:71
ros::TimerEvent
Motor::param_pub_actual_pos_
bool param_pub_actual_pos_
Definition: tmcl_motor.h:80
tmcl_interpreter.h
Motor::param_pub_actual_trq_
bool param_pub_actual_trq_
Definition: tmcl_motor.h:81
Motor::seq_ctr_
uint32_t seq_ctr_
Definition: tmcl_motor.h:49
Motor::tmc_info_msg_
adi_tmcl::TmcInfo tmc_info_msg_
Definition: tmcl_motor.h:45
Motor::param_add_ratio_pos_
float param_add_ratio_pos_
Definition: tmcl_motor.h:84
Motor::motor_number_
uint8_t motor_number_
Definition: tmcl_motor.h:72
Motor::cmdVelCallback
virtual void cmdVelCallback(const geometry_msgs::Twist &msg)
Definition: tmcl_motor.cpp:292
SECS_TO_MIN
const uint8_t SECS_TO_MIN
Definition: tmcl_motor.h:21
Motor::param_tmc_cmd_relpos_topic_
std::string param_tmc_cmd_relpos_topic_
Definition: tmcl_motor.h:77
Motor::initSubscriber
virtual void initSubscriber()
Definition: tmcl_motor.cpp:281
Motor::initParams
void initParams()
Definition: tmcl_motor.cpp:40
Motor::param_add_ratio_trq_
float param_add_ratio_trq_
Definition: tmcl_motor.h:85
Motor
Definition: tmcl_motor.h:26
Motor::cmdRelPosCallback
virtual void cmdRelPosCallback(const std_msgs::Int32 msg)
Definition: tmcl_motor.cpp:344
Motor::param_en_pub_tmc_info_
bool param_en_pub_tmc_info_
Definition: tmcl_motor.h:48
Motor::param_pub_actual_vel_
bool param_pub_actual_vel_
Definition: tmcl_motor.h:79
Motor::rosPublishTmcInfo
virtual void rosPublishTmcInfo(const ros::TimerEvent &event)
Definition: tmcl_motor.cpp:204
ros::Timer
Motor::init
virtual void init()
Definition: tmcl_motor.cpp:30
Motor::param_comm_interface_name_
std::string param_comm_interface_name_
Definition: tmcl_motor.h:67
ros::NodeHandle
ros::Subscriber


adi_tmcl
Author(s):
autogenerated on Wed Apr 2 2025 02:43:01