lib.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2019, CNRS-UM LIRMM
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  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25  * POSSIBILITY OF SUCH DAMAGE.
26  */
27 
29 
30 extern "C"
31 {
32  CONTROLLER_MODULE_API void MC_RTC_CONTROLLER(std::vector<std::string> & names)
33  {
34  CONTROLLER_CHECK_VERSION("LIPMWalking")
35  names.emplace_back("LIPMWalking");
36  }
37 
38  CONTROLLER_MODULE_API void destroy(mc_control::MCController * ptr)
39  {
40  delete ptr;
41  }
42 
43  CONTROLLER_MODULE_API unsigned int create_args_required()
44  {
45  return 4;
46  }
47 
48  CONTROLLER_MODULE_API mc_control::MCController * create(const std::string & name,
49  const mc_rbdyn::RobotModulePtr & robot,
50  const double & dt,
51  const mc_control::Configuration & conf)
52  {
53  return new lipm_walking::Controller(
54  robot, dt, conf, mc_control::ControllerParameters{}.load_robot_config_into({}).overwrite_config(true));
55  }
56 }
CONTROLLER_MODULE_API unsigned int create_args_required()
Definition: lib.cpp:43
CONTROLLER_MODULE_API void MC_RTC_CONTROLLER(std::vector< std::string > &names)
Definition: lib.cpp:32
CONTROLLER_MODULE_API void destroy(mc_control::MCController *ptr)
Definition: lib.cpp:38
CONTROLLER_MODULE_API mc_control::MCController * create(const std::string &name, const mc_rbdyn::RobotModulePtr &robot, const double &dt, const mc_control::Configuration &conf)
Definition: lib.cpp:48
Main controller class.
Definition: Controller.h:61