Go to the documentation of this file. 1 #ifndef AIKIDO_CONTROL_ROS_ROSTRAJECTORYEXECUTOR_HPP_
2 #define AIKIDO_CONTROL_ROS_ROSTRAJECTORYEXECUTOR_HPP_
8 #include <actionlib/client/action_client.h>
9 #include <control_msgs/FollowJointTrajectoryAction.h>
10 #include <ros/callback_queue.h>
33 const ::ros::NodeHandle& node,
34 const std::string& serverName,
35 double waypointTimestep,
36 double goalTimeTolerance,
37 const ::dart::dynamics::MetaSkeletonPtr metaskeleton,
38 const std::chrono::milliseconds& connectionTimeout
39 = std::chrono::milliseconds{1000},
40 const std::chrono::milliseconds& connectionPollingPeriod
41 = std::chrono::milliseconds{20});
63 void step(
const std::chrono::system_clock::time_point& timepoint)
override;
70 = actionlib::ActionClient<control_msgs::FollowJointTrajectoryAction>;
101 #endif // ifndef AIKIDO_CONTROL_ROS_ROSTRAJECTORYEXECUTOR_HPP_
const ::dart::dynamics::MetaSkeletonPtr mMetaSkeleton
MetaSkeleton to execute trajectories on For trajectory-validation purposes only.
Definition: RosTrajectoryExecutor.hpp:77
RosTrajectoryExecutor(const ::ros::NodeHandle &node, const std::string &serverName, double waypointTimestep, double goalTimeTolerance, const ::dart::dynamics::MetaSkeletonPtr metaskeleton, const std::chrono::milliseconds &connectionTimeout=std::chrono::milliseconds{1000}, const std::chrono::milliseconds &connectionPollingPeriod=std::chrono::milliseconds{20})
Constructor.
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
TrajectoryActionClient::GoalHandle mGoalHandle
Definition: RosTrajectoryExecutor.hpp:82
void validate(const trajectory::Trajectory *traj) override
Validate the traj in preparation for execution.
virtual ~RosTrajectoryExecutor()
std::shared_ptr< const Trajectory > ConstTrajectoryPtr
Definition: Trajectory.hpp:13
void cancel() override
Cancel the current trajectory.
TrajectoryActionClient mClient
Definition: RosTrajectoryExecutor.hpp:81
std::future< void > execute(const trajectory::ConstTrajectoryPtr &traj) override
Sends trajectory to ROS server for execution.
std::mutex mMutex
Manages access to mInProgress, mPromise.
Definition: RosTrajectoryExecutor.hpp:94
std::chrono::milliseconds mConnectionPollingPeriod
Definition: RosTrajectoryExecutor.hpp:88
std::unique_ptr< std::promise< void > > mPromise
Definition: RosTrajectoryExecutor.hpp:91
::ros::NodeHandle mNode
Definition: RosTrajectoryExecutor.hpp:79
::ros::CallbackQueue mCallbackQueue
Definition: RosTrajectoryExecutor.hpp:80
double mGoalTimeTolerance
Definition: RosTrajectoryExecutor.hpp:85
Abstract class for executing trajectories.
Definition: TrajectoryExecutor.hpp:21
void step(const std::chrono::system_clock::time_point &timepoint) override
Step to a point in time.
actionlib::ActionClient< control_msgs::FollowJointTrajectoryAction > TrajectoryActionClient
Definition: RosTrajectoryExecutor.hpp:70
std::chrono::milliseconds mConnectionTimeout
Definition: RosTrajectoryExecutor.hpp:87
This class sends trajectory commands to ROS server.
Definition: RosTrajectoryExecutor.hpp:21
bool mInProgress
Definition: RosTrajectoryExecutor.hpp:90
void transitionCallback(GoalHandle handle)
Time-parameterized path in a StateSpace.
Definition: Trajectory.hpp:20
TrajectoryActionClient::GoalHandle GoalHandle
Definition: RosTrajectoryExecutor.hpp:71
double mWaypointTimestep
Definition: RosTrajectoryExecutor.hpp:84