Point2Point.cpp
Go to the documentation of this file.
1 #include "Point2Point.h"
2 
3 #include <optional>
4 #include <vector>
5 
6 #include <VirtualRobot/Robot.h> // IWYU pragma: keep
7 
9 #include <ArmarXCore/interface/serialization/Eigen/Eigen_fdi.h>
10 
12 
17 #include <armarx/navigation/global_planning/aron/Point2PointParams.aron.generated.h>
20 
22 {
23 
24  // Point2PointParams
25 
28  {
30  }
31 
34  {
35  arondto::Point2PointParams dto;
36 
38  aron_conv::toAron(dto, bo);
39 
40  return dto.toAron();
41  }
42 
45  {
47 
48  arondto::Point2PointParams dto;
49  dto.fromAron(dict);
50 
52  aron_conv::fromAron(dto, bo);
53 
54  return bo;
55  }
56 
57  // Point2Point
58 
60  GlobalPlanner(ctx), params(params)
61  {
62  }
63 
64  std::optional<GlobalPlannerResult>
66  {
67  std::vector<core::GlobalTrajectoryPoint> trajectory;
68 
70  {
71  trajectory.push_back(core::GlobalTrajectoryPoint{
72  .waypoint = core::Waypoint{.pose = core::Pose(scene.robot->getGlobalPose())},
73  .velocity = params.velocity});
74  }
75 
76  trajectory.push_back(core::GlobalTrajectoryPoint{.waypoint = core::Waypoint{.pose = goal},
77  .velocity = params.velocity});
78 
79  return GlobalPlannerResult{.trajectory = trajectory};
80  }
81 
82  std::optional<GlobalPlannerResult>
83  Point2Point::plan(const core::Pose& start, const core::Pose& goal)
84  {
85  std::vector<core::GlobalTrajectoryPoint> trajectory;
86 
88  {
89  trajectory.push_back(core::GlobalTrajectoryPoint{
90  .waypoint = core::Waypoint{.pose = start}, .velocity = params.velocity});
91  }
92 
93  trajectory.push_back(core::GlobalTrajectoryPoint{.waypoint = core::Waypoint{.pose = goal},
94  .velocity = params.velocity});
95 
96  return GlobalPlannerResult{.trajectory = trajectory};
97  }
98 
99 } // namespace armarx::navigation::global_planning
armarx::navigation::core::Scene::robot
VirtualRobot::RobotPtr robot
Definition: types.h:67
armarx::navigation::core::Waypoint::pose
Pose pose
Definition: basic_types.h:50
armarx::navigation::global_planning::Point2PointParams::algorithm
Algorithms algorithm() const override
Definition: Point2Point.cpp:27
aron_conversions.h
armarx::navigation::core::Pose
Eigen::Isometry3f Pose
Definition: basic_types.h:31
armarx::navigation::core::GlobalTrajectoryPoint::waypoint
Waypoint waypoint
Definition: Trajectory.h:39
basic_types.h
armarx::navigation::global_planning::Algorithms::Point2Point
@ Point2Point
see Point2Point
ARMARX_CHECK_NOT_NULL
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
Definition: ExpressionException.h:206
armarx::navigation::global_planning::GlobalPlannerResult::trajectory
core::GlobalTrajectory trajectory
Definition: GlobalPlanner.h:40
armarx::navigation::global_planning::Point2Point::plan
std::optional< GlobalPlannerResult > plan(const core::Pose &goal) override
Definition: Point2Point.cpp:65
armarx::navigation::global_planning::GlobalPlanner::scene
const core::Scene & scene
Definition: GlobalPlanner.h:74
armarx::navigation::global_planning::Point2PointParams::FromAron
static Point2PointParams FromAron(const aron::data::DictPtr &dict)
Definition: Point2Point.cpp:44
Dict.h
armarx::navigation::global_planning::Point2PointParams::toAron
aron::data::DictPtr toAron() const override
Definition: Point2Point.cpp:33
armarx::navigation::global_planning::aron_conv::toAron
void toAron(arondto::GlobalPlannerParams &dto, const GlobalPlannerParams &bo)
Definition: aron_conversions.cpp:22
armarx::navigation::core::GlobalTrajectoryPoint
Definition: Trajectory.h:37
Point2Point.h
armarx::navigation::global_planning::aron_conv::fromAron
void fromAron(const arondto::GlobalPlannerParams &dto, GlobalPlannerParams &bo)
Definition: aron_conversions.cpp:27
armarx::navigation::core::Waypoint
Definition: basic_types.h:48
GlobalPlanner.h
armarx::navigation::global_planning::GlobalPlannerResult
Definition: GlobalPlanner.h:38
armarx::navigation::core::Scene
Definition: types.h:60
ExpressionException.h
armarx::navigation::global_planning::Point2Point::params
const Params params
Definition: Point2Point.h:70
armarx::navigation::global_planning::GlobalPlanner
Definition: GlobalPlanner.h:63
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
armarx::navigation::global_planning::Point2Point::Point2Point
Point2Point(const Params &params, const core::Scene &ctx)
Definition: Point2Point.cpp:59
armarx::navigation::global_planning::Point2PointParams
Parameters for Point2Point.
Definition: Point2Point.h:41
armarx::navigation::global_planning::Point2PointParams::velocity
float velocity
Definition: Point2Point.h:45
core.h
armarx::navigation::global_planning::Algorithms
Algorithms
Definition: core.h:38
Trajectory.h
armarx::navigation::global_planning::Point2PointParams::includeStartPose
bool includeStartPose
Definition: Point2Point.h:43
types.h
armarx::aron::bo
const std::optional< BoT > & bo
Definition: aron_conversions.h:174
armarx::navigation::global_planning
This file is part of ArmarX.
Definition: fwd.h:29