236 franka::Robot *m_handler;
237 franka::Gripper *m_gripper;
238 franka::Model *m_model;
239 double m_positioningVelocity;
242 std::thread m_velControlThread;
243 std::atomic_bool m_velControlThreadIsRunning;
244 std::atomic_bool m_velControlThreadStopAsked;
245 std::array<double, 7> m_dq_des;
249 std::thread m_ftControlThread;
250 std::atomic_bool m_ftControlThreadIsRunning;
251 std::atomic_bool m_ftControlThreadStopAsked;
252 std::array<double, 7> m_tau_J_des;
255 std::array<double, 7> m_q_min;
256 std::array<double, 7> m_q_max;
257 std::array<double, 7> m_dq_max;
258 std::array<double, 7> m_ddq_max;
260 franka::RobotState m_robot_state;
264 std::string m_log_folder;
265 std::string m_franka_address;
271 franka::RealtimeConfig realtime_config = franka::RealtimeConfig::kEnforce);
275 void connect(
const std::string &franka_address,
276 franka::RealtimeConfig realtime_config = franka::RealtimeConfig::kEnforce);
292 franka::RobotState getRobotInternalState();
333 int gripperGrasp(
double grasping_width,
double force = 60.);
334 void gripperHoming();
335 int gripperMove(
double width);
337 void gripperRelease();
339 void move(
const std::string &filename,
double velocity_percentage = 10.);
341 bool readPosFile(
const std::string &filename,
vpColVector &q);
342 bool savePosFile(
const std::string &filename,
const vpColVector &q);
346 const bool &activate_pi_controller =
false);
347 void setLogFolder(
const std::string &folder);
349 void setPositioningVelocity(
double velocity);
virtual void setPosition(const vpRobot::vpControlFrameType frame, const vpColVector &q)=0
Set a displacement (frame has to be specified) in position control.