49 #include <pr2_msgs/LaserScannerSignal.h> 50 #include <pr2_msgs/PeriodicCmd.h> 51 #include <pr2_mechanism_controllers/TrackLinkCmd.h> 52 #include <pr2_msgs/LaserTrajCmd.h> 55 #include <pr2_mechanism_controllers/SetProfile.h> 56 #include <pr2_msgs/SetPeriodicCmd.h> 57 #include <pr2_msgs/SetLaserTrajCmd.h> 59 #include "boost/thread/mutex.hpp" 60 #include <boost/thread/condition.hpp> 78 bool setTrajCmd(
const pr2_msgs::LaserTrajCmd& traj_cmd) ;
82 bool setTrajectory(
const std::vector<trajectory::Trajectory::TPoint>& traj_points,
83 double max_rate,
double max_acc, std::string interp ) ;
132 void setTrajCmd(
const pr2_msgs::LaserTrajCmdConstPtr &traj_cmd);
134 bool setPeriodicSrv(pr2_msgs::SetPeriodicCmd::Request &req,
135 pr2_msgs::SetPeriodicCmd::Response &res);
136 bool setTrajSrv(pr2_msgs::SetLaserTrajCmd::Request &req,
137 pr2_msgs::SetLaserTrajCmd::Response &res);
trajectory::Trajectory traj_
pr2_msgs::LaserScannerSignal m_scanner_signal_
Stores the message that we want to send at the end of each sweep, and halfway through each sweep...
control_toolbox::Pid pid_controller_
filters::FilterChain< double > d_error_filter_chain_
ros::ServiceServer serve_set_periodic_cmd_
pr2_mechanism_model::RobotState * robot_
int getCurProfileSegment()
Returns the current trajectory segment we're executing in our current profile.
std::string service_prefix_
bool init(pr2_mechanism_model::RobotState *robot, ros::NodeHandle &n)
ros::Subscriber sub_set_periodic_cmd_
double getProfileDuration()
Returns the length (in seconds) of our current profile.
LaserScannerTrajController c_
pr2_mechanism_model::JointState * joint_state_
ros::ServiceServer serve_set_Traj_cmd_
bool setPeriodicCmd(const pr2_msgs::PeriodicCmd &cmd)
LaserScannerTrajController()
pr2_mechanism_model::RobotState * robot_
bool need_to_send_msg_
Tracks whether we still need to send out the m_scanner_signal_ message.
~LaserScannerTrajController()
int prev_profile_segment_
The segment in the current profile when update() was last called.
double getCurProfileTime()
Returns what time we're currently at in the profile being executed.
ros::Time traj_start_time_
bool setTrajCmd(const pr2_msgs::LaserTrajCmd &traj_cmd)
realtime_tools::RealtimePublisher< pr2_msgs::LaserScannerSignal > * publisher_
Publishes the m_scanner_signal msg from the update() realtime loop.
ros::Subscriber sub_set_traj_cmd_
bool setTrajectory(const std::vector< trajectory::Trajectory::TPoint > &traj_points, double max_rate, double max_acc, std::string interp)
pr2_mechanism_controllers::TrackLinkCmd track_link_cmd_