joint_trajectory_streamer.h
Go to the documentation of this file.
1 /*
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2011, Southwest Research Institute
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * * Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  * * Neither the name of the Southwest Research Institute, nor the names
16  * of its contributors may be used to endorse or promote products derived
17  * from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef JOINT_TRAJECTORY_STREAMER_H
33 #define JOINT_TRAJECTORY_STREAMER_H
34 
35 #include <boost/thread/thread.hpp>
37 
39 {
40 namespace joint_trajectory_streamer
41 {
42 
46 
47 namespace TransferStates
48 {
50 {
51  IDLE = 0, STREAMING =1 //,STARTING, //, STOPPING
52 };
53 
54 std::string to_string(TransferState state)
55 {
56  if(state == TransferState::IDLE)
57  return "IDLE";
58  if(state == TransferState::STREAMING)
59  return "STREAMING";
60  return "UNKNOWN";
61 }
62 }
64 
69 //* JointTrajectoryStreamer
76 {
77 
78 public:
79 
80  // since this class defines a different init(), this helps find the base-class init()
82 
88  JointTrajectoryStreamer(int min_buffer_size = 1) : min_buffer_size_(min_buffer_size) {};
89 
102  virtual bool init(SmplMsgConnection* connection, const std::vector<std::string> &joint_names,
103  const std::map<std::string, double> &velocity_limits = std::map<std::string, double>());
104 
106 
107  virtual void jointTrajectoryCB(const trajectory_msgs::JointTrajectoryConstPtr &msg);
108 
109  virtual bool trajectory_to_msgs(const trajectory_msgs::JointTrajectoryConstPtr &traj, std::vector<JointTrajPtMessage>* msgs);
110 
111  void streamingThread();
112 
113  bool send_to_robot(const std::vector<JointTrajPtMessage>& messages);
114 
115 protected:
116 
117  void trajectoryStop();
118 
119  boost::thread* streaming_thread_;
120  boost::mutex mutex_;
122  std::vector<JointTrajPtMessage> current_traj_;
126 };
127 
128 } //joint_trajectory_streamer
129 } //industrial_robot_client
130 
131 #endif /* JOINT_TRAJECTORY_STREAMER_H */
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::send_to_robot
bool send_to_robot(const std::vector< JointTrajPtMessage > &messages)
Send trajectory to robot, using this node's robot-connection. Specific method must be implemented in ...
Definition: joint_trajectory_streamer.cpp:110
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer
Message handler that streams joint trajectories to the robot controller.
Definition: joint_trajectory_streamer.h:75
industrial_robot_client::joint_trajectory_streamer::TransferState
TransferStates::TransferState TransferState
Definition: joint_trajectory_streamer.h:63
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::mutex_
boost::mutex mutex_
Definition: joint_trajectory_streamer.h:120
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::trajectoryStop
void trajectoryStop()
Send a stop command to the robot.
Definition: joint_trajectory_streamer.cpp:222
industrial_robot_client::joint_trajectory_streamer::TransferStates::to_string
std::string to_string(TransferState state)
Definition: joint_trajectory_streamer.h:54
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::~JointTrajectoryStreamer
~JointTrajectoryStreamer()
Definition: joint_trajectory_streamer.cpp:61
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::streaming_start_
ros::Time streaming_start_
Definition: joint_trajectory_streamer.h:124
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::jointTrajectoryCB
virtual void jointTrajectoryCB(const trajectory_msgs::JointTrajectoryConstPtr &msg)
Callback function registered to ROS topic-subscribe. Transform message into SimpleMessage objects and...
Definition: joint_trajectory_streamer.cpp:66
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::streamingThread
void streamingThread()
Definition: joint_trajectory_streamer.cpp:144
industrial_robot_client::joint_trajectory_streamer::TransferStates::TransferState
TransferState
Definition: joint_trajectory_streamer.h:49
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::current_traj_
std::vector< JointTrajPtMessage > current_traj_
Definition: joint_trajectory_streamer.h:122
joint_trajectory_interface.h
industrial::smpl_msg_connection::SmplMsgConnection
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::min_buffer_size_
int min_buffer_size_
Definition: joint_trajectory_streamer.h:125
ros::Time
industrial_robot_client
Definition: joint_relay_handler.h:46
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::trajectory_to_msgs
virtual bool trajectory_to_msgs(const trajectory_msgs::JointTrajectoryConstPtr &traj, std::vector< JointTrajPtMessage > *msgs)
Convert ROS trajectory message into stream of JointTrajPtMessages for sending to robot....
Definition: joint_trajectory_streamer.cpp:126
industrial_robot_client::joint_trajectory_streamer::TransferStates::STREAMING
@ STREAMING
Definition: joint_trajectory_streamer.h:51
industrial::joint_traj_pt_message::JointTrajPtMessage
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::current_point_
int current_point_
Definition: joint_trajectory_streamer.h:121
industrial_robot_client::joint_trajectory_interface::JointTrajectoryInterface
Message handler that relays joint trajectories to the robot controller.
Definition: joint_trajectory_interface.h:64
industrial_robot_client::joint_trajectory_interface::JointTrajectoryInterface::init
virtual bool init(std::string default_ip="", int default_port=StandardSocketPorts::MOTION)
Initialize robot connection using default method.
Definition: joint_trajectory_interface.cpp:51
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::streaming_thread_
boost::thread * streaming_thread_
Definition: joint_trajectory_streamer.h:119
industrial_robot_client::joint_trajectory_streamer::TransferStates::IDLE
@ IDLE
Definition: joint_trajectory_streamer.h:51
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::JointTrajectoryStreamer
JointTrajectoryStreamer(int min_buffer_size=1)
Default constructor.
Definition: joint_trajectory_streamer.h:88
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::state_
TransferState state_
Definition: joint_trajectory_streamer.h:123
industrial_robot_client::joint_trajectory_streamer::JointTrajectoryStreamer::init
virtual bool init(SmplMsgConnection *connection, const std::vector< std::string > &joint_names, const std::map< std::string, double > &velocity_limits=std::map< std::string, double >())
Class initializer.
Definition: joint_trajectory_streamer.cpp:41


industrial_robot_client
Author(s): Jeremy Zoss
autogenerated on Wed Mar 2 2022 00:24:59