sas
Modularised monitoring, logging, and control of robots.
Loading...
Searching...
No Matches
sas::RobotKinematicsServer Class Reference

Server for robot kinematics topics. More...

#include <sas_robot_kinematics_server.hpp>

Inheritance diagram for sas::RobotKinematicsServer:
sas::Object

Public Member Functions

 RobotKinematicsServer (const RobotKinematicsServer &)=delete
 RobotKinematicsServer (const std::shared_ptr< Node > &node, const std::string &topic_prefix)
 Construct a RobotKinematicsServer.
DQ get_desired_pose () const
 Get the most recently received desired pose.
double get_desired_interpolator_speed () const
 Get the most recently received desired interpolator speed.
bool is_enabled () const
 Check whether the server is enabled (publishers/subscribers active).
void send_pose (const DQ &pose) const
 Publish the current robot pose.
void send_reference_frame (const DQ &reference_frame) const
 Publish the robot's reference frame pose.

Protected Member Functions

void _callback_desired_pose (const geometry_msgs::msg::PoseStamped &msg)
void _callback_desired_interpolator_speed (const sas_msgs::msg::Float64 &msg)

Protected Attributes

std::shared_ptr< Node > node_
std::atomic_bool enabled_
const std::string topic_prefix_
Publisher< geometry_msgs::msg::PoseStamped >::SharedPtr publisher_pose_
Publisher< geometry_msgs::msg::PoseStamped >::SharedPtr publisher_reference_frame_
Subscription< geometry_msgs::msg::PoseStamped >::SharedPtr subscriber_desired_pose_
DQ desired_pose_
Subscription< sas_msgs::msg::Float64 >::SharedPtr subscriber_desired_interpolator_speed_
double desired_interpolator_speed_

Detailed Description

Server for robot kinematics topics.

Publishes the robot's current pose and reference frame, and subscribes to desired poses and desired interpolator speeds. The server stores the most recently received desired values and exposes accessors for them.

Constructor & Destructor Documentation

◆ RobotKinematicsServer()

sas::RobotKinematicsServer::RobotKinematicsServer ( const std::shared_ptr< Node > & node,
const std::string & topic_prefix )

Construct a RobotKinematicsServer.

Parameters
nodeShared pointer to the ROS2 node used for creating publishers/subscribers.
topic_prefixTopic name prefix used for subscriptions and publications.

Member Function Documentation

◆ get_desired_interpolator_speed()

double sas::RobotKinematicsServer::get_desired_interpolator_speed ( ) const

Get the most recently received desired interpolator speed.

Returns
Desired interpolator speed as a double.

◆ get_desired_pose()

DQ sas::RobotKinematicsServer::get_desired_pose ( ) const

Get the most recently received desired pose.

Returns
Desired pose as a dual quaternion (DQ).

◆ is_enabled()

bool sas::RobotKinematicsServer::is_enabled ( ) const

Check whether the server is enabled (publishers/subscribers active).

Returns
true if enabled, false otherwise.

◆ send_pose()

void sas::RobotKinematicsServer::send_pose ( const DQ & pose) const

Publish the current robot pose.

Parameters
posePose to publish (as DQ).

◆ send_reference_frame()

void sas::RobotKinematicsServer::send_reference_frame ( const DQ & reference_frame) const

Publish the robot's reference frame pose.

Parameters
reference_frameReference frame to publish (as DQ).

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