|
sas
Modularised monitoring, logging, and control of robots.
|
Namespaces | |
| namespace | _core |
| namespace | example_clock |
| namespace | example_clock_sched_fifo |
| namespace | example_robot_driver_subclass |
Classes | |
| class | Clock |
| Clock utility for timing and statistics in control loops. More... | |
| class | Object |
| Base class for SAS objects. More... | |
| class | RobotDriver |
| Abstract interface for robot hardware drivers. More... | |
| class | RobotDriverExample |
| Simple in-memory RobotDriver implementation for testing. More... | |
| struct | RobotDriverExampleConfiguration |
| Configuration for the RobotDriverExample. More... | |
| class | ShutdownSignaler |
| Shutdown coordinator. More... | |
| class | ThreadManager |
Enumerations | |
| enum class | Statistics { Mean } |
| Statistical measures supported by sas_core utilities. More... | |
Functions | |
| std::vector< double > | vectorxd_to_std_vector_double (const Eigen::VectorXd &vectorxd) |
| Convert an Eigen::VectorXd to a std::vector<double>. | |
| std::vector< int > | vectorxi_to_std_vector_int (const Eigen::VectorXi &vectorxi) |
| Convert an Eigen::VectorXi to a std::vector<int>. | |
| Eigen::VectorXd | std_vector_double_to_vectorxd (std::vector< double > std_vector_double) |
| Convert a std::vector<double> to an Eigen::VectorXd. | |
| Eigen::VectorXi | std_vector_int_to_vectorxi (std::vector< int > std_vector_int) |
| Convert a std::vector<int> to an Eigen::VectorXi. | |
| DQ | std_vector_double_to_dq (const std::vector< double > &std_vector_double) |
| Convert a std::vector<double> to a DQ (dual quaternion) object. | |
| template<class T> | |
| constexpr T | incremental_mean (const T ¤t_mean, const int ¤t_number_of_samples, const T &new_sample) |
| incremental_mean a simple implementation of incremental mean, for the many cases in which keeping a vector of all values would be impractical. | |
| Eigen::VectorXd | concatenate (const Eigen::VectorXd &a, const Eigen::VectorXd &b) |
| Concatenate two vectors by appending b after a. | |
| Eigen::VectorXd | concatenate (const std::vector< Eigen::VectorXd > &as) |
| Concatenate a list of vectors into a single vector. | |
| Eigen::MatrixXd | vstack (const Eigen::MatrixXd &A, const Eigen::MatrixXd &B) |
| Stack two matrices vertically (A above B). | |
| Eigen::MatrixXd | block_diag (const std::vector< Eigen::MatrixXd > &As) |
| Create a block-diagonal matrix from a list of matrices. | |
| std::vector< Eigen::VectorXd > | split (const Eigen::VectorXd &a, const std::vector< int > &ns) |
| Split a vector into pieces with sizes specified by ns. | |
@file __init__.py @brief Package entry for the sas_core Python bindings. This module re-exports the primary Python bindings provided by the compiled extension module :mod:`marinholab.sas.core._core`. - Clock: high-resolution timing and sleep class. - Statistics: enumeration for statistical types. - RobotDriver: abstract robot driver interface that can be inherited by Python classes. - ShutdownSignaler: request and wait for orderly shutdown. The concrete implementations live in the compiled extension module ``marinholab.sas.core._core``.
|
strong |
| Eigen::MatrixXd marinholab::sas::core::block_diag | ( | const std::vector< Eigen::MatrixXd > & | As | ) |
Create a block-diagonal matrix from a list of matrices.
block_diag creates a block diagonal matrix using an input of std::vector<Eigen::MatrixXd>. e.g. if As= [A, B, C], then block_diag(As) = |A 0 0| |0 B 0| |0 0 C|
| As | Vector of matrices to place on the block diagonal. |
| As | the std::vector<Eigen::MatrixXd> contaning the matrix to form the block diagonal matrix. |
| Eigen::VectorXd marinholab::sas::core::concatenate | ( | const Eigen::VectorXd & | a, |
| const Eigen::VectorXd & | b ) |
Concatenate two vectors by appending b after a.
concatenate two Eigen::VectorXd.
| a | First vector. |
| b | Second vector. |
| a | a Eigen::VectorXd. |
| b | a Eigen::VectorXd. |
| Eigen::VectorXd marinholab::sas::core::concatenate | ( | const std::vector< Eigen::VectorXd > & | as | ) |
Concatenate a list of vectors into a single vector.
concatenate a std::vector of Eigen::VectorXd.
| as | Vector of vectors to concatenate in order. |
| a | an std::vector of Eigen::VectorXd. |
|
constexpr |
incremental_mean a simple implementation of incremental mean, for the many cases in which keeping a vector of all values would be impractical.
| current_mean | the current value of the mean. |
| current_number_of_samples | the current number of samples, not considering the new_sample. |
| new_sample | the new sample that will change the mean. |
| std::range_error | if current_number_of_samples is negative. |
| std::vector< Eigen::VectorXd > marinholab::sas::core::split | ( | const Eigen::VectorXd & | a, |
| const std::vector< int > & | ns ) |
Split a vector into pieces with sizes specified by ns.
split splits the input Eigen::VectorXd as into a set of subvectors defined by ns.
| a | Vector to split. |
| ns | Sizes of each piece; their sum must equal a.size(). |
| as | the Eigen::VectorXd to be split. |
| ns | the sizes of the subvectors. |
| DQ marinholab::sas::core::std_vector_double_to_dq | ( | const std::vector< double > & | std_vector_double | ) |
Convert a std::vector<double> to a DQ (dual quaternion) object.
| std_vector_double | Source std::vector<double> containing the DQ coefficients. |
| Eigen::VectorXd marinholab::sas::core::std_vector_double_to_vectorxd | ( | std::vector< double > | std_vector_double | ) |
Convert a std::vector<double> to an Eigen::VectorXd.
| std_vector_double | Source std::vector<double>. |
| Eigen::VectorXi marinholab::sas::core::std_vector_int_to_vectorxi | ( | std::vector< int > | std_vector_int | ) |
Convert a std::vector<int> to an Eigen::VectorXi.
| std_vector_int | Source std::vector<int>. |
| std::vector< double > marinholab::sas::core::vectorxd_to_std_vector_double | ( | const Eigen::VectorXd & | vectorxd | ) |
Convert an Eigen::VectorXd to a std::vector<double>.
| vectorxd | Source Eigen vector. |
| std::vector< int > marinholab::sas::core::vectorxi_to_std_vector_int | ( | const Eigen::VectorXi & | vectorxi | ) |
Convert an Eigen::VectorXi to a std::vector<int>.
| vectorxi | Source Eigen integer vector. |
| Eigen::MatrixXd marinholab::sas::core::vstack | ( | const Eigen::MatrixXd & | A, |
| const Eigen::MatrixXd & | B ) |
Stack two matrices vertically (A above B).
vstack vertically (row-wise) stack two Eigen::MatrixXd.
| A | Top matrix. |
| B | Bottom matrix. |
| std::range_error | if A and B have different numbers of columns. |
| A | the first Eigen::MatrixXd. |
| B | the second Eigen::MatrixXd. |
| a | std::range_error if A and B don't have the same number of columns. |