ttl_manager.hpp
Go to the documentation of this file.
1 /*
2 ttl_manager.hpp
3 Copyright (C) 2020 Niryo
4 All rights reserved.
5 
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10 
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http:// www.gnu.org/licenses/>.
18 */
19 
20 #ifndef TTL_DRIVER_HPP
21 #define TTL_DRIVER_HPP
22 
23 #include "common/util/util_defs.hpp"
24 #include "common/util/i_bus_manager.hpp"
25 
26 // cpp
27 #include <memory>
28 #include <ros/ros.h>
29 #include <string>
30 #include <thread>
31 #include <queue>
32 #include <functional>
33 #include <algorithm>
34 #include <set>
35 #include <utility>
36 
37 // ros
38 #include "ros/node_handle.h"
39 
40 // niryo
41 #include "dynamixel_sdk/dynamixel_sdk.h"
42 #include "niryo_robot_msgs/MotorHeader.h"
43 #include "niryo_robot_msgs/SetInt.h"
44 #include "niryo_robot_msgs/CommandStatus.h"
45 
49 #include "ttl_driver/MotorCommand.h"
50 
51 #include "common/model/dxl_motor_state.hpp"
52 #include "common/model/synchronize_motor_cmd.hpp"
53 #include "common/model/single_motor_cmd.hpp"
54 #include "common/model/stepper_calibration_status_enum.hpp"
55 #include "common/model/conveyor_state.hpp"
56 
57 
58 namespace ttl_driver
59 {
60 
64 constexpr float TTL_BUS_PROTOCOL_VERSION = 2.0;
65 constexpr int TTL_FAIL_OPEN_PORT = -4500;
66 
67 constexpr int TTL_FAIL_PORT_SET_BAUDRATE = -4501;
68 constexpr int TTL_FAIL_SETUP_GPIO = -4502;
69 
70 constexpr int TTL_SCAN_OK = 0;
71 constexpr int TTL_SCAN_MISSING_MOTOR = -50;
72 constexpr int TTL_SCAN_UNALLOWED_MOTOR = -51;
73 constexpr int TTL_WRONG_TYPE = -52;
74 
85 class TtlManager : public common::util::IBusManager
86 {
87 public:
88  TtlManager() = delete;
89  TtlManager( ros::NodeHandle& nh );
90  ~TtlManager() override;
91  // see https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c21-if-you-define-or-delete-any-copy-move-or-destructor-function-define-or-delete-them-all
92  TtlManager( const TtlManager& ) = delete;
93  TtlManager( TtlManager&& ) = delete;
94  TtlManager& operator= ( TtlManager && ) = delete;
95  TtlManager& operator= ( const TtlManager& ) = delete;
96 
97  // IBusManager Interface
98  bool init(ros::NodeHandle& nh) override;
99 
100  int addHardwareComponent(std::shared_ptr<common::model::AbstractHardwareState> &&state) override;
101 
102  void removeHardwareComponent(uint8_t id) override;
103  bool isConnectionOk() const override;
104 
105  int scanAndCheck() override;
106  bool ping(uint8_t id) override;
107 
108  size_t getNbMotors() const override;
109  void getBusState(bool& connection_state, std::vector<uint8_t>& motor_id, std::string& debug_msg) const override;
110  std::string getErrorMessage() const override;
111 
112  // commands
113 
114  int changeId(common::model::EHardwareType motor_type, uint8_t old_id, uint8_t new_id);
115 
116  int writeSynchronizeCommand(std::unique_ptr<common::model::AbstractTtlSynchronizeMotorCmd >&& cmd);
117  int writeSingleCommand(std::unique_ptr<common::model::AbstractTtlSingleMotorCmd >&& cmd);
118 
119  void executeJointTrajectoryCmd(std::vector<std::pair<uint8_t, uint32_t> > cmd_vec);
120 
121  int rebootHardware(uint8_t id);
122 
123  int setLeds(int led);
124 
125  int sendCustomCommand(uint8_t id, int reg_address, int value, int byte_number);
126  int readCustomCommand(uint8_t id, int32_t reg_address, int &value, int byte_number);
127 
128  void resetTorques();
129 
130  // read status
131  bool readHardwareStatus();
132  bool readEndEffectorStatus();
133  uint8_t readSteppersStatus();
134  uint8_t readNed3ProSteppersStatus();
135  bool readJointsStatus();
136  bool readHomingAbsPosition();
137  bool readCollisionStatus();
138 
139  int readMotorPID(uint8_t id,
140  uint16_t& pos_p_gain, uint16_t& pos_i_gain, uint16_t& pos_d_gain,
141  uint16_t& vel_p_gain, uint16_t& vel_i_gain,
142  uint16_t& ff1_gain, uint16_t& ff2_gain);
143 
144  int readVelocityProfile(uint8_t id,
145  uint32_t& v_start, uint32_t& a_1, uint32_t& v_1,
146  uint32_t& a_max, uint32_t& v_max, uint32_t& d_max,
147  uint32_t& d_1, uint32_t& v_stop);
148 
149  int readControlMode(uint8_t id, uint8_t& control_mode);
150 
151  int readMoving(uint8_t id, uint8_t &status);
152 
153  //calibration
154  void startCalibration() override;
155  void resetCalibration() override;
156 
157  int32_t getCalibrationResult(uint8_t id) const override;
158  common::model::EStepperCalibrationStatus getCalibrationStatus() const override;
159  bool needCalibration() const;
160  bool isCalibrationInProgress() const;
161 
162  // getters
163  int getAllIdsOnBus(std::vector<uint8_t> &id_list);
164 
165  uint32_t getPosition(const common::model::JointState &motor_state);
166  int getLedState() const;
167 
168  std::vector<std::shared_ptr<common::model::JointState>> getMotorsStates() const;
169  std::vector<std::shared_ptr<common::model::ConveyorState>> getConveyorsStates() const;
170  std::shared_ptr<common::model::AbstractHardwareState> getHardwareState(uint8_t motor_id) const;
171 
172  std::vector<uint8_t> getRemovedMotorList() const override;
173 
174  bool getCollisionStatus() const;
175 
176  bool hasEndEffector() const;
177 
178 private:
179  // IBusManager Interface
180  int setupCommunication() override;
181  void addHardwareDriver(common::model::EHardwareType hardware_type) override;
182 
183  // Config params using in fake driver
184  void readFakeConfig(bool use_simu_gripper, bool use_simu_conveyor);
185  template<typename Reg>
186  void retrieveFakeMotorData(const std::string& current_ns, std::map<uint8_t, Reg>& fake_params);
187 
188  // check if hardware is a motor or not
189  // this helps get only one driver to use for all motors to get/set on the same address
190  bool isMotorType(common::model::EHardwareType type);
191 
192  bool checkCollision();
193 
195  std::shared_ptr<ttl_driver::AbstractStepperDriver> driver;
196  common::model::EHardwareType hardware_type;
197  };
199 
200 private:
201  ros::NodeHandle _nh;
202  std::shared_ptr<dynamixel::PortHandler> _portHandler;
203  std::shared_ptr<dynamixel::PacketHandler> _packetHandler;
204 
205  mutable std::mutex _sync_mutex;
206 
207  std::string _device_name;
208  int _baudrate{1000000};
209 
210  std::vector<uint8_t> _all_ids_connected; // with all ttl motors connected (including the tool)
211  std::vector<uint8_t> _removed_motor_id_list;
212 
213  // state of a component for a given id
214  std::map<uint8_t, std::shared_ptr<common::model::AbstractHardwareState> > _state_map;
215  // map of associated ids for a given hardware type
216  std::map<common::model::EHardwareType, std::vector<uint8_t> > _ids_map;
217  // map of drivers for a given hardware type (dxl, stepper, end effector)
218  std::map<common::model::EHardwareType, std::shared_ptr<ttl_driver::AbstractTtlDriver> > _driver_map;
219 
220  // default ttl driver is always available
221  std::shared_ptr<ttl_driver::AbstractTtlDriver> _default_ttl_driver;
222 
223  // vector of ids of motors and conveyors
224  // Theses vector help remove loop not necessary
225  std::vector<uint8_t> _conveyor_list;
226 
227  // for hardware control
228  bool _is_connection_ok{false};
229  std::string _debug_error_message;
230 
233 
234  int _led_state = 0;
235  std::string _led_motor_type_cfg;
236 
237  static constexpr uint32_t MAX_HW_FAILURE = 150;
238  static constexpr uint32_t MAX_READ_EE_FAILURE = 150;
239 
240  // at init, no hw, so no calib needed
241  common::model::EStepperCalibrationStatus _calibration_status{common::model::EStepperCalibrationStatus::OK};
242 
243  // for simulation only
244  std::shared_ptr<FakeTtlData> _fake_data;
245  bool _simulation_mode{false};
246 
247  // status to track collision status
248  bool _collision_status{false};
250  bool _isRealCollision{true};
251  bool _isWrongAction{false};
252 
254 
255  std::vector<uint32_t> _position_list;
256  std::vector<uint8_t> _position_goal_ids;
257  std::vector<uint32_t> _position_goal_params;
258 
260  {
261 
262  public:
263  enum class State
264  {
265  IDLE = 1,
266  STARTING = 2,
267  IN_PROGRESS = 3,
268  UPDATING = 4
269  };
270 
271  void reset()
272  {
273  s = State::IDLE;
274  }
275 
276  void start()
277  {
278  s = State::STARTING;
279  _time = ros::Time::now().toSec(); // keep last date updated
280  }
281 
285  void next()
286  {
287  int newState = static_cast<int>(s);
288  if (State::UPDATING != s)
289  newState++;
290 
291  _time = ros::Time::now().toSec(); // keep last date updated
292  s = static_cast<State>(newState);
293  }
294 
296  {
297  return s;
298  }
299 
300  bool isTimeout()
301  {
302  return (ros::Time::now().toSec() - _time > _calibration_timeout);
303  }
304 
305  private:
307  double _time{};
308  static constexpr double _calibration_timeout{5.0};
309  };
310 
312 
313 };
314 
315 // inline getters
316 
321 inline
323 {
324  return _is_connection_ok;
325 }
326 
331 inline
333 {
334  return _state_map.size();
335 }
336 
341 inline
342 std::vector<uint8_t> TtlManager::getRemovedMotorList() const
343 {
344  return _removed_motor_id_list;
345 }
346 
351 inline
352 std::string TtlManager::getErrorMessage() const
353 {
354  return _debug_error_message;
355 }
356 
361 inline
362 common::model::EStepperCalibrationStatus
364 {
365  return _calibration_status;
366 }
367 
372 inline
374 {
375  return (common::model::EStepperCalibrationStatus::OK != getCalibrationStatus() &&
376  common::model::EStepperCalibrationStatus::IN_PROGRESS != getCalibrationStatus());
377 }
378 
383 inline
385 {
386  return (common::model::EStepperCalibrationStatus::IN_PROGRESS == getCalibrationStatus());
387 }
388 
393 inline
395 {
396  return (_driver_map.count(common::model::EHardwareType::END_EFFECTOR) || _driver_map.count(common::model::EHardwareType::NED3PRO_END_EFFECTOR) ||
397  _driver_map.count(common::model::EHardwareType::FAKE_END_EFFECTOR));
398 }
399 
405 template<typename Reg>
406 void TtlManager::retrieveFakeMotorData(const std::string& current_ns, std::map<uint8_t, Reg> &fake_params)
407 {
408  std::vector<int> hw_ids;
409  _nh.getParam(current_ns + "id", hw_ids);
410 
411  std::vector<int> hw_positions;
412  _nh.getParam(current_ns + "position", hw_positions);
413  assert(hw_ids.size() == hw_positions.size());
414 
415  std::vector<int> hw_velocities;
416  _nh.getParam(current_ns + "velocity", hw_velocities);
417  assert(hw_ids.size() == hw_velocities.size());
418 
419  std::vector<int> hw_temperatures;
420  _nh.getParam(current_ns + "temperature", hw_temperatures);
421  assert(hw_positions.size() == hw_temperatures.size());
422 
423  std::vector<double> hw_voltages;
424  _nh.getParam(current_ns + "voltage", hw_voltages);
425  assert(hw_temperatures.size() == hw_voltages.size());
426 
427  std::vector<int> hw_min_positions;
428  _nh.getParam(current_ns + "min_position", hw_min_positions);
429  assert(hw_voltages.size() == hw_min_positions.size());
430 
431  std::vector<int> hw_max_positions;
432  _nh.getParam(current_ns + "max_position", hw_max_positions);
433  assert(hw_min_positions.size() == hw_max_positions.size());
434 
435  std::vector<int> hw_model_numbers;
436  _nh.getParam(current_ns + "model_number", hw_model_numbers);
437  assert(hw_max_positions.size() == hw_model_numbers.size());
438 
439  std::vector<std::string> hw_firmwares;
440  _nh.getParam(current_ns + "firmware", hw_firmwares);
441  assert(hw_firmwares.size() == hw_firmwares.size());
442 
443  for (size_t i = 0; i < hw_ids.size(); i++)
444  {
445  Reg tmp;
446  tmp.id = static_cast<uint8_t>(hw_ids.at(i));
447  tmp.position = static_cast<uint32_t>(hw_positions.at(i));
448  tmp.velocity = static_cast<uint32_t>(hw_velocities.at(i));
449  tmp.temperature = static_cast<uint8_t>(hw_temperatures.at(i));
450  tmp.voltage = hw_voltages.at(i);
451  tmp.model_number = static_cast<uint16_t>(hw_model_numbers.at(i));
452  tmp.firmware = hw_firmwares.at(i);
453  fake_params.insert(std::make_pair(tmp.id, tmp));
454  }
455 }
456 
461 inline
463 {
464  return _collision_status;
465 }
466 
467 } // ttl_driver
468 
469 #endif // TTLDRIVER_HPP
ttl_driver::TtlManager::retrieveFakeMotorData
void retrieveFakeMotorData(const std::string &current_ns, std::map< uint8_t, Reg > &fake_params)
TtlManager::retrieveFakeMotorData.
Definition: ttl_manager.hpp:406
ttl_driver::TtlManager::startCalibration
void startCalibration() override
TtlManager::startCalibration.
Definition: ttl_manager.cpp:1986
ttl_driver::TtlManager::GetJointsStepperDriverResult::hardware_type
common::model::EHardwareType hardware_type
Definition: ttl_manager.hpp:196
ttl_driver::TtlManager::addHardwareComponent
int addHardwareComponent(std::shared_ptr< common::model::AbstractHardwareState > &&state) override
TtlManager::addHardwareComponent add hardware component like joint, ee, tool... to ttl manager.
Definition: ttl_manager.cpp:207
ttl_driver::TtlManager::CalibrationMachineState::State::IDLE
@ IDLE
ttl_driver::TtlManager::readEndEffectorStatus
bool readEndEffectorStatus()
TtlManager::readEndEffectorStatus.
Definition: ttl_manager.cpp:780
ttl_driver::TtlManager::readCustomCommand
int readCustomCommand(uint8_t id, int32_t reg_address, int &value, int byte_number)
TtlManager::readCustomCommand.
Definition: ttl_manager.cpp:1585
ttl_driver::TtlManager::_debug_error_message
std::string _debug_error_message
Definition: ttl_manager.hpp:229
ttl_driver::TtlManager::isCalibrationInProgress
bool isCalibrationInProgress() const
TtlManager::isCalibrationInProgress.
Definition: ttl_manager.hpp:384
ttl_driver::TtlManager::getJointsStepperDriver
GetJointsStepperDriverResult getJointsStepperDriver()
: Return the driver of the joints
Definition: ttl_manager.cpp:2260
ttl_driver::TtlManager::writeSingleCommand
int writeSingleCommand(std::unique_ptr< common::model::AbstractTtlSingleMotorCmd > &&cmd)
TtlManager::writeSingleCommand.
Definition: ttl_manager.cpp:1898
ttl_driver::TTL_SCAN_MISSING_MOTOR
constexpr int TTL_SCAN_MISSING_MOTOR
Definition: ttl_manager.hpp:71
ttl_driver::TtlManager::_state_map
std::map< uint8_t, std::shared_ptr< common::model::AbstractHardwareState > > _state_map
Definition: ttl_manager.hpp:214
ttl_driver::TtlManager::_calib_machine_state
CalibrationMachineState _calib_machine_state
Definition: ttl_manager.hpp:311
ttl_driver::TtlManager::readHardwareStatus
bool readHardwareStatus()
TtlManager::readHardwareStatus.
Definition: ttl_manager.cpp:1040
ttl_driver::TtlManager::getCollisionStatus
bool getCollisionStatus() const
TtlManager::getCollisionStatus.
Definition: ttl_manager.hpp:462
ttl_driver::TtlManager::getCalibrationResult
int32_t getCalibrationResult(uint8_t id) const override
TtlManager::getCalibrationResult.
Definition: ttl_manager.cpp:2058
ttl_driver::TtlManager::_calibration_status
common::model::EStepperCalibrationStatus _calibration_status
Definition: ttl_manager.hpp:241
ttl_driver::TtlManager::_nh
ros::NodeHandle _nh
Definition: ttl_manager.hpp:201
ttl_driver::TtlManager::scanAndCheck
int scanAndCheck() override
TtlManager::scanAndCheck.
Definition: ttl_manager.cpp:395
ttl_driver::TtlManager::checkCollision
bool checkCollision()
TtlManager::checkCollision.
Definition: ttl_manager.cpp:890
ttl_driver::TtlManager::CalibrationMachineState::State::IN_PROGRESS
@ IN_PROGRESS
ttl_driver::TtlManager::_hw_fail_counter_read
uint32_t _hw_fail_counter_read
Definition: ttl_manager.hpp:231
ttl_driver::TtlManager::getLedState
int getLedState() const
ttl_driver::TtlManager::executeJointTrajectoryCmd
void executeJointTrajectoryCmd(std::vector< std::pair< uint8_t, uint32_t > > cmd_vec)
TtlManager::executeJointTrajectoryCmd.
Definition: ttl_manager.cpp:1948
ttl_driver::TtlManager::_position_goal_params
std::vector< uint32_t > _position_goal_params
Definition: ttl_manager.hpp:257
ttl_driver::TTL_FAIL_OPEN_PORT
constexpr int TTL_FAIL_OPEN_PORT
Definition: ttl_manager.hpp:65
ttl_driver::TtlManager::_position_goal_ids
std::vector< uint8_t > _position_goal_ids
Definition: ttl_manager.hpp:256
ttl_driver::TtlManager::_all_ids_connected
std::vector< uint8_t > _all_ids_connected
Definition: ttl_manager.hpp:210
ttl_driver::TtlManager::_last_collision_detection_activating
double _last_collision_detection_activating
Definition: ttl_manager.hpp:249
ttl_driver::TtlManager::sendCustomCommand
int sendCustomCommand(uint8_t id, int reg_address, int value, int byte_number)
TtlManager::sendCustomCommand.
Definition: ttl_manager.cpp:1535
ttl_driver::TtlManager::readSteppersStatus
uint8_t readSteppersStatus()
TtlManager::readCalibrationStatus : reads specific steppers related information (ned2 only)
Definition: ttl_manager.cpp:1161
ttl_driver::TtlManager::TtlManager
TtlManager()=delete
ttl_driver::TtlManager::CalibrationMachineState::State
State
Definition: ttl_manager.hpp:263
abstract_motor_driver.hpp
ttl_driver::TtlManager::CalibrationMachineState::State::UPDATING
@ UPDATING
ttl_driver::TTL_FAIL_PORT_SET_BAUDRATE
constexpr int TTL_FAIL_PORT_SET_BAUDRATE
Definition: ttl_manager.hpp:67
ttl_driver::TtlManager::changeId
int changeId(common::model::EHardwareType motor_type, uint8_t old_id, uint8_t new_id)
TtlManager::changeId.
Definition: ttl_manager.cpp:338
ttl_driver::TtlManager::getAllIdsOnBus
int getAllIdsOnBus(std::vector< uint8_t > &id_list)
TtlManager::getAllIdsOnDxlBus.
Definition: ttl_manager.cpp:1424
ttl_driver::TtlManager::removeHardwareComponent
void removeHardwareComponent(uint8_t id) override
TtlManager::removeHardwareComponent.
Definition: ttl_manager.cpp:288
ttl_driver::TtlManager::getCalibrationStatus
common::model::EStepperCalibrationStatus getCalibrationStatus() const override
TtlManager::getCalibrationStatus.
Definition: ttl_manager.hpp:363
ttl_driver::TtlManager::readHomingAbsPosition
bool readHomingAbsPosition()
Definition: ttl_manager.cpp:601
ttl_driver::TtlManager::_device_name
std::string _device_name
Definition: ttl_manager.hpp:207
ttl_driver::TtlManager::getHardwareState
std::shared_ptr< common::model::AbstractHardwareState > getHardwareState(uint8_t motor_id) const
TtlManager::getHardwareState.
Definition: ttl_manager.cpp:2121
ttl_driver::TtlManager::readJointsStatus
bool readJointsStatus()
TtlManager::readJointsStatus.
Definition: ttl_manager.cpp:671
ttl_driver::TtlManager::_packetHandler
std::shared_ptr< dynamixel::PacketHandler > _packetHandler
Definition: ttl_manager.hpp:203
ttl_driver::TtlManager::init
bool init(ros::NodeHandle &nh) override
TtlManager::init.
Definition: ttl_manager.cpp:107
ttl_driver::TtlManager::getConveyorsStates
std::vector< std::shared_ptr< common::model::ConveyorState > > getConveyorsStates() const
Definition: ttl_manager.cpp:2102
abstract_stepper_driver.hpp
ttl_driver::TtlManager::getPosition
uint32_t getPosition(const common::model::JointState &motor_state)
TtlManager::getPosition.
Definition: ttl_manager.cpp:566
ttl_driver::TtlManager::resetCalibration
void resetCalibration() override
TtlManager::resetCalibration.
Definition: ttl_manager.cpp:2025
ttl_driver::TtlManager::CalibrationMachineState::State::STARTING
@ STARTING
ttl_driver::TtlManager::CalibrationMachineState::status
State status()
Definition: ttl_manager.hpp:295
ttl_driver::TtlManager::getBusState
void getBusState(bool &connection_state, std::vector< uint8_t > &motor_id, std::string &debug_msg) const override
TtlManager::getBusState.
Definition: ttl_manager.cpp:2076
ttl_driver::TtlManager::CalibrationMachineState::s
State s
Definition: ttl_manager.hpp:306
ttl_driver::TtlManager::resetTorques
void resetTorques()
TtlManager::resetTorques.
Definition: ttl_manager.cpp:526
ttl_driver::TtlManager::isMotorType
bool isMotorType(common::model::EHardwareType type)
TtlManager::isMotorType.
Definition: ttl_manager.cpp:321
ttl_driver::TtlManager::getNbMotors
size_t getNbMotors() const override
TtlManager::getNbMotors.
Definition: ttl_manager.hpp:332
ttl_driver::TtlManager::readCollisionStatus
bool readCollisionStatus()
TtlManager::readCollisionStatus.
Definition: ttl_manager.cpp:973
ttl_driver::TtlManager::GetJointsStepperDriverResult::driver
std::shared_ptr< ttl_driver::AbstractStepperDriver > driver
Definition: ttl_manager.hpp:195
ttl_driver::TtlManager::MAX_READ_EE_FAILURE
static constexpr uint32_t MAX_READ_EE_FAILURE
Definition: ttl_manager.hpp:238
ttl_driver::TtlManager::setLeds
int setLeds(int led)
TtlManager::setLeds.
Definition: ttl_manager.cpp:1476
ttl_driver::TtlManager::_isWrongAction
bool _isWrongAction
Definition: ttl_manager.hpp:251
ttl_driver::TtlManager::writeSynchronizeCommand
int writeSynchronizeCommand(std::unique_ptr< common::model::AbstractTtlSynchronizeMotorCmd > &&cmd)
TtlManager::writeSynchronizeCommand.
Definition: ttl_manager.cpp:1828
ttl_driver::TtlManager
The TtlManager class manages the different motor drivers connected on the TTL bus it is used by ttl_i...
Definition: ttl_manager.hpp:85
ttl_driver::TtlManager::CalibrationMachineState::_calibration_timeout
static constexpr double _calibration_timeout
Definition: ttl_manager.hpp:308
ttl_driver::TtlManager::operator=
TtlManager & operator=(TtlManager &&)=delete
ttl_driver::TtlManager::_collision_status
bool _collision_status
Definition: ttl_manager.hpp:248
ttl_driver::TtlManager::ping
bool ping(uint8_t id) override
TtlManager::ping.
Definition: ttl_manager.cpp:464
ttl_driver
Definition: abstract_dxl_driver.hpp:30
ttl_driver::TtlManager::_default_ttl_driver
std::shared_ptr< ttl_driver::AbstractTtlDriver > _default_ttl_driver
Definition: ttl_manager.hpp:221
ttl_driver::TtlManager::rebootHardware
int rebootHardware(uint8_t id)
TtlManager::rebootHardware.
Definition: ttl_manager.cpp:482
ttl_driver::TtlManager::_fake_data
std::shared_ptr< FakeTtlData > _fake_data
Definition: ttl_manager.hpp:244
ttl_driver::TtlManager::readNed3ProSteppersStatus
uint8_t readNed3ProSteppersStatus()
Definition: ttl_manager.cpp:1324
ttl_driver::TtlManager::CalibrationMachineState::reset
void reset()
Definition: ttl_manager.hpp:271
ttl_driver::TtlManager::_end_effector_fail_counter_read
uint32_t _end_effector_fail_counter_read
Definition: ttl_manager.hpp:232
ttl_driver::TtlManager::getRemovedMotorList
std::vector< uint8_t > getRemovedMotorList() const override
TtlManager::getRemovedMotorList.
Definition: ttl_manager.hpp:342
ttl_driver::TtlManager::_is_connection_ok
bool _is_connection_ok
Definition: ttl_manager.hpp:228
nh
static std::unique_ptr< ros::NodeHandle > nh
Definition: service_client_ned2.cpp:31
ttl_driver::TtlManager::isConnectionOk
bool isConnectionOk() const override
TtlManager::isConnectionOk.
Definition: ttl_manager.hpp:322
ttl_driver::TtlManager::_position_list
std::vector< uint32_t > _position_list
Definition: ttl_manager.hpp:255
ttl_driver::TtlManager::CalibrationMachineState::start
void start()
Definition: ttl_manager.hpp:276
ttl_driver::TTL_FAIL_SETUP_GPIO
constexpr int TTL_FAIL_SETUP_GPIO
Definition: ttl_manager.hpp:68
ttl_driver::TtlManager::_led_state
int _led_state
Definition: ttl_manager.hpp:234
ttl_driver::TtlManager::CalibrationMachineState
Definition: ttl_manager.hpp:259
ttl_driver::TtlManager::_simulation_mode
bool _simulation_mode
Definition: ttl_manager.hpp:245
ttl_driver::TTL_SCAN_OK
constexpr int TTL_SCAN_OK
Definition: ttl_manager.hpp:70
ttl_driver::TtlManager::CalibrationMachineState::_time
double _time
Definition: ttl_manager.hpp:307
ttl_driver::TtlManager::readMoving
int readMoving(uint8_t id, uint8_t &status)
TtlManager::readMoving.
Definition: ttl_manager.cpp:1752
ttl_driver::TtlManager::_removed_motor_id_list
std::vector< uint8_t > _removed_motor_id_list
Definition: ttl_manager.hpp:211
ttl_driver::TtlManager::_sync_mutex
std::mutex _sync_mutex
Definition: ttl_manager.hpp:205
ttl_driver::TtlManager::_ids_map
std::map< common::model::EHardwareType, std::vector< uint8_t > > _ids_map
Definition: ttl_manager.hpp:216
ttl_driver::TtlManager::CalibrationMachineState::next
void next()
next : next state, stops at updating (dont circle)
Definition: ttl_manager.hpp:285
ttl_driver::TtlManager::_portHandler
std::shared_ptr< dynamixel::PortHandler > _portHandler
Definition: ttl_manager.hpp:202
ttl_driver::TtlManager::GetJointsStepperDriverResult
Definition: ttl_manager.hpp:194
ttl_driver::TtlManager::CalibrationMachineState::isTimeout
bool isTimeout()
Definition: ttl_manager.hpp:300
ttl_driver::TtlManager::_driver_map
std::map< common::model::EHardwareType, std::shared_ptr< ttl_driver::AbstractTtlDriver > > _driver_map
Definition: ttl_manager.hpp:218
ttl_driver::TtlManager::setupCommunication
int setupCommunication() override
TtlManager::setupCommunication.
Definition: ttl_manager.cpp:150
ttl_driver::TtlManager::MAX_HW_FAILURE
static constexpr uint32_t MAX_HW_FAILURE
Definition: ttl_manager.hpp:237
ttl_driver::TtlManager::getMotorsStates
std::vector< std::shared_ptr< common::model::JointState > > getMotorsStates() const
TtlManager::getMotorsStates.
Definition: ttl_manager.cpp:2087
ttl_driver::TtlManager::~TtlManager
~TtlManager() override
TtlManager::~TtlManager.
Definition: ttl_manager.cpp:93
ttl_driver::TtlManager::_conveyor_list
std::vector< uint8_t > _conveyor_list
Definition: ttl_manager.hpp:225
ttl_driver::TtlManager::addHardwareDriver
void addHardwareDriver(common::model::EHardwareType hardware_type) override
TtlManager::addHardwareDriver.
Definition: ttl_manager.cpp:2137
ttl_driver::TtlManager::hasEndEffector
bool hasEndEffector() const
TtlManager::hasEndEffector.
Definition: ttl_manager.hpp:394
ttl_driver::TtlManager::_calibration_status_publisher
ros::Publisher _calibration_status_publisher
Definition: ttl_manager.hpp:253
ttl_driver::TtlManager::getErrorMessage
std::string getErrorMessage() const override
TtlManager::getErrorMessage.
Definition: ttl_manager.hpp:352
ttl_driver::TtlManager::_led_motor_type_cfg
std::string _led_motor_type_cfg
Definition: ttl_manager.hpp:235
ttl_driver::TtlManager::readControlMode
int readControlMode(uint8_t id, uint8_t &control_mode)
TtlManager::readControlMode.
Definition: ttl_manager.cpp:1791
ttl_driver::TTL_BUS_PROTOCOL_VERSION
constexpr float TTL_BUS_PROTOCOL_VERSION
Definition: ttl_manager.hpp:64
ttl_driver::TTL_SCAN_UNALLOWED_MOTOR
constexpr int TTL_SCAN_UNALLOWED_MOTOR
Definition: ttl_manager.hpp:72
ttl_driver::TTL_WRONG_TYPE
constexpr int TTL_WRONG_TYPE
Definition: ttl_manager.hpp:73
ttl_driver::TtlManager::readMotorPID
int readMotorPID(uint8_t id, uint16_t &pos_p_gain, uint16_t &pos_i_gain, uint16_t &pos_d_gain, uint16_t &vel_p_gain, uint16_t &vel_i_gain, uint16_t &ff1_gain, uint16_t &ff2_gain)
TtlManager::readMotorPID.
Definition: ttl_manager.cpp:1635
ttl_driver::TtlManager::readVelocityProfile
int readVelocityProfile(uint8_t id, uint32_t &v_start, uint32_t &a_1, uint32_t &v_1, uint32_t &a_max, uint32_t &v_max, uint32_t &d_max, uint32_t &d_1, uint32_t &v_stop)
TtlManager::readVelocityProfile.
Definition: ttl_manager.cpp:1699
ttl_driver::TtlManager::_baudrate
int _baudrate
Definition: ttl_manager.hpp:208
ttl_driver::TtlManager::readFakeConfig
void readFakeConfig(bool use_simu_gripper, bool use_simu_conveyor)
TtlManager::readFakeConfig.
Definition: ttl_manager.cpp:2193
ttl_driver::TtlManager::_isRealCollision
bool _isRealCollision
Definition: ttl_manager.hpp:250
ttl_driver::TtlManager::needCalibration
bool needCalibration() const
TtlManager::needCalibration.
Definition: ttl_manager.hpp:373
fake_ttl_data.hpp


ttl_driver
Author(s): Clement Cocquempot
autogenerated on Wed May 21 2025 08:30:14