1 #ifndef NODE_CANOPEN_402_DRIVER
2 #define NODE_CANOPEN_402_DRIVER
6 #include "canopen_interfaces/srv/co_target_double.hpp"
8 #include "sensor_msgs/msg/joint_state.hpp"
12 namespace node_interfaces
15 template <
class NODETYPE>
19 std::is_base_of<rclcpp::Node, NODETYPE>::value ||
20 std::is_base_of<rclcpp_lifecycle::LifecycleNode, NODETYPE>::value,
21 "NODETYPE must derive from rclcpp::Node or rclcpp_lifecycle::LifecycleNode");
49 virtual void init(
bool called_from_base)
override;
50 virtual void configure(
bool called_from_base)
override;
51 virtual void activate(
bool called_from_base)
override;
52 virtual void deactivate(
bool called_from_base)
override;
71 const std_srvs::srv::Trigger::Request::SharedPtr request,
72 std_srvs::srv::Trigger::Response::SharedPtr response);
97 const std_srvs::srv::Trigger::Request::SharedPtr request,
98 std_srvs::srv::Trigger::Response::SharedPtr response);
123 const std_srvs::srv::Trigger::Request::SharedPtr request,
124 std_srvs::srv::Trigger::Response::SharedPtr response);
150 const std_srvs::srv::Trigger::Request::SharedPtr request,
151 std_srvs::srv::Trigger::Response::SharedPtr response);
179 const std_srvs::srv::Trigger::Request::SharedPtr request,
180 std_srvs::srv::Trigger::Response::SharedPtr response);
206 const std_srvs::srv::Trigger::Request::SharedPtr request,
207 std_srvs::srv::Trigger::Response::SharedPtr response);
220 const std_srvs::srv::Trigger::Request::SharedPtr request,
221 std_srvs::srv::Trigger::Response::SharedPtr response);
259 const std_srvs::srv::Trigger::Request::SharedPtr request,
260 std_srvs::srv::Trigger::Response::SharedPtr response);
286 const std_srvs::srv::Trigger::Request::SharedPtr request,
287 std_srvs::srv::Trigger::Response::SharedPtr response);
313 const canopen_interfaces::srv::COTargetDouble::Request::SharedPtr request,
314 canopen_interfaces::srv::COTargetDouble::Response::SharedPtr response);
InternalState
Definition: state.hpp:33
Definition: node_canopen_402_driver.hpp:17
double scale_vel_from_dev_
Definition: node_canopen_402_driver.hpp:40
double scale_vel_to_dev_
Definition: node_canopen_402_driver.hpp:39
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:358
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:316
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_interpolated_position_service
Definition: node_canopen_402_driver.hpp:34
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:295
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_torque_service
Definition: node_canopen_402_driver.hpp:30
bool set_target(double target)
Method to set target.
Definition: node_canopen_402_driver_impl.hpp:574
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_halt_service
Definition: node_canopen_402_driver.hpp:27
bool set_mode_velocity()
Method to set profiled velocity mode.
Definition: node_canopen_402_driver_impl.hpp:494
virtual double get_position()
Definition: node_canopen_402_driver.hpp:57
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_cyclic_position_service
Definition: node_canopen_402_driver.hpp:33
double scale_pos_to_dev_
Definition: node_canopen_402_driver.hpp:37
bool set_mode_torque()
Method to set profiled torque mode.
Definition: node_canopen_402_driver_impl.hpp:554
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_position_service
Definition: node_canopen_402_driver.hpp:29
rclcpp::TimerBase::SharedPtr timer_
Definition: node_canopen_402_driver.hpp:25
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:35
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:373
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_velocity_service
Definition: node_canopen_402_driver.hpp:31
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:334
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:350
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:365
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:342
virtual void poll_timer_callback() override
Definition: node_canopen_402_driver_impl.hpp:268
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_init_service
Definition: node_canopen_402_driver.hpp:26
bool set_mode_interpolated_position()
Method to set interpolated position mode.
Definition: node_canopen_402_driver_impl.hpp:474
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:326
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:306
bool halt_motor()
Method to halt device.
Definition: node_canopen_402_driver_impl.hpp:431
bool set_mode_position()
Method to set profiled position mode.
Definition: node_canopen_402_driver_impl.hpp:454
std::shared_ptr< Motor402 > motor_
Definition: node_canopen_402_driver.hpp:21
bool init_motor()
Method to initialise device.
Definition: node_canopen_402_driver_impl.hpp:403
bool recover_motor()
Method to recover device.
Definition: node_canopen_402_driver_impl.hpp:418
ros2_canopen::State402::InternalState switching_state_
Definition: node_canopen_402_driver.hpp:41
virtual uint16_t get_mode()
Definition: node_canopen_402_driver.hpp:59
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_recover_service
Definition: node_canopen_402_driver.hpp:28
rclcpp::Service< std_srvs::srv::Trigger >::SharedPtr handle_set_mode_cyclic_velocity_service
Definition: node_canopen_402_driver.hpp:32
NodeCanopen402Driver(NODETYPE *node)
Definition: node_canopen_402_driver_impl.hpp:13
double scale_pos_from_dev_
Definition: node_canopen_402_driver.hpp:38
void publish()
Definition: node_canopen_402_driver_impl.hpp:277
bool set_operation_mode(uint16_t mode)
Definition: node_canopen_402_driver_impl.hpp:444
rclcpp::Publisher< sensor_msgs::msg::JointState >::SharedPtr publish_joint_state
Definition: node_canopen_402_driver.hpp:36
bool set_mode_cyclic_velocity()
Method to set cyclic velocity mode.
Definition: node_canopen_402_driver_impl.hpp:534
virtual double get_speed()
Definition: node_canopen_402_driver.hpp:55
bool set_mode_cyclic_position()
Method to set cyclic position mode.
Definition: node_canopen_402_driver_impl.hpp:514
virtual void add_to_master() override
Add the driver to master.
Definition: node_canopen_402_driver_impl.hpp:288
void deactivate()
Deactivate the driver.
Definition: node_canopen_driver.hpp:251
void activate()
Activate the driver.
Definition: node_canopen_driver.hpp:209
void init()
Initialise the driver.
Definition: node_canopen_driver.hpp:113
Definition: node_canopen_proxy_driver.hpp:12
Definition: configuration_manager.hpp:28