-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #575 from ami-iit/clock/ros2
Design the ROS2 implementation for Clock class
- Loading branch information
Showing
16 changed files
with
449 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
bindings/python/System/include/BipedalLocomotion/bindings/System/RosClock.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/** | ||
* @file RosClock.h | ||
* @authors Giulio Romualdi | ||
* @copyright 2022 Istituto Italiano di Tecnologia (IIT). This software may be modified and | ||
* distributed under the terms of the BSD-3-Clause license. | ||
*/ | ||
|
||
#ifndef BIPEDAL_LOCOMOTION_BINDINGS_SYSTEM_ROS_CLOCK_H | ||
#define BIPEDAL_LOCOMOTION_BINDINGS_SYSTEM_ROS_CLOCK_H | ||
|
||
#include <pybind11/pybind11.h> | ||
|
||
namespace BipedalLocomotion | ||
{ | ||
namespace bindings | ||
{ | ||
namespace System | ||
{ | ||
|
||
void CreateRosClock(pybind11::module& module); | ||
void CreateRosClockFactory(pybind11::module& module); | ||
|
||
} // namespace System | ||
} // namespace bindings | ||
} // namespace BipedalLocomotion | ||
|
||
#endif // BIPEDAL_LOCOMOTION_BINDINGS_SYSTEM_ROS_CLOCK_H |
26 changes: 26 additions & 0 deletions
26
bindings/python/System/include/BipedalLocomotion/bindings/System/RosModule.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/** | ||
* @file RosModule.h | ||
* @authors Giulio Romualdi | ||
* @copyright 2022 Istituto Italiano di Tecnologia (IIT). This software may be modified and | ||
* distributed under the terms of the BSD-3-Clause license. | ||
*/ | ||
|
||
#ifndef BIPEDAL_LOCOMOTION_BINDINGS_SYSTEM_ROS_MODULE_H | ||
#define BIPEDAL_LOCOMOTION_BINDINGS_SYSTEM_ROS_MODULE_H | ||
|
||
#include <pybind11/pybind11.h> | ||
|
||
namespace BipedalLocomotion | ||
{ | ||
namespace bindings | ||
{ | ||
namespace System | ||
{ | ||
|
||
void CreateRosModule(pybind11::module& module); | ||
|
||
} // namespace System | ||
} // namespace bindings | ||
} // namespace BipedalLocomotion | ||
|
||
#endif // BIPEDAL_LOCOMOTION_BINDINGS_SYSTEM_ROS_MODULE_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
/** | ||
* @file RosClock.cpp | ||
* @authors Giulio Romualdi | ||
* @copyright 2022 Istituto Italiano di Tecnologia (IIT). This software may be modified and | ||
* distributed under the terms of the BSD-3-Clause license. | ||
*/ | ||
|
||
#include <pybind11/cast.h> | ||
#include <pybind11/chrono.h> | ||
#include <pybind11/pybind11.h> | ||
#include <pybind11/stl.h> | ||
|
||
#include <BipedalLocomotion/System/RosClock.h> | ||
#include <BipedalLocomotion/bindings/System/RosClock.h> | ||
|
||
namespace BipedalLocomotion | ||
{ | ||
namespace bindings | ||
{ | ||
namespace System | ||
{ | ||
|
||
void CreateRosClock(pybind11::module& module) | ||
{ | ||
namespace py = ::pybind11; | ||
|
||
py::class_<::BipedalLocomotion::System::RosClock, | ||
::BipedalLocomotion::System::IClock>(module, "RosClock"); | ||
} | ||
|
||
void CreateRosClockFactory(pybind11::module& module) | ||
{ | ||
namespace py = ::pybind11; | ||
|
||
py::class_<::BipedalLocomotion::System::RosClockFactory, | ||
::BipedalLocomotion::System::ClockFactory, | ||
std::shared_ptr<::BipedalLocomotion::System::RosClockFactory>>(module, | ||
"RosClockFactory") | ||
.def(py::init<const std::vector<std::string>&>(), py::arg("args")); | ||
; | ||
} | ||
|
||
} // namespace System | ||
} // namespace bindings | ||
} // namespace BipedalLocomotion |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/** | ||
* @file RosModule.cpp | ||
* @authors Giulio Romualdi | ||
* @copyright 2022 Istituto Italiano di Tecnologia (IIT). This software may be modified and | ||
* distributed under the terms of the BSD-3-Clause license. | ||
*/ | ||
|
||
#include <pybind11/pybind11.h> | ||
|
||
#include <BipedalLocomotion/bindings/System/RosClock.h> | ||
#include <BipedalLocomotion/bindings/System/RosModule.h> | ||
|
||
namespace BipedalLocomotion | ||
{ | ||
namespace bindings | ||
{ | ||
namespace System | ||
{ | ||
void CreateRosModule(pybind11::module& module) | ||
{ | ||
CreateRosClock(module); | ||
CreateRosClockFactory(module); | ||
} | ||
} // namespace System | ||
} // namespace bindings | ||
} // namespace BipedalLocomotion |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,70 +1,92 @@ | ||
#.rst: | ||
# AddUninstallTarget | ||
# ------------------ | ||
# | ||
# Add the "uninstall" target for your project:: | ||
# | ||
# include(AddUninstallTarget) | ||
# | ||
# | ||
# will create a file cmake_uninstall.cmake in the build directory and add a | ||
# custom target uninstall that will remove the files installed by your package | ||
# (using install_manifest.txt) | ||
|
||
#============================================================================= | ||
# Copyright 2008-2013 Kitware, Inc. | ||
# Copyright 2013 iCub Facility, Istituto Italiano di Tecnologia | ||
# Authors: Daniele E. Domenichelli <daniele.domenichelli@iit.it> | ||
# | ||
# Distributed under the OSI-approved BSD License (the "License"); | ||
# see accompanying file Copyright.txt for details. | ||
# | ||
# This software is distributed WITHOUT ANY WARRANTY; without even the | ||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
# See the License for more information. | ||
#============================================================================= | ||
# (To distribute this file outside of CMake, substitute the full | ||
# License text for the above reference.) | ||
|
||
|
||
if(DEFINED __ADD_UNINSTALL_TARGET_INCLUDED) | ||
# SPDX-FileCopyrightText: 2012-2021 Istituto Italiano di Tecnologia (IIT) | ||
# SPDX-FileCopyrightText: 2008-2013 Kitware Inc. | ||
# SPDX-License-Identifier: BSD-3-Clause | ||
|
||
#[=======================================================================[.rst: | ||
AddUninstallTarget | ||
------------------ | ||
Add the "uninstall" target for your project:: | ||
include(AddUninstallTarget) | ||
will create a file ``cmake_uninstall.cmake`` in the build directory and add a | ||
custom target ``uninstall`` (or ``UNINSTALL`` on Visual Studio and Xcode) that | ||
will remove the files installed by your package (using | ||
``install_manifest.txt``). | ||
See also | ||
https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake | ||
The :module:`AddUninstallTarget` module must be included in your main | ||
``CMakeLists.txt``. If included in a subdirectory it does nothing. | ||
This allows you to use it safely in your main ``CMakeLists.txt`` and include | ||
your project using ``add_subdirectory`` (for example when using it with | ||
:cmake:module:`FetchContent`). | ||
If the ``uninstall`` target already exists, the module does nothing. | ||
#]=======================================================================] | ||
|
||
|
||
# AddUninstallTarget works only when included in the main CMakeLists.txt | ||
if(NOT "${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") | ||
return() | ||
endif() | ||
|
||
# The name of the target is uppercase in MSVC and Xcode (for coherence with the | ||
# other standard targets) | ||
if("${CMAKE_GENERATOR}" MATCHES "^(Visual Studio|Xcode)") | ||
set(_uninstall "UNINSTALL") | ||
else() | ||
set(_uninstall "uninstall") | ||
endif() | ||
|
||
# If target is already defined don't do anything | ||
if(TARGET ${_uninstall}) | ||
return() | ||
endif() | ||
set(__ADD_UNINSTALL_TARGET_INCLUDED TRUE) | ||
|
||
|
||
set(_filename ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) | ||
set(_filename cmake_uninstall.cmake) | ||
|
||
file(WRITE ${_filename} | ||
"if(NOT EXISTS \"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\") | ||
message(WARNING \"Cannot find install manifest: \\\"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\\\"\") | ||
return() | ||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${_filename}" | ||
"if(NOT EXISTS \"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\") | ||
message(WARNING \"Cannot find install manifest: \\\"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\\\"\") | ||
return() | ||
endif() | ||
file(READ \"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\" files) | ||
string(STRIP \"\${files}\" files) | ||
string(REGEX REPLACE \"\\n\" \";\" files \"\${files}\") | ||
list(REVERSE files) | ||
foreach(file \${files}) | ||
if(IS_SYMLINK \"\$ENV{DESTDIR}\${file}\" OR EXISTS \"\$ENV{DESTDIR}\${file}\") | ||
message(STATUS \"Uninstalling: \$ENV{DESTDIR}\${file}\") | ||
if(EXISTS \"\$ENV{DESTDIR}\${file}\") | ||
execute_process( | ||
COMMAND \${CMAKE_COMMAND} -E remove \"\$ENV{DESTDIR}\${file}\" | ||
OUTPUT_VARIABLE rm_out | ||
RESULT_VARIABLE rm_retval) | ||
if(NOT \"\${rm_retval}\" EQUAL 0) | ||
message(FATAL_ERROR \"Problem when removing \\\"\$ENV{DESTDIR}\${file}\\\"\") | ||
endif() | ||
else() | ||
message(STATUS \"File \\\"\$ENV{DESTDIR}\${file}\\\" does not exist.\") | ||
execute_process( | ||
COMMAND \${CMAKE_COMMAND} -E remove \"\$ENV{DESTDIR}\${file}\" | ||
OUTPUT_VARIABLE rm_out | ||
RESULT_VARIABLE rm_retval) | ||
if(NOT \"\${rm_retval}\" EQUAL 0) | ||
message(FATAL_ERROR \"Problem when removing \\\"\$ENV{DESTDIR}\${file}\\\"\") | ||
endif() | ||
else() | ||
message(STATUS \"Not-found: \$ENV{DESTDIR}\${file}\") | ||
endif() | ||
endforeach(file) | ||
") | ||
|
||
if("${CMAKE_GENERATOR}" MATCHES "^(Visual Studio|Xcode)") | ||
set(_uninstall "UNINSTALL") | ||
set(_desc "Uninstall the project...") | ||
if(CMAKE_GENERATOR STREQUAL "Unix Makefiles") | ||
set(_comment COMMAND \$\(CMAKE_COMMAND\) -E cmake_echo_color --switch=$\(COLOR\) --cyan "${_desc}") | ||
else() | ||
set(_uninstall "uninstall") | ||
set(_comment COMMENT "${_desc}") | ||
endif() | ||
add_custom_target(${_uninstall} COMMAND "${CMAKE_COMMAND}" -P "${_filename}") | ||
add_custom_target(${_uninstall} | ||
${_comment} | ||
COMMAND ${CMAKE_COMMAND} -P ${_filename} | ||
USES_TERMINAL | ||
BYPRODUCTS uninstall_byproduct | ||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") | ||
set_property(SOURCE uninstall_byproduct PROPERTY SYMBOLIC 1) | ||
|
||
set_property(TARGET ${_uninstall} PROPERTY FOLDER "CMakePredefinedTargets") |
Oops, something went wrong.