19#ifndef NODE_CANOPEN_402_DRIVER
20#define NODE_CANOPEN_402_DRIVER
24#include "canopen_interfaces/srv/co_target_double.hpp"
26#include "sensor_msgs/msg/joint_state.hpp"
30namespace node_interfaces
33template <
class NODETYPE>
37 std::is_base_of<rclcpp::Node, NODETYPE>::value ||
38 std::is_base_of<rclcpp_lifecycle::LifecycleNode, NODETYPE>::value,
39 "NODETYPE must derive from rclcpp::Node or rclcpp_lifecycle::LifecycleNode");
74 virtual void init(
bool called_from_base)
override;
75 virtual void configure(
bool called_from_base)
override;
76 virtual void activate(
bool called_from_base)
override;
77 virtual void deactivate(
bool called_from_base)
override;
99 const std_srvs::srv::Trigger::Request::SharedPtr request,
100 std_srvs::srv::Trigger::Response::SharedPtr response);
112 const std_srvs::srv::Trigger::Request::SharedPtr request,
113 std_srvs::srv::Trigger::Response::SharedPtr response);
125 const std_srvs::srv::Trigger::Request::SharedPtr request,
126 std_srvs::srv::Trigger::Response::SharedPtr response);
151 const std_srvs::srv::Trigger::Request::SharedPtr request,
152 std_srvs::srv::Trigger::Response::SharedPtr response);
177 const std_srvs::srv::Trigger::Request::SharedPtr request,
178 std_srvs::srv::Trigger::Response::SharedPtr response);
216 const std_srvs::srv::Trigger::Request::SharedPtr request,
217 std_srvs::srv::Trigger::Response::SharedPtr response);
230 const std_srvs::srv::Trigger::Request::SharedPtr request,
231 std_srvs::srv::Trigger::Response::SharedPtr response);
244 const std_srvs::srv::Trigger::Request::SharedPtr request,
245 std_srvs::srv::Trigger::Response::SharedPtr response);
258 const std_srvs::srv::Trigger::Request::SharedPtr request,
259 std_srvs::srv::Trigger::Response::SharedPtr response);
272 const std_srvs::srv::Trigger::Request::SharedPtr request,
273 std_srvs::srv::Trigger::Response::SharedPtr response);
286 const std_srvs::srv::Trigger::Request::SharedPtr request,
287 std_srvs::srv::Trigger::Response::SharedPtr response);
300 const std_srvs::srv::Trigger::Request::SharedPtr request,
301 std_srvs::srv::Trigger::Response::SharedPtr response);
314 const canopen_interfaces::srv::COTargetDouble::Request::SharedPtr request,
315 canopen_interfaces::srv::COTargetDouble::Response::SharedPtr response);
InternalState
Definition state.hpp:50
Definition node_canopen_402_driver.hpp:35
double scale_vel_from_dev_
Definition node_canopen_402_driver.hpp:61
double scale_vel_to_dev_
Definition node_canopen_402_driver.hpp:60
double offset_pos_to_dev_
Definition node_canopen_402_driver.hpp:62
void handle_set_mode_cyclic_velocity(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to set cyclic velocity mode.
Definition node_canopen_402_driver_impl.hpp:499
void handle_halt(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to halt device.
Definition node_canopen_402_driver_impl.hpp:457
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_interpolated_position_service
Definition node_canopen_402_driver.hpp:55
void handle_enable(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to enable device.
Definition node_canopen_402_driver_impl.hpp:564
void handle_init(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to initialise device.
Definition node_canopen_402_driver_impl.hpp:436
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_torque_service
Definition node_canopen_402_driver.hpp:50
bool set_target(double target)
Method to set target.
Definition node_canopen_402_driver_impl.hpp:634
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_enable_service
Definition node_canopen_402_driver.hpp:45
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_halt_service
Definition node_canopen_402_driver.hpp:47
virtual double get_position()
Definition node_canopen_402_driver.hpp:82
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_cyclic_position_service
Definition node_canopen_402_driver.hpp:53
double scale_pos_to_dev_
Definition node_canopen_402_driver.hpp:58
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_position_service
Definition node_canopen_402_driver.hpp:49
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_cyclic_torque_service
Definition node_canopen_402_driver.hpp:54
rclcpp::TimerBase::SharedPtr timer_
Definition node_canopen_402_driver.hpp:43
virtual void configure(bool called_from_base) override
Configure the driver.
rclcpp::Service< canopen_interfaces::srv::COTargetDouble >::SharedPtr handle_set_target_service
Definition node_canopen_402_driver.hpp:56
void handle_set_target(const canopen_interfaces::srv::COTargetDouble::Request::SharedPtr request, canopen_interfaces::srv::COTargetDouble::Response::SharedPtr response)
Service Callback to set target.
Definition node_canopen_402_driver_impl.hpp:522
void handle_set_mode_cyclic_torque(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to set cyclic torque mode.
Definition node_canopen_402_driver_impl.hpp:514
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_velocity_service
Definition node_canopen_402_driver.hpp:51
void handle_set_mode_velocity(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to set profiled velocity mode.
Definition node_canopen_402_driver_impl.hpp:475
void handle_set_mode_interpolated_position(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to set interpolated position mode.
Definition node_canopen_402_driver_impl.hpp:491
void handle_set_mode_torque(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to set profiled torque mode.
Definition node_canopen_402_driver_impl.hpp:506
void handle_set_mode_cyclic_position(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to set cyclic position mode.
Definition node_canopen_402_driver_impl.hpp:483
virtual void poll_timer_callback() override
Definition node_canopen_402_driver_impl.hpp:408
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_init_service
Definition node_canopen_402_driver.hpp:44
void handle_set_mode_position(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to set profiled position mode.
Definition node_canopen_402_driver_impl.hpp:467
void handle_recover(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to recover device.
Definition node_canopen_402_driver_impl.hpp:447
void diagnostic_callback(diagnostic_updater::DiagnosticStatusWrapper &stat) override
Definition node_canopen_402_driver_impl.hpp:666
bool halt_motor()
Method to halt device.
Definition node_canopen_402_driver_impl.hpp:604
std::shared_ptr< Motor402 > motor_
Definition node_canopen_402_driver.hpp:42
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_disable_service
Definition node_canopen_402_driver.hpp:46
bool init_motor()
Method to initialise device.
Definition node_canopen_402_driver_impl.hpp:576
bool recover_motor()
Method to recover device.
Definition node_canopen_402_driver_impl.hpp:591
ros2_canopen::State402::InternalState switching_state_
Definition node_canopen_402_driver.hpp:64
virtual uint16_t get_mode()
Definition node_canopen_402_driver.hpp:87
int homing_timeout_seconds_
Definition node_canopen_402_driver.hpp:65
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_recover_service
Definition node_canopen_402_driver.hpp:48
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_cyclic_velocity_service
Definition node_canopen_402_driver.hpp:52
double scale_pos_from_dev_
Definition node_canopen_402_driver.hpp:59
void publish()
Definition node_canopen_402_driver_impl.hpp:417
bool set_operation_mode(uint16_t mode)
Service Callback to set operation mode.
Definition node_canopen_402_driver_impl.hpp:617
rclcpp::Publisher< sensor_msgs::msg::JointState >::SharedPtr publish_joint_state
Definition node_canopen_402_driver.hpp:57
virtual double get_speed()
Definition node_canopen_402_driver.hpp:80
void handle_disable(const std_srvs::srv::Trigger::Request::SharedPtr request, std_srvs::srv::Trigger::Response::SharedPtr response)
Service Callback to disable device.
Definition node_canopen_402_driver_impl.hpp:552
double offset_pos_from_dev_
Definition node_canopen_402_driver.hpp:63
virtual void add_to_master() override
Add the driver to master.
Definition node_canopen_402_driver_impl.hpp:428
void deactivate()
Deactivate the driver.
Definition node_canopen_driver.hpp:265
void activate()
Activate the driver.
Definition node_canopen_driver.hpp:223
void init()
Initialise the driver.
Definition node_canopen_driver.hpp:127
Definition node_canopen_proxy_driver.hpp:26
Definition configuration_manager.hpp:28