moveit2
The MoveIt Motion Planning Framework for ROS 2.
Loading...
Searching...
No Matches
moveit_setup_assistant
moveit_setup_controllers
src
controllers_config.cpp
Go to the documentation of this file.
1
/*********************************************************************
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2022, Metro Robots
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of Metro Robots nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*********************************************************************/
34
35
/* Author: David V. Lu!! */
36
37
#include <
moveit_setup_controllers/controllers_config.hpp
>
38
#include <
moveit_setup_framework/data/srdf_config.hpp
>
39
#include <
moveit_setup_framework/data_warehouse.hpp
>
40
41
namespace
moveit_setup
42
{
43
namespace
controllers
44
{
45
bool
ControllersConfig::addController
(
const
std::string& name,
const
std::string& type,
46
const
std::vector<std::string>& joint_names)
47
{
48
ControllerInfo
controller;
49
controller.
name_
= name;
50
controller.
type_
= type;
51
controller.
joints_
= joint_names;
52
return
addController
(controller);
53
}
54
55
bool
ControllersConfig::addController
(
const
ControllerInfo
& new_controller)
56
{
57
// Used for holding our search results
58
ControllerInfo
* searched_ros_controller =
nullptr
;
59
60
// Find if there is an existing controller with the same name
61
searched_ros_controller =
findControllerByName
(new_controller.
name_
);
62
63
if
(searched_ros_controller && searched_ros_controller->
type_
== new_controller.
type_
)
64
return
false
;
65
66
controllers_
.push_back(new_controller);
67
return
true
;
68
}
69
70
ControllerInfo
*
ControllersConfig::findControllerByName
(
const
std::string& controller_name)
71
{
72
// Find the Controller we are editing based on the Controller name string
73
ControllerInfo
* searched_ros_controller =
nullptr
;
// used for holding our search results
74
75
for
(
ControllerInfo
& ros_control_config :
controllers_
)
76
{
77
if
(ros_control_config.name_ == controller_name)
// string match
78
{
79
searched_ros_controller = &ros_control_config;
// convert to pointer from iterator
80
break
;
// we are done searching
81
}
82
}
83
84
return
searched_ros_controller;
85
}
86
87
bool
ControllersConfig::deleteController
(
const
std::string& controller_name)
88
{
89
for
(std::vector<ControllerInfo>::iterator controller_it =
controllers_
.begin(); controller_it !=
controllers_
.end();
90
++controller_it)
91
{
92
if
(controller_it->name_ == controller_name)
// string match
93
{
94
controllers_
.erase(controller_it);
95
// we are done searching
96
return
true
;
97
}
98
}
99
return
false
;
100
}
101
}
// namespace controllers
102
}
// namespace moveit_setup
moveit_setup::controllers::ControllersConfig::findControllerByName
ControllerInfo * findControllerByName(const std::string &controller_name)
Definition
controllers_config.cpp:70
moveit_setup::controllers::ControllersConfig::controllers_
std::vector< ControllerInfo > controllers_
Controllers config data.
Definition
controllers_config.hpp:118
moveit_setup::controllers::ControllersConfig::deleteController
bool deleteController(const std::string &controller_name)
Definition
controllers_config.cpp:87
moveit_setup::controllers::ControllersConfig::addController
bool addController(const std::string &name, const std::string &type, const std::vector< std::string > &joint_names)
Adds a controller to controllers_ vector.
Definition
controllers_config.cpp:45
controllers_config.hpp
data_warehouse.hpp
moveit_setup
Definition
launch_bundle.hpp:42
srdf_config.hpp
moveit_setup::controllers::ControllerInfo
Definition
controllers_config.hpp:52
moveit_setup::controllers::ControllerInfo::type_
std::string type_
Definition
controllers_config.hpp:54
moveit_setup::controllers::ControllerInfo::joints_
std::vector< std::string > joints_
Definition
controllers_config.hpp:55
moveit_setup::controllers::ControllerInfo::name_
std::string name_
Definition
controllers_config.hpp:53
Generated by
1.9.8