IceNavigator.cpp
Go to the documentation of this file.
1 #include "IceNavigator.h"
2 
3 #include <algorithm>
4 #include <iterator>
5 #include <string>
6 #include <vector>
7 
9 
11 #include <armarx/navigation/client/ice/NavigatorInterface.h>
15 
17 {
18 
19  std::vector<Eigen::Matrix4f>
20  convert(const std::vector<armarx::navigation::core::Pose>& ps)
21  {
22  using namespace armarx::navigation;
23  std::vector<Eigen::Matrix4f> ms;
24  ms.reserve(ps.size());
26  ps.begin(), ps.end(), std::back_inserter(ms), [](const auto& p) { return p.matrix(); });
27  return ms;
28  }
29 
31  {
32  // pass
33  }
34 
35  IceNavigator::IceNavigator(const NavigatorInterfacePrx& navigator) : navigator(navigator)
36  {
37  // pass
38  }
39 
41  {
42  // pass
43  }
44 
45  void
46  IceNavigator::setNavigatorComponent(const NavigatorInterfacePrx& navigator)
47  {
48  this->navigator = navigator;
49  }
50 
51  void
53  const std::string& configId)
54  {
56  this->configId = configId;
57  navigator->createConfig(config.toAron(), configId);
58  }
59 
60  void
61  IceNavigator::moveTo(const std::vector<core::Pose>& waypoints,
62  core::NavigationFrame navigationFrame)
63  {
65 
66  navigator->begin_moveTo(
67  convert(waypoints), core::NavigationFrameNames.to_name(navigationFrame), configId);
68  }
69 
70  void
71  IceNavigator::moveTo(const std::vector<client::WaypointTarget>& targets,
72  core::NavigationFrame navigationFrame)
73  {
75 
76  navigator->moveTo2(
77  freeze(targets), core::NavigationFrameNames.to_name(navigationFrame), configId);
78  }
79 
80  void
81  IceNavigator::moveToLocation(const std::string& location)
82  {
84  navigator->moveToLocation(location, configId);
85  }
86 
87  void
89  core::NavigationFrame navigationFrame)
90  {
92 
93  navigator->moveTowards(
94  direction, core::NavigationFrameNames.to_name(navigationFrame), configId);
95  }
96 
97  void
98  IceNavigator::update(const std::vector<core::Pose>& waypoints,
99  core::NavigationFrame navigationFrame)
100  {
101  ARMARX_TRACE;
102 
103  navigator->updateMoveTo(
104  convert(waypoints), core::NavigationFrameNames.to_name(navigationFrame), configId);
105  }
106 
107  void
109  {
110  navigator->pause(configId);
111  }
112 
113  void
115  {
116  navigator->resume(configId);
117  }
118 
119  void
121  {
122  navigator->stop(configId);
123  }
124 
125  bool
126  IceNavigator::isPaused() const noexcept
127  {
128  return navigator->isPaused(configId);
129  }
130 
131  bool
132  IceNavigator::isStopped() const noexcept
133  {
134  return navigator->isStopped(configId);
135  }
136 
137 
138 } // namespace armarx::navigation::client
ice_conversions.h
armarx::navigation::client::IceNavigator::resume
void resume() override
Definition: IceNavigator.cpp:114
armarx::navigation::client::IceNavigator::IceNavigator
IceNavigator()
Definition: IceNavigator.cpp:30
armarx::navigation::client::IceNavigator::update
void update(const std::vector< core::Pose > &waypoints, core::NavigationFrame navigationFrame) override
Definition: IceNavigator.cpp:98
armarx::navigation::client::IceNavigator::setNavigatorComponent
void setNavigatorComponent(const NavigatorInterfacePrx &navigator)
Definition: IceNavigator.cpp:46
armarx::navigation::client::IceNavigator::pause
void pause() override
Definition: IceNavigator.cpp:108
armarx::navigation::client::NavigationStackConfig::toAron
aron::data::dto::DictPtr toAron() const
Definition: NavigationStackConfig.cpp:32
armarx::navigation::client::IceNavigator::isPaused
bool isPaused() const noexcept override
Definition: IceNavigator.cpp:126
armarx::navigation::core::NavigationFrame
NavigationFrame
Definition: types.h:42
basic_types.h
armarx::navigation::client::freeze
client::detail::GlobalPlanningStrategy freeze(const client::GlobalPlanningStrategy &strategy)
Definition: ice_conversions.cpp:84
armarx::navigation::client::IceNavigator::moveToLocation
void moveToLocation(const std::string &location) override
Definition: IceNavigator.cpp:81
trace.h
armarx::navigation::client
This file is part of ArmarX.
Definition: ComponentPlugin.cpp:21
armarx::navigation::client::IceNavigator::~IceNavigator
~IceNavigator() override
Definition: IceNavigator.cpp:40
armarx::navigation::client::NavigationStackConfig
Definition: NavigationStackConfig.h:49
armarx::navigation
This file is part of ArmarX.
Definition: aron_conversions.cpp:25
armarx::navigation::core::NavigationFrameNames
const simox::meta::EnumNames< NavigationFrame > NavigationFrameNames
Definition: types.h:48
ARMARX_TRACE
#define ARMARX_TRACE
Definition: trace.h:77
armarx::navigation::client::IceNavigator::isStopped
bool isStopped() const noexcept override
Definition: IceNavigator.cpp:132
NavigationStackConfig.h
IceNavigator.h
armarx::transform
auto transform(const Container< InputT, Alloc > &in, OutputT(*func)(InputT const &)) -> Container< OutputT, typename std::allocator_traits< Alloc >::template rebind_alloc< OutputT >>
Convenience function (with less typing) to transform a container of type InputT into the same contain...
Definition: algorithm.h:351
armarx::navigation::client::IceNavigator::stop
void stop() override
Definition: IceNavigator.cpp:120
armarx::navigation::client::IceNavigator::moveTowards
void moveTowards(const core::Direction &direction, core::NavigationFrame navigationFrame) override
Definition: IceNavigator.cpp:88
armarx::navigation::core::Direction
Eigen::Vector3f Direction
Definition: basic_types.h:39
armarx::navigation::client::IceNavigator::createConfig
void createConfig(const client::NavigationStackConfig &config, const std::string &configId)
Definition: IceNavigator.cpp:52
armarx::navigation::client::convert
std::vector< Eigen::Matrix4f > convert(const std::vector< armarx::navigation::core::Pose > &ps)
Definition: IceNavigator.cpp:20
armarx::navigation::client::IceNavigator::moveTo
void moveTo(const std::vector< core::Pose > &waypoints, core::NavigationFrame navigationFrame) override
Definition: IceNavigator.cpp:61
types.h