94 changed files with 3424 additions and 354 deletions
@ -1,25 +1,42 @@ |
|||
detect_targets |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/__init__.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/__init__.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/msg/_control.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/msg/_control.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/msg/_component_centers.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/msg/_component_centers.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/msg/__init__.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/msg/__init__.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/msg/_component_center.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/msg/_component_center.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/cfg/__init__.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/cfg/__init__.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/cfg/TriangleParamConfig.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/cfg/TriangleParamConfig.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/python2.7/dist-packages/detect_targets/cfg/DetectTargetsConfig.py /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/python2.7/dist-packages/detect_targets/cfg/DetectTargetsConfig.py |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/lib/pkgconfig/detect_targets.pc /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/lib/pkgconfig/detect_targets.pc |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/DetectTargetsConfig.h /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/include/detect_targets/DetectTargetsConfig.h |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/component_centers.h /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/include/detect_targets/component_centers.h |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/control.h /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/include/detect_targets/control.h |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/TriangleParamConfig.h /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/include/detect_targets/TriangleParamConfig.h |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/component_center.h /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/include/detect_targets/component_center.h |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/DetectTargetsConfig-usage.dox /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/docs/DetectTargetsConfig-usage.dox |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/TriangleParamConfig.wikidoc /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/docs/TriangleParamConfig.wikidoc |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/DetectTargetsConfig.wikidoc /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/docs/DetectTargetsConfig.wikidoc |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/TriangleParamConfig.dox /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/docs/TriangleParamConfig.dox |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/DetectTargetsConfig.dox /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/docs/DetectTargetsConfig.dox |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/TriangleParamConfig-usage.dox /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/docs/TriangleParamConfig-usage.dox |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/cmake/detect_targets-msg-extras.cmake /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/cmake/detect_targets-msg-extras.cmake |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/cmake/detect_targets-msg-paths.cmake /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/cmake/detect_targets-msg-paths.cmake |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/cmake/detect_targetsConfig.cmake /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/cmake/detect_targetsConfig.cmake |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/cmake/detect_targetsConfig-version.cmake /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/detect_targets/cmake/detect_targetsConfig-version.cmake |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/roseus/ros/detect_targets/manifest.l /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/roseus/ros/detect_targets/manifest.l |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/roseus/ros/detect_targets/msg/control.l /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/roseus/ros/detect_targets/msg/control.l |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/roseus/ros/detect_targets/msg/component_center.l /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/roseus/ros/detect_targets/msg/component_center.l |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/roseus/ros/detect_targets/msg/component_centers.l /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/roseus/ros/detect_targets/msg/component_centers.l |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/gennodejs/ros/detect_targets/_index.js /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/gennodejs/ros/detect_targets/_index.js |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/gennodejs/ros/detect_targets/msg/component_centers.js /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/gennodejs/ros/detect_targets/msg/component_centers.js |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/gennodejs/ros/detect_targets/msg/_index.js /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/gennodejs/ros/detect_targets/msg/_index.js |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/gennodejs/ros/detect_targets/msg/control.js /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/gennodejs/ros/detect_targets/msg/control.js |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/gennodejs/ros/detect_targets/msg/component_center.js /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/gennodejs/ros/detect_targets/msg/component_center.js |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/control.lisp /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/control.lisp |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/_package_component_center.lisp /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/_package_component_center.lisp |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/_package.lisp /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/_package.lisp |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/component_centers.lisp /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/component_centers.lisp |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/detect_targets-msg.asd /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/detect_targets-msg.asd |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/component_center.lisp /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/component_center.lisp |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/_package_component_centers.lisp /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/_package_component_centers.lisp |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/_package_control.lisp /home/klafyvel/Documents/supelec/2A/projet/workspace/devel/share/common-lisp/ros/detect_targets/msg/_package_control.lisp |
|||
|
|||
@ -0,0 +1,11 @@ |
|||
# The set of languages for which implicit dependencies are needed: |
|||
set(CMAKE_DEPENDS_LANGUAGES |
|||
) |
|||
# The set of files for implicit dependencies of each language: |
|||
|
|||
# Targets to which this target links. |
|||
set(CMAKE_TARGET_LINKED_INFO_FILES |
|||
) |
|||
|
|||
# Fortran module output directory. |
|||
set(CMAKE_Fortran_TARGET_MODULE_DIR "") |
|||
@ -0,0 +1,76 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.10 |
|||
|
|||
# Delete rule output on recipe failure. |
|||
.DELETE_ON_ERROR: |
|||
|
|||
|
|||
#============================================================================= |
|||
# Special targets provided by cmake. |
|||
|
|||
# Disable implicit rules so canonical targets will work. |
|||
.SUFFIXES: |
|||
|
|||
|
|||
# Remove some rules from gmake that .SUFFIXES does not remove. |
|||
SUFFIXES = |
|||
|
|||
.SUFFIXES: .hpux_make_needs_suffix_list |
|||
|
|||
|
|||
# Suppress display of executed commands. |
|||
$(VERBOSE).SILENT: |
|||
|
|||
|
|||
# A target that is always out of date. |
|||
cmake_force: |
|||
|
|||
.PHONY : cmake_force |
|||
|
|||
#============================================================================= |
|||
# Set environment variables for the build. |
|||
|
|||
# The shell in which to execute make rules. |
|||
SHELL = /bin/sh |
|||
|
|||
# The CMake executable. |
|||
CMAKE_COMMAND = /usr/bin/cmake |
|||
|
|||
# The command to remove a file. |
|||
RM = /usr/bin/cmake -E remove -f |
|||
|
|||
# Escaping for special characters. |
|||
EQUALS = = |
|||
|
|||
# The top-level source directory on which CMake was run. |
|||
CMAKE_SOURCE_DIR = /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets |
|||
|
|||
# The top-level build directory on which CMake was run. |
|||
CMAKE_BINARY_DIR = /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets |
|||
|
|||
# Utility rule file for _detect_targets_generate_messages_check_deps_component_center. |
|||
|
|||
# Include the progress variables for this target. |
|||
include CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/progress.make |
|||
|
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_component_center: |
|||
catkin_generated/env_cached.sh /usr/bin/python2 /opt/ros/melodic/share/genmsg/cmake/../../../lib/genmsg/genmsg_check_deps.py detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/component_center.msg |
|||
|
|||
_detect_targets_generate_messages_check_deps_component_center: CMakeFiles/_detect_targets_generate_messages_check_deps_component_center |
|||
_detect_targets_generate_messages_check_deps_component_center: CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/build.make |
|||
|
|||
.PHONY : _detect_targets_generate_messages_check_deps_component_center |
|||
|
|||
# Rule to build all files generated by this target. |
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/build: _detect_targets_generate_messages_check_deps_component_center |
|||
|
|||
.PHONY : CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/build |
|||
|
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/clean: |
|||
$(CMAKE_COMMAND) -P CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/cmake_clean.cmake |
|||
.PHONY : CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/clean |
|||
|
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/depend: |
|||
cd /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets/CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/DependInfo.cmake --color=$(COLOR) |
|||
.PHONY : CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/depend |
|||
|
|||
@ -0,0 +1,8 @@ |
|||
file(REMOVE_RECURSE |
|||
"CMakeFiles/_detect_targets_generate_messages_check_deps_component_center" |
|||
) |
|||
|
|||
# Per-language clean rules from dependency scanning. |
|||
foreach(lang ) |
|||
include(CMakeFiles/_detect_targets_generate_messages_check_deps_component_center.dir/cmake_clean_${lang}.cmake OPTIONAL) |
|||
endforeach() |
|||
@ -0,0 +1,3 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.10 |
|||
|
|||
@ -0,0 +1,3 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.10 |
|||
|
|||
@ -0,0 +1 @@ |
|||
|
|||
@ -0,0 +1,11 @@ |
|||
# The set of languages for which implicit dependencies are needed: |
|||
set(CMAKE_DEPENDS_LANGUAGES |
|||
) |
|||
# The set of files for implicit dependencies of each language: |
|||
|
|||
# Targets to which this target links. |
|||
set(CMAKE_TARGET_LINKED_INFO_FILES |
|||
) |
|||
|
|||
# Fortran module output directory. |
|||
set(CMAKE_Fortran_TARGET_MODULE_DIR "") |
|||
@ -0,0 +1,76 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.10 |
|||
|
|||
# Delete rule output on recipe failure. |
|||
.DELETE_ON_ERROR: |
|||
|
|||
|
|||
#============================================================================= |
|||
# Special targets provided by cmake. |
|||
|
|||
# Disable implicit rules so canonical targets will work. |
|||
.SUFFIXES: |
|||
|
|||
|
|||
# Remove some rules from gmake that .SUFFIXES does not remove. |
|||
SUFFIXES = |
|||
|
|||
.SUFFIXES: .hpux_make_needs_suffix_list |
|||
|
|||
|
|||
# Suppress display of executed commands. |
|||
$(VERBOSE).SILENT: |
|||
|
|||
|
|||
# A target that is always out of date. |
|||
cmake_force: |
|||
|
|||
.PHONY : cmake_force |
|||
|
|||
#============================================================================= |
|||
# Set environment variables for the build. |
|||
|
|||
# The shell in which to execute make rules. |
|||
SHELL = /bin/sh |
|||
|
|||
# The CMake executable. |
|||
CMAKE_COMMAND = /usr/bin/cmake |
|||
|
|||
# The command to remove a file. |
|||
RM = /usr/bin/cmake -E remove -f |
|||
|
|||
# Escaping for special characters. |
|||
EQUALS = = |
|||
|
|||
# The top-level source directory on which CMake was run. |
|||
CMAKE_SOURCE_DIR = /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets |
|||
|
|||
# The top-level build directory on which CMake was run. |
|||
CMAKE_BINARY_DIR = /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets |
|||
|
|||
# Utility rule file for _detect_targets_generate_messages_check_deps_control. |
|||
|
|||
# Include the progress variables for this target. |
|||
include CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/progress.make |
|||
|
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_control: |
|||
catkin_generated/env_cached.sh /usr/bin/python2 /opt/ros/melodic/share/genmsg/cmake/../../../lib/genmsg/genmsg_check_deps.py detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/control.msg |
|||
|
|||
_detect_targets_generate_messages_check_deps_control: CMakeFiles/_detect_targets_generate_messages_check_deps_control |
|||
_detect_targets_generate_messages_check_deps_control: CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/build.make |
|||
|
|||
.PHONY : _detect_targets_generate_messages_check_deps_control |
|||
|
|||
# Rule to build all files generated by this target. |
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/build: _detect_targets_generate_messages_check_deps_control |
|||
|
|||
.PHONY : CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/build |
|||
|
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/clean: |
|||
$(CMAKE_COMMAND) -P CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/cmake_clean.cmake |
|||
.PHONY : CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/clean |
|||
|
|||
CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/depend: |
|||
cd /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets /home/klafyvel/Documents/supelec/2A/projet/workspace/build/detect_targets/CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/DependInfo.cmake --color=$(COLOR) |
|||
.PHONY : CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/depend |
|||
|
|||
@ -0,0 +1,8 @@ |
|||
file(REMOVE_RECURSE |
|||
"CMakeFiles/_detect_targets_generate_messages_check_deps_control" |
|||
) |
|||
|
|||
# Per-language clean rules from dependency scanning. |
|||
foreach(lang ) |
|||
include(CMakeFiles/_detect_targets_generate_messages_check_deps_control.dir/cmake_clean_${lang}.cmake OPTIONAL) |
|||
endforeach() |
|||
@ -0,0 +1,3 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.10 |
|||
|
|||
@ -0,0 +1,3 @@ |
|||
# CMAKE generated file: DO NOT EDIT! |
|||
# Generated by "Unix Makefiles" Generator, CMake Version 3.10 |
|||
|
|||
@ -0,0 +1 @@ |
|||
|
|||
@ -1,2 +1,3 @@ |
|||
CMAKE_PROGRESS_1 = 1 |
|||
CMAKE_PROGRESS_2 = 2 |
|||
|
|||
|
|||
@ -1,2 +1,4 @@ |
|||
CMAKE_PROGRESS_1 = 2 |
|||
CMAKE_PROGRESS_1 = 3 |
|||
CMAKE_PROGRESS_2 = 4 |
|||
CMAKE_PROGRESS_3 = 5 |
|||
|
|||
|
|||
@ -1,3 +1,5 @@ |
|||
CMAKE_PROGRESS_1 = 3 |
|||
CMAKE_PROGRESS_2 = 4 |
|||
CMAKE_PROGRESS_1 = 6 |
|||
CMAKE_PROGRESS_2 = 7 |
|||
CMAKE_PROGRESS_3 = 8 |
|||
CMAKE_PROGRESS_4 = 9 |
|||
|
|||
|
|||
@ -1,2 +1,4 @@ |
|||
CMAKE_PROGRESS_1 = 5 |
|||
CMAKE_PROGRESS_1 = 10 |
|||
CMAKE_PROGRESS_2 = 11 |
|||
CMAKE_PROGRESS_3 = 12 |
|||
|
|||
|
|||
@ -1,2 +1,4 @@ |
|||
CMAKE_PROGRESS_1 = 6 |
|||
CMAKE_PROGRESS_1 = 13 |
|||
CMAKE_PROGRESS_2 = 14 |
|||
CMAKE_PROGRESS_3 = 15 |
|||
|
|||
|
|||
@ -1,3 +1,5 @@ |
|||
CMAKE_PROGRESS_1 = 7 |
|||
CMAKE_PROGRESS_2 = 8 |
|||
CMAKE_PROGRESS_1 = 16 |
|||
CMAKE_PROGRESS_2 = 17 |
|||
CMAKE_PROGRESS_3 = 18 |
|||
CMAKE_PROGRESS_4 = 19 |
|||
|
|||
|
|||
@ -1 +1 @@ |
|||
8 |
|||
19 |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
set(detect_targets_MESSAGE_FILES "/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/component_centers.msg") |
|||
set(detect_targets_MESSAGE_FILES "/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/component_centers.msg;/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/component_center.msg;/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/control.msg") |
|||
set(detect_targets_SERVICE_FILES "") |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
set(detect_targets_MESSAGE_FILES "msg/component_centers.msg") |
|||
set(detect_targets_MESSAGE_FILES "msg/component_centers.msg;msg/component_center.msg;msg/control.msg") |
|||
set(detect_targets_SERVICE_FILES "") |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
set(detect_targets_MESSAGE_FILES "msg/component_centers.msg") |
|||
set(detect_targets_MESSAGE_FILES "msg/component_centers.msg;msg/component_center.msg;msg/control.msg") |
|||
set(detect_targets_SERVICE_FILES "") |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
CMAKE_PROGRESS_1 = 9 |
|||
CMAKE_PROGRESS_2 = 10 |
|||
CMAKE_PROGRESS_3 = 11 |
|||
CMAKE_PROGRESS_1 = 20 |
|||
CMAKE_PROGRESS_2 = 21 |
|||
CMAKE_PROGRESS_3 = 22 |
|||
|
|||
|
|||
@ -1,5 +1,5 @@ |
|||
CMAKE_PROGRESS_1 = 12 |
|||
CMAKE_PROGRESS_2 = 13 |
|||
CMAKE_PROGRESS_3 = 14 |
|||
CMAKE_PROGRESS_4 = 15 |
|||
CMAKE_PROGRESS_1 = 23 |
|||
CMAKE_PROGRESS_2 = 24 |
|||
CMAKE_PROGRESS_3 = 25 |
|||
CMAKE_PROGRESS_4 = 26 |
|||
|
|||
|
|||
@ -1,3 +1,3 @@ |
|||
CMAKE_PROGRESS_1 = 16 |
|||
CMAKE_PROGRESS_2 = 17 |
|||
CMAKE_PROGRESS_1 = 27 |
|||
CMAKE_PROGRESS_2 = 28 |
|||
|
|||
|
|||
@ -1,3 +1,3 @@ |
|||
CMAKE_PROGRESS_1 = 18 |
|||
CMAKE_PROGRESS_2 = 19 |
|||
CMAKE_PROGRESS_1 = 29 |
|||
CMAKE_PROGRESS_2 = 30 |
|||
|
|||
|
|||
@ -0,0 +1,767 @@ |
|||
//#line 2 "/opt/ros/melodic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
|
|||
// *********************************************************
|
|||
//
|
|||
// File autogenerated for the detect_targets package
|
|||
// by the dynamic_reconfigure package.
|
|||
// Please do not edit.
|
|||
//
|
|||
// ********************************************************/
|
|||
|
|||
#ifndef __detect_targets__TRIANGLEPARAMCONFIG_H__ |
|||
#define __detect_targets__TRIANGLEPARAMCONFIG_H__ |
|||
|
|||
#if __cplusplus >= 201103L |
|||
#define DYNAMIC_RECONFIGURE_FINAL final |
|||
#else |
|||
#define DYNAMIC_RECONFIGURE_FINAL |
|||
#endif |
|||
|
|||
#include <dynamic_reconfigure/config_tools.h> |
|||
#include <limits> |
|||
#include <ros/node_handle.h> |
|||
#include <dynamic_reconfigure/ConfigDescription.h> |
|||
#include <dynamic_reconfigure/ParamDescription.h> |
|||
#include <dynamic_reconfigure/Group.h> |
|||
#include <dynamic_reconfigure/config_init_mutex.h> |
|||
#include <boost/any.hpp> |
|||
|
|||
namespace detect_targets |
|||
{ |
|||
class TriangleParamConfigStatics; |
|||
|
|||
class TriangleParamConfig |
|||
{ |
|||
public: |
|||
class AbstractParamDescription : public dynamic_reconfigure::ParamDescription |
|||
{ |
|||
public: |
|||
AbstractParamDescription(std::string n, std::string t, uint32_t l, |
|||
std::string d, std::string e) |
|||
{ |
|||
name = n; |
|||
type = t; |
|||
level = l; |
|||
description = d; |
|||
edit_method = e; |
|||
} |
|||
|
|||
virtual void clamp(TriangleParamConfig &config, const TriangleParamConfig &max, const TriangleParamConfig &min) const = 0; |
|||
virtual void calcLevel(uint32_t &level, const TriangleParamConfig &config1, const TriangleParamConfig &config2) const = 0; |
|||
virtual void fromServer(const ros::NodeHandle &nh, TriangleParamConfig &config) const = 0; |
|||
virtual void toServer(const ros::NodeHandle &nh, const TriangleParamConfig &config) const = 0; |
|||
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, TriangleParamConfig &config) const = 0; |
|||
virtual void toMessage(dynamic_reconfigure::Config &msg, const TriangleParamConfig &config) const = 0; |
|||
virtual void getValue(const TriangleParamConfig &config, boost::any &val) const = 0; |
|||
}; |
|||
|
|||
typedef boost::shared_ptr<AbstractParamDescription> AbstractParamDescriptionPtr; |
|||
typedef boost::shared_ptr<const AbstractParamDescription> AbstractParamDescriptionConstPtr; |
|||
|
|||
// Final keyword added to class because it has virtual methods and inherits
|
|||
// from a class with a non-virtual destructor.
|
|||
template <class T> |
|||
class ParamDescription DYNAMIC_RECONFIGURE_FINAL : public AbstractParamDescription |
|||
{ |
|||
public: |
|||
ParamDescription(std::string a_name, std::string a_type, uint32_t a_level, |
|||
std::string a_description, std::string a_edit_method, T TriangleParamConfig::* a_f) : |
|||
AbstractParamDescription(a_name, a_type, a_level, a_description, a_edit_method), |
|||
field(a_f) |
|||
{} |
|||
|
|||
T (TriangleParamConfig::* field); |
|||
|
|||
virtual void clamp(TriangleParamConfig &config, const TriangleParamConfig &max, const TriangleParamConfig &min) const |
|||
{ |
|||
if (config.*field > max.*field) |
|||
config.*field = max.*field; |
|||
|
|||
if (config.*field < min.*field) |
|||
config.*field = min.*field; |
|||
} |
|||
|
|||
virtual void calcLevel(uint32_t &comb_level, const TriangleParamConfig &config1, const TriangleParamConfig &config2) const |
|||
{ |
|||
if (config1.*field != config2.*field) |
|||
comb_level |= level; |
|||
} |
|||
|
|||
virtual void fromServer(const ros::NodeHandle &nh, TriangleParamConfig &config) const |
|||
{ |
|||
nh.getParam(name, config.*field); |
|||
} |
|||
|
|||
virtual void toServer(const ros::NodeHandle &nh, const TriangleParamConfig &config) const |
|||
{ |
|||
nh.setParam(name, config.*field); |
|||
} |
|||
|
|||
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, TriangleParamConfig &config) const |
|||
{ |
|||
return dynamic_reconfigure::ConfigTools::getParameter(msg, name, config.*field); |
|||
} |
|||
|
|||
virtual void toMessage(dynamic_reconfigure::Config &msg, const TriangleParamConfig &config) const |
|||
{ |
|||
dynamic_reconfigure::ConfigTools::appendParameter(msg, name, config.*field); |
|||
} |
|||
|
|||
virtual void getValue(const TriangleParamConfig &config, boost::any &val) const |
|||
{ |
|||
val = config.*field; |
|||
} |
|||
}; |
|||
|
|||
class AbstractGroupDescription : public dynamic_reconfigure::Group |
|||
{ |
|||
public: |
|||
AbstractGroupDescription(std::string n, std::string t, int p, int i, bool s) |
|||
{ |
|||
name = n; |
|||
type = t; |
|||
parent = p; |
|||
state = s; |
|||
id = i; |
|||
} |
|||
|
|||
std::vector<AbstractParamDescriptionConstPtr> abstract_parameters; |
|||
bool state; |
|||
|
|||
virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &config) const = 0; |
|||
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &config) const =0; |
|||
virtual void updateParams(boost::any &cfg, TriangleParamConfig &top) const= 0; |
|||
virtual void setInitialState(boost::any &cfg) const = 0; |
|||
|
|||
|
|||
void convertParams() |
|||
{ |
|||
for(std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = abstract_parameters.begin(); i != abstract_parameters.end(); ++i) |
|||
{ |
|||
parameters.push_back(dynamic_reconfigure::ParamDescription(**i)); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
typedef boost::shared_ptr<AbstractGroupDescription> AbstractGroupDescriptionPtr; |
|||
typedef boost::shared_ptr<const AbstractGroupDescription> AbstractGroupDescriptionConstPtr; |
|||
|
|||
// Final keyword added to class because it has virtual methods and inherits
|
|||
// from a class with a non-virtual destructor.
|
|||
template<class T, class PT> |
|||
class GroupDescription DYNAMIC_RECONFIGURE_FINAL : public AbstractGroupDescription |
|||
{ |
|||
public: |
|||
GroupDescription(std::string a_name, std::string a_type, int a_parent, int a_id, bool a_s, T PT::* a_f) : AbstractGroupDescription(a_name, a_type, a_parent, a_id, a_s), field(a_f) |
|||
{ |
|||
} |
|||
|
|||
GroupDescription(const GroupDescription<T, PT>& g): AbstractGroupDescription(g.name, g.type, g.parent, g.id, g.state), field(g.field), groups(g.groups) |
|||
{ |
|||
parameters = g.parameters; |
|||
abstract_parameters = g.abstract_parameters; |
|||
} |
|||
|
|||
virtual bool fromMessage(const dynamic_reconfigure::Config &msg, boost::any &cfg) const |
|||
{ |
|||
PT* config = boost::any_cast<PT*>(cfg); |
|||
if(!dynamic_reconfigure::ConfigTools::getGroupState(msg, name, (*config).*field)) |
|||
return false; |
|||
|
|||
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) |
|||
{ |
|||
boost::any n = &((*config).*field); |
|||
if(!(*i)->fromMessage(msg, n)) |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
} |
|||
|
|||
virtual void setInitialState(boost::any &cfg) const |
|||
{ |
|||
PT* config = boost::any_cast<PT*>(cfg); |
|||
T* group = &((*config).*field); |
|||
group->state = state; |
|||
|
|||
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) |
|||
{ |
|||
boost::any n = boost::any(&((*config).*field)); |
|||
(*i)->setInitialState(n); |
|||
} |
|||
|
|||
} |
|||
|
|||
virtual void updateParams(boost::any &cfg, TriangleParamConfig &top) const |
|||
{ |
|||
PT* config = boost::any_cast<PT*>(cfg); |
|||
|
|||
T* f = &((*config).*field); |
|||
f->setParams(top, abstract_parameters); |
|||
|
|||
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) |
|||
{ |
|||
boost::any n = &((*config).*field); |
|||
(*i)->updateParams(n, top); |
|||
} |
|||
} |
|||
|
|||
virtual void toMessage(dynamic_reconfigure::Config &msg, const boost::any &cfg) const |
|||
{ |
|||
const PT config = boost::any_cast<PT>(cfg); |
|||
dynamic_reconfigure::ConfigTools::appendGroup<T>(msg, name, id, parent, config.*field); |
|||
|
|||
for(std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = groups.begin(); i != groups.end(); ++i) |
|||
{ |
|||
(*i)->toMessage(msg, config.*field); |
|||
} |
|||
} |
|||
|
|||
T (PT::* field); |
|||
std::vector<TriangleParamConfig::AbstractGroupDescriptionConstPtr> groups; |
|||
}; |
|||
|
|||
class DEFAULT |
|||
{ |
|||
public: |
|||
DEFAULT() |
|||
{ |
|||
state = true; |
|||
name = "Default"; |
|||
} |
|||
|
|||
void setParams(TriangleParamConfig &config, const std::vector<AbstractParamDescriptionConstPtr> params) |
|||
{ |
|||
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator _i = params.begin(); _i != params.end(); ++_i) |
|||
{ |
|||
boost::any val; |
|||
(*_i)->getValue(config, val); |
|||
|
|||
if("camera_angle"==(*_i)->name){camera_angle = boost::any_cast<double>(val);} |
|||
if("target_width"==(*_i)->name){target_width = boost::any_cast<double>(val);} |
|||
if("target_depth"==(*_i)->name){target_depth = boost::any_cast<double>(val);} |
|||
if("distance_to_target"==(*_i)->name){distance_to_target = boost::any_cast<double>(val);} |
|||
if("max_speed"==(*_i)->name){max_speed = boost::any_cast<double>(val);} |
|||
if("linear_x_Kp"==(*_i)->name){linear_x_Kp = boost::any_cast<double>(val);} |
|||
if("linear_x_Ki"==(*_i)->name){linear_x_Ki = boost::any_cast<double>(val);} |
|||
if("linear_x_Kd"==(*_i)->name){linear_x_Kd = boost::any_cast<double>(val);} |
|||
if("control_linear_x"==(*_i)->name){control_linear_x = boost::any_cast<bool>(val);} |
|||
if("linear_y_Kp"==(*_i)->name){linear_y_Kp = boost::any_cast<double>(val);} |
|||
if("linear_y_Ki"==(*_i)->name){linear_y_Ki = boost::any_cast<double>(val);} |
|||
if("linear_y_Kd"==(*_i)->name){linear_y_Kd = boost::any_cast<double>(val);} |
|||
if("control_linear_y"==(*_i)->name){control_linear_y = boost::any_cast<bool>(val);} |
|||
if("linear_z_Kp"==(*_i)->name){linear_z_Kp = boost::any_cast<double>(val);} |
|||
if("linear_z_Ki"==(*_i)->name){linear_z_Ki = boost::any_cast<double>(val);} |
|||
if("linear_z_Kd"==(*_i)->name){linear_z_Kd = boost::any_cast<double>(val);} |
|||
if("control_linear_z"==(*_i)->name){control_linear_z = boost::any_cast<bool>(val);} |
|||
if("angular_z_Kp"==(*_i)->name){angular_z_Kp = boost::any_cast<double>(val);} |
|||
if("angular_z_Ki"==(*_i)->name){angular_z_Ki = boost::any_cast<double>(val);} |
|||
if("angular_z_Kd"==(*_i)->name){angular_z_Kd = boost::any_cast<double>(val);} |
|||
if("control_angular_z"==(*_i)->name){control_angular_z = boost::any_cast<bool>(val);} |
|||
} |
|||
} |
|||
|
|||
double camera_angle; |
|||
double target_width; |
|||
double target_depth; |
|||
double distance_to_target; |
|||
double max_speed; |
|||
double linear_x_Kp; |
|||
double linear_x_Ki; |
|||
double linear_x_Kd; |
|||
bool control_linear_x; |
|||
double linear_y_Kp; |
|||
double linear_y_Ki; |
|||
double linear_y_Kd; |
|||
bool control_linear_y; |
|||
double linear_z_Kp; |
|||
double linear_z_Ki; |
|||
double linear_z_Kd; |
|||
bool control_linear_z; |
|||
double angular_z_Kp; |
|||
double angular_z_Ki; |
|||
double angular_z_Kd; |
|||
bool control_angular_z; |
|||
|
|||
bool state; |
|||
std::string name; |
|||
|
|||
|
|||
}groups; |
|||
|
|||
|
|||
|
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double camera_angle; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double target_width; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double target_depth; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double distance_to_target; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double max_speed; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_x_Kp; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_x_Ki; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_x_Kd; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
bool control_linear_x; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_y_Kp; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_y_Ki; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_y_Kd; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
bool control_linear_y; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_z_Kp; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_z_Ki; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double linear_z_Kd; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
bool control_linear_z; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double angular_z_Kp; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double angular_z_Ki; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
double angular_z_Kd; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
bool control_angular_z; |
|||
//#line 228 "/opt/ros/melodic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
|
|||
|
|||
bool __fromMessage__(dynamic_reconfigure::Config &msg) |
|||
{ |
|||
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); |
|||
const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); |
|||
|
|||
int count = 0; |
|||
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) |
|||
if ((*i)->fromMessage(msg, *this)) |
|||
count++; |
|||
|
|||
for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i ++) |
|||
{ |
|||
if ((*i)->id == 0) |
|||
{ |
|||
boost::any n = boost::any(this); |
|||
(*i)->updateParams(n, *this); |
|||
(*i)->fromMessage(msg, n); |
|||
} |
|||
} |
|||
|
|||
if (count != dynamic_reconfigure::ConfigTools::size(msg)) |
|||
{ |
|||
ROS_ERROR("TriangleParamConfig::__fromMessage__ called with an unexpected parameter."); |
|||
ROS_ERROR("Booleans:"); |
|||
for (unsigned int i = 0; i < msg.bools.size(); i++) |
|||
ROS_ERROR(" %s", msg.bools[i].name.c_str()); |
|||
ROS_ERROR("Integers:"); |
|||
for (unsigned int i = 0; i < msg.ints.size(); i++) |
|||
ROS_ERROR(" %s", msg.ints[i].name.c_str()); |
|||
ROS_ERROR("Doubles:"); |
|||
for (unsigned int i = 0; i < msg.doubles.size(); i++) |
|||
ROS_ERROR(" %s", msg.doubles[i].name.c_str()); |
|||
ROS_ERROR("Strings:"); |
|||
for (unsigned int i = 0; i < msg.strs.size(); i++) |
|||
ROS_ERROR(" %s", msg.strs[i].name.c_str()); |
|||
// @todo Check that there are no duplicates. Make this error more
|
|||
// explicit.
|
|||
return false; |
|||
} |
|||
return true; |
|||
} |
|||
|
|||
// This version of __toMessage__ is used during initialization of
|
|||
// statics when __getParamDescriptions__ can't be called yet.
|
|||
void __toMessage__(dynamic_reconfigure::Config &msg, const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__, const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__) const |
|||
{ |
|||
dynamic_reconfigure::ConfigTools::clear(msg); |
|||
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) |
|||
(*i)->toMessage(msg, *this); |
|||
|
|||
for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i) |
|||
{ |
|||
if((*i)->id == 0) |
|||
{ |
|||
(*i)->toMessage(msg, *this); |
|||
} |
|||
} |
|||
} |
|||
|
|||
void __toMessage__(dynamic_reconfigure::Config &msg) const |
|||
{ |
|||
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); |
|||
const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); |
|||
__toMessage__(msg, __param_descriptions__, __group_descriptions__); |
|||
} |
|||
|
|||
void __toServer__(const ros::NodeHandle &nh) const |
|||
{ |
|||
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); |
|||
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) |
|||
(*i)->toServer(nh, *this); |
|||
} |
|||
|
|||
void __fromServer__(const ros::NodeHandle &nh) |
|||
{ |
|||
static bool setup=false; |
|||
|
|||
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); |
|||
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) |
|||
(*i)->fromServer(nh, *this); |
|||
|
|||
const std::vector<AbstractGroupDescriptionConstPtr> &__group_descriptions__ = __getGroupDescriptions__(); |
|||
for (std::vector<AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); i++){ |
|||
if (!setup && (*i)->id == 0) { |
|||
setup = true; |
|||
boost::any n = boost::any(this); |
|||
(*i)->setInitialState(n); |
|||
} |
|||
} |
|||
} |
|||
|
|||
void __clamp__() |
|||
{ |
|||
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); |
|||
const TriangleParamConfig &__max__ = __getMax__(); |
|||
const TriangleParamConfig &__min__ = __getMin__(); |
|||
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) |
|||
(*i)->clamp(*this, __max__, __min__); |
|||
} |
|||
|
|||
uint32_t __level__(const TriangleParamConfig &config) const |
|||
{ |
|||
const std::vector<AbstractParamDescriptionConstPtr> &__param_descriptions__ = __getParamDescriptions__(); |
|||
uint32_t level = 0; |
|||
for (std::vector<AbstractParamDescriptionConstPtr>::const_iterator i = __param_descriptions__.begin(); i != __param_descriptions__.end(); ++i) |
|||
(*i)->calcLevel(level, config, *this); |
|||
return level; |
|||
} |
|||
|
|||
static const dynamic_reconfigure::ConfigDescription &__getDescriptionMessage__(); |
|||
static const TriangleParamConfig &__getDefault__(); |
|||
static const TriangleParamConfig &__getMax__(); |
|||
static const TriangleParamConfig &__getMin__(); |
|||
static const std::vector<AbstractParamDescriptionConstPtr> &__getParamDescriptions__(); |
|||
static const std::vector<AbstractGroupDescriptionConstPtr> &__getGroupDescriptions__(); |
|||
|
|||
private: |
|||
static const TriangleParamConfigStatics *__get_statics__(); |
|||
}; |
|||
|
|||
template <> // Max and min are ignored for strings.
|
|||
inline void TriangleParamConfig::ParamDescription<std::string>::clamp(TriangleParamConfig &config, const TriangleParamConfig &max, const TriangleParamConfig &min) const |
|||
{ |
|||
(void) config; |
|||
(void) min; |
|||
(void) max; |
|||
return; |
|||
} |
|||
|
|||
class TriangleParamConfigStatics |
|||
{ |
|||
friend class TriangleParamConfig; |
|||
|
|||
TriangleParamConfigStatics() |
|||
{ |
|||
TriangleParamConfig::GroupDescription<TriangleParamConfig::DEFAULT, TriangleParamConfig> Default("Default", "", 0, 0, true, &TriangleParamConfig::groups); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.camera_angle = 50.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.camera_angle = 180.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.camera_angle = 80.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("camera_angle", "double", 0, "The angle corresponding to the image width", "", &TriangleParamConfig::camera_angle))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("camera_angle", "double", 0, "The angle corresponding to the image width", "", &TriangleParamConfig::camera_angle))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.target_width = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.target_width = 1.5; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.target_width = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("target_width", "double", 0, "the real target width (m)", "", &TriangleParamConfig::target_width))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("target_width", "double", 0, "the real target width (m)", "", &TriangleParamConfig::target_width))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.target_depth = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.target_depth = 0.5; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.target_depth = 0.2; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("target_depth", "double", 0, "the real target depth (m)", "", &TriangleParamConfig::target_depth))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("target_depth", "double", 0, "the real target depth (m)", "", &TriangleParamConfig::target_depth))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.distance_to_target = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.distance_to_target = 5.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.distance_to_target = 2.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("distance_to_target", "double", 0, "The required distance to the target (m)", "", &TriangleParamConfig::distance_to_target))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("distance_to_target", "double", 0, "The required distance to the target (m)", "", &TriangleParamConfig::distance_to_target))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.max_speed = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.max_speed = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.max_speed = 0.3; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("max_speed", "double", 0, "the maximal linear speed", "", &TriangleParamConfig::max_speed))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("max_speed", "double", 0, "the maximal linear speed", "", &TriangleParamConfig::max_speed))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_x_Kp = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_x_Kp = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_x_Kp = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_x_Kp", "double", 0, "linear.x controller Kp", "", &TriangleParamConfig::linear_x_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_x_Kp", "double", 0, "linear.x controller Kp", "", &TriangleParamConfig::linear_x_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_x_Ki = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_x_Ki = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_x_Ki = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_x_Ki", "double", 0, "linear.x controller Ki", "", &TriangleParamConfig::linear_x_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_x_Ki", "double", 0, "linear.x controller Ki", "", &TriangleParamConfig::linear_x_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_x_Kd = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_x_Kd = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_x_Kd = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_x_Kd", "double", 0, "linear.x controller Kd", "", &TriangleParamConfig::linear_x_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_x_Kd", "double", 0, "linear.x controller Kd", "", &TriangleParamConfig::linear_x_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.control_linear_x = 0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.control_linear_x = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.control_linear_x = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_linear_x", "bool", 0, "Control distance to target", "", &TriangleParamConfig::control_linear_x))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_linear_x", "bool", 0, "Control distance to target", "", &TriangleParamConfig::control_linear_x))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_y_Kp = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_y_Kp = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_y_Kp = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_y_Kp", "double", 0, "linear.y controller Kp", "", &TriangleParamConfig::linear_y_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_y_Kp", "double", 0, "linear.y controller Kp", "", &TriangleParamConfig::linear_y_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_y_Ki = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_y_Ki = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_y_Ki = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_y_Ki", "double", 0, "linear.y controller Ki", "", &TriangleParamConfig::linear_y_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_y_Ki", "double", 0, "linear.y controller Ki", "", &TriangleParamConfig::linear_y_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_y_Kd = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_y_Kd = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_y_Kd = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_y_Kd", "double", 0, "linear.y controller Kd", "", &TriangleParamConfig::linear_y_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_y_Kd", "double", 0, "linear.y controller Kd", "", &TriangleParamConfig::linear_y_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.control_linear_y = 0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.control_linear_y = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.control_linear_y = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_linear_y", "bool", 0, "Controls the facing to target", "", &TriangleParamConfig::control_linear_y))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_linear_y", "bool", 0, "Controls the facing to target", "", &TriangleParamConfig::control_linear_y))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_z_Kp = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_z_Kp = 10.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_z_Kp = 0.1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_z_Kp", "double", 0, "linear.z controller Kp", "", &TriangleParamConfig::linear_z_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_z_Kp", "double", 0, "linear.z controller Kp", "", &TriangleParamConfig::linear_z_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_z_Ki = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_z_Ki = 10.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_z_Ki = 0.1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_z_Ki", "double", 0, "linear.z controller Ki", "", &TriangleParamConfig::linear_z_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_z_Ki", "double", 0, "linear.z controller Ki", "", &TriangleParamConfig::linear_z_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.linear_z_Kd = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.linear_z_Kd = 10.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.linear_z_Kd = 0.1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_z_Kd", "double", 0, "linear.z controller Kd", "", &TriangleParamConfig::linear_z_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("linear_z_Kd", "double", 0, "linear.z controller Kd", "", &TriangleParamConfig::linear_z_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.control_linear_z = 0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.control_linear_z = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.control_linear_z = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_linear_z", "bool", 0, "Controls the facing to target", "", &TriangleParamConfig::control_linear_z))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_linear_z", "bool", 0, "Controls the facing to target", "", &TriangleParamConfig::control_linear_z))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.angular_z_Kp = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.angular_z_Kp = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.angular_z_Kp = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("angular_z_Kp", "double", 0, "angular.z controller Kp", "", &TriangleParamConfig::angular_z_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("angular_z_Kp", "double", 0, "angular.z controller Kp", "", &TriangleParamConfig::angular_z_Kp))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.angular_z_Ki = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.angular_z_Ki = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.angular_z_Ki = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("angular_z_Ki", "double", 0, "angular.z controller Ki", "", &TriangleParamConfig::angular_z_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("angular_z_Ki", "double", 0, "angular.z controller Ki", "", &TriangleParamConfig::angular_z_Ki))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.angular_z_Kd = 0.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.angular_z_Kd = 1.0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.angular_z_Kd = 0.01; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("angular_z_Kd", "double", 0, "angular.z controller Kd", "", &TriangleParamConfig::angular_z_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<double>("angular_z_Kd", "double", 0, "angular.z controller Kd", "", &TriangleParamConfig::angular_z_Kd))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__min__.control_angular_z = 0; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__max__.control_angular_z = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__default__.control_angular_z = 1; |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.abstract_parameters.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_angular_z", "bool", 0, "Controls the facing to target", "", &TriangleParamConfig::control_angular_z))); |
|||
//#line 291 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__param_descriptions__.push_back(TriangleParamConfig::AbstractParamDescriptionConstPtr(new TriangleParamConfig::ParamDescription<bool>("control_angular_z", "bool", 0, "Controls the facing to target", "", &TriangleParamConfig::control_angular_z))); |
|||
//#line 246 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
Default.convertParams(); |
|||
//#line 246 "/opt/ros/melodic/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator_catkin.py"
|
|||
__group_descriptions__.push_back(TriangleParamConfig::AbstractGroupDescriptionConstPtr(new TriangleParamConfig::GroupDescription<TriangleParamConfig::DEFAULT, TriangleParamConfig>(Default))); |
|||
//#line 366 "/opt/ros/melodic/share/dynamic_reconfigure/cmake/../templates/ConfigType.h.template"
|
|||
|
|||
for (std::vector<TriangleParamConfig::AbstractGroupDescriptionConstPtr>::const_iterator i = __group_descriptions__.begin(); i != __group_descriptions__.end(); ++i) |
|||
{ |
|||
__description_message__.groups.push_back(**i); |
|||
} |
|||
__max__.__toMessage__(__description_message__.max, __param_descriptions__, __group_descriptions__); |
|||
__min__.__toMessage__(__description_message__.min, __param_descriptions__, __group_descriptions__); |
|||
__default__.__toMessage__(__description_message__.dflt, __param_descriptions__, __group_descriptions__); |
|||
} |
|||
std::vector<TriangleParamConfig::AbstractParamDescriptionConstPtr> __param_descriptions__; |
|||
std::vector<TriangleParamConfig::AbstractGroupDescriptionConstPtr> __group_descriptions__; |
|||
TriangleParamConfig __max__; |
|||
TriangleParamConfig __min__; |
|||
TriangleParamConfig __default__; |
|||
dynamic_reconfigure::ConfigDescription __description_message__; |
|||
|
|||
static const TriangleParamConfigStatics *get_instance() |
|||
{ |
|||
// Split this off in a separate function because I know that
|
|||
// instance will get initialized the first time get_instance is
|
|||
// called, and I am guaranteeing that get_instance gets called at
|
|||
// most once.
|
|||
static TriangleParamConfigStatics instance; |
|||
return &instance; |
|||
} |
|||
}; |
|||
|
|||
inline const dynamic_reconfigure::ConfigDescription &TriangleParamConfig::__getDescriptionMessage__() |
|||
{ |
|||
return __get_statics__()->__description_message__; |
|||
} |
|||
|
|||
inline const TriangleParamConfig &TriangleParamConfig::__getDefault__() |
|||
{ |
|||
return __get_statics__()->__default__; |
|||
} |
|||
|
|||
inline const TriangleParamConfig &TriangleParamConfig::__getMax__() |
|||
{ |
|||
return __get_statics__()->__max__; |
|||
} |
|||
|
|||
inline const TriangleParamConfig &TriangleParamConfig::__getMin__() |
|||
{ |
|||
return __get_statics__()->__min__; |
|||
} |
|||
|
|||
inline const std::vector<TriangleParamConfig::AbstractParamDescriptionConstPtr> &TriangleParamConfig::__getParamDescriptions__() |
|||
{ |
|||
return __get_statics__()->__param_descriptions__; |
|||
} |
|||
|
|||
inline const std::vector<TriangleParamConfig::AbstractGroupDescriptionConstPtr> &TriangleParamConfig::__getGroupDescriptions__() |
|||
{ |
|||
return __get_statics__()->__group_descriptions__; |
|||
} |
|||
|
|||
inline const TriangleParamConfigStatics *TriangleParamConfig::__get_statics__() |
|||
{ |
|||
const static TriangleParamConfigStatics *statics; |
|||
|
|||
if (statics) // Common case
|
|||
return statics; |
|||
|
|||
boost::mutex::scoped_lock lock(dynamic_reconfigure::__init_mutex__); |
|||
|
|||
if (statics) // In case we lost a race.
|
|||
return statics; |
|||
|
|||
statics = TriangleParamConfigStatics::get_instance(); |
|||
|
|||
return statics; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
#undef DYNAMIC_RECONFIGURE_FINAL |
|||
|
|||
#endif // __TRIANGLEPARAMRECONFIGURATOR_H__
|
|||
@ -0,0 +1,214 @@ |
|||
// Generated by gencpp from file detect_targets/component_center.msg
|
|||
// DO NOT EDIT!
|
|||
|
|||
|
|||
#ifndef DETECT_TARGETS_MESSAGE_COMPONENT_CENTER_H |
|||
#define DETECT_TARGETS_MESSAGE_COMPONENT_CENTER_H |
|||
|
|||
|
|||
#include <string> |
|||
#include <vector> |
|||
#include <map> |
|||
|
|||
#include <ros/types.h> |
|||
#include <ros/serialization.h> |
|||
#include <ros/builtin_message_traits.h> |
|||
#include <ros/message_operations.h> |
|||
|
|||
|
|||
namespace detect_targets |
|||
{ |
|||
template <class ContainerAllocator> |
|||
struct component_center_ |
|||
{ |
|||
typedef component_center_<ContainerAllocator> Type; |
|||
|
|||
component_center_() |
|||
: label(0) |
|||
, nb_vertex(0) |
|||
, x(0.0) |
|||
, y(0.0) { |
|||
} |
|||
component_center_(const ContainerAllocator& _alloc) |
|||
: label(0) |
|||
, nb_vertex(0) |
|||
, x(0.0) |
|||
, y(0.0) { |
|||
(void)_alloc; |
|||
} |
|||
|
|||
|
|||
|
|||
typedef int64_t _label_type; |
|||
_label_type label; |
|||
|
|||
typedef int64_t _nb_vertex_type; |
|||
_nb_vertex_type nb_vertex; |
|||
|
|||
typedef double _x_type; |
|||
_x_type x; |
|||
|
|||
typedef double _y_type; |
|||
_y_type y; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
typedef boost::shared_ptr< ::detect_targets::component_center_<ContainerAllocator> > Ptr; |
|||
typedef boost::shared_ptr< ::detect_targets::component_center_<ContainerAllocator> const> ConstPtr; |
|||
|
|||
}; // struct component_center_
|
|||
|
|||
typedef ::detect_targets::component_center_<std::allocator<void> > component_center; |
|||
|
|||
typedef boost::shared_ptr< ::detect_targets::component_center > component_centerPtr; |
|||
typedef boost::shared_ptr< ::detect_targets::component_center const> component_centerConstPtr; |
|||
|
|||
// constants requiring out of line definition
|
|||
|
|||
|
|||
|
|||
template<typename ContainerAllocator> |
|||
std::ostream& operator<<(std::ostream& s, const ::detect_targets::component_center_<ContainerAllocator> & v) |
|||
{ |
|||
ros::message_operations::Printer< ::detect_targets::component_center_<ContainerAllocator> >::stream(s, "", v); |
|||
return s; |
|||
} |
|||
|
|||
} // namespace detect_targets
|
|||
|
|||
namespace ros |
|||
{ |
|||
namespace message_traits |
|||
{ |
|||
|
|||
|
|||
|
|||
// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False}
|
|||
// {'std_msgs': ['/opt/ros/melodic/share/std_msgs/cmake/../msg'], 'detect_targets': ['/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg']}
|
|||
|
|||
// !!!!!!!!!!! ['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_parsed_fields', 'constants', 'fields', 'full_name', 'has_header', 'header_present', 'names', 'package', 'parsed_fields', 'short_name', 'text', 'types']
|
|||
|
|||
|
|||
|
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsFixedSize< ::detect_targets::component_center_<ContainerAllocator> > |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsFixedSize< ::detect_targets::component_center_<ContainerAllocator> const> |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsMessage< ::detect_targets::component_center_<ContainerAllocator> > |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsMessage< ::detect_targets::component_center_<ContainerAllocator> const> |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct HasHeader< ::detect_targets::component_center_<ContainerAllocator> > |
|||
: FalseType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct HasHeader< ::detect_targets::component_center_<ContainerAllocator> const> |
|||
: FalseType |
|||
{ }; |
|||
|
|||
|
|||
template<class ContainerAllocator> |
|||
struct MD5Sum< ::detect_targets::component_center_<ContainerAllocator> > |
|||
{ |
|||
static const char* value() |
|||
{ |
|||
return "da1879b15a6566f498d1395c2d529084"; |
|||
} |
|||
|
|||
static const char* value(const ::detect_targets::component_center_<ContainerAllocator>&) { return value(); } |
|||
static const uint64_t static_value1 = 0xda1879b15a6566f4ULL; |
|||
static const uint64_t static_value2 = 0x98d1395c2d529084ULL; |
|||
}; |
|||
|
|||
template<class ContainerAllocator> |
|||
struct DataType< ::detect_targets::component_center_<ContainerAllocator> > |
|||
{ |
|||
static const char* value() |
|||
{ |
|||
return "detect_targets/component_center"; |
|||
} |
|||
|
|||
static const char* value(const ::detect_targets::component_center_<ContainerAllocator>&) { return value(); } |
|||
}; |
|||
|
|||
template<class ContainerAllocator> |
|||
struct Definition< ::detect_targets::component_center_<ContainerAllocator> > |
|||
{ |
|||
static const char* value() |
|||
{ |
|||
return "int64 label\n\
|
|||
int64 nb_vertex\n\ |
|||
float64 x\n\ |
|||
float64 y\n\ |
|||
"; |
|||
} |
|||
|
|||
static const char* value(const ::detect_targets::component_center_<ContainerAllocator>&) { return value(); } |
|||
}; |
|||
|
|||
} // namespace message_traits
|
|||
} // namespace ros
|
|||
|
|||
namespace ros |
|||
{ |
|||
namespace serialization |
|||
{ |
|||
|
|||
template<class ContainerAllocator> struct Serializer< ::detect_targets::component_center_<ContainerAllocator> > |
|||
{ |
|||
template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) |
|||
{ |
|||
stream.next(m.label); |
|||
stream.next(m.nb_vertex); |
|||
stream.next(m.x); |
|||
stream.next(m.y); |
|||
} |
|||
|
|||
ROS_DECLARE_ALLINONE_SERIALIZER |
|||
}; // struct component_center_
|
|||
|
|||
} // namespace serialization
|
|||
} // namespace ros
|
|||
|
|||
namespace ros |
|||
{ |
|||
namespace message_operations |
|||
{ |
|||
|
|||
template<class ContainerAllocator> |
|||
struct Printer< ::detect_targets::component_center_<ContainerAllocator> > |
|||
{ |
|||
template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::detect_targets::component_center_<ContainerAllocator>& v) |
|||
{ |
|||
s << indent << "label: "; |
|||
Printer<int64_t>::stream(s, indent + " ", v.label); |
|||
s << indent << "nb_vertex: "; |
|||
Printer<int64_t>::stream(s, indent + " ", v.nb_vertex); |
|||
s << indent << "x: "; |
|||
Printer<double>::stream(s, indent + " ", v.x); |
|||
s << indent << "y: "; |
|||
Printer<double>::stream(s, indent + " ", v.y); |
|||
} |
|||
}; |
|||
|
|||
} // namespace message_operations
|
|||
} // namespace ros
|
|||
|
|||
#endif // DETECT_TARGETS_MESSAGE_COMPONENT_CENTER_H
|
|||
@ -0,0 +1,214 @@ |
|||
// Generated by gencpp from file detect_targets/control.msg
|
|||
// DO NOT EDIT!
|
|||
|
|||
|
|||
#ifndef DETECT_TARGETS_MESSAGE_CONTROL_H |
|||
#define DETECT_TARGETS_MESSAGE_CONTROL_H |
|||
|
|||
|
|||
#include <string> |
|||
#include <vector> |
|||
#include <map> |
|||
|
|||
#include <ros/types.h> |
|||
#include <ros/serialization.h> |
|||
#include <ros/builtin_message_traits.h> |
|||
#include <ros/message_operations.h> |
|||
|
|||
|
|||
namespace detect_targets |
|||
{ |
|||
template <class ContainerAllocator> |
|||
struct control_ |
|||
{ |
|||
typedef control_<ContainerAllocator> Type; |
|||
|
|||
control_() |
|||
: target(0.0) |
|||
, error(0.0) |
|||
, derror(0.0) |
|||
, cmd_vel(0.0) { |
|||
} |
|||
control_(const ContainerAllocator& _alloc) |
|||
: target(0.0) |
|||
, error(0.0) |
|||
, derror(0.0) |
|||
, cmd_vel(0.0) { |
|||
(void)_alloc; |
|||
} |
|||
|
|||
|
|||
|
|||
typedef double _target_type; |
|||
_target_type target; |
|||
|
|||
typedef double _error_type; |
|||
_error_type error; |
|||
|
|||
typedef double _derror_type; |
|||
_derror_type derror; |
|||
|
|||
typedef double _cmd_vel_type; |
|||
_cmd_vel_type cmd_vel; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
typedef boost::shared_ptr< ::detect_targets::control_<ContainerAllocator> > Ptr; |
|||
typedef boost::shared_ptr< ::detect_targets::control_<ContainerAllocator> const> ConstPtr; |
|||
|
|||
}; // struct control_
|
|||
|
|||
typedef ::detect_targets::control_<std::allocator<void> > control; |
|||
|
|||
typedef boost::shared_ptr< ::detect_targets::control > controlPtr; |
|||
typedef boost::shared_ptr< ::detect_targets::control const> controlConstPtr; |
|||
|
|||
// constants requiring out of line definition
|
|||
|
|||
|
|||
|
|||
template<typename ContainerAllocator> |
|||
std::ostream& operator<<(std::ostream& s, const ::detect_targets::control_<ContainerAllocator> & v) |
|||
{ |
|||
ros::message_operations::Printer< ::detect_targets::control_<ContainerAllocator> >::stream(s, "", v); |
|||
return s; |
|||
} |
|||
|
|||
} // namespace detect_targets
|
|||
|
|||
namespace ros |
|||
{ |
|||
namespace message_traits |
|||
{ |
|||
|
|||
|
|||
|
|||
// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False}
|
|||
// {'std_msgs': ['/opt/ros/melodic/share/std_msgs/cmake/../msg'], 'detect_targets': ['/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg']}
|
|||
|
|||
// !!!!!!!!!!! ['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_parsed_fields', 'constants', 'fields', 'full_name', 'has_header', 'header_present', 'names', 'package', 'parsed_fields', 'short_name', 'text', 'types']
|
|||
|
|||
|
|||
|
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsFixedSize< ::detect_targets::control_<ContainerAllocator> > |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsFixedSize< ::detect_targets::control_<ContainerAllocator> const> |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsMessage< ::detect_targets::control_<ContainerAllocator> > |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct IsMessage< ::detect_targets::control_<ContainerAllocator> const> |
|||
: TrueType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct HasHeader< ::detect_targets::control_<ContainerAllocator> > |
|||
: FalseType |
|||
{ }; |
|||
|
|||
template <class ContainerAllocator> |
|||
struct HasHeader< ::detect_targets::control_<ContainerAllocator> const> |
|||
: FalseType |
|||
{ }; |
|||
|
|||
|
|||
template<class ContainerAllocator> |
|||
struct MD5Sum< ::detect_targets::control_<ContainerAllocator> > |
|||
{ |
|||
static const char* value() |
|||
{ |
|||
return "6f80b008c55c6a68dec8d378f0b74e50"; |
|||
} |
|||
|
|||
static const char* value(const ::detect_targets::control_<ContainerAllocator>&) { return value(); } |
|||
static const uint64_t static_value1 = 0x6f80b008c55c6a68ULL; |
|||
static const uint64_t static_value2 = 0xdec8d378f0b74e50ULL; |
|||
}; |
|||
|
|||
template<class ContainerAllocator> |
|||
struct DataType< ::detect_targets::control_<ContainerAllocator> > |
|||
{ |
|||
static const char* value() |
|||
{ |
|||
return "detect_targets/control"; |
|||
} |
|||
|
|||
static const char* value(const ::detect_targets::control_<ContainerAllocator>&) { return value(); } |
|||
}; |
|||
|
|||
template<class ContainerAllocator> |
|||
struct Definition< ::detect_targets::control_<ContainerAllocator> > |
|||
{ |
|||
static const char* value() |
|||
{ |
|||
return "float64 target\n\
|
|||
float64 error\n\ |
|||
float64 derror\n\ |
|||
float64 cmd_vel\n\ |
|||
"; |
|||
} |
|||
|
|||
static const char* value(const ::detect_targets::control_<ContainerAllocator>&) { return value(); } |
|||
}; |
|||
|
|||
} // namespace message_traits
|
|||
} // namespace ros
|
|||
|
|||
namespace ros |
|||
{ |
|||
namespace serialization |
|||
{ |
|||
|
|||
template<class ContainerAllocator> struct Serializer< ::detect_targets::control_<ContainerAllocator> > |
|||
{ |
|||
template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) |
|||
{ |
|||
stream.next(m.target); |
|||
stream.next(m.error); |
|||
stream.next(m.derror); |
|||
stream.next(m.cmd_vel); |
|||
} |
|||
|
|||
ROS_DECLARE_ALLINONE_SERIALIZER |
|||
}; // struct control_
|
|||
|
|||
} // namespace serialization
|
|||
} // namespace ros
|
|||
|
|||
namespace ros |
|||
{ |
|||
namespace message_operations |
|||
{ |
|||
|
|||
template<class ContainerAllocator> |
|||
struct Printer< ::detect_targets::control_<ContainerAllocator> > |
|||
{ |
|||
template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::detect_targets::control_<ContainerAllocator>& v) |
|||
{ |
|||
s << indent << "target: "; |
|||
Printer<double>::stream(s, indent + " ", v.target); |
|||
s << indent << "error: "; |
|||
Printer<double>::stream(s, indent + " ", v.error); |
|||
s << indent << "derror: "; |
|||
Printer<double>::stream(s, indent + " ", v.derror); |
|||
s << indent << "cmd_vel: "; |
|||
Printer<double>::stream(s, indent + " ", v.cmd_vel); |
|||
} |
|||
}; |
|||
|
|||
} // namespace message_operations
|
|||
} // namespace ros
|
|||
|
|||
#endif // DETECT_TARGETS_MESSAGE_CONTROL_H
|
|||
@ -0,0 +1,10 @@ |
|||
(cl:in-package detect_targets-msg) |
|||
(cl:export '(LABEL-VAL |
|||
LABEL |
|||
NB_VERTEX-VAL |
|||
NB_VERTEX |
|||
X-VAL |
|||
X |
|||
Y-VAL |
|||
Y |
|||
)) |
|||
@ -0,0 +1,10 @@ |
|||
(cl:in-package detect_targets-msg) |
|||
(cl:export '(TARGET-VAL |
|||
TARGET |
|||
ERROR-VAL |
|||
ERROR |
|||
DERROR-VAL |
|||
DERROR |
|||
CMD_VEL-VAL |
|||
CMD_VEL |
|||
)) |
|||
@ -0,0 +1,176 @@ |
|||
; Auto-generated. Do not edit! |
|||
|
|||
|
|||
(cl:in-package detect_targets-msg) |
|||
|
|||
|
|||
;//! \htmlinclude component_center.msg.html |
|||
|
|||
(cl:defclass <component_center> (roslisp-msg-protocol:ros-message) |
|||
((label |
|||
:reader label |
|||
:initarg :label |
|||
:type cl:integer |
|||
:initform 0) |
|||
(nb_vertex |
|||
:reader nb_vertex |
|||
:initarg :nb_vertex |
|||
:type cl:integer |
|||
:initform 0) |
|||
(x |
|||
:reader x |
|||
:initarg :x |
|||
:type cl:float |
|||
:initform 0.0) |
|||
(y |
|||
:reader y |
|||
:initarg :y |
|||
:type cl:float |
|||
:initform 0.0)) |
|||
) |
|||
|
|||
(cl:defclass component_center (<component_center>) |
|||
()) |
|||
|
|||
(cl:defmethod cl:initialize-instance :after ((m <component_center>) cl:&rest args) |
|||
(cl:declare (cl:ignorable args)) |
|||
(cl:unless (cl:typep m 'component_center) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "using old message class name detect_targets-msg:<component_center> is deprecated: use detect_targets-msg:component_center instead."))) |
|||
|
|||
(cl:ensure-generic-function 'label-val :lambda-list '(m)) |
|||
(cl:defmethod label-val ((m <component_center>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:label-val is deprecated. Use detect_targets-msg:label instead.") |
|||
(label m)) |
|||
|
|||
(cl:ensure-generic-function 'nb_vertex-val :lambda-list '(m)) |
|||
(cl:defmethod nb_vertex-val ((m <component_center>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:nb_vertex-val is deprecated. Use detect_targets-msg:nb_vertex instead.") |
|||
(nb_vertex m)) |
|||
|
|||
(cl:ensure-generic-function 'x-val :lambda-list '(m)) |
|||
(cl:defmethod x-val ((m <component_center>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:x-val is deprecated. Use detect_targets-msg:x instead.") |
|||
(x m)) |
|||
|
|||
(cl:ensure-generic-function 'y-val :lambda-list '(m)) |
|||
(cl:defmethod y-val ((m <component_center>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:y-val is deprecated. Use detect_targets-msg:y instead.") |
|||
(y m)) |
|||
(cl:defmethod roslisp-msg-protocol:serialize ((msg <component_center>) ostream) |
|||
"Serializes a message object of type '<component_center>" |
|||
(cl:let* ((signed (cl:slot-value msg 'label)) (unsigned (cl:if (cl:< signed 0) (cl:+ signed 18446744073709551616) signed))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) unsigned) ostream) |
|||
) |
|||
(cl:let* ((signed (cl:slot-value msg 'nb_vertex)) (unsigned (cl:if (cl:< signed 0) (cl:+ signed 18446744073709551616) signed))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) unsigned) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) unsigned) ostream) |
|||
) |
|||
(cl:let ((bits (roslisp-utils:encode-double-float-bits (cl:slot-value msg 'x)))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) bits) ostream)) |
|||
(cl:let ((bits (roslisp-utils:encode-double-float-bits (cl:slot-value msg 'y)))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) bits) ostream)) |
|||
) |
|||
(cl:defmethod roslisp-msg-protocol:deserialize ((msg <component_center>) istream) |
|||
"Deserializes a message object of type '<component_center>" |
|||
(cl:let ((unsigned 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'label) (cl:if (cl:< unsigned 9223372036854775808) unsigned (cl:- unsigned 18446744073709551616)))) |
|||
(cl:let ((unsigned 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) unsigned) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'nb_vertex) (cl:if (cl:< unsigned 9223372036854775808) unsigned (cl:- unsigned 18446744073709551616)))) |
|||
(cl:let ((bits 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'x) (roslisp-utils:decode-double-float-bits bits))) |
|||
(cl:let ((bits 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'y) (roslisp-utils:decode-double-float-bits bits))) |
|||
msg |
|||
) |
|||
(cl:defmethod roslisp-msg-protocol:ros-datatype ((msg (cl:eql '<component_center>))) |
|||
"Returns string type for a message object of type '<component_center>" |
|||
"detect_targets/component_center") |
|||
(cl:defmethod roslisp-msg-protocol:ros-datatype ((msg (cl:eql 'component_center))) |
|||
"Returns string type for a message object of type 'component_center" |
|||
"detect_targets/component_center") |
|||
(cl:defmethod roslisp-msg-protocol:md5sum ((type (cl:eql '<component_center>))) |
|||
"Returns md5sum for a message object of type '<component_center>" |
|||
"da1879b15a6566f498d1395c2d529084") |
|||
(cl:defmethod roslisp-msg-protocol:md5sum ((type (cl:eql 'component_center))) |
|||
"Returns md5sum for a message object of type 'component_center" |
|||
"da1879b15a6566f498d1395c2d529084") |
|||
(cl:defmethod roslisp-msg-protocol:message-definition ((type (cl:eql '<component_center>))) |
|||
"Returns full string definition for message of type '<component_center>" |
|||
(cl:format cl:nil "int64 label~%int64 nb_vertex~%float64 x~%float64 y~%~%~%")) |
|||
(cl:defmethod roslisp-msg-protocol:message-definition ((type (cl:eql 'component_center))) |
|||
"Returns full string definition for message of type 'component_center" |
|||
(cl:format cl:nil "int64 label~%int64 nb_vertex~%float64 x~%float64 y~%~%~%")) |
|||
(cl:defmethod roslisp-msg-protocol:serialization-length ((msg <component_center>)) |
|||
(cl:+ 0 |
|||
8 |
|||
8 |
|||
8 |
|||
8 |
|||
)) |
|||
(cl:defmethod roslisp-msg-protocol:ros-message-to-list ((msg <component_center>)) |
|||
"Converts a ROS message object to a list" |
|||
(cl:list 'component_center |
|||
(cl:cons ':label (label msg)) |
|||
(cl:cons ':nb_vertex (nb_vertex msg)) |
|||
(cl:cons ':x (x msg)) |
|||
(cl:cons ':y (y msg)) |
|||
)) |
|||
@ -0,0 +1,174 @@ |
|||
; Auto-generated. Do not edit! |
|||
|
|||
|
|||
(cl:in-package detect_targets-msg) |
|||
|
|||
|
|||
;//! \htmlinclude control.msg.html |
|||
|
|||
(cl:defclass <control> (roslisp-msg-protocol:ros-message) |
|||
((target |
|||
:reader target |
|||
:initarg :target |
|||
:type cl:float |
|||
:initform 0.0) |
|||
(error |
|||
:reader error |
|||
:initarg :error |
|||
:type cl:float |
|||
:initform 0.0) |
|||
(derror |
|||
:reader derror |
|||
:initarg :derror |
|||
:type cl:float |
|||
:initform 0.0) |
|||
(cmd_vel |
|||
:reader cmd_vel |
|||
:initarg :cmd_vel |
|||
:type cl:float |
|||
:initform 0.0)) |
|||
) |
|||
|
|||
(cl:defclass control (<control>) |
|||
()) |
|||
|
|||
(cl:defmethod cl:initialize-instance :after ((m <control>) cl:&rest args) |
|||
(cl:declare (cl:ignorable args)) |
|||
(cl:unless (cl:typep m 'control) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "using old message class name detect_targets-msg:<control> is deprecated: use detect_targets-msg:control instead."))) |
|||
|
|||
(cl:ensure-generic-function 'target-val :lambda-list '(m)) |
|||
(cl:defmethod target-val ((m <control>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:target-val is deprecated. Use detect_targets-msg:target instead.") |
|||
(target m)) |
|||
|
|||
(cl:ensure-generic-function 'error-val :lambda-list '(m)) |
|||
(cl:defmethod error-val ((m <control>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:error-val is deprecated. Use detect_targets-msg:error instead.") |
|||
(error m)) |
|||
|
|||
(cl:ensure-generic-function 'derror-val :lambda-list '(m)) |
|||
(cl:defmethod derror-val ((m <control>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:derror-val is deprecated. Use detect_targets-msg:derror instead.") |
|||
(derror m)) |
|||
|
|||
(cl:ensure-generic-function 'cmd_vel-val :lambda-list '(m)) |
|||
(cl:defmethod cmd_vel-val ((m <control>)) |
|||
(roslisp-msg-protocol:msg-deprecation-warning "Using old-style slot reader detect_targets-msg:cmd_vel-val is deprecated. Use detect_targets-msg:cmd_vel instead.") |
|||
(cmd_vel m)) |
|||
(cl:defmethod roslisp-msg-protocol:serialize ((msg <control>) ostream) |
|||
"Serializes a message object of type '<control>" |
|||
(cl:let ((bits (roslisp-utils:encode-double-float-bits (cl:slot-value msg 'target)))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) bits) ostream)) |
|||
(cl:let ((bits (roslisp-utils:encode-double-float-bits (cl:slot-value msg 'error)))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) bits) ostream)) |
|||
(cl:let ((bits (roslisp-utils:encode-double-float-bits (cl:slot-value msg 'derror)))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) bits) ostream)) |
|||
(cl:let ((bits (roslisp-utils:encode-double-float-bits (cl:slot-value msg 'cmd_vel)))) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 0) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 8) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 16) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 24) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 32) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 40) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 48) bits) ostream) |
|||
(cl:write-byte (cl:ldb (cl:byte 8 56) bits) ostream)) |
|||
) |
|||
(cl:defmethod roslisp-msg-protocol:deserialize ((msg <control>) istream) |
|||
"Deserializes a message object of type '<control>" |
|||
(cl:let ((bits 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'target) (roslisp-utils:decode-double-float-bits bits))) |
|||
(cl:let ((bits 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'error) (roslisp-utils:decode-double-float-bits bits))) |
|||
(cl:let ((bits 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'derror) (roslisp-utils:decode-double-float-bits bits))) |
|||
(cl:let ((bits 0)) |
|||
(cl:setf (cl:ldb (cl:byte 8 0) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 8) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 16) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 24) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 32) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 40) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 48) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:ldb (cl:byte 8 56) bits) (cl:read-byte istream)) |
|||
(cl:setf (cl:slot-value msg 'cmd_vel) (roslisp-utils:decode-double-float-bits bits))) |
|||
msg |
|||
) |
|||
(cl:defmethod roslisp-msg-protocol:ros-datatype ((msg (cl:eql '<control>))) |
|||
"Returns string type for a message object of type '<control>" |
|||
"detect_targets/control") |
|||
(cl:defmethod roslisp-msg-protocol:ros-datatype ((msg (cl:eql 'control))) |
|||
"Returns string type for a message object of type 'control" |
|||
"detect_targets/control") |
|||
(cl:defmethod roslisp-msg-protocol:md5sum ((type (cl:eql '<control>))) |
|||
"Returns md5sum for a message object of type '<control>" |
|||
"6f80b008c55c6a68dec8d378f0b74e50") |
|||
(cl:defmethod roslisp-msg-protocol:md5sum ((type (cl:eql 'control))) |
|||
"Returns md5sum for a message object of type 'control" |
|||
"6f80b008c55c6a68dec8d378f0b74e50") |
|||
(cl:defmethod roslisp-msg-protocol:message-definition ((type (cl:eql '<control>))) |
|||
"Returns full string definition for message of type '<control>" |
|||
(cl:format cl:nil "float64 target~%float64 error~%float64 derror~%float64 cmd_vel~%~%")) |
|||
(cl:defmethod roslisp-msg-protocol:message-definition ((type (cl:eql 'control))) |
|||
"Returns full string definition for message of type 'control" |
|||
(cl:format cl:nil "float64 target~%float64 error~%float64 derror~%float64 cmd_vel~%~%")) |
|||
(cl:defmethod roslisp-msg-protocol:serialization-length ((msg <control>)) |
|||
(cl:+ 0 |
|||
8 |
|||
8 |
|||
8 |
|||
8 |
|||
)) |
|||
(cl:defmethod roslisp-msg-protocol:ros-message-to-list ((msg <control>)) |
|||
"Converts a ROS message object to a list" |
|||
(cl:list 'control |
|||
(cl:cons ':target (target msg)) |
|||
(cl:cons ':error (error msg)) |
|||
(cl:cons ':derror (derror msg)) |
|||
(cl:cons ':cmd_vel (cmd_vel msg)) |
|||
)) |
|||
@ -1,2 +1,2 @@ |
|||
set(detect_targets_MESSAGE_FILES "/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/component_centers.msg") |
|||
set(detect_targets_MESSAGE_FILES "/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/component_centers.msg;/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/component_center.msg;/home/klafyvel/Documents/supelec/2A/projet/workspace/src/detect_targets/msg/control.msg") |
|||
set(detect_targets_SERVICE_FILES "") |
|||
|
|||
@ -0,0 +1,27 @@ |
|||
\subsubsection usage Usage |
|||
\verbatim |
|||
<node name="detect_targets" pkg="detect_targets" type="detect_targets"> |
|||
<param name="camera_angle" type="double" value="80.0" /> |
|||
<param name="target_width" type="double" value="1.0" /> |
|||
<param name="target_depth" type="double" value="0.2" /> |
|||
<param name="distance_to_target" type="double" value="2.0" /> |
|||
<param name="max_speed" type="double" value="0.3" /> |
|||
<param name="linear_x_Kp" type="double" value="0.01" /> |
|||
<param name="linear_x_Ki" type="double" value="0.01" /> |
|||
<param name="linear_x_Kd" type="double" value="0.01" /> |
|||
<param name="control_linear_x" type="bool" value="True" /> |
|||
<param name="linear_y_Kp" type="double" value="0.01" /> |
|||
<param name="linear_y_Ki" type="double" value="0.01" /> |
|||
<param name="linear_y_Kd" type="double" value="0.01" /> |
|||
<param name="control_linear_y" type="bool" value="True" /> |
|||
<param name="linear_z_Kp" type="double" value="0.1" /> |
|||
<param name="linear_z_Ki" type="double" value="0.1" /> |
|||
<param name="linear_z_Kd" type="double" value="0.1" /> |
|||
<param name="control_linear_z" type="bool" value="True" /> |
|||
<param name="angular_z_Kp" type="double" value="0.01" /> |
|||
<param name="angular_z_Ki" type="double" value="0.01" /> |
|||
<param name="angular_z_Kd" type="double" value="0.01" /> |
|||
<param name="control_angular_z" type="bool" value="True" /> |
|||
</node> |
|||
\endverbatim |
|||
|
|||
@ -0,0 +1,26 @@ |
|||
\subsubsection parameters ROS parameters |
|||
|
|||
Reads and maintains the following parameters on the ROS server |
|||
|
|||
- \b "~camera_angle" : \b [double] The angle corresponding to the image width min: 50.0, default: 80.0, max: 180.0 |
|||
- \b "~target_width" : \b [double] the real target width (m) min: 0.01, default: 1.0, max: 1.5 |
|||
- \b "~target_depth" : \b [double] the real target depth (m) min: 0.01, default: 0.2, max: 0.5 |
|||
- \b "~distance_to_target" : \b [double] The required distance to the target (m) min: 1.0, default: 2.0, max: 5.0 |
|||
- \b "~max_speed" : \b [double] the maximal linear speed min: 0.01, default: 0.3, max: 1.0 |
|||
- \b "~linear_x_Kp" : \b [double] linear.x controller Kp min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~linear_x_Ki" : \b [double] linear.x controller Ki min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~linear_x_Kd" : \b [double] linear.x controller Kd min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~control_linear_x" : \b [bool] Control distance to target min: False, default: True, max: True |
|||
- \b "~linear_y_Kp" : \b [double] linear.y controller Kp min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~linear_y_Ki" : \b [double] linear.y controller Ki min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~linear_y_Kd" : \b [double] linear.y controller Kd min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~control_linear_y" : \b [bool] Controls the facing to target min: False, default: True, max: True |
|||
- \b "~linear_z_Kp" : \b [double] linear.z controller Kp min: 0.0, default: 0.1, max: 10.0 |
|||
- \b "~linear_z_Ki" : \b [double] linear.z controller Ki min: 0.0, default: 0.1, max: 10.0 |
|||
- \b "~linear_z_Kd" : \b [double] linear.z controller Kd min: 0.0, default: 0.1, max: 10.0 |
|||
- \b "~control_linear_z" : \b [bool] Controls the facing to target min: False, default: True, max: True |
|||
- \b "~angular_z_Kp" : \b [double] angular.z controller Kp min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~angular_z_Ki" : \b [double] angular.z controller Ki min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~angular_z_Kd" : \b [double] angular.z controller Kd min: 0.0, default: 0.01, max: 1.0 |
|||
- \b "~control_angular_z" : \b [bool] Controls the facing to target min: False, default: True, max: True |
|||
|
|||
@ -0,0 +1,92 @@ |
|||
# Autogenerated param section. Do not hand edit. |
|||
param { |
|||
group.0 { |
|||
name=Dynamically Reconfigurable Parameters |
|||
desc=See the [[dynamic_reconfigure]] package for details on dynamically reconfigurable parameters. |
|||
0.name= ~camera_angle |
|||
0.default= 80.0 |
|||
0.type= double |
|||
0.desc=The angle corresponding to the image width Range: 50.0 to 180.0 |
|||
1.name= ~target_width |
|||
1.default= 1.0 |
|||
1.type= double |
|||
1.desc=the real target width (m) Range: 0.01 to 1.5 |
|||
2.name= ~target_depth |
|||
2.default= 0.2 |
|||
2.type= double |
|||
2.desc=the real target depth (m) Range: 0.01 to 0.5 |
|||
3.name= ~distance_to_target |
|||
3.default= 2.0 |
|||
3.type= double |
|||
3.desc=The required distance to the target (m) Range: 1.0 to 5.0 |
|||
4.name= ~max_speed |
|||
4.default= 0.3 |
|||
4.type= double |
|||
4.desc=the maximal linear speed Range: 0.01 to 1.0 |
|||
5.name= ~linear_x_Kp |
|||
5.default= 0.01 |
|||
5.type= double |
|||
5.desc=linear.x controller Kp Range: 0.0 to 1.0 |
|||
6.name= ~linear_x_Ki |
|||
6.default= 0.01 |
|||
6.type= double |
|||
6.desc=linear.x controller Ki Range: 0.0 to 1.0 |
|||
7.name= ~linear_x_Kd |
|||
7.default= 0.01 |
|||
7.type= double |
|||
7.desc=linear.x controller Kd Range: 0.0 to 1.0 |
|||
8.name= ~control_linear_x |
|||
8.default= True |
|||
8.type= bool |
|||
8.desc=Control distance to target |
|||
9.name= ~linear_y_Kp |
|||
9.default= 0.01 |
|||
9.type= double |
|||
9.desc=linear.y controller Kp Range: 0.0 to 1.0 |
|||
10.name= ~linear_y_Ki |
|||
10.default= 0.01 |
|||
10.type= double |
|||
10.desc=linear.y controller Ki Range: 0.0 to 1.0 |
|||
11.name= ~linear_y_Kd |
|||
11.default= 0.01 |
|||
11.type= double |
|||
11.desc=linear.y controller Kd Range: 0.0 to 1.0 |
|||
12.name= ~control_linear_y |
|||
12.default= True |
|||
12.type= bool |
|||
12.desc=Controls the facing to target |
|||
13.name= ~linear_z_Kp |
|||
13.default= 0.1 |
|||
13.type= double |
|||
13.desc=linear.z controller Kp Range: 0.0 to 10.0 |
|||
14.name= ~linear_z_Ki |
|||
14.default= 0.1 |
|||
14.type= double |
|||
14.desc=linear.z controller Ki Range: 0.0 to 10.0 |
|||
15.name= ~linear_z_Kd |
|||
15.default= 0.1 |
|||
15.type= double |
|||
15.desc=linear.z controller Kd Range: 0.0 to 10.0 |
|||
16.name= ~control_linear_z |
|||
16.default= True |
|||
16.type= bool |
|||
16.desc=Controls the facing to target |
|||
17.name= ~angular_z_Kp |
|||
17.default= 0.01 |
|||
17.type= double |
|||
17.desc=angular.z controller Kp Range: 0.0 to 1.0 |
|||
18.name= ~angular_z_Ki |
|||
18.default= 0.01 |
|||
18.type= double |
|||
18.desc=angular.z controller Ki Range: 0.0 to 1.0 |
|||
19.name= ~angular_z_Kd |
|||
19.default= 0.01 |
|||
19.type= double |
|||
19.desc=angular.z controller Kd Range: 0.0 to 1.0 |
|||
20.name= ~control_angular_z |
|||
20.default= True |
|||
20.type= bool |
|||
20.desc=Controls the facing to target |
|||
} |
|||
} |
|||
# End of autogenerated section. You may edit below. |
|||
@ -0,0 +1,145 @@ |
|||
// Auto-generated. Do not edit!
|
|||
|
|||
// (in-package detect_targets.msg)
|
|||
|
|||
|
|||
"use strict"; |
|||
|
|||
const _serializer = _ros_msg_utils.Serialize; |
|||
const _arraySerializer = _serializer.Array; |
|||
const _deserializer = _ros_msg_utils.Deserialize; |
|||
const _arrayDeserializer = _deserializer.Array; |
|||
const _finder = _ros_msg_utils.Find; |
|||
const _getByteLength = _ros_msg_utils.getByteLength; |
|||
|
|||
//-----------------------------------------------------------
|
|||
|
|||
class component_center { |
|||
constructor(initObj={}) { |
|||
if (initObj === null) { |
|||
// initObj === null is a special case for deserialization where we don't initialize fields
|
|||
this.label = null; |
|||
this.nb_vertex = null; |
|||
this.x = null; |
|||
this.y = null; |
|||
} |
|||
else { |
|||
if (initObj.hasOwnProperty('label')) { |
|||
this.label = initObj.label |
|||
} |
|||
else { |
|||
this.label = 0; |
|||
} |
|||
if (initObj.hasOwnProperty('nb_vertex')) { |
|||
this.nb_vertex = initObj.nb_vertex |
|||
} |
|||
else { |
|||
this.nb_vertex = 0; |
|||
} |
|||
if (initObj.hasOwnProperty('x')) { |
|||
this.x = initObj.x |
|||
} |
|||
else { |
|||
this.x = 0.0; |
|||
} |
|||
if (initObj.hasOwnProperty('y')) { |
|||
this.y = initObj.y |
|||
} |
|||
else { |
|||
this.y = 0.0; |
|||
} |
|||
} |
|||
} |
|||
|
|||
static serialize(obj, buffer, bufferOffset) { |
|||
// Serializes a message object of type component_center
|
|||
// Serialize message field [label]
|
|||
bufferOffset = _serializer.int64(obj.label, buffer, bufferOffset); |
|||
// Serialize message field [nb_vertex]
|
|||
bufferOffset = _serializer.int64(obj.nb_vertex, buffer, bufferOffset); |
|||
// Serialize message field [x]
|
|||
bufferOffset = _serializer.float64(obj.x, buffer, bufferOffset); |
|||
// Serialize message field [y]
|
|||
bufferOffset = _serializer.float64(obj.y, buffer, bufferOffset); |
|||
return bufferOffset; |
|||
} |
|||
|
|||
static deserialize(buffer, bufferOffset=[0]) { |
|||
//deserializes a message object of type component_center
|
|||
let len; |
|||
let data = new component_center(null); |
|||
// Deserialize message field [label]
|
|||
data.label = _deserializer.int64(buffer, bufferOffset); |
|||
// Deserialize message field [nb_vertex]
|
|||
data.nb_vertex = _deserializer.int64(buffer, bufferOffset); |
|||
// Deserialize message field [x]
|
|||
data.x = _deserializer.float64(buffer, bufferOffset); |
|||
// Deserialize message field [y]
|
|||
data.y = _deserializer.float64(buffer, bufferOffset); |
|||
return data; |
|||
} |
|||
|
|||
static getMessageSize(object) { |
|||
return 32; |
|||
} |
|||
|
|||
static datatype() { |
|||
// Returns string type for a message object
|
|||
return 'detect_targets/component_center'; |
|||
} |
|||
|
|||
static md5sum() { |
|||
//Returns md5sum for a message object
|
|||
return 'da1879b15a6566f498d1395c2d529084'; |
|||
} |
|||
|
|||
static messageDefinition() { |
|||
// Returns full string definition for message
|
|||
return ` |
|||
int64 label |
|||
int64 nb_vertex |
|||
float64 x |
|||
float64 y |
|||
|
|||
`;
|
|||
} |
|||
|
|||
static Resolve(msg) { |
|||
// deep-construct a valid message object instance of whatever was passed in
|
|||
if (typeof msg !== 'object' || msg === null) { |
|||
msg = {}; |
|||
} |
|||
const resolved = new component_center(null); |
|||
if (msg.label !== undefined) { |
|||
resolved.label = msg.label; |
|||
} |
|||
else { |
|||
resolved.label = 0 |
|||
} |
|||
|
|||
if (msg.nb_vertex !== undefined) { |
|||
resolved.nb_vertex = msg.nb_vertex; |
|||
} |
|||
else { |
|||
resolved.nb_vertex = 0 |
|||
} |
|||
|
|||
if (msg.x !== undefined) { |
|||
resolved.x = msg.x; |
|||
} |
|||
else { |
|||
resolved.x = 0.0 |
|||
} |
|||
|
|||
if (msg.y !== undefined) { |
|||
resolved.y = msg.y; |
|||
} |
|||
else { |
|||
resolved.y = 0.0 |
|||
} |
|||
|
|||
return resolved; |
|||
} |
|||
}; |
|||
|
|||
module.exports = component_center; |
|||
@ -0,0 +1,144 @@ |
|||
// Auto-generated. Do not edit!
|
|||
|
|||
// (in-package detect_targets.msg)
|
|||
|
|||
|
|||
"use strict"; |
|||
|
|||
const _serializer = _ros_msg_utils.Serialize; |
|||
const _arraySerializer = _serializer.Array; |
|||
const _deserializer = _ros_msg_utils.Deserialize; |
|||
const _arrayDeserializer = _deserializer.Array; |
|||
const _finder = _ros_msg_utils.Find; |
|||
const _getByteLength = _ros_msg_utils.getByteLength; |
|||
|
|||
//-----------------------------------------------------------
|
|||
|
|||
class control { |
|||
constructor(initObj={}) { |
|||
if (initObj === null) { |
|||
// initObj === null is a special case for deserialization where we don't initialize fields
|
|||
this.target = null; |
|||
this.error = null; |
|||
this.derror = null; |
|||
this.cmd_vel = null; |
|||
} |
|||
else { |
|||
if (initObj.hasOwnProperty('target')) { |
|||
this.target = initObj.target |
|||
} |
|||
else { |
|||
this.target = 0.0; |
|||
} |
|||
if (initObj.hasOwnProperty('error')) { |
|||
this.error = initObj.error |
|||
} |
|||
else { |
|||
this.error = 0.0; |
|||
} |
|||
if (initObj.hasOwnProperty('derror')) { |
|||
this.derror = initObj.derror |
|||
} |
|||
else { |
|||
this.derror = 0.0; |
|||
} |
|||
if (initObj.hasOwnProperty('cmd_vel')) { |
|||
this.cmd_vel = initObj.cmd_vel |
|||
} |
|||
else { |
|||
this.cmd_vel = 0.0; |
|||
} |
|||
} |
|||
} |
|||
|
|||
static serialize(obj, buffer, bufferOffset) { |
|||
// Serializes a message object of type control
|
|||
// Serialize message field [target]
|
|||
bufferOffset = _serializer.float64(obj.target, buffer, bufferOffset); |
|||
// Serialize message field [error]
|
|||
bufferOffset = _serializer.float64(obj.error, buffer, bufferOffset); |
|||
// Serialize message field [derror]
|
|||
bufferOffset = _serializer.float64(obj.derror, buffer, bufferOffset); |
|||
// Serialize message field [cmd_vel]
|
|||
bufferOffset = _serializer.float64(obj.cmd_vel, buffer, bufferOffset); |
|||
return bufferOffset; |
|||
} |
|||
|
|||
static deserialize(buffer, bufferOffset=[0]) { |
|||
//deserializes a message object of type control
|
|||
let len; |
|||
let data = new control(null); |
|||
// Deserialize message field [target]
|
|||
data.target = _deserializer.float64(buffer, bufferOffset); |
|||
// Deserialize message field [error]
|
|||
data.error = _deserializer.float64(buffer, bufferOffset); |
|||
// Deserialize message field [derror]
|
|||
data.derror = _deserializer.float64(buffer, bufferOffset); |
|||
// Deserialize message field [cmd_vel]
|
|||
data.cmd_vel = _deserializer.float64(buffer, bufferOffset); |
|||
return data; |
|||
} |
|||
|
|||
static getMessageSize(object) { |
|||
return 32; |
|||
} |
|||
|
|||
static datatype() { |
|||
// Returns string type for a message object
|
|||
return 'detect_targets/control'; |
|||
} |
|||
|
|||
static md5sum() { |
|||
//Returns md5sum for a message object
|
|||
return '6f80b008c55c6a68dec8d378f0b74e50'; |
|||
} |
|||
|
|||
static messageDefinition() { |
|||
// Returns full string definition for message
|
|||
return ` |
|||
float64 target |
|||
float64 error |
|||
float64 derror |
|||
float64 cmd_vel |
|||
`;
|
|||
} |
|||
|
|||
static Resolve(msg) { |
|||
// deep-construct a valid message object instance of whatever was passed in
|
|||
if (typeof msg !== 'object' || msg === null) { |
|||
msg = {}; |
|||
} |
|||
const resolved = new control(null); |
|||
if (msg.target !== undefined) { |
|||
resolved.target = msg.target; |
|||
} |
|||
else { |
|||
resolved.target = 0.0 |
|||
} |
|||
|
|||
if (msg.error !== undefined) { |
|||
resolved.error = msg.error; |
|||
} |
|||
else { |
|||
resolved.error = 0.0 |
|||
} |
|||
|
|||
if (msg.derror !== undefined) { |
|||
resolved.derror = msg.derror; |
|||
} |
|||
else { |
|||
resolved.derror = 0.0 |
|||
} |
|||
|
|||
if (msg.cmd_vel !== undefined) { |
|||
resolved.cmd_vel = msg.cmd_vel; |
|||
} |
|||
else { |
|||
resolved.cmd_vel = 0.0 |
|||
} |
|||
|
|||
return resolved; |
|||
} |
|||
}; |
|||
|
|||
module.exports = control; |
|||
@ -0,0 +1,139 @@ |
|||
;; Auto-generated. Do not edit! |
|||
|
|||
|
|||
(when (boundp 'detect_targets::component_center) |
|||
(if (not (find-package "DETECT_TARGETS")) |
|||
(make-package "DETECT_TARGETS")) |
|||
(shadow 'component_center (find-package "DETECT_TARGETS"))) |
|||
(unless (find-package "DETECT_TARGETS::COMPONENT_CENTER") |
|||
(make-package "DETECT_TARGETS::COMPONENT_CENTER")) |
|||
|
|||
(in-package "ROS") |
|||
;;//! \htmlinclude component_center.msg.html |
|||
|
|||
|
|||
(defclass detect_targets::component_center |
|||
:super ros::object |
|||
:slots (_label _nb_vertex _x _y )) |
|||
|
|||
(defmethod detect_targets::component_center |
|||
(:init |
|||
(&key |
|||
((:label __label) 0) |
|||
((:nb_vertex __nb_vertex) 0) |
|||
((:x __x) 0.0) |
|||
((:y __y) 0.0) |
|||
) |
|||
(send-super :init) |
|||
(setq _label (round __label)) |
|||
(setq _nb_vertex (round __nb_vertex)) |
|||
(setq _x (float __x)) |
|||
(setq _y (float __y)) |
|||
self) |
|||
(:label |
|||
(&optional __label) |
|||
(if __label (setq _label __label)) _label) |
|||
(:nb_vertex |
|||
(&optional __nb_vertex) |
|||
(if __nb_vertex (setq _nb_vertex __nb_vertex)) _nb_vertex) |
|||
(:x |
|||
(&optional __x) |
|||
(if __x (setq _x __x)) _x) |
|||
(:y |
|||
(&optional __y) |
|||
(if __y (setq _y __y)) _y) |
|||
(:serialization-length |
|||
() |
|||
(+ |
|||
;; int64 _label |
|||
8 |
|||
;; int64 _nb_vertex |
|||
8 |
|||
;; float64 _x |
|||
8 |
|||
;; float64 _y |
|||
8 |
|||
)) |
|||
(:serialize |
|||
(&optional strm) |
|||
(let ((s (if strm strm |
|||
(make-string-output-stream (send self :serialization-length))))) |
|||
;; int64 _label |
|||
#+(or :alpha :irix6 :x86_64) |
|||
(progn (sys::poke _label (send s :buffer) (send s :count) :long) (incf (stream-count s) 8)) |
|||
#-(or :alpha :irix6 :x86_64) |
|||
(cond ((and (class _label) (= (length (_label . bv)) 2)) ;; bignum |
|||
(write-long (ash (elt (_label . bv) 0) 0) s) |
|||
(write-long (ash (elt (_label . bv) 1) -1) s)) |
|||
((and (class _label) (= (length (_label . bv)) 1)) ;; big1 |
|||
(write-long (elt (_label . bv) 0) s) |
|||
(write-long (if (>= _label 0) 0 #xffffffff) s)) |
|||
(t ;; integer |
|||
(write-long _label s)(write-long (if (>= _label 0) 0 #xffffffff) s))) |
|||
;; int64 _nb_vertex |
|||
#+(or :alpha :irix6 :x86_64) |
|||
(progn (sys::poke _nb_vertex (send s :buffer) (send s :count) :long) (incf (stream-count s) 8)) |
|||
#-(or :alpha :irix6 :x86_64) |
|||
(cond ((and (class _nb_vertex) (= (length (_nb_vertex . bv)) 2)) ;; bignum |
|||
(write-long (ash (elt (_nb_vertex . bv) 0) 0) s) |
|||
(write-long (ash (elt (_nb_vertex . bv) 1) -1) s)) |
|||
((and (class _nb_vertex) (= (length (_nb_vertex . bv)) 1)) ;; big1 |
|||
(write-long (elt (_nb_vertex . bv) 0) s) |
|||
(write-long (if (>= _nb_vertex 0) 0 #xffffffff) s)) |
|||
(t ;; integer |
|||
(write-long _nb_vertex s)(write-long (if (>= _nb_vertex 0) 0 #xffffffff) s))) |
|||
;; float64 _x |
|||
(sys::poke _x (send s :buffer) (send s :count) :double) (incf (stream-count s) 8) |
|||
;; float64 _y |
|||
(sys::poke _y (send s :buffer) (send s :count) :double) (incf (stream-count s) 8) |
|||
;; |
|||
(if (null strm) (get-output-stream-string s)))) |
|||
(:deserialize |
|||
(buf &optional (ptr- 0)) |
|||
;; int64 _label |
|||
#+(or :alpha :irix6 :x86_64) |
|||
(setf _label (prog1 (sys::peek buf ptr- :long) (incf ptr- 8))) |
|||
#-(or :alpha :irix6 :x86_64) |
|||
(setf _label (let ((b0 (prog1 (sys::peek buf ptr- :integer) (incf ptr- 4))) |
|||
(b1 (prog1 (sys::peek buf ptr- :integer) (incf ptr- 4)))) |
|||
(cond ((= b1 -1) b0) |
|||
((and (= b1 0) |
|||
(<= lisp::most-negative-fixnum b0 lisp::most-positive-fixnum)) |
|||
b0) |
|||
((= b1 0) (make-instance bignum :size 1 :bv (integer-vector b0))) |
|||
(t (make-instance bignum :size 2 :bv (integer-vector b0 (ash b1 1))))))) |
|||
;; int64 _nb_vertex |
|||
#+(or :alpha :irix6 :x86_64) |
|||
(setf _nb_vertex (prog1 (sys::peek buf ptr- :long) (incf ptr- 8))) |
|||
#-(or :alpha :irix6 :x86_64) |
|||
(setf _nb_vertex (let ((b0 (prog1 (sys::peek buf ptr- :integer) (incf ptr- 4))) |
|||
(b1 (prog1 (sys::peek buf ptr- :integer) (incf ptr- 4)))) |
|||
(cond ((= b1 -1) b0) |
|||
((and (= b1 0) |
|||
(<= lisp::most-negative-fixnum b0 lisp::most-positive-fixnum)) |
|||
b0) |
|||
((= b1 0) (make-instance bignum :size 1 :bv (integer-vector b0))) |
|||
(t (make-instance bignum :size 2 :bv (integer-vector b0 (ash b1 1))))))) |
|||
;; float64 _x |
|||
(setq _x (sys::peek buf ptr- :double)) (incf ptr- 8) |
|||
;; float64 _y |
|||
(setq _y (sys::peek buf ptr- :double)) (incf ptr- 8) |
|||
;; |
|||
self) |
|||
) |
|||
|
|||
(setf (get detect_targets::component_center :md5sum-) "da1879b15a6566f498d1395c2d529084") |
|||
(setf (get detect_targets::component_center :datatype-) "detect_targets/component_center") |
|||
(setf (get detect_targets::component_center :definition-) |
|||
"int64 label |
|||
int64 nb_vertex |
|||
float64 x |
|||
float64 y |
|||
|
|||
") |
|||
|
|||
|
|||
|
|||
(provide :detect_targets/component_center "da1879b15a6566f498d1395c2d529084") |
|||
|
|||
|
|||
@ -0,0 +1,98 @@ |
|||
;; Auto-generated. Do not edit! |
|||
|
|||
|
|||
(when (boundp 'detect_targets::control) |
|||
(if (not (find-package "DETECT_TARGETS")) |
|||
(make-package "DETECT_TARGETS")) |
|||
(shadow 'control (find-package "DETECT_TARGETS"))) |
|||
(unless (find-package "DETECT_TARGETS::CONTROL") |
|||
(make-package "DETECT_TARGETS::CONTROL")) |
|||
|
|||
(in-package "ROS") |
|||
;;//! \htmlinclude control.msg.html |
|||
|
|||
|
|||
(defclass detect_targets::control |
|||
:super ros::object |
|||
:slots (_target _error _derror _cmd_vel )) |
|||
|
|||
(defmethod detect_targets::control |
|||
(:init |
|||
(&key |
|||
((:target __target) 0.0) |
|||
((:error __error) 0.0) |
|||
((:derror __derror) 0.0) |
|||
((:cmd_vel __cmd_vel) 0.0) |
|||
) |
|||
(send-super :init) |
|||
(setq _target (float __target)) |
|||
(setq _error (float __error)) |
|||
(setq _derror (float __derror)) |
|||
(setq _cmd_vel (float __cmd_vel)) |
|||
self) |
|||
(:target |
|||
(&optional __target) |
|||
(if __target (setq _target __target)) _target) |
|||
(:error |
|||
(&optional __error) |
|||
(if __error (setq _error __error)) _error) |
|||
(:derror |
|||
(&optional __derror) |
|||
(if __derror (setq _derror __derror)) _derror) |
|||
(:cmd_vel |
|||
(&optional __cmd_vel) |
|||
(if __cmd_vel (setq _cmd_vel __cmd_vel)) _cmd_vel) |
|||
(:serialization-length |
|||
() |
|||
(+ |
|||
;; float64 _target |
|||
8 |
|||
;; float64 _error |
|||
8 |
|||
;; float64 _derror |
|||
8 |
|||
;; float64 _cmd_vel |
|||
8 |
|||
)) |
|||
(:serialize |
|||
(&optional strm) |
|||
(let ((s (if strm strm |
|||
(make-string-output-stream (send self :serialization-length))))) |
|||
;; float64 _target |
|||
(sys::poke _target (send s :buffer) (send s :count) :double) (incf (stream-count s) 8) |
|||
;; float64 _error |
|||
(sys::poke _error (send s :buffer) (send s :count) :double) (incf (stream-count s) 8) |
|||
;; float64 _derror |
|||
(sys::poke _derror (send s :buffer) (send s :count) :double) (incf (stream-count s) 8) |
|||
;; float64 _cmd_vel |
|||
(sys::poke _cmd_vel (send s :buffer) (send s :count) :double) (incf (stream-count s) 8) |
|||
;; |
|||
(if (null strm) (get-output-stream-string s)))) |
|||
(:deserialize |
|||
(buf &optional (ptr- 0)) |
|||
;; float64 _target |
|||
(setq _target (sys::peek buf ptr- :double)) (incf ptr- 8) |
|||
;; float64 _error |
|||
(setq _error (sys::peek buf ptr- :double)) (incf ptr- 8) |
|||
;; float64 _derror |
|||
(setq _derror (sys::peek buf ptr- :double)) (incf ptr- 8) |
|||
;; float64 _cmd_vel |
|||
(setq _cmd_vel (sys::peek buf ptr- :double)) (incf ptr- 8) |
|||
;; |
|||
self) |
|||
) |
|||
|
|||
(setf (get detect_targets::control :md5sum-) "6f80b008c55c6a68dec8d378f0b74e50") |
|||
(setf (get detect_targets::control :datatype-) "detect_targets/control") |
|||
(setf (get detect_targets::control :definition-) |
|||
"float64 target |
|||
float64 error |
|||
float64 derror |
|||
float64 cmd_vel |
|||
") |
|||
|
|||
|
|||
|
|||
(provide :detect_targets/control "6f80b008c55c6a68dec8d378f0b74e50") |
|||
|
|||
|
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/TriangleParamConfig.h |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/component_center.h |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/include/detect_targets/control.h |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/_package_component_center.lisp |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/_package_control.lisp |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/component_center.lisp |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/common-lisp/ros/detect_targets/msg/control.lisp |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/TriangleParamConfig-usage.dox |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/TriangleParamConfig.dox |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/detect_targets/docs/TriangleParamConfig.wikidoc |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/gennodejs/ros/detect_targets/msg/component_center.js |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/gennodejs/ros/detect_targets/msg/control.js |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/roseus/ros/detect_targets/msg/component_center.l |
|||
@ -0,0 +1 @@ |
|||
/home/klafyvel/Documents/supelec/2A/projet/workspace/devel/.private/detect_targets/share/roseus/ros/detect_targets/msg/control.l |
|||
@ -0,0 +1,37 @@ |
|||
#!/usr/bin/env python |
|||
PACKAGE = "detect_targets" |
|||
|
|||
from dynamic_reconfigure.parameter_generator_catkin import * |
|||
|
|||
gen = ParameterGenerator() |
|||
|
|||
gen.add("camera_angle", double_t, 0, "The angle corresponding to the image width", 80, 50, 180) |
|||
gen.add("target_width", double_t, 0, "the real target width (m)", 1, 0.01, 1.5) |
|||
gen.add("target_depth", double_t, 0, "the real target depth (m)", .2, 0.01, 0.5) |
|||
gen.add("distance_to_target", double_t, 0, "The required distance to the target (m)", 2, 1, 5) |
|||
gen.add("max_speed", double_t, 0, "the maximal linear speed", .3, .01, 1) |
|||
|
|||
|
|||
gen.add("linear_x_Kp", double_t, 0, "linear.x controller Kp", .01, 0, 1) |
|||
gen.add("linear_x_Ki", double_t, 0, "linear.x controller Ki", .01, 0, 1) |
|||
gen.add("linear_x_Kd", double_t, 0, "linear.x controller Kd", .01, 0, 1) |
|||
gen.add("control_linear_x", bool_t, 0, "Control distance to target", True) |
|||
|
|||
gen.add("linear_y_Kp", double_t, 0, "linear.y controller Kp", .01, 0, 1) |
|||
gen.add("linear_y_Ki", double_t, 0, "linear.y controller Ki", .01, 0, 1) |
|||
gen.add("linear_y_Kd", double_t, 0, "linear.y controller Kd", .01, 0, 1) |
|||
gen.add("control_linear_y", bool_t, 0, "Controls the facing to target", True) |
|||
|
|||
gen.add("linear_z_Kp", double_t, 0, "linear.z controller Kp", .1, 0, 10) |
|||
gen.add("linear_z_Ki", double_t, 0, "linear.z controller Ki", .1, 0, 10) |
|||
gen.add("linear_z_Kd", double_t, 0, "linear.z controller Kd", .1, 0, 10) |
|||
gen.add("control_linear_z", bool_t, 0, "Controls the facing to target", True) |
|||
|
|||
gen.add("angular_z_Kp", double_t, 0, "angular.z controller Kp", .01, 0, 1) |
|||
gen.add("angular_z_Ki", double_t, 0, "angular.z controller Ki", .01, 0, 1) |
|||
gen.add("angular_z_Kd", double_t, 0, "angular.z controller Kd", .01, 0, 1) |
|||
gen.add("control_angular_z", bool_t, 0, "Controls the facing to target", True) |
|||
|
|||
|
|||
|
|||
exit(gen.generate(PACKAGE, "detect_targets", "TriangleParam")) |
|||
@ -0,0 +1,4 @@ |
|||
float64 target |
|||
float64 error |
|||
float64 derror |
|||
float64 cmd_vel |
|||
@ -0,0 +1,255 @@ |
|||
#! /usr/bin/env python |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import math |
|||
|
|||
import roslib |
|||
import rospy |
|||
from geometry_msgs.msg import Twist |
|||
import tf |
|||
|
|||
from simple_pid import PID |
|||
|
|||
import dynamic_reconfigure.server |
|||
from detect_targets.cfg import TriangleParamConfig |
|||
from detect_targets.msg import control |
|||
|
|||
from detect_targets.msg import component_centers |
|||
|
|||
|
|||
class TriangleControl: |
|||
|
|||
def on_reconf(self, config, level): |
|||
|
|||
self.camera_angle = config['camera_angle']*math.pi/360.0 # theta/2 |
|||
self.tan_cam = math.tan(self.camera_angle) |
|||
|
|||
self.target_width = config['target_width'] |
|||
self.target_depth = config['target_depth'] |
|||
self.target_distance = config['distance_to_target'] |
|||
self.max_speed = config['max_speed'] |
|||
|
|||
#gains are reversed because of the chosen angle direction |
|||
self.pid_angular_z.Kp = - config['angular_z_Kp'] |
|||
self.pid_angular_z.Ki = - config['angular_z_Ki'] |
|||
self.pid_angular_z.Kd = - config['angular_z_Kd'] |
|||
self.pid_angular_z.set_auto_mode(config['control_angular_z'], last_output=0.0) |
|||
if not config['control_angular_z']: |
|||
self.pid_angular_z._last_output = 0.0 |
|||
|
|||
self.pid_linear_z.Kp = config['linear_z_Kp'] |
|||
self.pid_linear_z.Ki = config['linear_z_Ki'] |
|||
self.pid_linear_z.Kd = config['linear_z_Kd'] |
|||
self.pid_linear_z.set_auto_mode(config['control_linear_z'], last_output=0.0) |
|||
if not config['control_linear_z']: |
|||
self.pid_linear_z._last_output = 0.0 |
|||
self.pid_linear_z.output_limits = ( |
|||
-config['max_speed'], |
|||
config['max_speed'] |
|||
) |
|||
self.pid_linear_y.Kp = config['linear_y_Kp'] |
|||
self.pid_linear_y.Ki = config['linear_y_Ki'] |
|||
self.pid_linear_y.Kd = config['linear_y_Kd'] |
|||
self.pid_linear_y.set_auto_mode(config['control_linear_y'], last_output=0.0) |
|||
if not config['control_linear_y']: |
|||
self.pid_linear_y._last_output = 0.0 |
|||
self.pid_linear_y.output_limits = ( |
|||
-config['max_speed'], |
|||
config['max_speed'] |
|||
) |
|||
|
|||
# X gains are reversed because of the chosen axis |
|||
self.pid_linear_x.Kp = - config['linear_x_Kp'] |
|||
self.pid_linear_x.Ki = - config['linear_x_Ki'] |
|||
self.pid_linear_x.Kd = - config['linear_x_Kd'] |
|||
self.pid_linear_x.set_auto_mode(config['control_linear_x'], last_output=0.0) |
|||
if not config['control_linear_x']: |
|||
self.pid_linear_x._last_output = 0.0 |
|||
self.pid_linear_x.output_limits = ( |
|||
-config['max_speed'], |
|||
config['max_speed'] |
|||
) |
|||
self.pid_linear_x.setpoint = self.target_distance |
|||
|
|||
return config |
|||
|
|||
def clear_controls(self): |
|||
self.error_angular_z.clear() |
|||
self.error_linear_z.clear() |
|||
self.error_linear_y.clear() |
|||
self.error_linear_x.clear() |
|||
|
|||
def saturate_twist(): |
|||
if self.twist.linear.x > self.max_speed: |
|||
self.twist.linear.x = self.max_speed |
|||
elif self.twist.linear.x < - self.max_speed: |
|||
self.twist.linear.x = - self.max_speed |
|||
if self.twist.linear.y > self.max_speed: |
|||
self.twist.linear.y = self.max_speed |
|||
elif self.twist.linear.y < - self.max_speed: |
|||
self.twist.linear.y = - self.max_speed |
|||
if self.twist.linear.z > self.max_speed: |
|||
self.twist.linear.z = self.max_speed |
|||
elif self.twist.linear.z < - self.max_speed: |
|||
self.twist.linear.z = - self.max_speed |
|||
|
|||
def on_comp(self, msg): |
|||
self.twist = Twist() |
|||
if len(msg.data) > 2: |
|||
msg.data.sort(key=lambda component: -component.nb_vertex) |
|||
pts = msg.data[0:3] |
|||
pts.sort(key=lambda component: -component.y) |
|||
H = pts[0] |
|||
L = pts[2] |
|||
R = pts[1] |
|||
if pts[1].x < pts[2].x: |
|||
L = pts[1] |
|||
R = pts[2] |
|||
self.triangle(L, H, R) |
|||
self.twist_pub.publish(self.twist) |
|||
|
|||
def triangle(self, L, H, R): |
|||
now = rospy.Time.now() |
|||
t = (now - self.first_time).to_sec() |
|||
self.Gx = (L.x + H.x + R.x)*.333333 |
|||
Gy = (L.y + H.y + R.y)*.333333 |
|||
w = R.x - L.x |
|||
h = H.x - .5 * (R.x + L.x) |
|||
|
|||
self.alpha = math.atan(h*self.target_width/(1e-5+w*self.target_depth)) |
|||
ca = math.cos(self.alpha) |
|||
sa = math.sin(self.alpha) |
|||
# why *.5.... I don't know. |
|||
self.d = self.target_width*ca/(w*self.tan_cam) * .5 |
|||
self.z = -Gy*self.d*self.tan_cam |
|||
|
|||
# print('#######') |
|||
#print('d = {}, z = {}, alpha = {}'.format(self.d, self.z, self.alpha*180/math.pi)) |
|||
#print('w = {}, h = {}, Gy = {}'.format(w, h, Gy)) |
|||
#print('L = {}, l = {}'.format(self.target_width, self.target_depth)) |
|||
|
|||
self.br.sendTransform((self.d * ca, self.d * sa, self.z), |
|||
tf.transformations.quaternion_from_euler( |
|||
0, 0, self.alpha + math.pi), |
|||
now, |
|||
'drone', 'target') |
|||
|
|||
self.twist.angular.z = self.pid_angular_z(-self.Gx * self.camera_angle) |
|||
if self.angular_z_pub.get_num_connections() > 0: |
|||
self.angular_z_info.target = 0 |
|||
self.angular_z_info.error = 0 |
|||
self.angular_z_info.derror = 0 |
|||
self.angular_z_info.cmd_vel = self.twist.angular.z |
|||
self.angular_z_pub.publish(self.angular_z_info) |
|||
|
|||
self.twist.linear.z = self.pid_linear_z(self.z) |
|||
if self.linear_z_pub.get_num_connections() > 0: |
|||
self.linear_z_info.target = 0 |
|||
self.linear_z_info.error = self.z |
|||
self.linear_z_info.derror = 0 |
|||
self.linear_z_info.cmd_vel = self.twist.linear.z |
|||
self.linear_z_pub.publish(self.linear_z_info) |
|||
|
|||
self.twist.linear.y = self.pid_linear_y(-self.alpha) |
|||
if self.linear_y_pub.get_num_connections() > 0: |
|||
self.linear_y_info.target = 0 |
|||
self.linear_y_info.error = -self.alpha |
|||
self.linear_y_info.derror = 0 |
|||
self.linear_y_info.cmd_vel = self.twist.linear.y |
|||
self.linear_y_pub.publish(self.linear_y_info) |
|||
|
|||
self.twist.linear.x = self.pid_linear_x(self.d) |
|||
if self.linear_x_pub.get_num_connections() > 0: |
|||
self.linear_x_info.target = self.pid_linear_x.setpoint |
|||
self.linear_x_info.error = self.target_distance - self.d |
|||
self.linear_x_info.derror = 0 |
|||
self.linear_x_info.cmd_vel = self.twist.linear.x |
|||
self.linear_x_pub.publish(self.linear_x_info) |
|||
|
|||
def __init__(self): |
|||
|
|||
self.Gx = 0 |
|||
|
|||
self.alpha = 0 |
|||
self.d = 0 |
|||
self.z = 0 |
|||
|
|||
self.camera_angle = 80*math.pi/180./2.0 |
|||
self.tan_cam = math.tan(self.camera_angle) |
|||
self.target_width = 1 |
|||
self.target_depth = .2 |
|||
self.target_distance = 2 |
|||
self.max_speed = .3 |
|||
|
|||
self.last_time_angular_z = 0 |
|||
self.last_time_linear_z = 0 |
|||
self.last_time_linear_y = 0 |
|||
self.last_time_linear_x = 0 |
|||
self.first_time = rospy.Time.now() |
|||
|
|||
self.pid_angular_z = PID( |
|||
1, |
|||
0, |
|||
0, |
|||
auto_mode=True, |
|||
sample_time=0.14 # 7 Hz |
|||
) |
|||
self.pid_linear_z = PID( |
|||
1, |
|||
0, |
|||
0, |
|||
auto_mode=True, |
|||
sample_time=0.14 |
|||
) |
|||
self.pid_linear_y = PID( |
|||
1, |
|||
0, |
|||
0, |
|||
auto_mode=True, |
|||
sample_time=0.14 |
|||
) |
|||
self.pid_linear_x = PID( |
|||
1, |
|||
0, |
|||
0, |
|||
auto_mode=True, |
|||
sample_time=0.14, |
|||
setpoint=self.target_distance, |
|||
) |
|||
|
|||
# Control info |
|||
self.angular_z_info = control() |
|||
self.linear_x_info = control() |
|||
self.linear_y_info = control() |
|||
self.linear_z_info = control() |
|||
|
|||
# ROS stuff |
|||
|
|||
self.twist = Twist() |
|||
self.twist_pub = rospy.Publisher( |
|||
'cmd_vel', Twist, queue_size=1) |
|||
self.angular_z_pub = rospy.Publisher( |
|||
'angular_z_control', control, queue_size=1) |
|||
self.linear_z_pub = rospy.Publisher( |
|||
'linear_z_control', control, queue_size=1) |
|||
self.linear_y_pub = rospy.Publisher( |
|||
'linear_y_control', control, queue_size=1) |
|||
self.linear_x_pub = rospy.Publisher( |
|||
'linear_x_control', control, queue_size=1) |
|||
self.comp_sub = rospy.Subscriber( |
|||
"component_centers", component_centers, self.on_comp, queue_size=1) |
|||
|
|||
self.config_srv = dynamic_reconfigure.server.Server( |
|||
TriangleParamConfig, self.on_reconf) |
|||
|
|||
self.br = tf.TransformBroadcaster() |
|||
|
|||
|
|||
if __name__ == '__main__': |
|||
print "running" |
|||
rospy.init_node('triangle_control', anonymous=True) |
|||
|
|||
print "node created" |
|||
|
|||
triangle = TriangleControl() |
|||
rospy.spin() |
|||
Loading…
Reference in new issue