sas
Modularised monitoring, logging, and control of robots.
Loading...
Searching...
No Matches
sas::RobotDriverKuka Class Reference
Inheritance diagram for sas::RobotDriverKuka:
sas::RobotDriver

Public Member Functions

 RobotDriverKuka (const RobotDriverKuka &)=delete
 
 RobotDriverKuka (const RobotDriverKukaConfiguration &configuration, std::atomic_bool *break_loops)
 
VectorXd get_joint_positions () override
 Get current joint positions.
 
void set_target_joint_positions (const VectorXd &desired_joint_positions_rad) override
 Set target joint positions.
 
VectorXd get_joint_torques () override
 Get current joint torques.
 
void connect () override
 Connect to the underlying robot/hardware.
 
void disconnect () override
 Disconnect from the underlying robot/hardware.
 
void initialize () override
 Initialize the driver resources.
 
void deinitialize () override
 Deinitialize the driver resources.
 
- Public Member Functions inherited from sas::RobotDriver
 ~RobotDriver ()
 Virtual destructor for RobotDriver.
 
virtual VectorXd get_joint_velocities ()
 Get current joint velocities.
 
virtual void set_target_joint_velocities (const VectorXd &set_target_joint_velocities)
 Set target joint velocities.
 
virtual void set_target_joint_torques (const VectorXd &set_target_joint_torques)
 Set target joint torques.
 
virtual std::tuple< VectorXd, VectorXd > get_joint_limits ()
 Get joint limits (min, max)
 
virtual void set_joint_limits (const std::tuple< VectorXd, VectorXd > &joint_limits)
 Set joint limits (min, max)
 
void watchdog_start (const std::chrono::nanoseconds &period)
 Start the watchdog thread with the given period.
 
void watchdog_trigger (const std::chrono::time_point< std::chrono::system_clock, std::chrono::nanoseconds > &time_point_from_the_client, const std::chrono::time_point< std::chrono::system_clock, std::chrono::nanoseconds > &time_point_from_the_server, const bool &status)
 Trigger the watchdog with timestamps from client/server and the current status.
 
void watchdog_set_maximum_acceptable_delay (const double &max_acceptable_delay)
 Set the maximum acceptable delay for the watchdog (seconds)
 
void check_for_watchdog_exceptions ()
 Check for exceptions thrown by the watchdog thread and rethrow if present.
 

Additional Inherited Members

- Public Types inherited from sas::RobotDriver
enum class  Functionality {
  None =0 , PositionControl , VelocityControl , ForceControl ,
  Homing , ClearPositions , Watchdog
}
 Enumeration of optional driver functionalities.
 
- Protected Member Functions inherited from sas::RobotDriver
void _watchdog_thread_function ()
 RobotDriver::_watchdog_thread_function throws an exception if the elapsed time since the last trigger exceeds the specified period.
 
 RobotDriver (const std::shared_ptr< ShutdownSignaler > &shutdown_signaler_)
 
 RobotDriver (std::atomic_bool *break_loops)
 
 RobotDriver (const RobotDriver &)=delete
 
- Protected Attributes inherited from sas::RobotDriver
std::atomic_bool * break_loops_
 
std::shared_ptr< ShutdownSignalershutdown_signaler_
 
std::tuple< VectorXd, VectorXd > joint_limits_
 
VectorXd joint_velocities_
 
VectorXd joint_torques_
 
std::unique_ptr< sas::Clockclock_
 
std::unique_ptr< std::thread > watchdog_thread_
 
std::chrono::time_point< std::chrono::system_clock, std::chrono::nanoseconds > time_point_from_the_client_
 
std::chrono::time_point< std::chrono::system_clock, std::chrono::nanoseconds > time_point_from_the_server_
 
bool watchdog_status_
 
std::mutex mutex_watchdog_
 
double max_acceptable_delay_ = 0.1
 
double watchdog_period_
 
std::exception_ptr watchdog_exception_ {nullptr}
 
std::mutex watchdog_exception_mutex_
 

Member Function Documentation

◆ connect()

void sas::RobotDriverKuka::connect ( )
overridevirtual

Connect to the underlying robot/hardware.

Implements sas::RobotDriver.

◆ deinitialize()

void sas::RobotDriverKuka::deinitialize ( )
overridevirtual

Deinitialize the driver resources.

Implements sas::RobotDriver.

◆ disconnect()

void sas::RobotDriverKuka::disconnect ( )
overridevirtual

Disconnect from the underlying robot/hardware.

Implements sas::RobotDriver.

◆ get_joint_positions()

VectorXd sas::RobotDriverKuka::get_joint_positions ( )
overridevirtual

Get current joint positions.

Returns
Vector of joint positions (radians)

Implements sas::RobotDriver.

◆ get_joint_torques()

VectorXd sas::RobotDriverKuka::get_joint_torques ( )
overridevirtual

Get current joint torques.

Returns
Vector of joint torques

Reimplemented from sas::RobotDriver.

◆ initialize()

void sas::RobotDriverKuka::initialize ( )
overridevirtual

Initialize the driver resources.

Implements sas::RobotDriver.

◆ set_target_joint_positions()

void sas::RobotDriverKuka::set_target_joint_positions ( const VectorXd &  set_target_joint_positions_rad)
overridevirtual

Set target joint positions.

Parameters
set_target_joint_positions_radTarget joint positions (radians)

Implements sas::RobotDriver.


The documentation for this class was generated from the following file: