#include <cb_keyboard_twist_teleop.hpp>
◆ CbKeyboardTwistTeleop()
| cl_keyboard::CbKeyboardTwistTeleop::CbKeyboardTwistTeleop |
( |
float | linearStep = 0.15f, |
|
|
float | angularStep = 0.4f, |
|
|
geometry_msgs::msg::Twist | idleTwist = geometry_msgs::msg::Twist() ) |
|
inline |
◆ onArrowPress()
| void cl_keyboard::CbKeyboardTwistTeleop::onArrowPress |
( |
ArrowKey | arrow | ) |
|
|
inlineprivate |
◆ onEntry()
| void cl_keyboard::CbKeyboardTwistTeleop::onEntry |
( |
| ) |
|
|
inlineoverridevirtual |
Reimplemented from smacc2::ISmaccClientBehavior.
Definition at line 49 of file cb_keyboard_twist_teleop.hpp.
50 {
51
52
55
57 {
59 }
60 else
61 {
62 RCLCPP_ERROR(
getLogger(),
"[%s] CpKeyboardListener1 not found",
getName().c_str());
63 }
64
66 {
67 RCLCPP_ERROR(
68 getLogger(),
"[%s] CpTopicPublisher<Twist> not found - create it in the orthogonal",
70 }
71 }
void onArrowPress(ArrowKey arrow)
smacc2::client_core_components::CpTopicPublisher< geometry_msgs::msg::Twist > * twistPublisher_
components::CpKeyboardListener1 * keyboardListener_
void OnArrowPress(void(T::*callback)(ArrowKey arrow), T *object)
std::string getName() const
virtual rclcpp::Logger getLogger() const
void requiresComponent(SmaccComponentType *&storage, ComponentRequirement requirementType=ComponentRequirement::SOFT)
References smacc2::ISmaccClientBehavior::getLogger(), smacc2::ISmaccClientBehavior::getName(), keyboardListener_, cl_keyboard::components::CpKeyboardListener1::OnArrowPress(), onArrowPress(), smacc2::ISmaccClientBehavior::requiresComponent(), and twistPublisher_.
◆ onExit()
| void cl_keyboard::CbKeyboardTwistTeleop::onExit |
( |
| ) |
|
|
inlineoverridevirtual |
◆ update()
| void cl_keyboard::CbKeyboardTwistTeleop::update |
( |
| ) |
|
|
inlineoverridevirtual |
Implements smacc2::ISmaccUpdatable.
Definition at line 82 of file cb_keyboard_twist_teleop.hpp.
83 {
85 {
86 return;
87 }
88
89 geometry_msgs::msg::Twist out;
90 bool held;
91 {
92 std::lock_guard<std::mutex> lock(
mutex_);
93 auto now = std::chrono::steady_clock::now();
96 }
98
99 RCLCPP_INFO_THROTTLE(
101 "[%s] publishing %s twist: linear=%.2f angular=%.2f",
getName().c_str(),
102 held ? "held" : "idle", out.linear.x, out.angular.z);
103 }
std::chrono::milliseconds deadman_
virtual rclcpp::Node::SharedPtr getNode() const
References deadman_, smacc2::ISmaccClientBehavior::getLogger(), smacc2::ISmaccClientBehavior::getName(), smacc2::ISmaccClientBehavior::getNode(), heldTwist_, idleTwist_, lastArrowTime_, mutex_, smacc2::client_core_components::CpTopicPublisher< MessageType >::publish(), and twistPublisher_.
◆ angularStep_
| float cl_keyboard::CbKeyboardTwistTeleop::angularStep_ |
|
private |
◆ deadman_
| std::chrono::milliseconds cl_keyboard::CbKeyboardTwistTeleop::deadman_ {350} |
|
private |
◆ heldTwist_
| geometry_msgs::msg::Twist cl_keyboard::CbKeyboardTwistTeleop::heldTwist_ |
|
private |
◆ idleTwist_
| geometry_msgs::msg::Twist cl_keyboard::CbKeyboardTwistTeleop::idleTwist_ |
|
private |
◆ keyboardListener_
◆ lastArrowTime_
| std::optional<std::chrono::steady_clock::time_point> cl_keyboard::CbKeyboardTwistTeleop::lastArrowTime_ |
|
private |
◆ linearStep_
| float cl_keyboard::CbKeyboardTwistTeleop::linearStep_ |
|
private |
◆ mutex_
| std::mutex cl_keyboard::CbKeyboardTwistTeleop::mutex_ |
|
private |
◆ twistPublisher_
The documentation for this class was generated from the following file: