Program Listing for File gripper.h

Return to documentation for file (include/franka/gripper.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 <cstdint>
#include <memory>
#include <string>

#include <franka/gripper_state.h>

namespace franka {

class Network;

class Gripper {
 public:
  using ServerVersion = uint16_t;

  explicit Gripper(const std::string& franka_address);

  Gripper(Gripper&& gripper) noexcept;

  Gripper& operator=(Gripper&& gripper) noexcept;

  ~Gripper() noexcept;

  bool homing() const;

  bool grasp(double width,
             double speed,
             double force,
             double epsilon_inner = 0.005,
             double epsilon_outer = 0.005) const;

  bool move(double width, double speed) const;

  bool stop() const;

  GripperState readOnce() const;

  ServerVersion serverVersion() const noexcept;

  Gripper(const Gripper&) = delete;
  Gripper& operator=(const Gripper&) = delete;

 private:
  std::unique_ptr<Network> network_;

  uint16_t ri_version_;
};

}  // namespace franka