5 template <aik
ido::control::ExecutorType T>
7 const std::vector<double>& command,
8 const std::chrono::duration<double>& timeout)
13 return common::make_exceptional_future<int>(
14 "executeJointCommand: No active executor");
17 std::shared_ptr<aikido::control::JointCommandExecutor<T>> executor;
19 = std::dynamic_pointer_cast<aikido::control::JointCommandExecutor<T>>(
23 return common::make_exceptional_future<int>(
24 "executeJointCommand: Active executor not correct type.");
27 return executor->execute(command, timeout);
31 extern template std::future<int>
32 Robot::executeJointCommand<aikido::control::ExecutorType::POSITION>(
33 const std::vector<double>& command,
34 const std::chrono::duration<double>& timeout);
36 extern template std::future<int>
37 Robot::executeJointCommand<aikido::control::ExecutorType::VELOCITY>(
38 const std::vector<double>& command,
39 const std::chrono::duration<double>& timeout);
41 extern template std::future<int>
42 Robot::executeJointCommand<aikido::control::ExecutorType::EFFORT>(
43 const std::vector<double>& command,
44 const std::chrono::duration<double>& timeout);