6 extern template class RosJointCommandExecutor<ExecutorType::POSITION>;
8 extern template class RosJointCommandExecutor<ExecutorType::VELOCITY>;
10 extern template class RosJointCommandExecutor<ExecutorType::EFFORT>;
14 const std::vector<dart::dynamics::DegreeOfFreedom*>& dofs)
16 std::vector<std::string> jointNames;
17 for (
const auto& dof : dofs)
19 jointNames.push_back(dof->getName());
25 template <ExecutorType T>
27 const ::ros::NodeHandle& node,
28 const std::string& controllerName,
29 const std::vector<dart::dynamics::DegreeOfFreedom*>& dofs,
30 const std::chrono::milliseconds connectionTimeout,
31 const std::chrono::milliseconds connectionPollingPeriod)
37 controllerName +
"/joint_group_command",
40 connectionPollingPeriod}
46 template <ExecutorType T>
53 template <ExecutorType T>
55 const std::vector<double>& command,
56 const std::chrono::duration<double>& timeout,
57 const std::chrono::system_clock::time_point& )
59 ::ros::Duration duration;
61 auto timeoutSecs = std::chrono::duration_cast<std::chrono::seconds>(timeout);
62 duration.sec = timeoutSecs.count();
63 duration.nsec = std::chrono::duration_cast<std::chrono::nanoseconds>(
64 timeout - timeoutSecs)
66 return mClient.execute(T, command, duration);
70 template <ExecutorType T>
72 const std::chrono::system_clock::time_point& )
78 template <ExecutorType T>