Program Listing for File active_motion_generator.h

Return to documentation for file (include/franka/active_motion_generator.h)

// Copyright (c) 2023 Franka Robotics GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#pragma once

#include "active_control.h"

namespace franka {

template <typename MotionGeneratorType>
class ActiveMotionGenerator : public ActiveControl {
 public:
  void writeOnce(const MotionGeneratorType& motion_generator_input,
                 const std::optional<const Torques>& control_input) override;
  friend class Robot;

 private:
  ActiveMotionGenerator(std::shared_ptr<Robot::Impl> robot_impl,
                        uint32_t motion_id,
                        std::unique_lock<std::mutex> control_lock,
                        research_interface::robot::Move::ControllerMode controller_type)
      : ActiveControl(robot_impl, motion_id, std::move(control_lock)),
        controller_type_(controller_type){};

  bool isTorqueControlFinished(const std::optional<const Torques>& control_input);

  research_interface::robot::Move::ControllerMode controller_type_;
};
}  // namespace franka