28 #include <trajectory_msgs/MultiDOFJointTrajectory.h> 30 int main(
int argc,
char** argv) {
31 ros::init(argc, argv,
"waypoint_publisher");
34 nh.
advertise<trajectory_msgs::MultiDOFJointTrajectory>(
37 ROS_INFO(
"Started waypoint_publisher.");
44 if (args.size() == 5) {
46 }
else if (args.size() == 6) {
47 delay = std::stof(args.at(5));
49 ROS_ERROR(
"Usage: waypoint_publisher <x> <y> <z> <yaw_deg> [<delay>]\n");
53 const float DEG_2_RAD =
M_PI / 180.0;
55 trajectory_msgs::MultiDOFJointTrajectory trajectory_msg;
58 Eigen::Vector3d desired_position(std::stof(args.at(1)), std::stof(args.at(2)),
59 std::stof(args.at(3)));
61 double desired_yaw = std::stof(args.at(4)) * DEG_2_RAD;
64 desired_yaw, &trajectory_msg);
70 ROS_INFO(
"There is no subscriber available, trying again in 1 second.");
74 ROS_INFO(
"Publishing waypoint on namespace %s: [%f, %f, %f].",
78 desired_position.z());
80 trajectory_pub.
publish(trajectory_msg);
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
void publish(const boost::shared_ptr< M > &message) const
std::vector< std::string > V_string
int main(int argc, char **argv)
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
const std::string & getNamespace() const
void msgMultiDofJointTrajectoryFromPositionYaw(const Eigen::Vector3d &position, double yaw, trajectory_msgs::MultiDOFJointTrajectory *msg)
ROSCPP_DECL void shutdown()
ROSCPP_DECL void removeROSArgs(int argc, const char *const *argv, V_string &args_out)
uint32_t getNumSubscribers() const
static constexpr char COMMAND_TRAJECTORY[]
ROSCPP_DECL void spinOnce()