src
xml_load_and_solve.cpp
Go to the documentation of this file.
1
//
2
// Copyright (c) 2020, University of Oxford
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
//
8
// * Redistributions of source code must retain the above copyright notice,
9
// this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of nor the names of its contributors may be used to
14
// endorse or promote products derived from this software without specific
15
// prior written permission.
16
//
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
// POSSIBILITY OF SUCH DAMAGE.
28
//
29
30
#include <
exotica_core/exotica_core.h
>
31
#include <
ros/ros.h
>
32
33
using namespace
exotica
;
34
35
int
main
(
int
argc,
char
**argv)
36
{
37
if
(argc != 2)
ThrowPretty
(
"No file argument provided."
);
38
39
std::string file_name = argv[1];
40
HIGHLIGHT
(
"Loading from "
<< file_name);
41
// Server::GetParam("ConfigurationFile", file_name);
42
43
if
(file_name.empty())
ThrowPretty
(
"ConfigurationFile not specified!"
);
44
45
ros::init
(argc, argv,
"example_cpp_load_and_solve_node"
);
46
Server::InitRos
(std::shared_ptr<ros::NodeHandle>(
new
ros::NodeHandle
(
"~"
)));
47
MotionSolverPtr
solver =
XMLLoader::LoadSolver
(file_name);
48
49
Eigen::MatrixXd solution;
50
solver->Solve(solution);
51
HIGHLIGHT
(
"Solved in "
<< solver->GetPlanningTime() <<
"s"
);
52
53
solver.reset();
54
55
// Clean up
56
// Run this only after all the exotica classes have been disposed of!
57
Setup::Destroy
();
58
}
exotica_core.h
ros::init
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
ros.h
exotica::Setup::Destroy
static void Destroy()
exotica
exotica::XMLLoader::LoadSolver
static std::shared_ptr< exotica::MotionSolver > LoadSolver(const std::string &file_name)
exotica::Server::InitRos
static void InitRos(std::shared_ptr< ros::NodeHandle > nh, int numThreads=2)
HIGHLIGHT
#define HIGHLIGHT(x)
ThrowPretty
#define ThrowPretty(m)
main
int main(int argc, char **argv)
Definition:
xml_load_and_solve.cpp:35
ros::NodeHandle
MotionSolverPtr
std::shared_ptr< exotica::MotionSolver > MotionSolverPtr
exotica_examples
Author(s):
autogenerated on Fri Aug 2 2024 08:45:27