HLR  0.0.1
RosRobotDriverHandler.hpp
1 #ifndef KINEMATICS_ROSROBOTDRIVERHANDLER_HPP
2 #define KINEMATICS_ROSROBOTDRIVERHANDLER_HPP
3 
4 #include <ros/ros.h>
5 #include "RobotDriverHandler.hpp"
6 #include <Kinematics/Matrix.hpp>
7 
8 namespace HLR
9 {
10 namespace Kinematics
11 {
16 {
17 public:
20 
22  virtual ~RosRobotDriverHandler() = default;
23 
28  RosRobotDriverHandler(const RosRobotDriverHandler& rdh) = delete;
29 
35 
42 
49 
50  Matrix<double, 5, 1> get_arm_state() const noexcept override;
51 
52  void move(const std::vector<Matrix<double, 5, 1>>& path,
53  double speed) override;
54 
55  void stop() override;
56 
57 private:
61  ros::NodeHandle nh;
62 
66  ros::ServiceClient driver_stop;
67 
71  ros::ServiceClient driver_add;
72 
76  Matrix<double, 5, 1> current_arm_state;
77 };
78 
79 } // namespace Kinematics
80 } // namespace HLR
81 
82 #endif
void stop() override
Stop the robotarm if it is moving/.
RosRobotDriverHandler & operator=(const RosRobotDriverHandler &rdh)=delete
Copy assignment operator, deleted.
Concrete handle on the robot using the ROS interface.
Definition: RosRobotDriverHandler.hpp:15
void move(const std::vector< Matrix< double, 5, 1 >> &path, double speed) override
Move the robot arm along a path.
Interface that exposes the interface to the robotarm.
Definition: RobotDriverHandler.hpp:14
virtual ~RosRobotDriverHandler()=default
Destructor.
Matrix< double, 5, 1 > get_arm_state() const noexceptoverride
Get the current position of the robot arm.