|
sas
Modularised monitoring, logging, and control of robots.
|
Public Member Functions | |
| RobotDriverCoppeliaSim (const RobotDriverCoppeliaSim &)=delete | |
| RobotDriverCoppeliaSim (const RobotDriverCoppeliaSimConfiguration &configuration, std::atomic_bool *break_loops) | |
| VectorXd | get_joint_positions () override |
| RobotDriverMyrobot::get_joint_positions This method should always throw an exception if the user tries to obtain the joint positions in an invalid state. | |
| void | set_target_joint_positions (const VectorXd &desired_joint_positions_rad) override |
| RobotDriverCoppeliaSim::set_target_joint_positions Sets the joint positions and the target joint positions of the joints given in the configuration file. | |
| std::tuple< VectorXd, VectorXd > | get_joint_limits () override |
| Get joint limits (min, max) | |
| void | connect () override |
| RobotDriverCoppeliaSim::connect. | |
| void | disconnect () override |
| RobotDriverCoppeliaSim::disconnect Disconnects from CoppeliaSim. | |
| void | initialize () override |
| RobotDriverCoppeliaSim::initialize. | |
| void | deinitialize () override |
| RobotDriverCoppeliaSim::deinitialize. Nothing to do. | |
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 VectorXd | get_joint_torques () |
| Get current joint torques. | |
| virtual void | set_target_joint_torques (const VectorXd &set_target_joint_torques) |
| Set target joint torques. | |
| 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< ShutdownSignaler > | shutdown_signaler_ |
| std::tuple< VectorXd, VectorXd > | joint_limits_ |
| VectorXd | joint_velocities_ |
| VectorXd | joint_torques_ |
| std::unique_ptr< sas::Clock > | clock_ |
| 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_ |
|
overridevirtual |
RobotDriverCoppeliaSim::connect.
Connect to CoppeliaSim with the necessary information given in the configuration file.
Implements sas::RobotDriver.
|
overridevirtual |
RobotDriverCoppeliaSim::deinitialize. Nothing to do.
Implements sas::RobotDriver.
|
overridevirtual |
RobotDriverCoppeliaSim::disconnect Disconnects from CoppeliaSim.
Implements sas::RobotDriver.
|
overridevirtual |
Get joint limits (min, max)
Reimplemented from sas::RobotDriver.
|
overridevirtual |
RobotDriverMyrobot::get_joint_positions This method should always throw an exception if the user tries to obtain the joint positions in an invalid state.
Everything below this line is an override the concrete implementations are needed
One useful way of defining that is with a VectorXd(), which has by default size zero until it is initialized.
Implements sas::RobotDriver.
|
overridevirtual |
RobotDriverCoppeliaSim::initialize.
Gets the initial joint positions state. This will guarantee that future requests make sense as long as connection is still alive.
Implements sas::RobotDriver.
|
overridevirtual |
RobotDriverCoppeliaSim::set_target_joint_positions Sets the joint positions and the target joint positions of the joints given in the configuration file.
| desired_joint_positions_rad |
Implements sas::RobotDriver.