SocialCostmapBuilder.h
Go to the documentation of this file.
1/**
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Fabian Reister ( fabian dot reister at kit dot edu )
17 * @date 2022
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#pragma once
23
24#include <VirtualRobot/VirtualRobot.h>
25
30
32{
33
35 {
36 public:
37 enum class Mode
38 {
41 };
42
45
47
48 [[nodiscard]] navigation::algorithms::Costmap create(const std::vector<navigation::core::Pose2D>& humans, Mode mode);
49
50 private:
51 static Eigen::MatrixXf createUniformGrid(const navigation::algorithms::SceneBounds& sceneBounds,
53
54 float computeCostMode1(const navigation::core::Position& position,
55 const std::vector<navigation::core::Pose2D>& humanPoses);
56
57 void fillGridCostsMode1(navigation::algorithms::Costmap& costmap, const std::vector<navigation::core::Pose2D>& humanPoses);
58
59 void initializeMask(navigation::algorithms::Costmap& costmap);
60
61 static std::vector<navigation::core::Pose2D> getHumanPoses(const navigation::human::Humans& humans);
62
63 // const VirtualRobot::RobotPtr robot;
66
67 struct HumanPose
68 {
69 const navigation::core::Pose global_T_human;
70 const navigation::core::Pose global_T_hand;
71 };
72 };
73
74} // namespace armarx::navigation::algorithms
navigation::algorithms::Costmap create(const navigation::human::Humans &humans, Mode mode)
SocialCostmapBuilder(const navigation::algorithms::SceneBounds sceneBounds, const navigation::algorithms::Costmap::Parameters &parameters)
Eigen::Isometry3f Pose
Definition basic_types.h:31
Eigen::Vector3f Position
Definition basic_types.h:36
std::vector< Human > Humans
Definition types.h:48