SMACC2
Loading...
Searching...
No Matches
smacc2_client_library
cl_nav2z
cl_nav2z
src
cl_nav2z
client_behaviors
cb_assisted_teleop.cpp
Go to the documentation of this file.
1
// Copyright 2026 RobosoftAI Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include <
cl_nav2z/client_behaviors/cb_assisted_teleop.hpp
>
16
17
namespace
cl_nav2z
18
{
19
20
CbAssistedTeleop::CbAssistedTeleop
(std::chrono::seconds timeAllowance)
21
: timeAllowance_(timeAllowance)
22
{
23
}
24
25
void
CbAssistedTeleop::onEntry
()
26
{
27
Goal
goal;
28
goal.time_allowance = rclcpp::Duration(
timeAllowance_
);
29
30
if
(
timeAllowance_
.count() > 0)
31
{
32
RCLCPP_INFO(
33
getLogger
(),
"[%s] Assisted teleop for %ld s (collision-guarded, behavior server)"
,
34
getName
().c_str(),
static_cast<
long
>
(
timeAllowance_
.count()));
35
}
36
else
37
{
38
RCLCPP_INFO(
39
getLogger
(),
40
"[%s] Assisted teleop, unlimited window (collision-guarded; ends on cancellation)"
,
41
getName
().c_str());
42
}
43
44
sendGoal
(goal);
45
}
46
47
void
CbAssistedTeleop::onActionAbort
(
const
WrappedResult & result)
48
{
49
if
(
50
result.result !=
nullptr
&&
51
result.result->error_code == nav2_msgs::action::AssistedTeleop::Result::TIMEOUT)
52
{
53
RCLCPP_INFO(
54
getLogger
(),
"[%s] Teleop window completed (time allowance expired) - success"
,
55
getName
().c_str());
56
this->
postSuccessEvent
();
57
return
;
58
}
59
60
smacc2::client_behavior_bases::CbActionClientBehaviorBase
<
61
nav2_msgs::action::AssistedTeleop>
::onActionAbort
(result);
62
}
63
64
}
// namespace cl_nav2z
cb_assisted_teleop.hpp
cl_nav2z::CbAssistedTeleop::CbAssistedTeleop
CbAssistedTeleop(std::chrono::seconds timeAllowance=std::chrono::seconds(30))
Definition
cb_assisted_teleop.cpp:20
cl_nav2z::CbAssistedTeleop::onActionAbort
void onActionAbort(const WrappedResult &result) override
Definition
cb_assisted_teleop.cpp:47
cl_nav2z::CbAssistedTeleop::timeAllowance_
std::chrono::seconds timeAllowance_
Definition
cb_assisted_teleop.hpp:46
cl_nav2z::CbAssistedTeleop::onEntry
void onEntry() override
Definition
cb_assisted_teleop.cpp:25
smacc2::ISmaccClientBehavior::getName
std::string getName() const
Definition
smacc_client_behavior_base.cpp:36
smacc2::ISmaccClientBehavior::getLogger
virtual rclcpp::Logger getLogger() const
Definition
smacc_client_behavior_base.cpp:43
smacc2::SmaccAsyncClientBehavior::postSuccessEvent
void postSuccessEvent()
Definition
smacc_client_async_behavior.cpp:145
smacc2::client_behavior_bases::CbActionClientBehaviorBase
Definition
cb_action_client_behavior_base.hpp:52
smacc2::client_behavior_bases::CbActionClientBehaviorBase< nav2_msgs::action::AssistedTeleop >::Goal
typename nav2_msgs::action::AssistedTeleop::Goal Goal
Definition
cb_action_client_behavior_base.hpp:54
smacc2::client_behavior_bases::CbActionClientBehaviorBase< nav2_msgs::action::AssistedTeleop >::sendGoal
bool sendGoal(Goal &goal)
Definition
cb_action_client_behavior_base.hpp:112
cl_nav2z
Definition
cl_nav2z.hpp:23
Generated by
1.12.0