diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73b7f2b..48e9874 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -193,21 +193,66 @@ focal-relwithdebinfo-compile: only: - master -# elcapitan-relwithdebinfo-compile: -# <<: *compile_test_definition -# tags: [macos, "10.11"] -# only: +focal-gcc10-relwithdebinfo-compile: + <<: *prepare_docker_definition + image: vladyslavusenko/b_image_focal:latest + variables: + BUILD_TYPE: CiRelWithDebInfo + CC: gcc-10 + CXX: g++-10 + only: # - master -# variables: -# BUILD_TYPE: CiRelWithDebInfo + stage: build + script: + - add-apt-repository ppa:ubuntu-toolchain-r/ppa -y + - apt-get update + - apt-get install -y g++-10 + - mkdir build + - cd build + - cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCXX_MARCH=${CXX_MARCH} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} + - make -j3 + - ctest + # smoke test to see if all executables at least start up + - ./basalt_calibrate --help + - ./basalt_calibrate_imu --help + - ./basalt_mapper --help + - ./basalt_mapper_sim --help + - ./basalt_mapper_sim_naive --help + - ./basalt_opt_flow --help + - ./basalt_vio --help + - ./basalt_vio_sim --help -# mojave-relwithdebinfo-compile: -# <<: *compile_test_definition -# tags: [macos, "10.14"] -# only: -# - master -# variables: -# BUILD_TYPE: CiRelWithDebInfo +# Compilation with GCC 11 is broken due to a bug that is fixed only in future relases 11.3 and 12 +# See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100438 +# See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99744#c15 +# focal-gcc11-relwithdebinfo-compile: +# <<: *prepare_docker_definition +# image: vladyslavusenko/b_image_focal:latest +# variables: +# BUILD_TYPE: CiRelWithDebInfo +# CC: gcc-11 +# CXX: g++-11 +# only: +# # - master +# stage: build +# script: +# - add-apt-repository ppa:ubuntu-toolchain-r/test -y +# - apt-get update +# - apt-get install -y g++-11 +# - mkdir build +# - cd build +# - cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCXX_MARCH=${CXX_MARCH} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} +# - make -j3 +# - ctest +# # smoke test to see if all executables at least start up +# - ./basalt_calibrate --help +# - ./basalt_calibrate_imu --help +# - ./basalt_mapper --help +# - ./basalt_mapper_sim --help +# - ./basalt_mapper_sim_naive --help +# - ./basalt_opt_flow --help +# - ./basalt_vio --help +# - ./basalt_vio_sim --help catalina-relwithdebinfo-compile: <<: *compile_test_definition @@ -221,12 +266,21 @@ catalina-brewclang-relwithdebinfo-compile: <<: *compile_test_definition tags: [macos, "10.15"] only: - - master +# - master variables: BUILD_TYPE: CiRelWithDebInfo CC: /usr/local/opt/llvm/bin/clang CXX: /usr/local/opt/llvm/bin/clang++ +bigsur-relwithdebinfo-compile: + <<: *compile_test_definition + tags: [macos, "11"] + only: +# - master + variables: + BUILD_TYPE: CiRelWithDebInfo + + # check if clang-format would make any changes clang-format: tags: diff --git a/.gitmodules b/.gitmodules index f9a6069..fb57be6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,16 +12,14 @@ url = https://github.com/ros/ros_comm.git [submodule "thirdparty/roscpp_core"] path = thirdparty/ros/roscpp_core - url = https://github.com/ros/roscpp_core.git +# url = https://github.com/ros/roscpp_core.git + url = https://github.com/NikolausDemmel/roscpp_core.git [submodule "thirdparty/console_bridge"] path = thirdparty/ros/console_bridge url = https://github.com/ros/console_bridge.git [submodule "thirdparty/basalt-headers"] path = thirdparty/basalt-headers url = https://gitlab.com/VladyslavUsenko/basalt-headers.git -[submodule "thirdparty/fmt"] - path = thirdparty/fmt - url = https://github.com/fmtlib/fmt.git [submodule "thirdparty/magic_enum"] path = thirdparty/magic_enum url = https://github.com/Neargye/magic_enum.git diff --git a/CMakeLists.txt b/CMakeLists.txt index a7eb330..690196d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,4 @@ -cmake_minimum_required(VERSION 3.10) - -include("thirdparty/basalt-headers/cmake_modules/PreProjectWorkarounds.cmake") +cmake_minimum_required(VERSION 3.10...3.18) project(basalt) @@ -251,37 +249,40 @@ set(CMAKE_CXX_FLAGS "${BASALT_CXX_FLAGS} ${BASALT_MARCH_FLAGS} ${BASALT_PASSED_C set(EIGEN_INCLUDE_DIR_HINTS ${EIGEN_ROOT}) find_package(Eigen3 3.4.0 EXACT REQUIRED MODULE) -include_directories(${EIGEN3_INCLUDE_DIR}) message(STATUS "Found Eigen headers in: ${EIGEN3_INCLUDE_DIR}") if(NOT EIGEN3_INCLUDE_DIR MATCHES "^${EIGEN_ROOT}") message(WARNING "Found Eigen headers are outside of specified EIGEN_ROOT '${EIGEN_ROOT}'") endif() find_package(TBB REQUIRED) -include_directories(${TBB_INCLUDE_DIR}) message(STATUS "Found TBB ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} (interface version ${TBB_INTERFACE_VERSION}) headers in: ${TBB_INCLUDE_DIRS}") if (TBB_INTERFACE_VERSION LESS 11004) # enable global_control header for earlier TBB versions (Ubuntu 16.04, 18.04) add_definitions(-DTBB_PREVIEW_GLOBAL_CONTROL) endif() -find_package(OpenCV REQUIRED core imgproc calib3d highgui) -include_directories(${OpenCV_INCLUDE_DIR}) -message(STATUS "Found OpenCV headers in: ${OpenCV_INCLUDE_DIR}") +# NOTE: not specifying version, since 2, 3 or 4 is fine +find_package(OpenCV REQUIRED COMPONENTS core imgproc calib3d highgui) +message(STATUS "Found OpenCV ${OpenCV_VERSION} headers in: ${OpenCV_INCLUDE_DIRS}") message(STATUS "Found OpenCV_LIBS: ${OpenCV_LIBS}") +# Add our own custom scoped opencv target since none is provided by OpenCV itself +add_library(basalt::opencv INTERFACE IMPORTED) +set_property(TARGET basalt::opencv PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${OpenCV_INCLUDE_DIRS}) +set_property(TARGET basalt::opencv PROPERTY INTERFACE_LINK_LIBRARIES ${OpenCV_LIBS}) + find_package(fmt REQUIRED) +message(STATUS "Found {fmt} ${fmt_VERSION} in: ${fmt_DIR}") add_subdirectory(thirdparty) +# custom scoped cli11 target +add_library(basalt::cli11 INTERFACE IMPORTED) +set_property(TARGET basalt::cli11 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/CLI11/include) -include_directories(thirdparty/basalt-headers/thirdparty/Sophus) -include_directories(thirdparty/basalt-headers/thirdparty/cereal/include) -include_directories(thirdparty/basalt-headers/include) -include_directories(thirdparty/CLI11/include) -include_directories(thirdparty/magic_enum/include) - -include_directories(include) +# custom scoped magic_enum target +add_library(basalt::magic_enum INTERFACE IMPORTED) +set_property(TARGET basalt::magic_enum PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/magic_enum/include) add_library(basalt SHARED @@ -312,54 +313,55 @@ add_library(basalt SHARED target_link_libraries(basalt - PUBLIC ${TBB_LIBRARIES} ${STD_CXX_FS} ${OpenCV_LIBS} fmt::fmt - PRIVATE rosbag apriltag opengv nlohmann::json) + PUBLIC ${STD_CXX_FS} basalt::opencv basalt::basalt-headers TBB::tbb + PRIVATE basalt::magic_enum rosbag apriltag opengv nlohmann::json fmt::fmt) +target_include_directories(basalt PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_compile_definitions(basalt PUBLIC ${BASALT_COMPILE_DEFINITIONS}) #target_compile_definitions(basalt PUBLIC BASALT_DISABLE_ASSERTS) add_executable(basalt_calibrate src/calibrate.cpp src/calibration/cam_calib.cpp) -target_link_libraries(basalt_calibrate basalt pangolin) +target_link_libraries(basalt_calibrate basalt pangolin basalt::cli11) add_executable(basalt_calibrate_imu src/calibrate_imu.cpp src/calibration/cam_imu_calib.cpp) -target_link_libraries(basalt_calibrate_imu basalt pangolin) +target_link_libraries(basalt_calibrate_imu basalt pangolin basalt::cli11) add_executable(basalt_vio_sim src/vio_sim.cpp) -target_link_libraries(basalt_vio_sim basalt pangolin) +target_link_libraries(basalt_vio_sim basalt pangolin basalt::cli11) add_executable(basalt_mapper_sim src/mapper_sim.cpp) -target_link_libraries(basalt_mapper_sim basalt pangolin) +target_link_libraries(basalt_mapper_sim basalt pangolin basalt::cli11) # mapper sim native doesn't use template free interface if(BASALT_INSTANTIATIONS_DOUBLE) add_executable(basalt_mapper_sim_naive src/mapper_sim_naive.cpp) - target_link_libraries(basalt_mapper_sim_naive basalt pangolin) + target_link_libraries(basalt_mapper_sim_naive basalt pangolin basalt::cli11) endif() add_executable(basalt_mapper src/mapper.cpp) -target_link_libraries(basalt_mapper basalt pangolin) +target_link_libraries(basalt_mapper basalt pangolin basalt::cli11) add_executable(basalt_opt_flow src/opt_flow.cpp) -target_link_libraries(basalt_opt_flow basalt pangolin) +target_link_libraries(basalt_opt_flow basalt pangolin basalt::cli11) add_executable(basalt_vio src/vio.cpp) -target_link_libraries(basalt_vio basalt pangolin) +target_link_libraries(basalt_vio basalt pangolin basalt::cli11) add_executable(basalt_time_alignment src/time_alignment.cpp) -target_link_libraries(basalt_time_alignment basalt pangolin) +target_link_libraries(basalt_time_alignment basalt pangolin basalt::cli11) add_executable(basalt_kitti_eval src/kitti_eval.cpp) -target_link_libraries(basalt_kitti_eval) +target_link_libraries(basalt_kitti_eval basalt::basalt-headers basalt::cli11) find_package(realsense2 QUIET) if(realsense2_FOUND) add_executable(basalt_rs_t265_record src/rs_t265_record.cpp src/device/rs_t265.cpp) - target_link_libraries(basalt_rs_t265_record basalt realsense2::realsense2 ${OpenCV_LIBS} pangolin) + target_link_libraries(basalt_rs_t265_record basalt realsense2::realsense2 pangolin basalt::cli11) add_executable(basalt_rs_t265_vio src/rs_t265_vio.cpp src/device/rs_t265.cpp) - target_link_libraries(basalt_rs_t265_vio basalt realsense2::realsense2 pangolin) + target_link_libraries(basalt_rs_t265_vio basalt realsense2::realsense2 pangolin basalt::cli11) endif() diff --git a/include/basalt/optical_flow/frame_to_frame_optical_flow.h b/include/basalt/optical_flow/frame_to_frame_optical_flow.h index 530c645..0cfd752 100644 --- a/include/basalt/optical_flow/frame_to_frame_optical_flow.h +++ b/include/basalt/optical_flow/frame_to_frame_optical_flow.h @@ -249,8 +249,11 @@ class FrameToFrameOpticalFlow : public OpticalFlowBase { PatchT p(old_pyr.lvl(level), old_transform.translation() / scale); - // Perform tracking on current level - patch_valid &= trackPointAtLevel(pyr.lvl(level), p, transform); + patch_valid &= p.valid; + if (patch_valid) { + // Perform tracking on current level + patch_valid &= trackPointAtLevel(pyr.lvl(level), p, transform); + } transform.translation() *= scale; } @@ -274,18 +277,24 @@ class FrameToFrameOpticalFlow : public OpticalFlowBase { transform.linear().matrix() * PatchT::pattern2; transformed_pat.colwise() += transform.translation(); - bool valid = dp.residual(img_2, transformed_pat, res); + patch_valid &= dp.residual(img_2, transformed_pat, res); - if (valid) { - Vector3 inc = -dp.H_se2_inv_J_se2_T * res; - transform *= SE2::exp(inc).matrix(); + if (patch_valid) { + const Vector3 inc = -dp.H_se2_inv_J_se2_T * res; - const int filter_margin = 2; + // avoid NaN in increment (leads to SE2::exp crashing) + patch_valid &= inc.array().isFinite().all(); - if (!img_2.InBounds(transform.translation(), filter_margin)) - patch_valid = false; - } else { - patch_valid = false; + // avoid very large increment + patch_valid &= inc.template lpNorm() < 1e6; + + if (patch_valid) { + transform *= SE2::exp(inc).matrix(); + + const int filter_margin = 2; + + patch_valid &= img_2.InBounds(transform.translation(), filter_margin); + } } } diff --git a/include/basalt/optical_flow/multiscale_frame_to_frame_optical_flow.h b/include/basalt/optical_flow/multiscale_frame_to_frame_optical_flow.h index 5fda7f8..f30e928 100644 --- a/include/basalt/optical_flow/multiscale_frame_to_frame_optical_flow.h +++ b/include/basalt/optical_flow/multiscale_frame_to_frame_optical_flow.h @@ -122,7 +122,7 @@ class MultiscaleFrameToFrameOpticalFlow : public OpticalFlowBase { transforms->pyramid_levels.resize(calib.intrinsics.size()); transforms->t_ns = t_ns; - pyramid.reset(new std::vector>); + pyramid.reset(new std::vector>); pyramid->resize(calib.intrinsics.size()); tbb::parallel_for(tbb::blocked_range(0, calib.intrinsics.size()), @@ -143,7 +143,7 @@ class MultiscaleFrameToFrameOpticalFlow : public OpticalFlowBase { old_pyramid = pyramid; - pyramid.reset(new std::vector>); + pyramid.reset(new std::vector>); pyramid->resize(calib.intrinsics.size()); tbb::parallel_for(tbb::blocked_range(0, calib.intrinsics.size()), [&](const tbb::blocked_range& r) { @@ -191,8 +191,8 @@ class MultiscaleFrameToFrameOpticalFlow : public OpticalFlowBase { } void trackPoints( - const basalt::ManagedImagePyr& pyr_1, - const basalt::ManagedImagePyr& pyr_2, + const basalt::ManagedImagePyr& pyr_1, + const basalt::ManagedImagePyr& pyr_2, const Eigen::aligned_map& transform_map_1, const std::map& pyramid_levels_1, @@ -282,8 +282,11 @@ class MultiscaleFrameToFrameOpticalFlow : public OpticalFlowBase { PatchT p(old_pyr.lvl(level), old_transform.translation() / scale); - // Perform tracking on current level - patch_valid = trackPointAtLevel(pyr.lvl(level), p, transform_tmp); + patch_valid &= p.valid; + if (patch_valid) { + // Perform tracking on current level + patch_valid &= trackPointAtLevel(pyr.lvl(level), p, transform_tmp); + } if (level == static_cast(pyramid_level) + 1 && !patch_valid) { return false; @@ -301,7 +304,7 @@ class MultiscaleFrameToFrameOpticalFlow : public OpticalFlowBase { return patch_valid; } - inline bool trackPointAtLevel(const Image& img_2, + inline bool trackPointAtLevel(const Image& img_2, const PatchT& dp, Eigen::AffineCompact2f& transform) const { bool patch_valid = true; @@ -315,18 +318,24 @@ class MultiscaleFrameToFrameOpticalFlow : public OpticalFlowBase { transform.linear().matrix() * PatchT::pattern2; transformed_pat.colwise() += transform.translation(); - bool valid = dp.residual(img_2, transformed_pat, res); + patch_valid &= dp.residual(img_2, transformed_pat, res); - if (valid) { - Vector3 inc = -dp.H_se2_inv_J_se2_T * res; - transform *= SE2::exp(inc).matrix(); + if (patch_valid) { + const Vector3 inc = -dp.H_se2_inv_J_se2_T * res; - const int filter_margin = 2; + // avoid NaN in increment (leads to SE2::exp crashing) + patch_valid &= inc.array().isFinite().all(); - if (!img_2.InBounds(transform.translation(), filter_margin)) - patch_valid = false; - } else { - patch_valid = false; + // avoid very large increment + patch_valid &= inc.template lpNorm() < 1e6; + + if (patch_valid) { + transform *= SE2::exp(inc).matrix(); + + const int filter_margin = 2; + + patch_valid &= img_2.InBounds(transform.translation(), filter_margin); + } } } @@ -444,7 +453,7 @@ class MultiscaleFrameToFrameOpticalFlow : public OpticalFlowBase { basalt::Calibration calib; OpticalFlowResult::Ptr transforms; - std::shared_ptr>> old_pyramid, + std::shared_ptr>> old_pyramid, pyramid; // map from stereo pair -> essential matrix diff --git a/include/basalt/optical_flow/patch.h b/include/basalt/optical_flow/patch.h index 246e342..aee8e9a 100644 --- a/include/basalt/optical_flow/patch.h +++ b/include/basalt/optical_flow/patch.h @@ -65,7 +65,7 @@ struct OpticalFlowPatch { EIGEN_MAKE_ALIGNED_OPERATOR_NEW - OpticalFlowPatch() { mean = 0; } + OpticalFlowPatch() = default; OpticalFlowPatch(const Image &img, const Vector2 &pos) { setFromImage(img, pos); @@ -127,6 +127,16 @@ struct OpticalFlowPatch { H_se2.ldlt().solveInPlace(H_se2_inv); H_se2_inv_J_se2_T = H_se2_inv * J_se2.transpose(); + + // NOTE: while it's very unlikely we get a source patch with all black + // pixels, since points are usually selected at corners, it doesn't cost + // much to be safe here. + + // all-black patch cannot be normalized; will result in mean of "zero" and + // H_se2_inv_J_se2_T will contain "NaN" and data will contain "inf" + valid = mean > std::numeric_limits::epsilon() && + H_se2_inv_J_se2_T.array().isFinite().all() && + data.array().isFinite().all(); } inline bool residual(const Image &img, @@ -146,6 +156,12 @@ struct OpticalFlowPatch { } } + // all-black patch cannot be normalized + if (sum < std::numeric_limits::epsilon()) { + residual.setZero(); + return false; + } + int num_residuals = 0; for (int i = 0; i < PATTERN_SIZE; i++) { @@ -162,14 +178,16 @@ struct OpticalFlowPatch { return num_residuals > PATTERN_SIZE / 2; } - Vector2 pos; - VectorP data; // negative if the point is not valid + Vector2 pos = Vector2::Zero(); + VectorP data = VectorP::Zero(); // negative if the point is not valid // MatrixP3 J_se2; // total jacobian with respect to se2 warp // Matrix3 H_se2_inv; - Matrix3P H_se2_inv_J_se2_T; + Matrix3P H_se2_inv_J_se2_T = Matrix3P::Zero(); - Scalar mean; + Scalar mean = 0; + + bool valid = false; }; template diff --git a/include/basalt/optical_flow/patch_optical_flow.h b/include/basalt/optical_flow/patch_optical_flow.h index 0710bd4..81c891d 100644 --- a/include/basalt/optical_flow/patch_optical_flow.h +++ b/include/basalt/optical_flow/patch_optical_flow.h @@ -236,9 +236,13 @@ class PatchOpticalFlow : public OpticalFlowBase { transform.translation() /= scale; - // Perform tracking on current level - patch_valid &= - trackPointAtLevel(pyr.lvl(level), patch_vec[level], transform); + // TODO: maybe we should better check patch validity when creating points + const auto& p = patch_vec[level]; + patch_valid &= p.valid; + if (patch_valid) { + // Perform tracking on current level + patch_valid &= trackPointAtLevel(pyr.lvl(level), p, transform); + } transform.translation() *= scale; } @@ -260,18 +264,24 @@ class PatchOpticalFlow : public OpticalFlowBase { transform.linear().matrix() * PatchT::pattern2; transformed_pat.colwise() += transform.translation(); - bool valid = dp.residual(img_2, transformed_pat, res); + patch_valid &= dp.residual(img_2, transformed_pat, res); - if (valid) { - Vector3 inc = -dp.H_se2_inv_J_se2_T * res; - transform *= SE2::exp(inc).matrix(); + if (patch_valid) { + const Vector3 inc = -dp.H_se2_inv_J_se2_T * res; - const int filter_margin = 2; + // avoid NaN in increment (leads to SE2::exp crashing) + patch_valid &= inc.array().isFinite().all(); - if (!img_2.InBounds(transform.translation(), filter_margin)) - patch_valid = false; - } else { - patch_valid = false; + // avoid very large increment + patch_valid &= inc.template lpNorm() < 1e6; + + if (patch_valid) { + transform *= SE2::exp(inc).matrix(); + + const int filter_margin = 2; + + patch_valid &= img_2.InBounds(transform.translation(), filter_margin); + } } } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 54cac39..eb83837 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.10...3.18) # Note: add_subdirectory(googletest ...) is called in basalt-headers diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 4986db4..f552569 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -1,8 +1,9 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.10...3.18) add_library(nlohmann::json INTERFACE IMPORTED GLOBAL) set_property(TARGET nlohmann::json PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/json/) +add_subdirectory(basalt-headers EXCLUDE_FROM_ALL) add_subdirectory(ros EXCLUDE_FROM_ALL) add_subdirectory(apriltag EXCLUDE_FROM_ALL) diff --git a/thirdparty/apriltag/CMakeLists.txt b/thirdparty/apriltag/CMakeLists.txt index c9a7a78..ff2bf05 100644 --- a/thirdparty/apriltag/CMakeLists.txt +++ b/thirdparty/apriltag/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.2...3.18) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") @@ -20,6 +20,6 @@ include_directories(../basalt-headers/thirdparty/Sophus) add_library(apriltag STATIC ${APRILTAG_SRCS} src/apriltag.cpp) target_include_directories(apriltag PUBLIC include) -target_link_libraries(apriltag PUBLIC ${OpenCV_LIBS}) +target_link_libraries(apriltag PUBLIC basalt::opencv Sophus::Sophus) diff --git a/thirdparty/basalt-headers b/thirdparty/basalt-headers index 7c5dd97..79ab28e 160000 --- a/thirdparty/basalt-headers +++ b/thirdparty/basalt-headers @@ -1 +1 @@ -Subproject commit 7c5dd97dd8aba4ce6fb6df4d0e1dce0c7fb6be79 +Subproject commit 79ab28e443326bdf863c81c4457bccf19a48097e diff --git a/thirdparty/fmt b/thirdparty/fmt deleted file mode 160000 index 7bdf062..0000000 --- a/thirdparty/fmt +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7bdf0628b1276379886c7f6dda2cef2b3b374f0b diff --git a/thirdparty/ros/include/geometry_msgs/Accel.h b/thirdparty/ros/include/geometry_msgs/Accel.h index e721cc3..aee2b00 100644 --- a/thirdparty/ros/include/geometry_msgs/Accel.h +++ b/thirdparty/ros/include/geometry_msgs/Accel.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Accel_ >: return s; } + +template +bool operator==(const ::geometry_msgs::Accel_ & lhs, const ::geometry_msgs::Accel_ & rhs) +{ + return lhs.linear == rhs.linear && + lhs.angular == rhs.angular; +} + +template +bool operator!=(const ::geometry_msgs::Accel_ & lhs, const ::geometry_msgs::Accel_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Accel_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Accel_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Accel_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Accel_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Accel_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Accel_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Accel_ > : FalseType @@ -145,23 +154,23 @@ struct Definition< ::geometry_msgs::Accel_ > { static const char* value() { - return "# This expresses acceleration in free space broken into its linear and angular parts.\n\ -Vector3 linear\n\ -Vector3 angular\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This expresses acceleration in free space broken into its linear and angular parts.\n" +"Vector3 linear\n" +"Vector3 angular\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::Accel_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/AccelStamped.h b/thirdparty/ros/include/geometry_msgs/AccelStamped.h index dd451fd..65bbc38 100644 --- a/thirdparty/ros/include/geometry_msgs/AccelStamped.h +++ b/thirdparty/ros/include/geometry_msgs/AccelStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::AccelStamped_ +bool operator==(const ::geometry_msgs::AccelStamped_ & lhs, const ::geometry_msgs::AccelStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.accel == rhs.accel; +} + +template +bool operator!=(const ::geometry_msgs::AccelStamped_ & lhs, const ::geometry_msgs::AccelStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::AccelStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::AccelStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::AccelStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::AccelStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::AccelStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::AccelStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::AccelStamped_ > : TrueType @@ -145,47 +154,45 @@ struct Definition< ::geometry_msgs::AccelStamped_ > { static const char* value() { - return "# An accel with reference coordinate frame and timestamp\n\ -Header header\n\ -Accel accel\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Accel\n\ -# This expresses acceleration in free space broken into its linear and angular parts.\n\ -Vector3 linear\n\ -Vector3 angular\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# An accel with reference coordinate frame and timestamp\n" +"Header header\n" +"Accel accel\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Accel\n" +"# This expresses acceleration in free space broken into its linear and angular parts.\n" +"Vector3 linear\n" +"Vector3 angular\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::AccelStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/AccelWithCovariance.h b/thirdparty/ros/include/geometry_msgs/AccelWithCovariance.h index 611555f..5b45a18 100644 --- a/thirdparty/ros/include/geometry_msgs/AccelWithCovariance.h +++ b/thirdparty/ros/include/geometry_msgs/AccelWithCovariance.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -69,6 +69,21 @@ ros::message_operations::Printer< ::geometry_msgs::AccelWithCovariance_ +bool operator==(const ::geometry_msgs::AccelWithCovariance_ & lhs, const ::geometry_msgs::AccelWithCovariance_ & rhs) +{ + return lhs.accel == rhs.accel && + lhs.covariance == rhs.covariance; +} + +template +bool operator!=(const ::geometry_msgs::AccelWithCovariance_ & lhs, const ::geometry_msgs::AccelWithCovariance_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -78,23 +93,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::AccelWithCovariance_ > @@ -106,6 +105,16 @@ struct IsMessage< ::geometry_msgs::AccelWithCovariance_ cons : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::AccelWithCovariance_ > : FalseType @@ -146,35 +155,35 @@ struct Definition< ::geometry_msgs::AccelWithCovariance_ > { static const char* value() { - return "# This expresses acceleration in free space with uncertainty.\n\ -\n\ -Accel accel\n\ -\n\ -# Row-major representation of the 6x6 covariance matrix\n\ -# The orientation parameters use a fixed-axis representation.\n\ -# In order, the parameters are:\n\ -# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n\ -float64[36] covariance\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Accel\n\ -# This expresses acceleration in free space broken into its linear and angular parts.\n\ -Vector3 linear\n\ -Vector3 angular\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This expresses acceleration in free space with uncertainty.\n" +"\n" +"Accel accel\n" +"\n" +"# Row-major representation of the 6x6 covariance matrix\n" +"# The orientation parameters use a fixed-axis representation.\n" +"# In order, the parameters are:\n" +"# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n" +"float64[36] covariance\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Accel\n" +"# This expresses acceleration in free space broken into its linear and angular parts.\n" +"Vector3 linear\n" +"Vector3 angular\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::AccelWithCovariance_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/AccelWithCovarianceStamped.h b/thirdparty/ros/include/geometry_msgs/AccelWithCovarianceStamped.h index 4a559a3..1382124 100644 --- a/thirdparty/ros/include/geometry_msgs/AccelWithCovarianceStamped.h +++ b/thirdparty/ros/include/geometry_msgs/AccelWithCovarianceStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::AccelWithCovarianceStamped_ +bool operator==(const ::geometry_msgs::AccelWithCovarianceStamped_ & lhs, const ::geometry_msgs::AccelWithCovarianceStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.accel == rhs.accel; +} + +template +bool operator!=(const ::geometry_msgs::AccelWithCovarianceStamped_ & lhs, const ::geometry_msgs::AccelWithCovarianceStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::AccelWithCovarianceStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::AccelWithCovarianceStamped_ +struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::AccelWithCovarianceStamped_ > : TrueType @@ -145,59 +154,57 @@ struct Definition< ::geometry_msgs::AccelWithCovarianceStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Inertia.h b/thirdparty/ros/include/geometry_msgs/Inertia.h index 7b66083..2c8b107 100644 --- a/thirdparty/ros/include/geometry_msgs/Inertia.h +++ b/thirdparty/ros/include/geometry_msgs/Inertia.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -97,6 +97,27 @@ ros::message_operations::Printer< ::geometry_msgs::Inertia_ return s; } + +template +bool operator==(const ::geometry_msgs::Inertia_ & lhs, const ::geometry_msgs::Inertia_ & rhs) +{ + return lhs.m == rhs.m && + lhs.com == rhs.com && + lhs.ixx == rhs.ixx && + lhs.ixy == rhs.ixy && + lhs.ixz == rhs.ixz && + lhs.iyy == rhs.iyy && + lhs.iyz == rhs.iyz && + lhs.izz == rhs.izz; +} + +template +bool operator!=(const ::geometry_msgs::Inertia_ & lhs, const ::geometry_msgs::Inertia_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -106,23 +127,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Inertia_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Inertia_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Inertia_ > @@ -134,6 +139,16 @@ struct IsMessage< ::geometry_msgs::Inertia_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Inertia_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Inertia_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Inertia_ > : FalseType @@ -174,36 +189,36 @@ struct Definition< ::geometry_msgs::Inertia_ > { static const char* value() { - return "# Mass [kg]\n\ -float64 m\n\ -\n\ -# Center of mass [m]\n\ -geometry_msgs/Vector3 com\n\ -\n\ -# Inertia Tensor [kg-m^2]\n\ -# | ixx ixy ixz |\n\ -# I = | ixy iyy iyz |\n\ -# | ixz iyz izz |\n\ -float64 ixx\n\ -float64 ixy\n\ -float64 ixz\n\ -float64 iyy\n\ -float64 iyz\n\ -float64 izz\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# Mass [kg]\n" +"float64 m\n" +"\n" +"# Center of mass [m]\n" +"geometry_msgs/Vector3 com\n" +"\n" +"# Inertia Tensor [kg-m^2]\n" +"# | ixx ixy ixz |\n" +"# I = | ixy iyy iyz |\n" +"# | ixz iyz izz |\n" +"float64 ixx\n" +"float64 ixy\n" +"float64 ixz\n" +"float64 iyy\n" +"float64 iyz\n" +"float64 izz\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::Inertia_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/InertiaStamped.h b/thirdparty/ros/include/geometry_msgs/InertiaStamped.h index 3b2e2c6..82590f0 100644 --- a/thirdparty/ros/include/geometry_msgs/InertiaStamped.h +++ b/thirdparty/ros/include/geometry_msgs/InertiaStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::InertiaStamped_ +bool operator==(const ::geometry_msgs::InertiaStamped_ & lhs, const ::geometry_msgs::InertiaStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.inertia == rhs.inertia; +} + +template +bool operator!=(const ::geometry_msgs::InertiaStamped_ & lhs, const ::geometry_msgs::InertiaStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::InertiaStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::InertiaStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::InertiaStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::InertiaStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::InertiaStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::InertiaStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::InertiaStamped_ > : TrueType @@ -145,59 +154,57 @@ struct Definition< ::geometry_msgs::InertiaStamped_ > { static const char* value() { - return "Header header\n\ -Inertia inertia\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Inertia\n\ -# Mass [kg]\n\ -float64 m\n\ -\n\ -# Center of mass [m]\n\ -geometry_msgs/Vector3 com\n\ -\n\ -# Inertia Tensor [kg-m^2]\n\ -# | ixx ixy ixz |\n\ -# I = | ixy iyy iyz |\n\ -# | ixz iyz izz |\n\ -float64 ixx\n\ -float64 ixy\n\ -float64 ixz\n\ -float64 iyy\n\ -float64 iyz\n\ -float64 izz\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "Header header\n" +"Inertia inertia\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Inertia\n" +"# Mass [kg]\n" +"float64 m\n" +"\n" +"# Center of mass [m]\n" +"geometry_msgs/Vector3 com\n" +"\n" +"# Inertia Tensor [kg-m^2]\n" +"# | ixx ixy ixz |\n" +"# I = | ixy iyy iyz |\n" +"# | ixz iyz izz |\n" +"float64 ixx\n" +"float64 ixy\n" +"float64 ixz\n" +"float64 iyy\n" +"float64 iyz\n" +"float64 izz\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::InertiaStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Point.h b/thirdparty/ros/include/geometry_msgs/Point.h index da5933d..23d9c54 100644 --- a/thirdparty/ros/include/geometry_msgs/Point.h +++ b/thirdparty/ros/include/geometry_msgs/Point.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Point_ >: return s; } + +template +bool operator==(const ::geometry_msgs::Point_ & lhs, const ::geometry_msgs::Point_ & rhs) +{ + return lhs.x == rhs.x && + lhs.y == rhs.y && + lhs.z == rhs.z; +} + +template +bool operator!=(const ::geometry_msgs::Point_ & lhs, const ::geometry_msgs::Point_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -80,23 +96,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Point_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Point_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Point_ > @@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Point_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Point_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Point_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Point_ > : FalseType @@ -148,11 +158,11 @@ struct Definition< ::geometry_msgs::Point_ > { static const char* value() { - return "# This contains the position of a point in free space\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This contains the position of a point in free space\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::Point_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Point32.h b/thirdparty/ros/include/geometry_msgs/Point32.h index 6fa1aa1..6bf9210 100644 --- a/thirdparty/ros/include/geometry_msgs/Point32.h +++ b/thirdparty/ros/include/geometry_msgs/Point32.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Point32_ return s; } + +template +bool operator==(const ::geometry_msgs::Point32_ & lhs, const ::geometry_msgs::Point32_ & rhs) +{ + return lhs.x == rhs.x && + lhs.y == rhs.y && + lhs.z == rhs.z; +} + +template +bool operator!=(const ::geometry_msgs::Point32_ & lhs, const ::geometry_msgs::Point32_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -80,23 +96,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Point32_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Point32_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Point32_ > @@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Point32_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Point32_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Point32_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Point32_ > : FalseType @@ -148,18 +158,18 @@ struct Definition< ::geometry_msgs::Point32_ > { static const char* value() { - return "# This contains the position of a point in free space(with 32 bits of precision).\n\ -# It is recommeded to use Point wherever possible instead of Point32. \n\ -# \n\ -# This recommendation is to promote interoperability. \n\ -#\n\ -# This message is designed to take up less space when sending\n\ -# lots of points at once, as in the case of a PointCloud. \n\ -\n\ -float32 x\n\ -float32 y\n\ -float32 z\n\ -"; + return "# This contains the position of a point in free space(with 32 bits of precision).\n" +"# It is recommeded to use Point wherever possible instead of Point32. \n" +"# \n" +"# This recommendation is to promote interoperability. \n" +"#\n" +"# This message is designed to take up less space when sending\n" +"# lots of points at once, as in the case of a PointCloud. \n" +"\n" +"float32 x\n" +"float32 y\n" +"float32 z\n" +; } static const char* value(const ::geometry_msgs::Point32_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/PointStamped.h b/thirdparty/ros/include/geometry_msgs/PointStamped.h index 4a037e6..14414ea 100644 --- a/thirdparty/ros/include/geometry_msgs/PointStamped.h +++ b/thirdparty/ros/include/geometry_msgs/PointStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PointStamped_ +bool operator==(const ::geometry_msgs::PointStamped_ & lhs, const ::geometry_msgs::PointStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.point == rhs.point; +} + +template +bool operator!=(const ::geometry_msgs::PointStamped_ & lhs, const ::geometry_msgs::PointStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::PointStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::PointStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::PointStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PointStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::PointStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::PointStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::PointStamped_ > : TrueType @@ -145,35 +154,33 @@ struct Definition< ::geometry_msgs::PointStamped_ > { static const char* value() { - return "# This represents a Point with reference coordinate frame and timestamp\n\ -Header header\n\ -Point point\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point\n\ -# This contains the position of a point in free space\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This represents a Point with reference coordinate frame and timestamp\n" +"Header header\n" +"Point point\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point\n" +"# This contains the position of a point in free space\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::PointStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Polygon.h b/thirdparty/ros/include/geometry_msgs/Polygon.h index 1a82282..44be4d5 100644 --- a/thirdparty/ros/include/geometry_msgs/Polygon.h +++ b/thirdparty/ros/include/geometry_msgs/Polygon.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -34,7 +34,7 @@ struct Polygon_ - typedef std::vector< ::geometry_msgs::Point32_ , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_ >::other > _points_type; + typedef std::vector< ::geometry_msgs::Point32_ , typename std::allocator_traits::template rebind_alloc< ::geometry_msgs::Point32_ >> _points_type; _points_type points; @@ -62,6 +62,20 @@ ros::message_operations::Printer< ::geometry_msgs::Polygon_ return s; } + +template +bool operator==(const ::geometry_msgs::Polygon_ & lhs, const ::geometry_msgs::Polygon_ & rhs) +{ + return lhs.points == rhs.points; +} + +template +bool operator!=(const ::geometry_msgs::Polygon_ & lhs, const ::geometry_msgs::Polygon_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -71,23 +85,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Polygon_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Polygon_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::Polygon_ > @@ -99,6 +97,16 @@ struct IsMessage< ::geometry_msgs::Polygon_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Polygon_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Polygon_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::Polygon_ > : FalseType @@ -139,23 +147,23 @@ struct Definition< ::geometry_msgs::Polygon_ > { static const char* value() { - return "#A specification of a polygon where the first and last points are assumed to be connected\n\ -Point32[] points\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point32\n\ -# This contains the position of a point in free space(with 32 bits of precision).\n\ -# It is recommeded to use Point wherever possible instead of Point32. \n\ -# \n\ -# This recommendation is to promote interoperability. \n\ -#\n\ -# This message is designed to take up less space when sending\n\ -# lots of points at once, as in the case of a PointCloud. \n\ -\n\ -float32 x\n\ -float32 y\n\ -float32 z\n\ -"; + return "#A specification of a polygon where the first and last points are assumed to be connected\n" +"Point32[] points\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point32\n" +"# This contains the position of a point in free space(with 32 bits of precision).\n" +"# It is recommeded to use Point wherever possible instead of Point32. \n" +"# \n" +"# This recommendation is to promote interoperability. \n" +"#\n" +"# This message is designed to take up less space when sending\n" +"# lots of points at once, as in the case of a PointCloud. \n" +"\n" +"float32 x\n" +"float32 y\n" +"float32 z\n" +; } static const char* value(const ::geometry_msgs::Polygon_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/PolygonStamped.h b/thirdparty/ros/include/geometry_msgs/PolygonStamped.h index 45f0b5d..61afc82 100644 --- a/thirdparty/ros/include/geometry_msgs/PolygonStamped.h +++ b/thirdparty/ros/include/geometry_msgs/PolygonStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PolygonStamped_ +bool operator==(const ::geometry_msgs::PolygonStamped_ & lhs, const ::geometry_msgs::PolygonStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.polygon == rhs.polygon; +} + +template +bool operator!=(const ::geometry_msgs::PolygonStamped_ & lhs, const ::geometry_msgs::PolygonStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::PolygonStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::PolygonStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::PolygonStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PolygonStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::PolygonStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::PolygonStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::PolygonStamped_ > : TrueType @@ -145,47 +154,45 @@ struct Definition< ::geometry_msgs::PolygonStamped_ > { static const char* value() { - return "# This represents a Polygon with reference coordinate frame and timestamp\n\ -Header header\n\ -Polygon polygon\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Polygon\n\ -#A specification of a polygon where the first and last points are assumed to be connected\n\ -Point32[] points\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point32\n\ -# This contains the position of a point in free space(with 32 bits of precision).\n\ -# It is recommeded to use Point wherever possible instead of Point32. \n\ -# \n\ -# This recommendation is to promote interoperability. \n\ -#\n\ -# This message is designed to take up less space when sending\n\ -# lots of points at once, as in the case of a PointCloud. \n\ -\n\ -float32 x\n\ -float32 y\n\ -float32 z\n\ -"; + return "# This represents a Polygon with reference coordinate frame and timestamp\n" +"Header header\n" +"Polygon polygon\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Polygon\n" +"#A specification of a polygon where the first and last points are assumed to be connected\n" +"Point32[] points\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point32\n" +"# This contains the position of a point in free space(with 32 bits of precision).\n" +"# It is recommeded to use Point wherever possible instead of Point32. \n" +"# \n" +"# This recommendation is to promote interoperability. \n" +"#\n" +"# This message is designed to take up less space when sending\n" +"# lots of points at once, as in the case of a PointCloud. \n" +"\n" +"float32 x\n" +"float32 y\n" +"float32 z\n" +; } static const char* value(const ::geometry_msgs::PolygonStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Pose.h b/thirdparty/ros/include/geometry_msgs/Pose.h index 8e6a610..ffa68b4 100644 --- a/thirdparty/ros/include/geometry_msgs/Pose.h +++ b/thirdparty/ros/include/geometry_msgs/Pose.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Pose_ >:: return s; } + +template +bool operator==(const ::geometry_msgs::Pose_ & lhs, const ::geometry_msgs::Pose_ & rhs) +{ + return lhs.position == rhs.position && + lhs.orientation == rhs.orientation; +} + +template +bool operator!=(const ::geometry_msgs::Pose_ & lhs, const ::geometry_msgs::Pose_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Pose_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Pose_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Pose_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Pose_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Pose_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Pose_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Pose_ > : FalseType @@ -145,26 +154,26 @@ struct Definition< ::geometry_msgs::Pose_ > { static const char* value() { - return "# A representation of pose in free space, composed of position and orientation. \n\ -Point position\n\ -Quaternion orientation\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point\n\ -# This contains the position of a point in free space\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# A representation of pose in free space, composed of position and orientation. \n" +"Point position\n" +"Quaternion orientation\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point\n" +"# This contains the position of a point in free space\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::Pose_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Pose2D.h b/thirdparty/ros/include/geometry_msgs/Pose2D.h index 041fe13..62b6bf3 100644 --- a/thirdparty/ros/include/geometry_msgs/Pose2D.h +++ b/thirdparty/ros/include/geometry_msgs/Pose2D.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Pose2D_ > return s; } + +template +bool operator==(const ::geometry_msgs::Pose2D_ & lhs, const ::geometry_msgs::Pose2D_ & rhs) +{ + return lhs.x == rhs.x && + lhs.y == rhs.y && + lhs.theta == rhs.theta; +} + +template +bool operator!=(const ::geometry_msgs::Pose2D_ & lhs, const ::geometry_msgs::Pose2D_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -80,23 +96,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Pose2D_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Pose2D_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Pose2D_ > @@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Pose2D_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Pose2D_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Pose2D_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Pose2D_ > : FalseType @@ -148,12 +158,20 @@ struct Definition< ::geometry_msgs::Pose2D_ > { static const char* value() { - return "# This expresses a position and orientation on a 2D manifold.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 theta\n\ -"; + return "# Deprecated\n" +"# Please use the full 3D pose.\n" +"\n" +"# In general our recommendation is to use a full 3D representation of everything and for 2D specific applications make the appropriate projections into the plane for their calculations but optimally will preserve the 3D information during processing.\n" +"\n" +"# If we have parallel copies of 2D datatypes every UI and other pipeline will end up needing to have dual interfaces to plot everything. And you will end up with not being able to use 3D tools for 2D use cases even if they're completely valid, as you'd have to reimplement it with different inputs and outputs. It's not particularly hard to plot the 2D pose or compute the yaw error for the Pose message and there are already tools and libraries that can do this for you.\n" +"\n" +"\n" +"# This expresses a position and orientation on a 2D manifold.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 theta\n" +; } static const char* value(const ::geometry_msgs::Pose2D_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/PoseArray.h b/thirdparty/ros/include/geometry_msgs/PoseArray.h index 2f77767..f201cb7 100644 --- a/thirdparty/ros/include/geometry_msgs/PoseArray.h +++ b/thirdparty/ros/include/geometry_msgs/PoseArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -40,7 +40,7 @@ struct PoseArray_ typedef ::std_msgs::Header_ _header_type; _header_type header; - typedef std::vector< ::geometry_msgs::Pose_ , typename ContainerAllocator::template rebind< ::geometry_msgs::Pose_ >::other > _poses_type; + typedef std::vector< ::geometry_msgs::Pose_ , typename std::allocator_traits::template rebind_alloc< ::geometry_msgs::Pose_ >> _poses_type; _poses_type poses; @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseArray_ +bool operator==(const ::geometry_msgs::PoseArray_ & lhs, const ::geometry_msgs::PoseArray_ & rhs) +{ + return lhs.header == rhs.header && + lhs.poses == rhs.poses; +} + +template +bool operator!=(const ::geometry_msgs::PoseArray_ & lhs, const ::geometry_msgs::PoseArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::PoseArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::PoseArray_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::PoseArray_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PoseArray_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::PoseArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::PoseArray_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::PoseArray_ > : TrueType @@ -145,52 +154,50 @@ struct Definition< ::geometry_msgs::PoseArray_ > { static const char* value() { - return "# An array of poses with a header for global reference.\n\ -\n\ -Header header\n\ -\n\ -Pose[] poses\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Pose\n\ -# A representation of pose in free space, composed of position and orientation. \n\ -Point position\n\ -Quaternion orientation\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point\n\ -# This contains the position of a point in free space\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# An array of poses with a header for global reference.\n" +"\n" +"Header header\n" +"\n" +"Pose[] poses\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Pose\n" +"# A representation of pose in free space, composed of position and orientation. \n" +"Point position\n" +"Quaternion orientation\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point\n" +"# This contains the position of a point in free space\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::PoseArray_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/PoseStamped.h b/thirdparty/ros/include/geometry_msgs/PoseStamped.h index f476a10..53b4160 100644 --- a/thirdparty/ros/include/geometry_msgs/PoseStamped.h +++ b/thirdparty/ros/include/geometry_msgs/PoseStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseStamped_ +bool operator==(const ::geometry_msgs::PoseStamped_ & lhs, const ::geometry_msgs::PoseStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.pose == rhs.pose; +} + +template +bool operator!=(const ::geometry_msgs::PoseStamped_ & lhs, const ::geometry_msgs::PoseStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::PoseStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::PoseStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::PoseStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PoseStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::PoseStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::PoseStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::PoseStamped_ > : TrueType @@ -145,50 +154,48 @@ struct Definition< ::geometry_msgs::PoseStamped_ > { static const char* value() { - return "# A Pose with reference coordinate frame and timestamp\n\ -Header header\n\ -Pose pose\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Pose\n\ -# A representation of pose in free space, composed of position and orientation. \n\ -Point position\n\ -Quaternion orientation\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point\n\ -# This contains the position of a point in free space\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# A Pose with reference coordinate frame and timestamp\n" +"Header header\n" +"Pose pose\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Pose\n" +"# A representation of pose in free space, composed of position and orientation. \n" +"Point position\n" +"Quaternion orientation\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point\n" +"# This contains the position of a point in free space\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::PoseStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/PoseWithCovariance.h b/thirdparty/ros/include/geometry_msgs/PoseWithCovariance.h index 4382743..f8480f1 100644 --- a/thirdparty/ros/include/geometry_msgs/PoseWithCovariance.h +++ b/thirdparty/ros/include/geometry_msgs/PoseWithCovariance.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -69,6 +69,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseWithCovariance_ +bool operator==(const ::geometry_msgs::PoseWithCovariance_ & lhs, const ::geometry_msgs::PoseWithCovariance_ & rhs) +{ + return lhs.pose == rhs.pose && + lhs.covariance == rhs.covariance; +} + +template +bool operator!=(const ::geometry_msgs::PoseWithCovariance_ & lhs, const ::geometry_msgs::PoseWithCovariance_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -78,23 +93,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::PoseWithCovariance_ > @@ -106,6 +105,16 @@ struct IsMessage< ::geometry_msgs::PoseWithCovariance_ const : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::PoseWithCovariance_ > : FalseType @@ -146,38 +155,38 @@ struct Definition< ::geometry_msgs::PoseWithCovariance_ > { static const char* value() { - return "# This represents a pose in free space with uncertainty.\n\ -\n\ -Pose pose\n\ -\n\ -# Row-major representation of the 6x6 covariance matrix\n\ -# The orientation parameters use a fixed-axis representation.\n\ -# In order, the parameters are:\n\ -# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n\ -float64[36] covariance\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Pose\n\ -# A representation of pose in free space, composed of position and orientation. \n\ -Point position\n\ -Quaternion orientation\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point\n\ -# This contains the position of a point in free space\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# This represents a pose in free space with uncertainty.\n" +"\n" +"Pose pose\n" +"\n" +"# Row-major representation of the 6x6 covariance matrix\n" +"# The orientation parameters use a fixed-axis representation.\n" +"# In order, the parameters are:\n" +"# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n" +"float64[36] covariance\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Pose\n" +"# A representation of pose in free space, composed of position and orientation. \n" +"Point position\n" +"Quaternion orientation\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point\n" +"# This contains the position of a point in free space\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::PoseWithCovariance_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/PoseWithCovarianceStamped.h b/thirdparty/ros/include/geometry_msgs/PoseWithCovarianceStamped.h index 6662115..e5f0b5d 100644 --- a/thirdparty/ros/include/geometry_msgs/PoseWithCovarianceStamped.h +++ b/thirdparty/ros/include/geometry_msgs/PoseWithCovarianceStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseWithCovarianceStamped_ +bool operator==(const ::geometry_msgs::PoseWithCovarianceStamped_ & lhs, const ::geometry_msgs::PoseWithCovarianceStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.pose == rhs.pose; +} + +template +bool operator!=(const ::geometry_msgs::PoseWithCovarianceStamped_ & lhs, const ::geometry_msgs::PoseWithCovarianceStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::PoseWithCovarianceStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PoseWithCovarianceStamped_ +struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::PoseWithCovarianceStamped_ > : TrueType @@ -145,63 +154,61 @@ struct Definition< ::geometry_msgs::PoseWithCovarianceStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Quaternion.h b/thirdparty/ros/include/geometry_msgs/Quaternion.h index 8085528..816d47d 100644 --- a/thirdparty/ros/include/geometry_msgs/Quaternion.h +++ b/thirdparty/ros/include/geometry_msgs/Quaternion.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -76,6 +76,23 @@ ros::message_operations::Printer< ::geometry_msgs::Quaternion_ +bool operator==(const ::geometry_msgs::Quaternion_ & lhs, const ::geometry_msgs::Quaternion_ & rhs) +{ + return lhs.x == rhs.x && + lhs.y == rhs.y && + lhs.z == rhs.z && + lhs.w == rhs.w; +} + +template +bool operator!=(const ::geometry_msgs::Quaternion_ & lhs, const ::geometry_msgs::Quaternion_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -85,23 +102,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Quaternion_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Quaternion_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Quaternion_ > @@ -113,6 +114,16 @@ struct IsMessage< ::geometry_msgs::Quaternion_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Quaternion_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Quaternion_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Quaternion_ > : FalseType @@ -153,13 +164,13 @@ struct Definition< ::geometry_msgs::Quaternion_ > { static const char* value() { - return "# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::Quaternion_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/QuaternionStamped.h b/thirdparty/ros/include/geometry_msgs/QuaternionStamped.h index e40ef5a..c0c604f 100644 --- a/thirdparty/ros/include/geometry_msgs/QuaternionStamped.h +++ b/thirdparty/ros/include/geometry_msgs/QuaternionStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::QuaternionStamped_ +bool operator==(const ::geometry_msgs::QuaternionStamped_ & lhs, const ::geometry_msgs::QuaternionStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.quaternion == rhs.quaternion; +} + +template +bool operator!=(const ::geometry_msgs::QuaternionStamped_ & lhs, const ::geometry_msgs::QuaternionStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::QuaternionStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::QuaternionStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::QuaternionStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::QuaternionStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::QuaternionStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::QuaternionStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::QuaternionStamped_ > : TrueType @@ -145,38 +154,36 @@ struct Definition< ::geometry_msgs::QuaternionStamped_ > { static const char* value() { - return "# This represents an orientation with reference coordinate frame and timestamp.\n\ -\n\ -Header header\n\ -Quaternion quaternion\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# This represents an orientation with reference coordinate frame and timestamp.\n" +"\n" +"Header header\n" +"Quaternion quaternion\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::QuaternionStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Transform.h b/thirdparty/ros/include/geometry_msgs/Transform.h index aa3b340..06fcee0 100644 --- a/thirdparty/ros/include/geometry_msgs/Transform.h +++ b/thirdparty/ros/include/geometry_msgs/Transform.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Transform_ +bool operator==(const ::geometry_msgs::Transform_ & lhs, const ::geometry_msgs::Transform_ & rhs) +{ + return lhs.translation == rhs.translation && + lhs.rotation == rhs.rotation; +} + +template +bool operator!=(const ::geometry_msgs::Transform_ & lhs, const ::geometry_msgs::Transform_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Transform_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Transform_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Transform_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Transform_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Transform_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Transform_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Transform_ > : FalseType @@ -145,32 +154,32 @@ struct Definition< ::geometry_msgs::Transform_ > { static const char* value() { - return "# This represents the transform between two coordinate frames in free space.\n\ -\n\ -Vector3 translation\n\ -Quaternion rotation\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# This represents the transform between two coordinate frames in free space.\n" +"\n" +"Vector3 translation\n" +"Quaternion rotation\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::Transform_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/TransformStamped.h b/thirdparty/ros/include/geometry_msgs/TransformStamped.h index 7e2ac71..e60938c 100644 --- a/thirdparty/ros/include/geometry_msgs/TransformStamped.h +++ b/thirdparty/ros/include/geometry_msgs/TransformStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -42,7 +42,7 @@ struct TransformStamped_ typedef ::std_msgs::Header_ _header_type; _header_type header; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _child_frame_id_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _child_frame_id_type; _child_frame_id_type child_frame_id; typedef ::geometry_msgs::Transform_ _transform_type; @@ -73,6 +73,22 @@ ros::message_operations::Printer< ::geometry_msgs::TransformStamped_ +bool operator==(const ::geometry_msgs::TransformStamped_ & lhs, const ::geometry_msgs::TransformStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.child_frame_id == rhs.child_frame_id && + lhs.transform == rhs.transform; +} + +template +bool operator!=(const ::geometry_msgs::TransformStamped_ & lhs, const ::geometry_msgs::TransformStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -82,23 +98,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::TransformStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::TransformStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::TransformStamped_ > @@ -110,6 +110,16 @@ struct IsMessage< ::geometry_msgs::TransformStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::TransformStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::TransformStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::TransformStamped_ > : TrueType @@ -150,63 +160,61 @@ struct Definition< ::geometry_msgs::TransformStamped_ > { static const char* value() { - return "# This expresses a transform from coordinate frame header.frame_id\n\ -# to the coordinate frame child_frame_id\n\ -#\n\ -# This message is mostly used by the \n\ -# tf package. \n\ -# See its documentation for more information.\n\ -\n\ -Header header\n\ -string child_frame_id # the frame id of the child frame\n\ -Transform transform\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Transform\n\ -# This represents the transform between two coordinate frames in free space.\n\ -\n\ -Vector3 translation\n\ -Quaternion rotation\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -"; + return "# This expresses a transform from coordinate frame header.frame_id\n" +"# to the coordinate frame child_frame_id\n" +"#\n" +"# This message is mostly used by the \n" +"# tf package. \n" +"# See its documentation for more information.\n" +"\n" +"Header header\n" +"string child_frame_id # the frame id of the child frame\n" +"Transform transform\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Transform\n" +"# This represents the transform between two coordinate frames in free space.\n" +"\n" +"Vector3 translation\n" +"Quaternion rotation\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +; } static const char* value(const ::geometry_msgs::TransformStamped_&) { return value(); } @@ -249,7 +257,7 @@ struct Printer< ::geometry_msgs::TransformStamped_ > s << std::endl; Printer< ::std_msgs::Header_ >::stream(s, indent + " ", v.header); s << indent << "child_frame_id: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.child_frame_id); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.child_frame_id); s << indent << "transform: "; s << std::endl; Printer< ::geometry_msgs::Transform_ >::stream(s, indent + " ", v.transform); diff --git a/thirdparty/ros/include/geometry_msgs/Twist.h b/thirdparty/ros/include/geometry_msgs/Twist.h index 6cb41a3..992e526 100644 --- a/thirdparty/ros/include/geometry_msgs/Twist.h +++ b/thirdparty/ros/include/geometry_msgs/Twist.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Twist_ >: return s; } + +template +bool operator==(const ::geometry_msgs::Twist_ & lhs, const ::geometry_msgs::Twist_ & rhs) +{ + return lhs.linear == rhs.linear && + lhs.angular == rhs.angular; +} + +template +bool operator!=(const ::geometry_msgs::Twist_ & lhs, const ::geometry_msgs::Twist_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Twist_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Twist_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Twist_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Twist_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Twist_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Twist_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Twist_ > : FalseType @@ -145,23 +154,23 @@ struct Definition< ::geometry_msgs::Twist_ > { static const char* value() { - return "# This expresses velocity in free space broken into its linear and angular parts.\n\ -Vector3 linear\n\ -Vector3 angular\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This expresses velocity in free space broken into its linear and angular parts.\n" +"Vector3 linear\n" +"Vector3 angular\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::Twist_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/TwistStamped.h b/thirdparty/ros/include/geometry_msgs/TwistStamped.h index 2f542e2..ec04832 100644 --- a/thirdparty/ros/include/geometry_msgs/TwistStamped.h +++ b/thirdparty/ros/include/geometry_msgs/TwistStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::TwistStamped_ +bool operator==(const ::geometry_msgs::TwistStamped_ & lhs, const ::geometry_msgs::TwistStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.twist == rhs.twist; +} + +template +bool operator!=(const ::geometry_msgs::TwistStamped_ & lhs, const ::geometry_msgs::TwistStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::TwistStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::TwistStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::TwistStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::TwistStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::TwistStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::TwistStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::TwistStamped_ > : TrueType @@ -145,47 +154,45 @@ struct Definition< ::geometry_msgs::TwistStamped_ > { static const char* value() { - return "# A twist with reference coordinate frame and timestamp\n\ -Header header\n\ -Twist twist\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Twist\n\ -# This expresses velocity in free space broken into its linear and angular parts.\n\ -Vector3 linear\n\ -Vector3 angular\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# A twist with reference coordinate frame and timestamp\n" +"Header header\n" +"Twist twist\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Twist\n" +"# This expresses velocity in free space broken into its linear and angular parts.\n" +"Vector3 linear\n" +"Vector3 angular\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::TwistStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/TwistWithCovariance.h b/thirdparty/ros/include/geometry_msgs/TwistWithCovariance.h index 912656a..012a2a5 100644 --- a/thirdparty/ros/include/geometry_msgs/TwistWithCovariance.h +++ b/thirdparty/ros/include/geometry_msgs/TwistWithCovariance.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -69,6 +69,21 @@ ros::message_operations::Printer< ::geometry_msgs::TwistWithCovariance_ +bool operator==(const ::geometry_msgs::TwistWithCovariance_ & lhs, const ::geometry_msgs::TwistWithCovariance_ & rhs) +{ + return lhs.twist == rhs.twist && + lhs.covariance == rhs.covariance; +} + +template +bool operator!=(const ::geometry_msgs::TwistWithCovariance_ & lhs, const ::geometry_msgs::TwistWithCovariance_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -78,23 +93,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::TwistWithCovariance_ > @@ -106,6 +105,16 @@ struct IsMessage< ::geometry_msgs::TwistWithCovariance_ cons : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::TwistWithCovariance_ > : FalseType @@ -146,35 +155,35 @@ struct Definition< ::geometry_msgs::TwistWithCovariance_ > { static const char* value() { - return "# This expresses velocity in free space with uncertainty.\n\ -\n\ -Twist twist\n\ -\n\ -# Row-major representation of the 6x6 covariance matrix\n\ -# The orientation parameters use a fixed-axis representation.\n\ -# In order, the parameters are:\n\ -# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n\ -float64[36] covariance\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Twist\n\ -# This expresses velocity in free space broken into its linear and angular parts.\n\ -Vector3 linear\n\ -Vector3 angular\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This expresses velocity in free space with uncertainty.\n" +"\n" +"Twist twist\n" +"\n" +"# Row-major representation of the 6x6 covariance matrix\n" +"# The orientation parameters use a fixed-axis representation.\n" +"# In order, the parameters are:\n" +"# (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n" +"float64[36] covariance\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Twist\n" +"# This expresses velocity in free space broken into its linear and angular parts.\n" +"Vector3 linear\n" +"Vector3 angular\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::TwistWithCovariance_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/TwistWithCovarianceStamped.h b/thirdparty/ros/include/geometry_msgs/TwistWithCovarianceStamped.h index 107a806..b0683de 100644 --- a/thirdparty/ros/include/geometry_msgs/TwistWithCovarianceStamped.h +++ b/thirdparty/ros/include/geometry_msgs/TwistWithCovarianceStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::TwistWithCovarianceStamped_ +bool operator==(const ::geometry_msgs::TwistWithCovarianceStamped_ & lhs, const ::geometry_msgs::TwistWithCovarianceStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.twist == rhs.twist; +} + +template +bool operator!=(const ::geometry_msgs::TwistWithCovarianceStamped_ & lhs, const ::geometry_msgs::TwistWithCovarianceStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::TwistWithCovarianceStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::TwistWithCovarianceStamped_ +struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::TwistWithCovarianceStamped_ > : TrueType @@ -145,59 +154,57 @@ struct Definition< ::geometry_msgs::TwistWithCovarianceStamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Vector3.h b/thirdparty/ros/include/geometry_msgs/Vector3.h index 7dbb6e9..6fe3ce3 100644 --- a/thirdparty/ros/include/geometry_msgs/Vector3.h +++ b/thirdparty/ros/include/geometry_msgs/Vector3.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Vector3_ return s; } + +template +bool operator==(const ::geometry_msgs::Vector3_ & lhs, const ::geometry_msgs::Vector3_ & rhs) +{ + return lhs.x == rhs.x && + lhs.y == rhs.y && + lhs.z == rhs.z; +} + +template +bool operator!=(const ::geometry_msgs::Vector3_ & lhs, const ::geometry_msgs::Vector3_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -80,23 +96,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Vector3_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Vector3_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Vector3_ > @@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Vector3_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Vector3_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Vector3_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Vector3_ > : FalseType @@ -148,17 +158,17 @@ struct Definition< ::geometry_msgs::Vector3_ > { static const char* value() { - return "# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::Vector3_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Vector3Stamped.h b/thirdparty/ros/include/geometry_msgs/Vector3Stamped.h index 4502761..2d4f59a 100644 --- a/thirdparty/ros/include/geometry_msgs/Vector3Stamped.h +++ b/thirdparty/ros/include/geometry_msgs/Vector3Stamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Vector3Stamped_ +bool operator==(const ::geometry_msgs::Vector3Stamped_ & lhs, const ::geometry_msgs::Vector3Stamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.vector == rhs.vector; +} + +template +bool operator!=(const ::geometry_msgs::Vector3Stamped_ & lhs, const ::geometry_msgs::Vector3Stamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Vector3Stamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Vector3Stamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::Vector3Stamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Vector3Stamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Vector3Stamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Vector3Stamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::Vector3Stamped_ > : TrueType @@ -145,41 +154,39 @@ struct Definition< ::geometry_msgs::Vector3Stamped_ > { static const char* value() { - return "# This represents a Vector3 with reference coordinate frame and timestamp\n\ -Header header\n\ -Vector3 vector\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This represents a Vector3 with reference coordinate frame and timestamp\n" +"Header header\n" +"Vector3 vector\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::Vector3Stamped_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/Wrench.h b/thirdparty/ros/include/geometry_msgs/Wrench.h index 499b647..c2f9458 100644 --- a/thirdparty/ros/include/geometry_msgs/Wrench.h +++ b/thirdparty/ros/include/geometry_msgs/Wrench.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Wrench_ > return s; } + +template +bool operator==(const ::geometry_msgs::Wrench_ & lhs, const ::geometry_msgs::Wrench_ & rhs) +{ + return lhs.force == rhs.force && + lhs.torque == rhs.torque; +} + +template +bool operator!=(const ::geometry_msgs::Wrench_ & lhs, const ::geometry_msgs::Wrench_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::Wrench_ > - : TrueType - { }; - -template -struct IsFixedSize< ::geometry_msgs::Wrench_ const> - : TrueType - { }; template struct IsMessage< ::geometry_msgs::Wrench_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Wrench_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::Wrench_ > + : TrueType + { }; + +template +struct IsFixedSize< ::geometry_msgs::Wrench_ const> + : TrueType + { }; + template struct HasHeader< ::geometry_msgs::Wrench_ > : FalseType @@ -145,24 +154,24 @@ struct Definition< ::geometry_msgs::Wrench_ > { static const char* value() { - return "# This represents force in free space, separated into\n\ -# its linear and angular parts.\n\ -Vector3 force\n\ -Vector3 torque\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This represents force in free space, separated into\n" +"# its linear and angular parts.\n" +"Vector3 force\n" +"Vector3 torque\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::Wrench_&) { return value(); } diff --git a/thirdparty/ros/include/geometry_msgs/WrenchStamped.h b/thirdparty/ros/include/geometry_msgs/WrenchStamped.h index a07dc97..9e3f01a 100644 --- a/thirdparty/ros/include/geometry_msgs/WrenchStamped.h +++ b/thirdparty/ros/include/geometry_msgs/WrenchStamped.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::WrenchStamped_ +bool operator==(const ::geometry_msgs::WrenchStamped_ & lhs, const ::geometry_msgs::WrenchStamped_ & rhs) +{ + return lhs.header == rhs.header && + lhs.wrench == rhs.wrench; +} + +template +bool operator!=(const ::geometry_msgs::WrenchStamped_ & lhs, const ::geometry_msgs::WrenchStamped_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace geometry_msgs namespace ros @@ -77,23 +92,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/tmp/binarydeb/ros-kinetic-geometry-msgs-1.12.5/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 -struct IsFixedSize< ::geometry_msgs::WrenchStamped_ > - : FalseType - { }; - -template -struct IsFixedSize< ::geometry_msgs::WrenchStamped_ const> - : FalseType - { }; template struct IsMessage< ::geometry_msgs::WrenchStamped_ > @@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::WrenchStamped_ const> : TrueType { }; +template +struct IsFixedSize< ::geometry_msgs::WrenchStamped_ > + : FalseType + { }; + +template +struct IsFixedSize< ::geometry_msgs::WrenchStamped_ const> + : FalseType + { }; + template struct HasHeader< ::geometry_msgs::WrenchStamped_ > : TrueType @@ -145,48 +154,46 @@ struct Definition< ::geometry_msgs::WrenchStamped_ > { static const char* value() { - return "# A wrench with reference coordinate frame and timestamp\n\ -Header header\n\ -Wrench wrench\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Wrench\n\ -# This represents force in free space, separated into\n\ -# its linear and angular parts.\n\ -Vector3 force\n\ -Vector3 torque\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# A wrench with reference coordinate frame and timestamp\n" +"Header header\n" +"Wrench wrench\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Wrench\n" +"# This represents force in free space, separated into\n" +"# its linear and angular parts.\n" +"Vector3 force\n" +"Vector3 torque\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::geometry_msgs::WrenchStamped_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/BatteryState.h b/thirdparty/ros/include/sensor_msgs/BatteryState.h index 9e8a83c..0375ae2 100644 --- a/thirdparty/ros/include/sensor_msgs/BatteryState.h +++ b/thirdparty/ros/include/sensor_msgs/BatteryState.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -27,6 +27,7 @@ struct BatteryState_ BatteryState_() : header() , voltage(0.0) + , temperature(0.0) , current(0.0) , charge(0.0) , capacity(0.0) @@ -37,12 +38,14 @@ struct BatteryState_ , power_supply_technology(0) , present(false) , cell_voltage() + , cell_temperature() , location() , serial_number() { } BatteryState_(const ContainerAllocator& _alloc) : header(_alloc) , voltage(0.0) + , temperature(0.0) , current(0.0) , charge(0.0) , capacity(0.0) @@ -53,6 +56,7 @@ struct BatteryState_ , power_supply_technology(0) , present(false) , cell_voltage(_alloc) + , cell_temperature(_alloc) , location(_alloc) , serial_number(_alloc) { (void)_alloc; @@ -66,6 +70,9 @@ struct BatteryState_ typedef float _voltage_type; _voltage_type voltage; + typedef float _temperature_type; + _temperature_type temperature; + typedef float _current_type; _current_type current; @@ -93,17 +100,85 @@ struct BatteryState_ typedef uint8_t _present_type; _present_type present; - typedef std::vector::other > _cell_voltage_type; + typedef std::vector::template rebind_alloc> _cell_voltage_type; _cell_voltage_type cell_voltage; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _location_type; + typedef std::vector::template rebind_alloc> _cell_temperature_type; + _cell_temperature_type cell_temperature; + + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _location_type; _location_type location; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _serial_number_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _serial_number_type; _serial_number_type serial_number; +// reducing the odds to have name collisions with Windows.h +#if defined(_WIN32) && defined(POWER_SUPPLY_STATUS_UNKNOWN) + #undef POWER_SUPPLY_STATUS_UNKNOWN +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_STATUS_CHARGING) + #undef POWER_SUPPLY_STATUS_CHARGING +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_STATUS_DISCHARGING) + #undef POWER_SUPPLY_STATUS_DISCHARGING +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_STATUS_NOT_CHARGING) + #undef POWER_SUPPLY_STATUS_NOT_CHARGING +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_STATUS_FULL) + #undef POWER_SUPPLY_STATUS_FULL +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_UNKNOWN) + #undef POWER_SUPPLY_HEALTH_UNKNOWN +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_GOOD) + #undef POWER_SUPPLY_HEALTH_GOOD +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_OVERHEAT) + #undef POWER_SUPPLY_HEALTH_OVERHEAT +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_DEAD) + #undef POWER_SUPPLY_HEALTH_DEAD +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_OVERVOLTAGE) + #undef POWER_SUPPLY_HEALTH_OVERVOLTAGE +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_UNSPEC_FAILURE) + #undef POWER_SUPPLY_HEALTH_UNSPEC_FAILURE +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_COLD) + #undef POWER_SUPPLY_HEALTH_COLD +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE) + #undef POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE) + #undef POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_TECHNOLOGY_UNKNOWN) + #undef POWER_SUPPLY_TECHNOLOGY_UNKNOWN +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_TECHNOLOGY_NIMH) + #undef POWER_SUPPLY_TECHNOLOGY_NIMH +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_TECHNOLOGY_LION) + #undef POWER_SUPPLY_TECHNOLOGY_LION +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_TECHNOLOGY_LIPO) + #undef POWER_SUPPLY_TECHNOLOGY_LIPO +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_TECHNOLOGY_LIFE) + #undef POWER_SUPPLY_TECHNOLOGY_LIFE +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_TECHNOLOGY_NICD) + #undef POWER_SUPPLY_TECHNOLOGY_NICD +#endif +#if defined(_WIN32) && defined(POWER_SUPPLY_TECHNOLOGY_LIMN) + #undef POWER_SUPPLY_TECHNOLOGY_LIMN +#endif + enum { POWER_SUPPLY_STATUS_UNKNOWN = 0u, POWER_SUPPLY_STATUS_CHARGING = 1u, @@ -192,6 +267,35 @@ ros::message_operations::Printer< ::sensor_msgs::BatteryState_ +bool operator==(const ::sensor_msgs::BatteryState_ & lhs, const ::sensor_msgs::BatteryState_ & rhs) +{ + return lhs.header == rhs.header && + lhs.voltage == rhs.voltage && + lhs.temperature == rhs.temperature && + lhs.current == rhs.current && + lhs.charge == rhs.charge && + lhs.capacity == rhs.capacity && + lhs.design_capacity == rhs.design_capacity && + lhs.percentage == rhs.percentage && + lhs.power_supply_status == rhs.power_supply_status && + lhs.power_supply_health == rhs.power_supply_health && + lhs.power_supply_technology == rhs.power_supply_technology && + lhs.present == rhs.present && + lhs.cell_voltage == rhs.cell_voltage && + lhs.cell_temperature == rhs.cell_temperature && + lhs.location == rhs.location && + lhs.serial_number == rhs.serial_number; +} + +template +bool operator!=(const ::sensor_msgs::BatteryState_ & lhs, const ::sensor_msgs::BatteryState_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -201,23 +305,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::BatteryState_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::BatteryState_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::BatteryState_ > @@ -229,6 +317,16 @@ struct IsMessage< ::sensor_msgs::BatteryState_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::BatteryState_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::BatteryState_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::BatteryState_ > : TrueType @@ -245,12 +343,12 @@ struct MD5Sum< ::sensor_msgs::BatteryState_ > { static const char* value() { - return "476f837fa6771f6e16e3bf4ef96f8770"; + return "4ddae7f048e32fda22cac764685e3974"; } static const char* value(const ::sensor_msgs::BatteryState_&) { return value(); } - static const uint64_t static_value1 = 0x476f837fa6771f6eULL; - static const uint64_t static_value2 = 0x16e3bf4ef96f8770ULL; + static const uint64_t static_value1 = 0x4ddae7f048e32fdaULL; + static const uint64_t static_value2 = 0x22cac764685e3974ULL; }; template @@ -269,74 +367,75 @@ struct Definition< ::sensor_msgs::BatteryState_ > { static const char* value() { - return "\n\ -# Constants are chosen to match the enums in the linux kernel\n\ -# defined in include/linux/power_supply.h as of version 3.7\n\ -# The one difference is for style reasons the constants are\n\ -# all uppercase not mixed case.\n\ -\n\ -# Power supply status constants\n\ -uint8 POWER_SUPPLY_STATUS_UNKNOWN = 0\n\ -uint8 POWER_SUPPLY_STATUS_CHARGING = 1\n\ -uint8 POWER_SUPPLY_STATUS_DISCHARGING = 2\n\ -uint8 POWER_SUPPLY_STATUS_NOT_CHARGING = 3\n\ -uint8 POWER_SUPPLY_STATUS_FULL = 4\n\ -\n\ -# Power supply health constants\n\ -uint8 POWER_SUPPLY_HEALTH_UNKNOWN = 0\n\ -uint8 POWER_SUPPLY_HEALTH_GOOD = 1\n\ -uint8 POWER_SUPPLY_HEALTH_OVERHEAT = 2\n\ -uint8 POWER_SUPPLY_HEALTH_DEAD = 3\n\ -uint8 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4\n\ -uint8 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5\n\ -uint8 POWER_SUPPLY_HEALTH_COLD = 6\n\ -uint8 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7\n\ -uint8 POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8\n\ -\n\ -# Power supply technology (chemistry) constants\n\ -uint8 POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0\n\ -uint8 POWER_SUPPLY_TECHNOLOGY_NIMH = 1\n\ -uint8 POWER_SUPPLY_TECHNOLOGY_LION = 2\n\ -uint8 POWER_SUPPLY_TECHNOLOGY_LIPO = 3\n\ -uint8 POWER_SUPPLY_TECHNOLOGY_LIFE = 4\n\ -uint8 POWER_SUPPLY_TECHNOLOGY_NICD = 5\n\ -uint8 POWER_SUPPLY_TECHNOLOGY_LIMN = 6\n\ -\n\ -Header header\n\ -float32 voltage # Voltage in Volts (Mandatory)\n\ -float32 current # Negative when discharging (A) (If unmeasured NaN)\n\ -float32 charge # Current charge in Ah (If unmeasured NaN)\n\ -float32 capacity # Capacity in Ah (last full capacity) (If unmeasured NaN)\n\ -float32 design_capacity # Capacity in Ah (design capacity) (If unmeasured NaN)\n\ -float32 percentage # Charge percentage on 0 to 1 range (If unmeasured NaN)\n\ -uint8 power_supply_status # The charging status as reported. Values defined above\n\ -uint8 power_supply_health # The battery health metric. Values defined above\n\ -uint8 power_supply_technology # The battery chemistry. Values defined above\n\ -bool present # True if the battery is present\n\ -\n\ -float32[] cell_voltage # An array of individual cell voltages for each cell in the pack\n\ - # If individual voltages unknown but number of cells known set each to NaN\n\ -string location # The location into which the battery is inserted. (slot number or plug)\n\ -string serial_number # The best approximation of the battery serial number\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "\n" +"# Constants are chosen to match the enums in the linux kernel\n" +"# defined in include/linux/power_supply.h as of version 3.7\n" +"# The one difference is for style reasons the constants are\n" +"# all uppercase not mixed case.\n" +"\n" +"# Power supply status constants\n" +"uint8 POWER_SUPPLY_STATUS_UNKNOWN = 0\n" +"uint8 POWER_SUPPLY_STATUS_CHARGING = 1\n" +"uint8 POWER_SUPPLY_STATUS_DISCHARGING = 2\n" +"uint8 POWER_SUPPLY_STATUS_NOT_CHARGING = 3\n" +"uint8 POWER_SUPPLY_STATUS_FULL = 4\n" +"\n" +"# Power supply health constants\n" +"uint8 POWER_SUPPLY_HEALTH_UNKNOWN = 0\n" +"uint8 POWER_SUPPLY_HEALTH_GOOD = 1\n" +"uint8 POWER_SUPPLY_HEALTH_OVERHEAT = 2\n" +"uint8 POWER_SUPPLY_HEALTH_DEAD = 3\n" +"uint8 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4\n" +"uint8 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5\n" +"uint8 POWER_SUPPLY_HEALTH_COLD = 6\n" +"uint8 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7\n" +"uint8 POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8\n" +"\n" +"# Power supply technology (chemistry) constants\n" +"uint8 POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0\n" +"uint8 POWER_SUPPLY_TECHNOLOGY_NIMH = 1\n" +"uint8 POWER_SUPPLY_TECHNOLOGY_LION = 2\n" +"uint8 POWER_SUPPLY_TECHNOLOGY_LIPO = 3\n" +"uint8 POWER_SUPPLY_TECHNOLOGY_LIFE = 4\n" +"uint8 POWER_SUPPLY_TECHNOLOGY_NICD = 5\n" +"uint8 POWER_SUPPLY_TECHNOLOGY_LIMN = 6\n" +"\n" +"Header header\n" +"float32 voltage # Voltage in Volts (Mandatory)\n" +"float32 temperature # Temperature in Degrees Celsius (If unmeasured NaN)\n" +"float32 current # Negative when discharging (A) (If unmeasured NaN)\n" +"float32 charge # Current charge in Ah (If unmeasured NaN)\n" +"float32 capacity # Capacity in Ah (last full capacity) (If unmeasured NaN)\n" +"float32 design_capacity # Capacity in Ah (design capacity) (If unmeasured NaN)\n" +"float32 percentage # Charge percentage on 0 to 1 range (If unmeasured NaN)\n" +"uint8 power_supply_status # The charging status as reported. Values defined above\n" +"uint8 power_supply_health # The battery health metric. Values defined above\n" +"uint8 power_supply_technology # The battery chemistry. Values defined above\n" +"bool present # True if the battery is present\n" +"\n" +"float32[] cell_voltage # An array of individual cell voltages for each cell in the pack\n" +" # If individual voltages unknown but number of cells known set each to NaN\n" +"float32[] cell_temperature # An array of individual cell temperatures for each cell in the pack\n" +" # If individual temperatures unknown but number of cells known set each to NaN\n" +"string location # The location into which the battery is inserted. (slot number or plug)\n" +"string serial_number # The best approximation of the battery serial number\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::BatteryState_&) { return value(); } @@ -356,6 +455,7 @@ namespace serialization { stream.next(m.header); stream.next(m.voltage); + stream.next(m.temperature); stream.next(m.current); stream.next(m.charge); stream.next(m.capacity); @@ -366,6 +466,7 @@ namespace serialization stream.next(m.power_supply_technology); stream.next(m.present); stream.next(m.cell_voltage); + stream.next(m.cell_temperature); stream.next(m.location); stream.next(m.serial_number); } @@ -391,6 +492,8 @@ struct Printer< ::sensor_msgs::BatteryState_ > Printer< ::std_msgs::Header_ >::stream(s, indent + " ", v.header); s << indent << "voltage: "; Printer::stream(s, indent + " ", v.voltage); + s << indent << "temperature: "; + Printer::stream(s, indent + " ", v.temperature); s << indent << "current: "; Printer::stream(s, indent + " ", v.current); s << indent << "charge: "; @@ -415,10 +518,16 @@ struct Printer< ::sensor_msgs::BatteryState_ > s << indent << " cell_voltage[" << i << "]: "; Printer::stream(s, indent + " ", v.cell_voltage[i]); } + s << indent << "cell_temperature[]" << std::endl; + for (size_t i = 0; i < v.cell_temperature.size(); ++i) + { + s << indent << " cell_temperature[" << i << "]: "; + Printer::stream(s, indent + " ", v.cell_temperature[i]); + } s << indent << "location: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.location); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.location); s << indent << "serial_number: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.serial_number); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.serial_number); } }; diff --git a/thirdparty/ros/include/sensor_msgs/CameraInfo.h b/thirdparty/ros/include/sensor_msgs/CameraInfo.h index 7ac7278..e685fd4 100644 --- a/thirdparty/ros/include/sensor_msgs/CameraInfo.h +++ b/thirdparty/ros/include/sensor_msgs/CameraInfo.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -74,10 +74,10 @@ struct CameraInfo_ typedef uint32_t _width_type; _width_type width; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _distortion_model_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _distortion_model_type; _distortion_model_type distortion_model; - typedef std::vector::other > _D_type; + typedef std::vector::template rebind_alloc> _D_type; _D_type D; typedef boost::array _K_type; @@ -123,6 +123,30 @@ ros::message_operations::Printer< ::sensor_msgs::CameraInfo_ return s; } + +template +bool operator==(const ::sensor_msgs::CameraInfo_ & lhs, const ::sensor_msgs::CameraInfo_ & rhs) +{ + return lhs.header == rhs.header && + lhs.height == rhs.height && + lhs.width == rhs.width && + lhs.distortion_model == rhs.distortion_model && + lhs.D == rhs.D && + lhs.K == rhs.K && + lhs.R == rhs.R && + lhs.P == rhs.P && + lhs.binning_x == rhs.binning_x && + lhs.binning_y == rhs.binning_y && + lhs.roi == rhs.roi; +} + +template +bool operator!=(const ::sensor_msgs::CameraInfo_ & lhs, const ::sensor_msgs::CameraInfo_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -132,23 +156,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::CameraInfo_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::CameraInfo_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::CameraInfo_ > @@ -160,6 +168,16 @@ struct IsMessage< ::sensor_msgs::CameraInfo_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::CameraInfo_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::CameraInfo_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::CameraInfo_ > : TrueType @@ -200,178 +218,176 @@ struct Definition< ::sensor_msgs::CameraInfo_ > { static const char* value() { - return "# This message defines meta information for a camera. It should be in a\n\ -# camera namespace on topic \"camera_info\" and accompanied by up to five\n\ -# image topics named:\n\ -#\n\ -# image_raw - raw data from the camera driver, possibly Bayer encoded\n\ -# image - monochrome, distorted\n\ -# image_color - color, distorted\n\ -# image_rect - monochrome, rectified\n\ -# image_rect_color - color, rectified\n\ -#\n\ -# The image_pipeline contains packages (image_proc, stereo_image_proc)\n\ -# for producing the four processed image topics from image_raw and\n\ -# camera_info. The meaning of the camera parameters are described in\n\ -# detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.\n\ -#\n\ -# The image_geometry package provides a user-friendly interface to\n\ -# common operations using this meta information. If you want to, e.g.,\n\ -# project a 3d point into image coordinates, we strongly recommend\n\ -# using image_geometry.\n\ -#\n\ -# If the camera is uncalibrated, the matrices D, K, R, P should be left\n\ -# zeroed out. In particular, clients may assume that K[0] == 0.0\n\ -# indicates an uncalibrated camera.\n\ -\n\ -#######################################################################\n\ -# Image acquisition info #\n\ -#######################################################################\n\ -\n\ -# Time of image acquisition, camera coordinate frame ID\n\ -Header header # Header timestamp should be acquisition time of image\n\ - # Header frame_id should be optical frame of camera\n\ - # origin of frame should be optical center of camera\n\ - # +x should point to the right in the image\n\ - # +y should point down in the image\n\ - # +z should point into the plane of the image\n\ -\n\ -\n\ -#######################################################################\n\ -# Calibration Parameters #\n\ -#######################################################################\n\ -# These are fixed during camera calibration. Their values will be the #\n\ -# same in all messages until the camera is recalibrated. Note that #\n\ -# self-calibrating systems may \"recalibrate\" frequently. #\n\ -# #\n\ -# The internal parameters can be used to warp a raw (distorted) image #\n\ -# to: #\n\ -# 1. An undistorted image (requires D and K) #\n\ -# 2. A rectified image (requires D, K, R) #\n\ -# The projection matrix P projects 3D points into the rectified image.#\n\ -#######################################################################\n\ -\n\ -# The image dimensions with which the camera was calibrated. Normally\n\ -# this will be the full camera resolution in pixels.\n\ -uint32 height\n\ -uint32 width\n\ -\n\ -# The distortion model used. Supported models are listed in\n\ -# sensor_msgs/distortion_models.h. For most cameras, \"plumb_bob\" - a\n\ -# simple model of radial and tangential distortion - is sufficient.\n\ -string distortion_model\n\ -\n\ -# The distortion parameters, size depending on the distortion model.\n\ -# For \"plumb_bob\", the 5 parameters are: (k1, k2, t1, t2, k3).\n\ -float64[] D\n\ -\n\ -# Intrinsic camera matrix for the raw (distorted) images.\n\ -# [fx 0 cx]\n\ -# K = [ 0 fy cy]\n\ -# [ 0 0 1]\n\ -# Projects 3D points in the camera coordinate frame to 2D pixel\n\ -# coordinates using the focal lengths (fx, fy) and principal point\n\ -# (cx, cy).\n\ -float64[9] K # 3x3 row-major matrix\n\ -\n\ -# Rectification matrix (stereo cameras only)\n\ -# A rotation matrix aligning the camera coordinate system to the ideal\n\ -# stereo image plane so that epipolar lines in both stereo images are\n\ -# parallel.\n\ -float64[9] R # 3x3 row-major matrix\n\ -\n\ -# Projection/camera matrix\n\ -# [fx' 0 cx' Tx]\n\ -# P = [ 0 fy' cy' Ty]\n\ -# [ 0 0 1 0]\n\ -# By convention, this matrix specifies the intrinsic (camera) matrix\n\ -# of the processed (rectified) image. That is, the left 3x3 portion\n\ -# is the normal camera intrinsic matrix for the rectified image.\n\ -# It projects 3D points in the camera coordinate frame to 2D pixel\n\ -# coordinates using the focal lengths (fx', fy') and principal point\n\ -# (cx', cy') - these may differ from the values in K.\n\ -# For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will\n\ -# also have R = the identity and P[1:3,1:3] = K.\n\ -# For a stereo pair, the fourth column [Tx Ty 0]' is related to the\n\ -# position of the optical center of the second camera in the first\n\ -# camera's frame. We assume Tz = 0 so both cameras are in the same\n\ -# stereo image plane. The first camera always has Tx = Ty = 0. For\n\ -# the right (second) camera of a horizontal stereo pair, Ty = 0 and\n\ -# Tx = -fx' * B, where B is the baseline between the cameras.\n\ -# Given a 3D point [X Y Z]', the projection (x, y) of the point onto\n\ -# the rectified image is given by:\n\ -# [u v w]' = P * [X Y Z 1]'\n\ -# x = u / w\n\ -# y = v / w\n\ -# This holds for both images of a stereo pair.\n\ -float64[12] P # 3x4 row-major matrix\n\ -\n\ -\n\ -#######################################################################\n\ -# Operational Parameters #\n\ -#######################################################################\n\ -# These define the image region actually captured by the camera #\n\ -# driver. Although they affect the geometry of the output image, they #\n\ -# may be changed freely without recalibrating the camera. #\n\ -#######################################################################\n\ -\n\ -# Binning refers here to any camera setting which combines rectangular\n\ -# neighborhoods of pixels into larger \"super-pixels.\" It reduces the\n\ -# resolution of the output image to\n\ -# (width / binning_x) x (height / binning_y).\n\ -# The default values binning_x = binning_y = 0 is considered the same\n\ -# as binning_x = binning_y = 1 (no subsampling).\n\ -uint32 binning_x\n\ -uint32 binning_y\n\ -\n\ -# Region of interest (subwindow of full camera resolution), given in\n\ -# full resolution (unbinned) image coordinates. A particular ROI\n\ -# always denotes the same window of pixels on the camera sensor,\n\ -# regardless of binning settings.\n\ -# The default setting of roi (all values 0) is considered the same as\n\ -# full resolution (roi.width = width, roi.height = height).\n\ -RegionOfInterest roi\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: sensor_msgs/RegionOfInterest\n\ -# This message is used to specify a region of interest within an image.\n\ -#\n\ -# When used to specify the ROI setting of the camera when the image was\n\ -# taken, the height and width fields should either match the height and\n\ -# width fields for the associated image; or height = width = 0\n\ -# indicates that the full resolution image was captured.\n\ -\n\ -uint32 x_offset # Leftmost pixel of the ROI\n\ - # (0 if the ROI includes the left edge of the image)\n\ -uint32 y_offset # Topmost pixel of the ROI\n\ - # (0 if the ROI includes the top edge of the image)\n\ -uint32 height # Height of ROI\n\ -uint32 width # Width of ROI\n\ -\n\ -# True if a distinct rectified ROI should be calculated from the \"raw\"\n\ -# ROI in this message. Typically this should be False if the full image\n\ -# is captured (ROI not used), and True if a subwindow is captured (ROI\n\ -# used).\n\ -bool do_rectify\n\ -"; + return "# This message defines meta information for a camera. It should be in a\n" +"# camera namespace on topic \"camera_info\" and accompanied by up to five\n" +"# image topics named:\n" +"#\n" +"# image_raw - raw data from the camera driver, possibly Bayer encoded\n" +"# image - monochrome, distorted\n" +"# image_color - color, distorted\n" +"# image_rect - monochrome, rectified\n" +"# image_rect_color - color, rectified\n" +"#\n" +"# The image_pipeline contains packages (image_proc, stereo_image_proc)\n" +"# for producing the four processed image topics from image_raw and\n" +"# camera_info. The meaning of the camera parameters are described in\n" +"# detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.\n" +"#\n" +"# The image_geometry package provides a user-friendly interface to\n" +"# common operations using this meta information. If you want to, e.g.,\n" +"# project a 3d point into image coordinates, we strongly recommend\n" +"# using image_geometry.\n" +"#\n" +"# If the camera is uncalibrated, the matrices D, K, R, P should be left\n" +"# zeroed out. In particular, clients may assume that K[0] == 0.0\n" +"# indicates an uncalibrated camera.\n" +"\n" +"#######################################################################\n" +"# Image acquisition info #\n" +"#######################################################################\n" +"\n" +"# Time of image acquisition, camera coordinate frame ID\n" +"Header header # Header timestamp should be acquisition time of image\n" +" # Header frame_id should be optical frame of camera\n" +" # origin of frame should be optical center of camera\n" +" # +x should point to the right in the image\n" +" # +y should point down in the image\n" +" # +z should point into the plane of the image\n" +"\n" +"\n" +"#######################################################################\n" +"# Calibration Parameters #\n" +"#######################################################################\n" +"# These are fixed during camera calibration. Their values will be the #\n" +"# same in all messages until the camera is recalibrated. Note that #\n" +"# self-calibrating systems may \"recalibrate\" frequently. #\n" +"# #\n" +"# The internal parameters can be used to warp a raw (distorted) image #\n" +"# to: #\n" +"# 1. An undistorted image (requires D and K) #\n" +"# 2. A rectified image (requires D, K, R) #\n" +"# The projection matrix P projects 3D points into the rectified image.#\n" +"#######################################################################\n" +"\n" +"# The image dimensions with which the camera was calibrated. Normally\n" +"# this will be the full camera resolution in pixels.\n" +"uint32 height\n" +"uint32 width\n" +"\n" +"# The distortion model used. Supported models are listed in\n" +"# sensor_msgs/distortion_models.h. For most cameras, \"plumb_bob\" - a\n" +"# simple model of radial and tangential distortion - is sufficient.\n" +"string distortion_model\n" +"\n" +"# The distortion parameters, size depending on the distortion model.\n" +"# For \"plumb_bob\", the 5 parameters are: (k1, k2, t1, t2, k3).\n" +"float64[] D\n" +"\n" +"# Intrinsic camera matrix for the raw (distorted) images.\n" +"# [fx 0 cx]\n" +"# K = [ 0 fy cy]\n" +"# [ 0 0 1]\n" +"# Projects 3D points in the camera coordinate frame to 2D pixel\n" +"# coordinates using the focal lengths (fx, fy) and principal point\n" +"# (cx, cy).\n" +"float64[9] K # 3x3 row-major matrix\n" +"\n" +"# Rectification matrix (stereo cameras only)\n" +"# A rotation matrix aligning the camera coordinate system to the ideal\n" +"# stereo image plane so that epipolar lines in both stereo images are\n" +"# parallel.\n" +"float64[9] R # 3x3 row-major matrix\n" +"\n" +"# Projection/camera matrix\n" +"# [fx' 0 cx' Tx]\n" +"# P = [ 0 fy' cy' Ty]\n" +"# [ 0 0 1 0]\n" +"# By convention, this matrix specifies the intrinsic (camera) matrix\n" +"# of the processed (rectified) image. That is, the left 3x3 portion\n" +"# is the normal camera intrinsic matrix for the rectified image.\n" +"# It projects 3D points in the camera coordinate frame to 2D pixel\n" +"# coordinates using the focal lengths (fx', fy') and principal point\n" +"# (cx', cy') - these may differ from the values in K.\n" +"# For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will\n" +"# also have R = the identity and P[1:3,1:3] = K.\n" +"# For a stereo pair, the fourth column [Tx Ty 0]' is related to the\n" +"# position of the optical center of the second camera in the first\n" +"# camera's frame. We assume Tz = 0 so both cameras are in the same\n" +"# stereo image plane. The first camera always has Tx = Ty = 0. For\n" +"# the right (second) camera of a horizontal stereo pair, Ty = 0 and\n" +"# Tx = -fx' * B, where B is the baseline between the cameras.\n" +"# Given a 3D point [X Y Z]', the projection (x, y) of the point onto\n" +"# the rectified image is given by:\n" +"# [u v w]' = P * [X Y Z 1]'\n" +"# x = u / w\n" +"# y = v / w\n" +"# This holds for both images of a stereo pair.\n" +"float64[12] P # 3x4 row-major matrix\n" +"\n" +"\n" +"#######################################################################\n" +"# Operational Parameters #\n" +"#######################################################################\n" +"# These define the image region actually captured by the camera #\n" +"# driver. Although they affect the geometry of the output image, they #\n" +"# may be changed freely without recalibrating the camera. #\n" +"#######################################################################\n" +"\n" +"# Binning refers here to any camera setting which combines rectangular\n" +"# neighborhoods of pixels into larger \"super-pixels.\" It reduces the\n" +"# resolution of the output image to\n" +"# (width / binning_x) x (height / binning_y).\n" +"# The default values binning_x = binning_y = 0 is considered the same\n" +"# as binning_x = binning_y = 1 (no subsampling).\n" +"uint32 binning_x\n" +"uint32 binning_y\n" +"\n" +"# Region of interest (subwindow of full camera resolution), given in\n" +"# full resolution (unbinned) image coordinates. A particular ROI\n" +"# always denotes the same window of pixels on the camera sensor,\n" +"# regardless of binning settings.\n" +"# The default setting of roi (all values 0) is considered the same as\n" +"# full resolution (roi.width = width, roi.height = height).\n" +"RegionOfInterest roi\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: sensor_msgs/RegionOfInterest\n" +"# This message is used to specify a region of interest within an image.\n" +"#\n" +"# When used to specify the ROI setting of the camera when the image was\n" +"# taken, the height and width fields should either match the height and\n" +"# width fields for the associated image; or height = width = 0\n" +"# indicates that the full resolution image was captured.\n" +"\n" +"uint32 x_offset # Leftmost pixel of the ROI\n" +" # (0 if the ROI includes the left edge of the image)\n" +"uint32 y_offset # Topmost pixel of the ROI\n" +" # (0 if the ROI includes the top edge of the image)\n" +"uint32 height # Height of ROI\n" +"uint32 width # Width of ROI\n" +"\n" +"# True if a distinct rectified ROI should be calculated from the \"raw\"\n" +"# ROI in this message. Typically this should be False if the full image\n" +"# is captured (ROI not used), and True if a subwindow is captured (ROI\n" +"# used).\n" +"bool do_rectify\n" +; } static const char* value(const ::sensor_msgs::CameraInfo_&) { return value(); } @@ -426,7 +442,7 @@ struct Printer< ::sensor_msgs::CameraInfo_ > s << indent << "width: "; Printer::stream(s, indent + " ", v.width); s << indent << "distortion_model: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.distortion_model); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.distortion_model); s << indent << "D[]" << std::endl; for (size_t i = 0; i < v.D.size(); ++i) { diff --git a/thirdparty/ros/include/sensor_msgs/ChannelFloat32.h b/thirdparty/ros/include/sensor_msgs/ChannelFloat32.h index d599c7a..2d08034 100644 --- a/thirdparty/ros/include/sensor_msgs/ChannelFloat32.h +++ b/thirdparty/ros/include/sensor_msgs/ChannelFloat32.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -35,10 +35,10 @@ struct ChannelFloat32_ - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _name_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _name_type; _name_type name; - typedef std::vector::other > _values_type; + typedef std::vector::template rebind_alloc> _values_type; _values_type values; @@ -66,6 +66,21 @@ ros::message_operations::Printer< ::sensor_msgs::ChannelFloat32_ +bool operator==(const ::sensor_msgs::ChannelFloat32_ & lhs, const ::sensor_msgs::ChannelFloat32_ & rhs) +{ + return lhs.name == rhs.name && + lhs.values == rhs.values; +} + +template +bool operator!=(const ::sensor_msgs::ChannelFloat32_ & lhs, const ::sensor_msgs::ChannelFloat32_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -75,23 +90,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::ChannelFloat32_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::ChannelFloat32_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::ChannelFloat32_ > @@ -103,6 +102,16 @@ struct IsMessage< ::sensor_msgs::ChannelFloat32_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::ChannelFloat32_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::ChannelFloat32_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::ChannelFloat32_ > : FalseType @@ -143,31 +152,31 @@ struct Definition< ::sensor_msgs::ChannelFloat32_ > { static const char* value() { - return "# This message is used by the PointCloud message to hold optional data\n\ -# associated with each point in the cloud. The length of the values\n\ -# array should be the same as the length of the points array in the\n\ -# PointCloud, and each value should be associated with the corresponding\n\ -# point.\n\ -\n\ -# Channel names in existing practice include:\n\ -# \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\ -# This is opposite to usual conventions but remains for\n\ -# historical reasons. The newer PointCloud2 message has no\n\ -# such problem.\n\ -# \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\ -# (R,G,B) values packed into the least significant 24 bits,\n\ -# in order.\n\ -# \"intensity\" - laser or pixel intensity.\n\ -# \"distance\"\n\ -\n\ -# The channel name should give semantics of the channel (e.g.\n\ -# \"intensity\" instead of \"value\").\n\ -string name\n\ -\n\ -# The values array should be 1-1 with the elements of the associated\n\ -# PointCloud.\n\ -float32[] values\n\ -"; + return "# This message is used by the PointCloud message to hold optional data\n" +"# associated with each point in the cloud. The length of the values\n" +"# array should be the same as the length of the points array in the\n" +"# PointCloud, and each value should be associated with the corresponding\n" +"# point.\n" +"\n" +"# Channel names in existing practice include:\n" +"# \"u\", \"v\" - row and column (respectively) in the left stereo image.\n" +"# This is opposite to usual conventions but remains for\n" +"# historical reasons. The newer PointCloud2 message has no\n" +"# such problem.\n" +"# \"rgb\" - For point clouds produced by color stereo cameras. uint8\n" +"# (R,G,B) values packed into the least significant 24 bits,\n" +"# in order.\n" +"# \"intensity\" - laser or pixel intensity.\n" +"# \"distance\"\n" +"\n" +"# The channel name should give semantics of the channel (e.g.\n" +"# \"intensity\" instead of \"value\").\n" +"string name\n" +"\n" +"# The values array should be 1-1 with the elements of the associated\n" +"# PointCloud.\n" +"float32[] values\n" +; } static const char* value(const ::sensor_msgs::ChannelFloat32_&) { return value(); } @@ -206,7 +215,7 @@ struct Printer< ::sensor_msgs::ChannelFloat32_ > template static void stream(Stream& s, const std::string& indent, const ::sensor_msgs::ChannelFloat32_& v) { s << indent << "name: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.name); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.name); s << indent << "values[]" << std::endl; for (size_t i = 0; i < v.values.size(); ++i) { diff --git a/thirdparty/ros/include/sensor_msgs/CompressedImage.h b/thirdparty/ros/include/sensor_msgs/CompressedImage.h index ffed790..8489384 100644 --- a/thirdparty/ros/include/sensor_msgs/CompressedImage.h +++ b/thirdparty/ros/include/sensor_msgs/CompressedImage.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -41,10 +41,10 @@ struct CompressedImage_ typedef ::std_msgs::Header_ _header_type; _header_type header; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _format_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _format_type; _format_type format; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::CompressedImage_ +bool operator==(const ::sensor_msgs::CompressedImage_ & lhs, const ::sensor_msgs::CompressedImage_ & rhs) +{ + return lhs.header == rhs.header && + lhs.format == rhs.format && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::sensor_msgs::CompressedImage_ & lhs, const ::sensor_msgs::CompressedImage_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -81,23 +97,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::CompressedImage_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::CompressedImage_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::CompressedImage_ > @@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::CompressedImage_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::CompressedImage_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::CompressedImage_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::CompressedImage_ > : TrueType @@ -149,38 +159,36 @@ struct Definition< ::sensor_msgs::CompressedImage_ > { static const char* value() { - return "# This message contains a compressed image\n\ -\n\ -Header header # Header timestamp should be acquisition time of image\n\ - # Header frame_id should be optical frame of camera\n\ - # origin of frame should be optical center of cameara\n\ - # +x should point to the right in the image\n\ - # +y should point down in the image\n\ - # +z should point into to plane of the image\n\ -\n\ -string format # Specifies the format of the data\n\ - # Acceptable values:\n\ - # jpeg, png\n\ -uint8[] data # Compressed image buffer\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# This message contains a compressed image\n" +"\n" +"Header header # Header timestamp should be acquisition time of image\n" +" # Header frame_id should be optical frame of camera\n" +" # origin of frame should be optical center of camera\n" +" # +x should point to the right in the image\n" +" # +y should point down in the image\n" +" # +z should point into to plane of the image\n" +"\n" +"string format # Specifies the format of the data\n" +" # Acceptable values:\n" +" # jpeg, png\n" +"uint8[] data # Compressed image buffer\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::CompressedImage_&) { return value(); } @@ -223,7 +231,7 @@ struct Printer< ::sensor_msgs::CompressedImage_ > s << std::endl; Printer< ::std_msgs::Header_ >::stream(s, indent + " ", v.header); s << indent << "format: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.format); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.format); s << indent << "data[]" << std::endl; for (size_t i = 0; i < v.data.size(); ++i) { diff --git a/thirdparty/ros/include/sensor_msgs/FluidPressure.h b/thirdparty/ros/include/sensor_msgs/FluidPressure.h index 98cec3f..0b0184b 100644 --- a/thirdparty/ros/include/sensor_msgs/FluidPressure.h +++ b/thirdparty/ros/include/sensor_msgs/FluidPressure.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::FluidPressure_ +bool operator==(const ::sensor_msgs::FluidPressure_ & lhs, const ::sensor_msgs::FluidPressure_ & rhs) +{ + return lhs.header == rhs.header && + lhs.fluid_pressure == rhs.fluid_pressure && + lhs.variance == rhs.variance; +} + +template +bool operator!=(const ::sensor_msgs::FluidPressure_ & lhs, const ::sensor_msgs::FluidPressure_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -81,23 +97,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::FluidPressure_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::FluidPressure_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::FluidPressure_ > @@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::FluidPressure_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::FluidPressure_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::FluidPressure_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::FluidPressure_ > : TrueType @@ -149,36 +159,34 @@ struct Definition< ::sensor_msgs::FluidPressure_ > { static const char* value() { - return " # Single pressure reading. This message is appropriate for measuring the\n\ - # pressure inside of a fluid (air, water, etc). This also includes\n\ - # atmospheric or barometric pressure.\n\ -\n\ - # This message is not appropriate for force/pressure contact sensors.\n\ -\n\ - Header header # timestamp of the measurement\n\ - # frame_id is the location of the pressure sensor\n\ -\n\ - float64 fluid_pressure # Absolute pressure reading in Pascals.\n\ -\n\ - float64 variance # 0 is interpreted as variance unknown\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return " # Single pressure reading. This message is appropriate for measuring the\n" +" # pressure inside of a fluid (air, water, etc). This also includes\n" +" # atmospheric or barometric pressure.\n" +"\n" +" # This message is not appropriate for force/pressure contact sensors.\n" +"\n" +" Header header # timestamp of the measurement\n" +" # frame_id is the location of the pressure sensor\n" +"\n" +" float64 fluid_pressure # Absolute pressure reading in Pascals.\n" +"\n" +" float64 variance # 0 is interpreted as variance unknown\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::FluidPressure_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/Illuminance.h b/thirdparty/ros/include/sensor_msgs/Illuminance.h index ad98737..566003b 100644 --- a/thirdparty/ros/include/sensor_msgs/Illuminance.h +++ b/thirdparty/ros/include/sensor_msgs/Illuminance.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::Illuminance_ +bool operator==(const ::sensor_msgs::Illuminance_ & lhs, const ::sensor_msgs::Illuminance_ & rhs) +{ + return lhs.header == rhs.header && + lhs.illuminance == rhs.illuminance && + lhs.variance == rhs.variance; +} + +template +bool operator!=(const ::sensor_msgs::Illuminance_ & lhs, const ::sensor_msgs::Illuminance_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -81,23 +97,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::Illuminance_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::Illuminance_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::Illuminance_ > @@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::Illuminance_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::Illuminance_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::Illuminance_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::Illuminance_ > : TrueType @@ -149,45 +159,43 @@ struct Definition< ::sensor_msgs::Illuminance_ > { static const char* value() { - return " # Single photometric illuminance measurement. Light should be assumed to be\n\ - # measured along the sensor's x-axis (the area of detection is the y-z plane).\n\ - # The illuminance should have a 0 or positive value and be received with\n\ - # the sensor's +X axis pointing toward the light source.\n\ -\n\ - # Photometric illuminance is the measure of the human eye's sensitivity of the\n\ - # intensity of light encountering or passing through a surface.\n\ -\n\ - # All other Photometric and Radiometric measurements should\n\ - # not use this message.\n\ - # This message cannot represent:\n\ - # Luminous intensity (candela/light source output)\n\ - # Luminance (nits/light output per area)\n\ - # Irradiance (watt/area), etc.\n\ -\n\ - Header header # timestamp is the time the illuminance was measured\n\ - # frame_id is the location and direction of the reading\n\ -\n\ - float64 illuminance # Measurement of the Photometric Illuminance in Lux.\n\ -\n\ - float64 variance # 0 is interpreted as variance unknown\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return " # Single photometric illuminance measurement. Light should be assumed to be\n" +" # measured along the sensor's x-axis (the area of detection is the y-z plane).\n" +" # The illuminance should have a 0 or positive value and be received with\n" +" # the sensor's +X axis pointing toward the light source.\n" +"\n" +" # Photometric illuminance is the measure of the human eye's sensitivity of the\n" +" # intensity of light encountering or passing through a surface.\n" +"\n" +" # All other Photometric and Radiometric measurements should\n" +" # not use this message.\n" +" # This message cannot represent:\n" +" # Luminous intensity (candela/light source output)\n" +" # Luminance (nits/light output per area)\n" +" # Irradiance (watt/area), etc.\n" +"\n" +" Header header # timestamp is the time the illuminance was measured\n" +" # frame_id is the location and direction of the reading\n" +"\n" +" float64 illuminance # Measurement of the Photometric Illuminance in Lux.\n" +"\n" +" float64 variance # 0 is interpreted as variance unknown\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::Illuminance_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/Image.h b/thirdparty/ros/include/sensor_msgs/Image.h index e6f17df..a3e76fd 100644 --- a/thirdparty/ros/include/sensor_msgs/Image.h +++ b/thirdparty/ros/include/sensor_msgs/Image.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -55,7 +55,7 @@ struct Image_ typedef uint32_t _width_type; _width_type width; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _encoding_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _encoding_type; _encoding_type encoding; typedef uint8_t _is_bigendian_type; @@ -64,7 +64,7 @@ struct Image_ typedef uint32_t _step_type; _step_type step; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -92,6 +92,26 @@ ros::message_operations::Printer< ::sensor_msgs::Image_ >::s return s; } + +template +bool operator==(const ::sensor_msgs::Image_ & lhs, const ::sensor_msgs::Image_ & rhs) +{ + return lhs.header == rhs.header && + lhs.height == rhs.height && + lhs.width == rhs.width && + lhs.encoding == rhs.encoding && + lhs.is_bigendian == rhs.is_bigendian && + lhs.step == rhs.step && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::sensor_msgs::Image_ & lhs, const ::sensor_msgs::Image_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -101,23 +121,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::Image_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::Image_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::Image_ > @@ -129,6 +133,16 @@ struct IsMessage< ::sensor_msgs::Image_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::Image_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::Image_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::Image_ > : TrueType @@ -169,52 +183,50 @@ struct Definition< ::sensor_msgs::Image_ > { static const char* value() { - return "# This message contains an uncompressed image\n\ -# (0, 0) is at top-left corner of image\n\ -#\n\ -\n\ -Header header # Header timestamp should be acquisition time of image\n\ - # Header frame_id should be optical frame of camera\n\ - # origin of frame should be optical center of cameara\n\ - # +x should point to the right in the image\n\ - # +y should point down in the image\n\ - # +z should point into to plane of the image\n\ - # If the frame_id here and the frame_id of the CameraInfo\n\ - # message associated with the image conflict\n\ - # the behavior is undefined\n\ -\n\ -uint32 height # image height, that is, number of rows\n\ -uint32 width # image width, that is, number of columns\n\ -\n\ -# The legal values for encoding are in file src/image_encodings.cpp\n\ -# If you want to standardize a new string format, join\n\ -# ros-users@lists.sourceforge.net and send an email proposing a new encoding.\n\ -\n\ -string encoding # Encoding of pixels -- channel meaning, ordering, size\n\ - # taken from the list of strings in include/sensor_msgs/image_encodings.h\n\ -\n\ -uint8 is_bigendian # is this data bigendian?\n\ -uint32 step # Full row length in bytes\n\ -uint8[] data # actual matrix data, size is (step * rows)\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# This message contains an uncompressed image\n" +"# (0, 0) is at top-left corner of image\n" +"#\n" +"\n" +"Header header # Header timestamp should be acquisition time of image\n" +" # Header frame_id should be optical frame of camera\n" +" # origin of frame should be optical center of camera\n" +" # +x should point to the right in the image\n" +" # +y should point down in the image\n" +" # +z should point into to plane of the image\n" +" # If the frame_id here and the frame_id of the CameraInfo\n" +" # message associated with the image conflict\n" +" # the behavior is undefined\n" +"\n" +"uint32 height # image height, that is, number of rows\n" +"uint32 width # image width, that is, number of columns\n" +"\n" +"# The legal values for encoding are in file src/image_encodings.cpp\n" +"# If you want to standardize a new string format, join\n" +"# ros-users@lists.sourceforge.net and send an email proposing a new encoding.\n" +"\n" +"string encoding # Encoding of pixels -- channel meaning, ordering, size\n" +" # taken from the list of strings in include/sensor_msgs/image_encodings.h\n" +"\n" +"uint8 is_bigendian # is this data bigendian?\n" +"uint32 step # Full row length in bytes\n" +"uint8[] data # actual matrix data, size is (step * rows)\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::Image_&) { return value(); } @@ -265,7 +277,7 @@ struct Printer< ::sensor_msgs::Image_ > s << indent << "width: "; Printer::stream(s, indent + " ", v.width); s << indent << "encoding: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.encoding); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.encoding); s << indent << "is_bigendian: "; Printer::stream(s, indent + " ", v.is_bigendian); s << indent << "step: "; diff --git a/thirdparty/ros/include/sensor_msgs/Imu.h b/thirdparty/ros/include/sensor_msgs/Imu.h index 013043c..b339450 100644 --- a/thirdparty/ros/include/sensor_msgs/Imu.h +++ b/thirdparty/ros/include/sensor_msgs/Imu.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -105,6 +105,26 @@ ros::message_operations::Printer< ::sensor_msgs::Imu_ >::str return s; } + +template +bool operator==(const ::sensor_msgs::Imu_ & lhs, const ::sensor_msgs::Imu_ & rhs) +{ + return lhs.header == rhs.header && + lhs.orientation == rhs.orientation && + lhs.orientation_covariance == rhs.orientation_covariance && + lhs.angular_velocity == rhs.angular_velocity && + lhs.angular_velocity_covariance == rhs.angular_velocity_covariance && + lhs.linear_acceleration == rhs.linear_acceleration && + lhs.linear_acceleration_covariance == rhs.linear_acceleration_covariance; +} + +template +bool operator!=(const ::sensor_msgs::Imu_ & lhs, const ::sensor_msgs::Imu_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -114,23 +134,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::Imu_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::Imu_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::Imu_ > @@ -142,6 +146,16 @@ struct IsMessage< ::sensor_msgs::Imu_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::Imu_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::Imu_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::Imu_ > : TrueType @@ -182,71 +196,69 @@ struct Definition< ::sensor_msgs::Imu_ > { static const char* value() { - return "# This is a message to hold data from an IMU (Inertial Measurement Unit)\n\ -#\n\ -# Accelerations should be in m/s^2 (not in g's), and rotational velocity should be in rad/sec\n\ -#\n\ -# If the covariance of the measurement is known, it should be filled in (if all you know is the \n\ -# variance of each measurement, e.g. from the datasheet, just put those along the diagonal)\n\ -# A covariance matrix of all zeros will be interpreted as \"covariance unknown\", and to use the\n\ -# data a covariance will have to be assumed or gotten from some other source\n\ -#\n\ -# If you have no estimate for one of the data elements (e.g. your IMU doesn't produce an orientation \n\ -# estimate), please set element 0 of the associated covariance matrix to -1\n\ -# If you are interpreting this message, please check for a value of -1 in the first element of each \n\ -# covariance matrix, and disregard the associated estimate.\n\ -\n\ -Header header\n\ -\n\ -geometry_msgs/Quaternion orientation\n\ -float64[9] orientation_covariance # Row major about x, y, z axes\n\ -\n\ -geometry_msgs/Vector3 angular_velocity\n\ -float64[9] angular_velocity_covariance # Row major about x, y, z axes\n\ -\n\ -geometry_msgs/Vector3 linear_acceleration\n\ -float64[9] linear_acceleration_covariance # Row major x, y z \n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return "# This is a message to hold data from an IMU (Inertial Measurement Unit)\n" +"#\n" +"# Accelerations should be in m/s^2 (not in g's), and rotational velocity should be in rad/sec\n" +"#\n" +"# If the covariance of the measurement is known, it should be filled in (if all you know is the \n" +"# variance of each measurement, e.g. from the datasheet, just put those along the diagonal)\n" +"# A covariance matrix of all zeros will be interpreted as \"covariance unknown\", and to use the\n" +"# data a covariance will have to be assumed or gotten from some other source\n" +"#\n" +"# If you have no estimate for one of the data elements (e.g. your IMU doesn't produce an orientation \n" +"# estimate), please set element 0 of the associated covariance matrix to -1\n" +"# If you are interpreting this message, please check for a value of -1 in the first element of each \n" +"# covariance matrix, and disregard the associated estimate.\n" +"\n" +"Header header\n" +"\n" +"geometry_msgs/Quaternion orientation\n" +"float64[9] orientation_covariance # Row major about x, y, z axes\n" +"\n" +"geometry_msgs/Vector3 angular_velocity\n" +"float64[9] angular_velocity_covariance # Row major about x, y, z axes\n" +"\n" +"geometry_msgs/Vector3 linear_acceleration\n" +"float64[9] linear_acceleration_covariance # Row major x, y z \n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::sensor_msgs::Imu_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/JointState.h b/thirdparty/ros/include/sensor_msgs/JointState.h index 5aef117..b457a9e 100644 --- a/thirdparty/ros/include/sensor_msgs/JointState.h +++ b/thirdparty/ros/include/sensor_msgs/JointState.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -45,16 +45,16 @@ struct JointState_ typedef ::std_msgs::Header_ _header_type; _header_type header; - typedef std::vector, typename ContainerAllocator::template rebind::other > , typename ContainerAllocator::template rebind, typename ContainerAllocator::template rebind::other > >::other > _name_type; + typedef std::vector, typename std::allocator_traits::template rebind_alloc>, typename std::allocator_traits::template rebind_alloc, typename std::allocator_traits::template rebind_alloc>>> _name_type; _name_type name; - typedef std::vector::other > _position_type; + typedef std::vector::template rebind_alloc> _position_type; _position_type position; - typedef std::vector::other > _velocity_type; + typedef std::vector::template rebind_alloc> _velocity_type; _velocity_type velocity; - typedef std::vector::other > _effort_type; + typedef std::vector::template rebind_alloc> _effort_type; _effort_type effort; @@ -82,6 +82,24 @@ ros::message_operations::Printer< ::sensor_msgs::JointState_ return s; } + +template +bool operator==(const ::sensor_msgs::JointState_ & lhs, const ::sensor_msgs::JointState_ & rhs) +{ + return lhs.header == rhs.header && + lhs.name == rhs.name && + lhs.position == rhs.position && + lhs.velocity == rhs.velocity && + lhs.effort == rhs.effort; +} + +template +bool operator!=(const ::sensor_msgs::JointState_ & lhs, const ::sensor_msgs::JointState_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -91,23 +109,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::JointState_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::JointState_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::JointState_ > @@ -119,6 +121,16 @@ struct IsMessage< ::sensor_msgs::JointState_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::JointState_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::JointState_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::JointState_ > : TrueType @@ -159,51 +171,49 @@ struct Definition< ::sensor_msgs::JointState_ > { static const char* value() { - return "# This is a message that holds data to describe the state of a set of torque controlled joints. \n\ -#\n\ -# The state of each joint (revolute or prismatic) is defined by:\n\ -# * the position of the joint (rad or m),\n\ -# * the velocity of the joint (rad/s or m/s) and \n\ -# * the effort that is applied in the joint (Nm or N).\n\ -#\n\ -# Each joint is uniquely identified by its name\n\ -# The header specifies the time at which the joint states were recorded. All the joint states\n\ -# in one message have to be recorded at the same time.\n\ -#\n\ -# This message consists of a multiple arrays, one for each part of the joint state. \n\ -# The goal is to make each of the fields optional. When e.g. your joints have no\n\ -# effort associated with them, you can leave the effort array empty. \n\ -#\n\ -# All arrays in this message should have the same size, or be empty.\n\ -# This is the only way to uniquely associate the joint name with the correct\n\ -# states.\n\ -\n\ -\n\ -Header header\n\ -\n\ -string[] name\n\ -float64[] position\n\ -float64[] velocity\n\ -float64[] effort\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# This is a message that holds data to describe the state of a set of torque controlled joints. \n" +"#\n" +"# The state of each joint (revolute or prismatic) is defined by:\n" +"# * the position of the joint (rad or m),\n" +"# * the velocity of the joint (rad/s or m/s) and \n" +"# * the effort that is applied in the joint (Nm or N).\n" +"#\n" +"# Each joint is uniquely identified by its name\n" +"# The header specifies the time at which the joint states were recorded. All the joint states\n" +"# in one message have to be recorded at the same time.\n" +"#\n" +"# This message consists of a multiple arrays, one for each part of the joint state. \n" +"# The goal is to make each of the fields optional. When e.g. your joints have no\n" +"# effort associated with them, you can leave the effort array empty. \n" +"#\n" +"# All arrays in this message should have the same size, or be empty.\n" +"# This is the only way to uniquely associate the joint name with the correct\n" +"# states.\n" +"\n" +"\n" +"Header header\n" +"\n" +"string[] name\n" +"float64[] position\n" +"float64[] velocity\n" +"float64[] effort\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::JointState_&) { return value(); } @@ -251,7 +261,7 @@ struct Printer< ::sensor_msgs::JointState_ > for (size_t i = 0; i < v.name.size(); ++i) { s << indent << " name[" << i << "]: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.name[i]); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.name[i]); } s << indent << "position[]" << std::endl; for (size_t i = 0; i < v.position.size(); ++i) diff --git a/thirdparty/ros/include/sensor_msgs/Joy.h b/thirdparty/ros/include/sensor_msgs/Joy.h index 78e2754..c9f53b0 100644 --- a/thirdparty/ros/include/sensor_msgs/Joy.h +++ b/thirdparty/ros/include/sensor_msgs/Joy.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -41,10 +41,10 @@ struct Joy_ typedef ::std_msgs::Header_ _header_type; _header_type header; - typedef std::vector::other > _axes_type; + typedef std::vector::template rebind_alloc> _axes_type; _axes_type axes; - typedef std::vector::other > _buttons_type; + typedef std::vector::template rebind_alloc> _buttons_type; _buttons_type buttons; @@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::Joy_ >::str return s; } + +template +bool operator==(const ::sensor_msgs::Joy_ & lhs, const ::sensor_msgs::Joy_ & rhs) +{ + return lhs.header == rhs.header && + lhs.axes == rhs.axes && + lhs.buttons == rhs.buttons; +} + +template +bool operator!=(const ::sensor_msgs::Joy_ & lhs, const ::sensor_msgs::Joy_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -81,23 +97,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::Joy_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::Joy_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::Joy_ > @@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::Joy_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::Joy_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::Joy_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::Joy_ > : TrueType @@ -149,29 +159,27 @@ struct Definition< ::sensor_msgs::Joy_ > { static const char* value() { - return "# Reports the state of a joysticks axes and buttons.\n\ -Header header # timestamp in the header is the time the data is received from the joystick\n\ -float32[] axes # the axes measurements from a joystick\n\ -int32[] buttons # the buttons measurements from a joystick \n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# Reports the state of a joysticks axes and buttons.\n" +"Header header # timestamp in the header is the time the data is received from the joystick\n" +"float32[] axes # the axes measurements from a joystick\n" +"int32[] buttons # the buttons measurements from a joystick \n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::Joy_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/JoyFeedback.h b/thirdparty/ros/include/sensor_msgs/JoyFeedback.h index fa5df07..336e6aa 100644 --- a/thirdparty/ros/include/sensor_msgs/JoyFeedback.h +++ b/thirdparty/ros/include/sensor_msgs/JoyFeedback.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -48,6 +48,17 @@ struct JoyFeedback_ +// reducing the odds to have name collisions with Windows.h +#if defined(_WIN32) && defined(TYPE_LED) + #undef TYPE_LED +#endif +#if defined(_WIN32) && defined(TYPE_RUMBLE) + #undef TYPE_RUMBLE +#endif +#if defined(_WIN32) && defined(TYPE_BUZZER) + #undef TYPE_BUZZER +#endif + enum { TYPE_LED = 0u, TYPE_RUMBLE = 1u, @@ -82,6 +93,22 @@ ros::message_operations::Printer< ::sensor_msgs::JoyFeedback_ +bool operator==(const ::sensor_msgs::JoyFeedback_ & lhs, const ::sensor_msgs::JoyFeedback_ & rhs) +{ + return lhs.type == rhs.type && + lhs.id == rhs.id && + lhs.intensity == rhs.intensity; +} + +template +bool operator!=(const ::sensor_msgs::JoyFeedback_ & lhs, const ::sensor_msgs::JoyFeedback_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -91,23 +118,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::JoyFeedback_ > - : TrueType - { }; - -template -struct IsFixedSize< ::sensor_msgs::JoyFeedback_ const> - : TrueType - { }; template struct IsMessage< ::sensor_msgs::JoyFeedback_ > @@ -119,6 +130,16 @@ struct IsMessage< ::sensor_msgs::JoyFeedback_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::JoyFeedback_ > + : TrueType + { }; + +template +struct IsFixedSize< ::sensor_msgs::JoyFeedback_ const> + : TrueType + { }; + template struct HasHeader< ::sensor_msgs::JoyFeedback_ > : FalseType @@ -159,22 +180,22 @@ struct Definition< ::sensor_msgs::JoyFeedback_ > { static const char* value() { - return "# Declare of the type of feedback\n\ -uint8 TYPE_LED = 0\n\ -uint8 TYPE_RUMBLE = 1\n\ -uint8 TYPE_BUZZER = 2\n\ -\n\ -uint8 type\n\ -\n\ -# This will hold an id number for each type of each feedback.\n\ -# Example, the first led would be id=0, the second would be id=1\n\ -uint8 id\n\ -\n\ -# Intensity of the feedback, from 0.0 to 1.0, inclusive. If device is\n\ -# actually binary, driver should treat 0<=x<0.5 as off, 0.5<=x<=1 as on.\n\ -float32 intensity\n\ -\n\ -"; + return "# Declare of the type of feedback\n" +"uint8 TYPE_LED = 0\n" +"uint8 TYPE_RUMBLE = 1\n" +"uint8 TYPE_BUZZER = 2\n" +"\n" +"uint8 type\n" +"\n" +"# This will hold an id number for each type of each feedback.\n" +"# Example, the first led would be id=0, the second would be id=1\n" +"uint8 id\n" +"\n" +"# Intensity of the feedback, from 0.0 to 1.0, inclusive. If device is\n" +"# actually binary, driver should treat 0<=x<0.5 as off, 0.5<=x<=1 as on.\n" +"float32 intensity\n" +"\n" +; } static const char* value(const ::sensor_msgs::JoyFeedback_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/JoyFeedbackArray.h b/thirdparty/ros/include/sensor_msgs/JoyFeedbackArray.h index 5debaf4..361f072 100644 --- a/thirdparty/ros/include/sensor_msgs/JoyFeedbackArray.h +++ b/thirdparty/ros/include/sensor_msgs/JoyFeedbackArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -34,7 +34,7 @@ struct JoyFeedbackArray_ - typedef std::vector< ::sensor_msgs::JoyFeedback_ , typename ContainerAllocator::template rebind< ::sensor_msgs::JoyFeedback_ >::other > _array_type; + typedef std::vector< ::sensor_msgs::JoyFeedback_ , typename std::allocator_traits::template rebind_alloc< ::sensor_msgs::JoyFeedback_ >> _array_type; _array_type array; @@ -62,6 +62,20 @@ ros::message_operations::Printer< ::sensor_msgs::JoyFeedbackArray_ +bool operator==(const ::sensor_msgs::JoyFeedbackArray_ & lhs, const ::sensor_msgs::JoyFeedbackArray_ & rhs) +{ + return lhs.array == rhs.array; +} + +template +bool operator!=(const ::sensor_msgs::JoyFeedbackArray_ & lhs, const ::sensor_msgs::JoyFeedbackArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -71,23 +85,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::JoyFeedbackArray_ > @@ -99,6 +97,16 @@ struct IsMessage< ::sensor_msgs::JoyFeedbackArray_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::JoyFeedbackArray_ > : FalseType @@ -139,26 +147,26 @@ struct Definition< ::sensor_msgs::JoyFeedbackArray_ > { static const char* value() { - return "# This message publishes values for multiple feedback at once. \n\ -JoyFeedback[] array\n\ -================================================================================\n\ -MSG: sensor_msgs/JoyFeedback\n\ -# Declare of the type of feedback\n\ -uint8 TYPE_LED = 0\n\ -uint8 TYPE_RUMBLE = 1\n\ -uint8 TYPE_BUZZER = 2\n\ -\n\ -uint8 type\n\ -\n\ -# This will hold an id number for each type of each feedback.\n\ -# Example, the first led would be id=0, the second would be id=1\n\ -uint8 id\n\ -\n\ -# Intensity of the feedback, from 0.0 to 1.0, inclusive. If device is\n\ -# actually binary, driver should treat 0<=x<0.5 as off, 0.5<=x<=1 as on.\n\ -float32 intensity\n\ -\n\ -"; + return "# This message publishes values for multiple feedback at once. \n" +"JoyFeedback[] array\n" +"================================================================================\n" +"MSG: sensor_msgs/JoyFeedback\n" +"# Declare of the type of feedback\n" +"uint8 TYPE_LED = 0\n" +"uint8 TYPE_RUMBLE = 1\n" +"uint8 TYPE_BUZZER = 2\n" +"\n" +"uint8 type\n" +"\n" +"# This will hold an id number for each type of each feedback.\n" +"# Example, the first led would be id=0, the second would be id=1\n" +"uint8 id\n" +"\n" +"# Intensity of the feedback, from 0.0 to 1.0, inclusive. If device is\n" +"# actually binary, driver should treat 0<=x<0.5 as off, 0.5<=x<=1 as on.\n" +"float32 intensity\n" +"\n" +; } static const char* value(const ::sensor_msgs::JoyFeedbackArray_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/LaserEcho.h b/thirdparty/ros/include/sensor_msgs/LaserEcho.h index fb5dfdb..900b6e7 100644 --- a/thirdparty/ros/include/sensor_msgs/LaserEcho.h +++ b/thirdparty/ros/include/sensor_msgs/LaserEcho.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -33,7 +33,7 @@ struct LaserEcho_ - typedef std::vector::other > _echoes_type; + typedef std::vector::template rebind_alloc> _echoes_type; _echoes_type echoes; @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::sensor_msgs::LaserEcho_ return s; } + +template +bool operator==(const ::sensor_msgs::LaserEcho_ & lhs, const ::sensor_msgs::LaserEcho_ & rhs) +{ + return lhs.echoes == rhs.echoes; +} + +template +bool operator!=(const ::sensor_msgs::LaserEcho_ & lhs, const ::sensor_msgs::LaserEcho_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::LaserEcho_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::LaserEcho_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::LaserEcho_ > @@ -98,6 +96,16 @@ struct IsMessage< ::sensor_msgs::LaserEcho_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::LaserEcho_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::LaserEcho_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::LaserEcho_ > : FalseType @@ -138,12 +146,12 @@ struct Definition< ::sensor_msgs::LaserEcho_ > { static const char* value() { - return "# This message is a submessage of MultiEchoLaserScan and is not intended\n\ -# to be used separately.\n\ -\n\ -float32[] echoes # Multiple values of ranges or intensities.\n\ - # Each array represents data from the same angle increment.\n\ -"; + return "# This message is a submessage of MultiEchoLaserScan and is not intended\n" +"# to be used separately.\n" +"\n" +"float32[] echoes # Multiple values of ranges or intensities.\n" +" # Each array represents data from the same angle increment.\n" +; } static const char* value(const ::sensor_msgs::LaserEcho_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/LaserScan.h b/thirdparty/ros/include/sensor_msgs/LaserScan.h index ca9dd5d..1bd2336 100644 --- a/thirdparty/ros/include/sensor_msgs/LaserScan.h +++ b/thirdparty/ros/include/sensor_msgs/LaserScan.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -76,10 +76,10 @@ struct LaserScan_ typedef float _range_max_type; _range_max_type range_max; - typedef std::vector::other > _ranges_type; + typedef std::vector::template rebind_alloc> _ranges_type; _ranges_type ranges; - typedef std::vector::other > _intensities_type; + typedef std::vector::template rebind_alloc> _intensities_type; _intensities_type intensities; @@ -107,6 +107,29 @@ ros::message_operations::Printer< ::sensor_msgs::LaserScan_ return s; } + +template +bool operator==(const ::sensor_msgs::LaserScan_ & lhs, const ::sensor_msgs::LaserScan_ & rhs) +{ + return lhs.header == rhs.header && + lhs.angle_min == rhs.angle_min && + lhs.angle_max == rhs.angle_max && + lhs.angle_increment == rhs.angle_increment && + lhs.time_increment == rhs.time_increment && + lhs.scan_time == rhs.scan_time && + lhs.range_min == rhs.range_min && + lhs.range_max == rhs.range_max && + lhs.ranges == rhs.ranges && + lhs.intensities == rhs.intensities; +} + +template +bool operator!=(const ::sensor_msgs::LaserScan_ & lhs, const ::sensor_msgs::LaserScan_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -116,23 +139,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::LaserScan_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::LaserScan_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::LaserScan_ > @@ -144,6 +151,16 @@ struct IsMessage< ::sensor_msgs::LaserScan_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::LaserScan_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::LaserScan_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::LaserScan_ > : TrueType @@ -184,54 +201,52 @@ struct Definition< ::sensor_msgs::LaserScan_ > { static const char* value() { - return "# Single scan from a planar laser range-finder\n\ -#\n\ -# If you have another ranging device with different behavior (e.g. a sonar\n\ -# array), please find or create a different message, since applications\n\ -# will make fairly laser-specific assumptions about this data\n\ -\n\ -Header header # timestamp in the header is the acquisition time of \n\ - # the first ray in the scan.\n\ - #\n\ - # in frame frame_id, angles are measured around \n\ - # the positive Z axis (counterclockwise, if Z is up)\n\ - # with zero angle being forward along the x axis\n\ - \n\ -float32 angle_min # start angle of the scan [rad]\n\ -float32 angle_max # end angle of the scan [rad]\n\ -float32 angle_increment # angular distance between measurements [rad]\n\ -\n\ -float32 time_increment # time between measurements [seconds] - if your scanner\n\ - # is moving, this will be used in interpolating position\n\ - # of 3d points\n\ -float32 scan_time # time between scans [seconds]\n\ -\n\ -float32 range_min # minimum range value [m]\n\ -float32 range_max # maximum range value [m]\n\ -\n\ -float32[] ranges # range data [m] (Note: values < range_min or > range_max should be discarded)\n\ -float32[] intensities # intensity data [device-specific units]. If your\n\ - # device does not provide intensities, please leave\n\ - # the array empty.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# Single scan from a planar laser range-finder\n" +"#\n" +"# If you have another ranging device with different behavior (e.g. a sonar\n" +"# array), please find or create a different message, since applications\n" +"# will make fairly laser-specific assumptions about this data\n" +"\n" +"Header header # timestamp in the header is the acquisition time of \n" +" # the first ray in the scan.\n" +" #\n" +" # in frame frame_id, angles are measured around \n" +" # the positive Z axis (counterclockwise, if Z is up)\n" +" # with zero angle being forward along the x axis\n" +" \n" +"float32 angle_min # start angle of the scan [rad]\n" +"float32 angle_max # end angle of the scan [rad]\n" +"float32 angle_increment # angular distance between measurements [rad]\n" +"\n" +"float32 time_increment # time between measurements [seconds] - if your scanner\n" +" # is moving, this will be used in interpolating position\n" +" # of 3d points\n" +"float32 scan_time # time between scans [seconds]\n" +"\n" +"float32 range_min # minimum range value [m]\n" +"float32 range_max # maximum range value [m]\n" +"\n" +"float32[] ranges # range data [m] (Note: values < range_min or > range_max should be discarded)\n" +"float32[] intensities # intensity data [device-specific units]. If your\n" +" # device does not provide intensities, please leave\n" +" # the array empty.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::LaserScan_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/MagneticField.h b/thirdparty/ros/include/sensor_msgs/MagneticField.h index a1b1106..f6ec886 100644 --- a/thirdparty/ros/include/sensor_msgs/MagneticField.h +++ b/thirdparty/ros/include/sensor_msgs/MagneticField.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -75,6 +75,22 @@ ros::message_operations::Printer< ::sensor_msgs::MagneticField_ +bool operator==(const ::sensor_msgs::MagneticField_ & lhs, const ::sensor_msgs::MagneticField_ & rhs) +{ + return lhs.header == rhs.header && + lhs.magnetic_field == rhs.magnetic_field && + lhs.magnetic_field_covariance == rhs.magnetic_field_covariance; +} + +template +bool operator!=(const ::sensor_msgs::MagneticField_ & lhs, const ::sensor_msgs::MagneticField_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -84,23 +100,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::MagneticField_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::MagneticField_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::MagneticField_ > @@ -112,6 +112,16 @@ struct IsMessage< ::sensor_msgs::MagneticField_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::MagneticField_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::MagneticField_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::MagneticField_ > : TrueType @@ -152,59 +162,57 @@ struct Definition< ::sensor_msgs::MagneticField_ > { static const char* value() { - return " # Measurement of the Magnetic Field vector at a specific location.\n\ -\n\ - # If the covariance of the measurement is known, it should be filled in\n\ - # (if all you know is the variance of each measurement, e.g. from the datasheet,\n\ - #just put those along the diagonal)\n\ - # A covariance matrix of all zeros will be interpreted as \"covariance unknown\",\n\ - # and to use the data a covariance will have to be assumed or gotten from some\n\ - # other source\n\ -\n\ -\n\ - Header header # timestamp is the time the\n\ - # field was measured\n\ - # frame_id is the location and orientation\n\ - # of the field measurement\n\ -\n\ - geometry_msgs/Vector3 magnetic_field # x, y, and z components of the\n\ - # field vector in Tesla\n\ - # If your sensor does not output 3 axes,\n\ - # put NaNs in the components not reported.\n\ -\n\ - float64[9] magnetic_field_covariance # Row major about x, y, z axes\n\ - # 0 is interpreted as variance unknown\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -"; + return " # Measurement of the Magnetic Field vector at a specific location.\n" +"\n" +" # If the covariance of the measurement is known, it should be filled in\n" +" # (if all you know is the variance of each measurement, e.g. from the datasheet,\n" +" #just put those along the diagonal)\n" +" # A covariance matrix of all zeros will be interpreted as \"covariance unknown\",\n" +" # and to use the data a covariance will have to be assumed or gotten from some\n" +" # other source\n" +"\n" +"\n" +" Header header # timestamp is the time the\n" +" # field was measured\n" +" # frame_id is the location and orientation\n" +" # of the field measurement\n" +"\n" +" geometry_msgs/Vector3 magnetic_field # x, y, and z components of the\n" +" # field vector in Tesla\n" +" # If your sensor does not output 3 axes,\n" +" # put NaNs in the components not reported.\n" +"\n" +" float64[9] magnetic_field_covariance # Row major about x, y, z axes\n" +" # 0 is interpreted as variance unknown\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +; } static const char* value(const ::sensor_msgs::MagneticField_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/MultiDOFJointState.h b/thirdparty/ros/include/sensor_msgs/MultiDOFJointState.h index 7bec3f7..2309f1c 100644 --- a/thirdparty/ros/include/sensor_msgs/MultiDOFJointState.h +++ b/thirdparty/ros/include/sensor_msgs/MultiDOFJointState.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -48,16 +48,16 @@ struct MultiDOFJointState_ typedef ::std_msgs::Header_ _header_type; _header_type header; - typedef std::vector, typename ContainerAllocator::template rebind::other > , typename ContainerAllocator::template rebind, typename ContainerAllocator::template rebind::other > >::other > _joint_names_type; + typedef std::vector, typename std::allocator_traits::template rebind_alloc>, typename std::allocator_traits::template rebind_alloc, typename std::allocator_traits::template rebind_alloc>>> _joint_names_type; _joint_names_type joint_names; - typedef std::vector< ::geometry_msgs::Transform_ , typename ContainerAllocator::template rebind< ::geometry_msgs::Transform_ >::other > _transforms_type; + typedef std::vector< ::geometry_msgs::Transform_ , typename std::allocator_traits::template rebind_alloc< ::geometry_msgs::Transform_ >> _transforms_type; _transforms_type transforms; - typedef std::vector< ::geometry_msgs::Twist_ , typename ContainerAllocator::template rebind< ::geometry_msgs::Twist_ >::other > _twist_type; + typedef std::vector< ::geometry_msgs::Twist_ , typename std::allocator_traits::template rebind_alloc< ::geometry_msgs::Twist_ >> _twist_type; _twist_type twist; - typedef std::vector< ::geometry_msgs::Wrench_ , typename ContainerAllocator::template rebind< ::geometry_msgs::Wrench_ >::other > _wrench_type; + typedef std::vector< ::geometry_msgs::Wrench_ , typename std::allocator_traits::template rebind_alloc< ::geometry_msgs::Wrench_ >> _wrench_type; _wrench_type wrench; @@ -85,6 +85,24 @@ ros::message_operations::Printer< ::sensor_msgs::MultiDOFJointState_ +bool operator==(const ::sensor_msgs::MultiDOFJointState_ & lhs, const ::sensor_msgs::MultiDOFJointState_ & rhs) +{ + return lhs.header == rhs.header && + lhs.joint_names == rhs.joint_names && + lhs.transforms == rhs.transforms && + lhs.twist == rhs.twist && + lhs.wrench == rhs.wrench; +} + +template +bool operator!=(const ::sensor_msgs::MultiDOFJointState_ & lhs, const ::sensor_msgs::MultiDOFJointState_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -94,23 +112,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::MultiDOFJointState_ > @@ -122,6 +124,16 @@ struct IsMessage< ::sensor_msgs::MultiDOFJointState_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::MultiDOFJointState_ > : TrueType @@ -162,92 +174,90 @@ struct Definition< ::sensor_msgs::MultiDOFJointState_ > { static const char* value() { - return "# Representation of state for joints with multiple degrees of freedom, \n\ -# following the structure of JointState.\n\ -#\n\ -# It is assumed that a joint in a system corresponds to a transform that gets applied \n\ -# along the kinematic chain. For example, a planar joint (as in URDF) is 3DOF (x, y, yaw)\n\ -# and those 3DOF can be expressed as a transformation matrix, and that transformation\n\ -# matrix can be converted back to (x, y, yaw)\n\ -#\n\ -# Each joint is uniquely identified by its name\n\ -# The header specifies the time at which the joint states were recorded. All the joint states\n\ -# in one message have to be recorded at the same time.\n\ -#\n\ -# This message consists of a multiple arrays, one for each part of the joint state. \n\ -# The goal is to make each of the fields optional. When e.g. your joints have no\n\ -# wrench associated with them, you can leave the wrench array empty. \n\ -#\n\ -# All arrays in this message should have the same size, or be empty.\n\ -# This is the only way to uniquely associate the joint name with the correct\n\ -# states.\n\ -\n\ -Header header\n\ -\n\ -string[] joint_names\n\ -geometry_msgs/Transform[] transforms\n\ -geometry_msgs/Twist[] twist\n\ -geometry_msgs/Wrench[] wrench\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Transform\n\ -# This represents the transform between two coordinate frames in free space.\n\ -\n\ -Vector3 translation\n\ -Quaternion rotation\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Vector3\n\ -# This represents a vector in free space. \n\ -# It is only meant to represent a direction. Therefore, it does not\n\ -# make sense to apply a translation to it (e.g., when applying a \n\ -# generic rigid transformation to a Vector3, tf2 will only apply the\n\ -# rotation). If you want your data to be translatable too, use the\n\ -# geometry_msgs/Point message instead.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -================================================================================\n\ -MSG: geometry_msgs/Quaternion\n\ -# This represents an orientation in free space in quaternion form.\n\ -\n\ -float64 x\n\ -float64 y\n\ -float64 z\n\ -float64 w\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Twist\n\ -# This expresses velocity in free space broken into its linear and angular parts.\n\ -Vector3 linear\n\ -Vector3 angular\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Wrench\n\ -# This represents force in free space, separated into\n\ -# its linear and angular parts.\n\ -Vector3 force\n\ -Vector3 torque\n\ -"; + return "# Representation of state for joints with multiple degrees of freedom, \n" +"# following the structure of JointState.\n" +"#\n" +"# It is assumed that a joint in a system corresponds to a transform that gets applied \n" +"# along the kinematic chain. For example, a planar joint (as in URDF) is 3DOF (x, y, yaw)\n" +"# and those 3DOF can be expressed as a transformation matrix, and that transformation\n" +"# matrix can be converted back to (x, y, yaw)\n" +"#\n" +"# Each joint is uniquely identified by its name\n" +"# The header specifies the time at which the joint states were recorded. All the joint states\n" +"# in one message have to be recorded at the same time.\n" +"#\n" +"# This message consists of a multiple arrays, one for each part of the joint state. \n" +"# The goal is to make each of the fields optional. When e.g. your joints have no\n" +"# wrench associated with them, you can leave the wrench array empty. \n" +"#\n" +"# All arrays in this message should have the same size, or be empty.\n" +"# This is the only way to uniquely associate the joint name with the correct\n" +"# states.\n" +"\n" +"Header header\n" +"\n" +"string[] joint_names\n" +"geometry_msgs/Transform[] transforms\n" +"geometry_msgs/Twist[] twist\n" +"geometry_msgs/Wrench[] wrench\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Transform\n" +"# This represents the transform between two coordinate frames in free space.\n" +"\n" +"Vector3 translation\n" +"Quaternion rotation\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Vector3\n" +"# This represents a vector in free space. \n" +"# It is only meant to represent a direction. Therefore, it does not\n" +"# make sense to apply a translation to it (e.g., when applying a \n" +"# generic rigid transformation to a Vector3, tf2 will only apply the\n" +"# rotation). If you want your data to be translatable too, use the\n" +"# geometry_msgs/Point message instead.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"================================================================================\n" +"MSG: geometry_msgs/Quaternion\n" +"# This represents an orientation in free space in quaternion form.\n" +"\n" +"float64 x\n" +"float64 y\n" +"float64 z\n" +"float64 w\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Twist\n" +"# This expresses velocity in free space broken into its linear and angular parts.\n" +"Vector3 linear\n" +"Vector3 angular\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Wrench\n" +"# This represents force in free space, separated into\n" +"# its linear and angular parts.\n" +"Vector3 force\n" +"Vector3 torque\n" +; } static const char* value(const ::sensor_msgs::MultiDOFJointState_&) { return value(); } @@ -295,7 +305,7 @@ struct Printer< ::sensor_msgs::MultiDOFJointState_ > for (size_t i = 0; i < v.joint_names.size(); ++i) { s << indent << " joint_names[" << i << "]: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.joint_names[i]); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.joint_names[i]); } s << indent << "transforms[]" << std::endl; for (size_t i = 0; i < v.transforms.size(); ++i) diff --git a/thirdparty/ros/include/sensor_msgs/MultiEchoLaserScan.h b/thirdparty/ros/include/sensor_msgs/MultiEchoLaserScan.h index 4e03934..e4fab2f 100644 --- a/thirdparty/ros/include/sensor_msgs/MultiEchoLaserScan.h +++ b/thirdparty/ros/include/sensor_msgs/MultiEchoLaserScan.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -78,10 +78,10 @@ struct MultiEchoLaserScan_ typedef float _range_max_type; _range_max_type range_max; - typedef std::vector< ::sensor_msgs::LaserEcho_ , typename ContainerAllocator::template rebind< ::sensor_msgs::LaserEcho_ >::other > _ranges_type; + typedef std::vector< ::sensor_msgs::LaserEcho_ , typename std::allocator_traits::template rebind_alloc< ::sensor_msgs::LaserEcho_ >> _ranges_type; _ranges_type ranges; - typedef std::vector< ::sensor_msgs::LaserEcho_ , typename ContainerAllocator::template rebind< ::sensor_msgs::LaserEcho_ >::other > _intensities_type; + typedef std::vector< ::sensor_msgs::LaserEcho_ , typename std::allocator_traits::template rebind_alloc< ::sensor_msgs::LaserEcho_ >> _intensities_type; _intensities_type intensities; @@ -109,6 +109,29 @@ ros::message_operations::Printer< ::sensor_msgs::MultiEchoLaserScan_ +bool operator==(const ::sensor_msgs::MultiEchoLaserScan_ & lhs, const ::sensor_msgs::MultiEchoLaserScan_ & rhs) +{ + return lhs.header == rhs.header && + lhs.angle_min == rhs.angle_min && + lhs.angle_max == rhs.angle_max && + lhs.angle_increment == rhs.angle_increment && + lhs.time_increment == rhs.time_increment && + lhs.scan_time == rhs.scan_time && + lhs.range_min == rhs.range_min && + lhs.range_max == rhs.range_max && + lhs.ranges == rhs.ranges && + lhs.intensities == rhs.intensities; +} + +template +bool operator!=(const ::sensor_msgs::MultiEchoLaserScan_ & lhs, const ::sensor_msgs::MultiEchoLaserScan_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -118,23 +141,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::MultiEchoLaserScan_ > @@ -146,6 +153,16 @@ struct IsMessage< ::sensor_msgs::MultiEchoLaserScan_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::MultiEchoLaserScan_ > : TrueType @@ -186,63 +203,61 @@ struct Definition< ::sensor_msgs::MultiEchoLaserScan_ > { static const char* value() { - return "# Single scan from a multi-echo planar laser range-finder\n\ -#\n\ -# If you have another ranging device with different behavior (e.g. a sonar\n\ -# array), please find or create a different message, since applications\n\ -# will make fairly laser-specific assumptions about this data\n\ -\n\ -Header header # timestamp in the header is the acquisition time of \n\ - # the first ray in the scan.\n\ - #\n\ - # in frame frame_id, angles are measured around \n\ - # the positive Z axis (counterclockwise, if Z is up)\n\ - # with zero angle being forward along the x axis\n\ - \n\ -float32 angle_min # start angle of the scan [rad]\n\ -float32 angle_max # end angle of the scan [rad]\n\ -float32 angle_increment # angular distance between measurements [rad]\n\ -\n\ -float32 time_increment # time between measurements [seconds] - if your scanner\n\ - # is moving, this will be used in interpolating position\n\ - # of 3d points\n\ -float32 scan_time # time between scans [seconds]\n\ -\n\ -float32 range_min # minimum range value [m]\n\ -float32 range_max # maximum range value [m]\n\ -\n\ -LaserEcho[] ranges # range data [m] (Note: NaNs, values < range_min or > range_max should be discarded)\n\ - # +Inf measurements are out of range\n\ - # -Inf measurements are too close to determine exact distance.\n\ -LaserEcho[] intensities # intensity data [device-specific units]. If your\n\ - # device does not provide intensities, please leave\n\ - # the array empty.\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: sensor_msgs/LaserEcho\n\ -# This message is a submessage of MultiEchoLaserScan and is not intended\n\ -# to be used separately.\n\ -\n\ -float32[] echoes # Multiple values of ranges or intensities.\n\ - # Each array represents data from the same angle increment.\n\ -"; + return "# Single scan from a multi-echo planar laser range-finder\n" +"#\n" +"# If you have another ranging device with different behavior (e.g. a sonar\n" +"# array), please find or create a different message, since applications\n" +"# will make fairly laser-specific assumptions about this data\n" +"\n" +"Header header # timestamp in the header is the acquisition time of \n" +" # the first ray in the scan.\n" +" #\n" +" # in frame frame_id, angles are measured around \n" +" # the positive Z axis (counterclockwise, if Z is up)\n" +" # with zero angle being forward along the x axis\n" +" \n" +"float32 angle_min # start angle of the scan [rad]\n" +"float32 angle_max # end angle of the scan [rad]\n" +"float32 angle_increment # angular distance between measurements [rad]\n" +"\n" +"float32 time_increment # time between measurements [seconds] - if your scanner\n" +" # is moving, this will be used in interpolating position\n" +" # of 3d points\n" +"float32 scan_time # time between scans [seconds]\n" +"\n" +"float32 range_min # minimum range value [m]\n" +"float32 range_max # maximum range value [m]\n" +"\n" +"LaserEcho[] ranges # range data [m] (Note: NaNs, values < range_min or > range_max should be discarded)\n" +" # +Inf measurements are out of range\n" +" # -Inf measurements are too close to determine exact distance.\n" +"LaserEcho[] intensities # intensity data [device-specific units]. If your\n" +" # device does not provide intensities, please leave\n" +" # the array empty.\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: sensor_msgs/LaserEcho\n" +"# This message is a submessage of MultiEchoLaserScan and is not intended\n" +"# to be used separately.\n" +"\n" +"float32[] echoes # Multiple values of ranges or intensities.\n" +" # Each array represents data from the same angle increment.\n" +; } static const char* value(const ::sensor_msgs::MultiEchoLaserScan_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/NavSatFix.h b/thirdparty/ros/include/sensor_msgs/NavSatFix.h index 019c09f..92f1142 100644 --- a/thirdparty/ros/include/sensor_msgs/NavSatFix.h +++ b/thirdparty/ros/include/sensor_msgs/NavSatFix.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -72,6 +72,20 @@ struct NavSatFix_ +// reducing the odds to have name collisions with Windows.h +#if defined(_WIN32) && defined(COVARIANCE_TYPE_UNKNOWN) + #undef COVARIANCE_TYPE_UNKNOWN +#endif +#if defined(_WIN32) && defined(COVARIANCE_TYPE_APPROXIMATED) + #undef COVARIANCE_TYPE_APPROXIMATED +#endif +#if defined(_WIN32) && defined(COVARIANCE_TYPE_DIAGONAL_KNOWN) + #undef COVARIANCE_TYPE_DIAGONAL_KNOWN +#endif +#if defined(_WIN32) && defined(COVARIANCE_TYPE_KNOWN) + #undef COVARIANCE_TYPE_KNOWN +#endif + enum { COVARIANCE_TYPE_UNKNOWN = 0u, COVARIANCE_TYPE_APPROXIMATED = 1u, @@ -109,6 +123,26 @@ ros::message_operations::Printer< ::sensor_msgs::NavSatFix_ return s; } + +template +bool operator==(const ::sensor_msgs::NavSatFix_ & lhs, const ::sensor_msgs::NavSatFix_ & rhs) +{ + return lhs.header == rhs.header && + lhs.status == rhs.status && + lhs.latitude == rhs.latitude && + lhs.longitude == rhs.longitude && + lhs.altitude == rhs.altitude && + lhs.position_covariance == rhs.position_covariance && + lhs.position_covariance_type == rhs.position_covariance_type; +} + +template +bool operator!=(const ::sensor_msgs::NavSatFix_ & lhs, const ::sensor_msgs::NavSatFix_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -118,23 +152,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::NavSatFix_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::NavSatFix_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::NavSatFix_ > @@ -146,6 +164,16 @@ struct IsMessage< ::sensor_msgs::NavSatFix_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::NavSatFix_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::NavSatFix_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::NavSatFix_ > : TrueType @@ -186,96 +214,94 @@ struct Definition< ::sensor_msgs::NavSatFix_ > { static const char* value() { - return "# Navigation Satellite fix for any Global Navigation Satellite System\n\ -#\n\ -# Specified using the WGS 84 reference ellipsoid\n\ -\n\ -# header.stamp specifies the ROS time for this measurement (the\n\ -# corresponding satellite time may be reported using the\n\ -# sensor_msgs/TimeReference message).\n\ -#\n\ -# header.frame_id is the frame of reference reported by the satellite\n\ -# receiver, usually the location of the antenna. This is a\n\ -# Euclidean frame relative to the vehicle, not a reference\n\ -# ellipsoid.\n\ -Header header\n\ -\n\ -# satellite fix status information\n\ -NavSatStatus status\n\ -\n\ -# Latitude [degrees]. Positive is north of equator; negative is south.\n\ -float64 latitude\n\ -\n\ -# Longitude [degrees]. Positive is east of prime meridian; negative is west.\n\ -float64 longitude\n\ -\n\ -# Altitude [m]. Positive is above the WGS 84 ellipsoid\n\ -# (quiet NaN if no altitude is available).\n\ -float64 altitude\n\ -\n\ -# Position covariance [m^2] defined relative to a tangential plane\n\ -# through the reported position. The components are East, North, and\n\ -# Up (ENU), in row-major order.\n\ -#\n\ -# Beware: this coordinate system exhibits singularities at the poles.\n\ -\n\ -float64[9] position_covariance\n\ -\n\ -# If the covariance of the fix is known, fill it in completely. If the\n\ -# GPS receiver provides the variance of each measurement, put them\n\ -# along the diagonal. If only Dilution of Precision is available,\n\ -# estimate an approximate covariance from that.\n\ -\n\ -uint8 COVARIANCE_TYPE_UNKNOWN = 0\n\ -uint8 COVARIANCE_TYPE_APPROXIMATED = 1\n\ -uint8 COVARIANCE_TYPE_DIAGONAL_KNOWN = 2\n\ -uint8 COVARIANCE_TYPE_KNOWN = 3\n\ -\n\ -uint8 position_covariance_type\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: sensor_msgs/NavSatStatus\n\ -# Navigation Satellite fix status for any Global Navigation Satellite System\n\ -\n\ -# Whether to output an augmented fix is determined by both the fix\n\ -# type and the last time differential corrections were received. A\n\ -# fix is valid when status >= STATUS_FIX.\n\ -\n\ -int8 STATUS_NO_FIX = -1 # unable to fix position\n\ -int8 STATUS_FIX = 0 # unaugmented fix\n\ -int8 STATUS_SBAS_FIX = 1 # with satellite-based augmentation\n\ -int8 STATUS_GBAS_FIX = 2 # with ground-based augmentation\n\ -\n\ -int8 status\n\ -\n\ -# Bits defining which Global Navigation Satellite System signals were\n\ -# used by the receiver.\n\ -\n\ -uint16 SERVICE_GPS = 1\n\ -uint16 SERVICE_GLONASS = 2\n\ -uint16 SERVICE_COMPASS = 4 # includes BeiDou.\n\ -uint16 SERVICE_GALILEO = 8\n\ -\n\ -uint16 service\n\ -"; + return "# Navigation Satellite fix for any Global Navigation Satellite System\n" +"#\n" +"# Specified using the WGS 84 reference ellipsoid\n" +"\n" +"# header.stamp specifies the ROS time for this measurement (the\n" +"# corresponding satellite time may be reported using the\n" +"# sensor_msgs/TimeReference message).\n" +"#\n" +"# header.frame_id is the frame of reference reported by the satellite\n" +"# receiver, usually the location of the antenna. This is a\n" +"# Euclidean frame relative to the vehicle, not a reference\n" +"# ellipsoid.\n" +"Header header\n" +"\n" +"# satellite fix status information\n" +"NavSatStatus status\n" +"\n" +"# Latitude [degrees]. Positive is north of equator; negative is south.\n" +"float64 latitude\n" +"\n" +"# Longitude [degrees]. Positive is east of prime meridian; negative is west.\n" +"float64 longitude\n" +"\n" +"# Altitude [m]. Positive is above the WGS 84 ellipsoid\n" +"# (quiet NaN if no altitude is available).\n" +"float64 altitude\n" +"\n" +"# Position covariance [m^2] defined relative to a tangential plane\n" +"# through the reported position. The components are East, North, and\n" +"# Up (ENU), in row-major order.\n" +"#\n" +"# Beware: this coordinate system exhibits singularities at the poles.\n" +"\n" +"float64[9] position_covariance\n" +"\n" +"# If the covariance of the fix is known, fill it in completely. If the\n" +"# GPS receiver provides the variance of each measurement, put them\n" +"# along the diagonal. If only Dilution of Precision is available,\n" +"# estimate an approximate covariance from that.\n" +"\n" +"uint8 COVARIANCE_TYPE_UNKNOWN = 0\n" +"uint8 COVARIANCE_TYPE_APPROXIMATED = 1\n" +"uint8 COVARIANCE_TYPE_DIAGONAL_KNOWN = 2\n" +"uint8 COVARIANCE_TYPE_KNOWN = 3\n" +"\n" +"uint8 position_covariance_type\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: sensor_msgs/NavSatStatus\n" +"# Navigation Satellite fix status for any Global Navigation Satellite System\n" +"\n" +"# Whether to output an augmented fix is determined by both the fix\n" +"# type and the last time differential corrections were received. A\n" +"# fix is valid when status >= STATUS_FIX.\n" +"\n" +"int8 STATUS_NO_FIX = -1 # unable to fix position\n" +"int8 STATUS_FIX = 0 # unaugmented fix\n" +"int8 STATUS_SBAS_FIX = 1 # with satellite-based augmentation\n" +"int8 STATUS_GBAS_FIX = 2 # with ground-based augmentation\n" +"\n" +"int8 status\n" +"\n" +"# Bits defining which Global Navigation Satellite System signals were\n" +"# used by the receiver.\n" +"\n" +"uint16 SERVICE_GPS = 1\n" +"uint16 SERVICE_GLONASS = 2\n" +"uint16 SERVICE_COMPASS = 4 # includes BeiDou.\n" +"uint16 SERVICE_GALILEO = 8\n" +"\n" +"uint16 service\n" +; } static const char* value(const ::sensor_msgs::NavSatFix_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/NavSatStatus.h b/thirdparty/ros/include/sensor_msgs/NavSatStatus.h index 4702295..5548bd2 100644 --- a/thirdparty/ros/include/sensor_msgs/NavSatStatus.h +++ b/thirdparty/ros/include/sensor_msgs/NavSatStatus.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -43,6 +43,32 @@ struct NavSatStatus_ +// reducing the odds to have name collisions with Windows.h +#if defined(_WIN32) && defined(STATUS_NO_FIX) + #undef STATUS_NO_FIX +#endif +#if defined(_WIN32) && defined(STATUS_FIX) + #undef STATUS_FIX +#endif +#if defined(_WIN32) && defined(STATUS_SBAS_FIX) + #undef STATUS_SBAS_FIX +#endif +#if defined(_WIN32) && defined(STATUS_GBAS_FIX) + #undef STATUS_GBAS_FIX +#endif +#if defined(_WIN32) && defined(SERVICE_GPS) + #undef SERVICE_GPS +#endif +#if defined(_WIN32) && defined(SERVICE_GLONASS) + #undef SERVICE_GLONASS +#endif +#if defined(_WIN32) && defined(SERVICE_COMPASS) + #undef SERVICE_COMPASS +#endif +#if defined(_WIN32) && defined(SERVICE_GALILEO) + #undef SERVICE_GALILEO +#endif + enum { STATUS_NO_FIX = -1, STATUS_FIX = 0, @@ -92,6 +118,21 @@ ros::message_operations::Printer< ::sensor_msgs::NavSatStatus_ +bool operator==(const ::sensor_msgs::NavSatStatus_ & lhs, const ::sensor_msgs::NavSatStatus_ & rhs) +{ + return lhs.status == rhs.status && + lhs.service == rhs.service; +} + +template +bool operator!=(const ::sensor_msgs::NavSatStatus_ & lhs, const ::sensor_msgs::NavSatStatus_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -101,23 +142,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::NavSatStatus_ > - : TrueType - { }; - -template -struct IsFixedSize< ::sensor_msgs::NavSatStatus_ const> - : TrueType - { }; template struct IsMessage< ::sensor_msgs::NavSatStatus_ > @@ -129,6 +154,16 @@ struct IsMessage< ::sensor_msgs::NavSatStatus_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::NavSatStatus_ > + : TrueType + { }; + +template +struct IsFixedSize< ::sensor_msgs::NavSatStatus_ const> + : TrueType + { }; + template struct HasHeader< ::sensor_msgs::NavSatStatus_ > : FalseType @@ -169,29 +204,29 @@ struct Definition< ::sensor_msgs::NavSatStatus_ > { static const char* value() { - return "# Navigation Satellite fix status for any Global Navigation Satellite System\n\ -\n\ -# Whether to output an augmented fix is determined by both the fix\n\ -# type and the last time differential corrections were received. A\n\ -# fix is valid when status >= STATUS_FIX.\n\ -\n\ -int8 STATUS_NO_FIX = -1 # unable to fix position\n\ -int8 STATUS_FIX = 0 # unaugmented fix\n\ -int8 STATUS_SBAS_FIX = 1 # with satellite-based augmentation\n\ -int8 STATUS_GBAS_FIX = 2 # with ground-based augmentation\n\ -\n\ -int8 status\n\ -\n\ -# Bits defining which Global Navigation Satellite System signals were\n\ -# used by the receiver.\n\ -\n\ -uint16 SERVICE_GPS = 1\n\ -uint16 SERVICE_GLONASS = 2\n\ -uint16 SERVICE_COMPASS = 4 # includes BeiDou.\n\ -uint16 SERVICE_GALILEO = 8\n\ -\n\ -uint16 service\n\ -"; + return "# Navigation Satellite fix status for any Global Navigation Satellite System\n" +"\n" +"# Whether to output an augmented fix is determined by both the fix\n" +"# type and the last time differential corrections were received. A\n" +"# fix is valid when status >= STATUS_FIX.\n" +"\n" +"int8 STATUS_NO_FIX = -1 # unable to fix position\n" +"int8 STATUS_FIX = 0 # unaugmented fix\n" +"int8 STATUS_SBAS_FIX = 1 # with satellite-based augmentation\n" +"int8 STATUS_GBAS_FIX = 2 # with ground-based augmentation\n" +"\n" +"int8 status\n" +"\n" +"# Bits defining which Global Navigation Satellite System signals were\n" +"# used by the receiver.\n" +"\n" +"uint16 SERVICE_GPS = 1\n" +"uint16 SERVICE_GLONASS = 2\n" +"uint16 SERVICE_COMPASS = 4 # includes BeiDou.\n" +"uint16 SERVICE_GALILEO = 8\n" +"\n" +"uint16 service\n" +; } static const char* value(const ::sensor_msgs::NavSatStatus_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/PointCloud.h b/thirdparty/ros/include/sensor_msgs/PointCloud.h index 654cdbd..3d34e68 100644 --- a/thirdparty/ros/include/sensor_msgs/PointCloud.h +++ b/thirdparty/ros/include/sensor_msgs/PointCloud.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -43,10 +43,10 @@ struct PointCloud_ typedef ::std_msgs::Header_ _header_type; _header_type header; - typedef std::vector< ::geometry_msgs::Point32_ , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_ >::other > _points_type; + typedef std::vector< ::geometry_msgs::Point32_ , typename std::allocator_traits::template rebind_alloc< ::geometry_msgs::Point32_ >> _points_type; _points_type points; - typedef std::vector< ::sensor_msgs::ChannelFloat32_ , typename ContainerAllocator::template rebind< ::sensor_msgs::ChannelFloat32_ >::other > _channels_type; + typedef std::vector< ::sensor_msgs::ChannelFloat32_ , typename std::allocator_traits::template rebind_alloc< ::sensor_msgs::ChannelFloat32_ >> _channels_type; _channels_type channels; @@ -74,6 +74,22 @@ ros::message_operations::Printer< ::sensor_msgs::PointCloud_ return s; } + +template +bool operator==(const ::sensor_msgs::PointCloud_ & lhs, const ::sensor_msgs::PointCloud_ & rhs) +{ + return lhs.header == rhs.header && + lhs.points == rhs.points && + lhs.channels == rhs.channels; +} + +template +bool operator!=(const ::sensor_msgs::PointCloud_ & lhs, const ::sensor_msgs::PointCloud_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -83,23 +99,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::PointCloud_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::PointCloud_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::PointCloud_ > @@ -111,6 +111,16 @@ struct IsMessage< ::sensor_msgs::PointCloud_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::PointCloud_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::PointCloud_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::PointCloud_ > : TrueType @@ -151,79 +161,77 @@ struct Definition< ::sensor_msgs::PointCloud_ > { static const char* value() { - return "# This message holds a collection of 3d points, plus optional additional\n\ -# information about each point.\n\ -\n\ -# Time of sensor data acquisition, coordinate frame ID.\n\ -Header header\n\ -\n\ -# Array of 3d points. Each Point32 should be interpreted as a 3d point\n\ -# in the frame given in the header.\n\ -geometry_msgs/Point32[] points\n\ -\n\ -# Each channel should have the same number of elements as points array,\n\ -# and the data in each channel should correspond 1:1 with each point.\n\ -# Channel names in common practice are listed in ChannelFloat32.msg.\n\ -ChannelFloat32[] channels\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: geometry_msgs/Point32\n\ -# This contains the position of a point in free space(with 32 bits of precision).\n\ -# It is recommeded to use Point wherever possible instead of Point32. \n\ -# \n\ -# This recommendation is to promote interoperability. \n\ -#\n\ -# This message is designed to take up less space when sending\n\ -# lots of points at once, as in the case of a PointCloud. \n\ -\n\ -float32 x\n\ -float32 y\n\ -float32 z\n\ -================================================================================\n\ -MSG: sensor_msgs/ChannelFloat32\n\ -# This message is used by the PointCloud message to hold optional data\n\ -# associated with each point in the cloud. The length of the values\n\ -# array should be the same as the length of the points array in the\n\ -# PointCloud, and each value should be associated with the corresponding\n\ -# point.\n\ -\n\ -# Channel names in existing practice include:\n\ -# \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\ -# This is opposite to usual conventions but remains for\n\ -# historical reasons. The newer PointCloud2 message has no\n\ -# such problem.\n\ -# \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\ -# (R,G,B) values packed into the least significant 24 bits,\n\ -# in order.\n\ -# \"intensity\" - laser or pixel intensity.\n\ -# \"distance\"\n\ -\n\ -# The channel name should give semantics of the channel (e.g.\n\ -# \"intensity\" instead of \"value\").\n\ -string name\n\ -\n\ -# The values array should be 1-1 with the elements of the associated\n\ -# PointCloud.\n\ -float32[] values\n\ -"; + return "# This message holds a collection of 3d points, plus optional additional\n" +"# information about each point.\n" +"\n" +"# Time of sensor data acquisition, coordinate frame ID.\n" +"Header header\n" +"\n" +"# Array of 3d points. Each Point32 should be interpreted as a 3d point\n" +"# in the frame given in the header.\n" +"geometry_msgs/Point32[] points\n" +"\n" +"# Each channel should have the same number of elements as points array,\n" +"# and the data in each channel should correspond 1:1 with each point.\n" +"# Channel names in common practice are listed in ChannelFloat32.msg.\n" +"ChannelFloat32[] channels\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: geometry_msgs/Point32\n" +"# This contains the position of a point in free space(with 32 bits of precision).\n" +"# It is recommeded to use Point wherever possible instead of Point32. \n" +"# \n" +"# This recommendation is to promote interoperability. \n" +"#\n" +"# This message is designed to take up less space when sending\n" +"# lots of points at once, as in the case of a PointCloud. \n" +"\n" +"float32 x\n" +"float32 y\n" +"float32 z\n" +"================================================================================\n" +"MSG: sensor_msgs/ChannelFloat32\n" +"# This message is used by the PointCloud message to hold optional data\n" +"# associated with each point in the cloud. The length of the values\n" +"# array should be the same as the length of the points array in the\n" +"# PointCloud, and each value should be associated with the corresponding\n" +"# point.\n" +"\n" +"# Channel names in existing practice include:\n" +"# \"u\", \"v\" - row and column (respectively) in the left stereo image.\n" +"# This is opposite to usual conventions but remains for\n" +"# historical reasons. The newer PointCloud2 message has no\n" +"# such problem.\n" +"# \"rgb\" - For point clouds produced by color stereo cameras. uint8\n" +"# (R,G,B) values packed into the least significant 24 bits,\n" +"# in order.\n" +"# \"intensity\" - laser or pixel intensity.\n" +"# \"distance\"\n" +"\n" +"# The channel name should give semantics of the channel (e.g.\n" +"# \"intensity\" instead of \"value\").\n" +"string name\n" +"\n" +"# The values array should be 1-1 with the elements of the associated\n" +"# PointCloud.\n" +"float32[] values\n" +; } static const char* value(const ::sensor_msgs::PointCloud_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/PointCloud2.h b/thirdparty/ros/include/sensor_msgs/PointCloud2.h index cf95217..ec4a8b5 100644 --- a/thirdparty/ros/include/sensor_msgs/PointCloud2.h +++ b/thirdparty/ros/include/sensor_msgs/PointCloud2.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -60,7 +60,7 @@ struct PointCloud2_ typedef uint32_t _width_type; _width_type width; - typedef std::vector< ::sensor_msgs::PointField_ , typename ContainerAllocator::template rebind< ::sensor_msgs::PointField_ >::other > _fields_type; + typedef std::vector< ::sensor_msgs::PointField_ , typename std::allocator_traits::template rebind_alloc< ::sensor_msgs::PointField_ >> _fields_type; _fields_type fields; typedef uint8_t _is_bigendian_type; @@ -72,7 +72,7 @@ struct PointCloud2_ typedef uint32_t _row_step_type; _row_step_type row_step; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; typedef uint8_t _is_dense_type; @@ -103,6 +103,28 @@ ros::message_operations::Printer< ::sensor_msgs::PointCloud2_ +bool operator==(const ::sensor_msgs::PointCloud2_ & lhs, const ::sensor_msgs::PointCloud2_ & rhs) +{ + return lhs.header == rhs.header && + lhs.height == rhs.height && + lhs.width == rhs.width && + lhs.fields == rhs.fields && + lhs.is_bigendian == rhs.is_bigendian && + lhs.point_step == rhs.point_step && + lhs.row_step == rhs.row_step && + lhs.data == rhs.data && + lhs.is_dense == rhs.is_dense; +} + +template +bool operator!=(const ::sensor_msgs::PointCloud2_ & lhs, const ::sensor_msgs::PointCloud2_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -112,23 +134,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::PointCloud2_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::PointCloud2_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::PointCloud2_ > @@ -140,6 +146,16 @@ struct IsMessage< ::sensor_msgs::PointCloud2_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::PointCloud2_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::PointCloud2_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::PointCloud2_ > : TrueType @@ -180,70 +196,68 @@ struct Definition< ::sensor_msgs::PointCloud2_ > { static const char* value() { - return "# This message holds a collection of N-dimensional points, which may\n\ -# contain additional information such as normals, intensity, etc. The\n\ -# point data is stored as a binary blob, its layout described by the\n\ -# contents of the \"fields\" array.\n\ -\n\ -# The point cloud data may be organized 2d (image-like) or 1d\n\ -# (unordered). Point clouds organized as 2d images may be produced by\n\ -# camera depth sensors such as stereo or time-of-flight.\n\ -\n\ -# Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\ -# points).\n\ -Header header\n\ -\n\ -# 2D structure of the point cloud. If the cloud is unordered, height is\n\ -# 1 and width is the length of the point cloud.\n\ -uint32 height\n\ -uint32 width\n\ -\n\ -# Describes the channels and their layout in the binary data blob.\n\ -PointField[] fields\n\ -\n\ -bool is_bigendian # Is this data bigendian?\n\ -uint32 point_step # Length of a point in bytes\n\ -uint32 row_step # Length of a row in bytes\n\ -uint8[] data # Actual point data, size is (row_step*height)\n\ -\n\ -bool is_dense # True if there are no invalid points\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: sensor_msgs/PointField\n\ -# This message holds the description of one point entry in the\n\ -# PointCloud2 message format.\n\ -uint8 INT8 = 1\n\ -uint8 UINT8 = 2\n\ -uint8 INT16 = 3\n\ -uint8 UINT16 = 4\n\ -uint8 INT32 = 5\n\ -uint8 UINT32 = 6\n\ -uint8 FLOAT32 = 7\n\ -uint8 FLOAT64 = 8\n\ -\n\ -string name # Name of field\n\ -uint32 offset # Offset from start of point struct\n\ -uint8 datatype # Datatype enumeration, see above\n\ -uint32 count # How many elements in the field\n\ -"; + return "# This message holds a collection of N-dimensional points, which may\n" +"# contain additional information such as normals, intensity, etc. The\n" +"# point data is stored as a binary blob, its layout described by the\n" +"# contents of the \"fields\" array.\n" +"\n" +"# The point cloud data may be organized 2d (image-like) or 1d\n" +"# (unordered). Point clouds organized as 2d images may be produced by\n" +"# camera depth sensors such as stereo or time-of-flight.\n" +"\n" +"# Time of sensor data acquisition, and the coordinate frame ID (for 3d\n" +"# points).\n" +"Header header\n" +"\n" +"# 2D structure of the point cloud. If the cloud is unordered, height is\n" +"# 1 and width is the length of the point cloud.\n" +"uint32 height\n" +"uint32 width\n" +"\n" +"# Describes the channels and their layout in the binary data blob.\n" +"PointField[] fields\n" +"\n" +"bool is_bigendian # Is this data bigendian?\n" +"uint32 point_step # Length of a point in bytes\n" +"uint32 row_step # Length of a row in bytes\n" +"uint8[] data # Actual point data, size is (row_step*height)\n" +"\n" +"bool is_dense # True if there are no invalid points\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: sensor_msgs/PointField\n" +"# This message holds the description of one point entry in the\n" +"# PointCloud2 message format.\n" +"uint8 INT8 = 1\n" +"uint8 UINT8 = 2\n" +"uint8 INT16 = 3\n" +"uint8 UINT16 = 4\n" +"uint8 INT32 = 5\n" +"uint8 UINT32 = 6\n" +"uint8 FLOAT32 = 7\n" +"uint8 FLOAT64 = 8\n" +"\n" +"string name # Name of field\n" +"uint32 offset # Offset from start of point struct\n" +"uint8 datatype # Datatype enumeration, see above\n" +"uint32 count # How many elements in the field\n" +; } static const char* value(const ::sensor_msgs::PointCloud2_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/PointField.h b/thirdparty/ros/include/sensor_msgs/PointField.h index 4d55f27..5646109 100644 --- a/thirdparty/ros/include/sensor_msgs/PointField.h +++ b/thirdparty/ros/include/sensor_msgs/PointField.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct PointField_ - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _name_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _name_type; _name_type name; typedef uint32_t _offset_type; @@ -53,6 +53,32 @@ struct PointField_ +// reducing the odds to have name collisions with Windows.h +#if defined(_WIN32) && defined(INT8) + #undef INT8 +#endif +#if defined(_WIN32) && defined(UINT8) + #undef UINT8 +#endif +#if defined(_WIN32) && defined(INT16) + #undef INT16 +#endif +#if defined(_WIN32) && defined(UINT16) + #undef UINT16 +#endif +#if defined(_WIN32) && defined(INT32) + #undef INT32 +#endif +#if defined(_WIN32) && defined(UINT32) + #undef UINT32 +#endif +#if defined(_WIN32) && defined(FLOAT32) + #undef FLOAT32 +#endif +#if defined(_WIN32) && defined(FLOAT64) + #undef FLOAT64 +#endif + enum { INT8 = 1u, UINT8 = 2u, @@ -102,6 +128,23 @@ ros::message_operations::Printer< ::sensor_msgs::PointField_ return s; } + +template +bool operator==(const ::sensor_msgs::PointField_ & lhs, const ::sensor_msgs::PointField_ & rhs) +{ + return lhs.name == rhs.name && + lhs.offset == rhs.offset && + lhs.datatype == rhs.datatype && + lhs.count == rhs.count; +} + +template +bool operator!=(const ::sensor_msgs::PointField_ & lhs, const ::sensor_msgs::PointField_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -111,23 +154,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::PointField_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::PointField_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::PointField_ > @@ -139,6 +166,16 @@ struct IsMessage< ::sensor_msgs::PointField_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::PointField_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::PointField_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::PointField_ > : FalseType @@ -179,22 +216,22 @@ struct Definition< ::sensor_msgs::PointField_ > { static const char* value() { - return "# This message holds the description of one point entry in the\n\ -# PointCloud2 message format.\n\ -uint8 INT8 = 1\n\ -uint8 UINT8 = 2\n\ -uint8 INT16 = 3\n\ -uint8 UINT16 = 4\n\ -uint8 INT32 = 5\n\ -uint8 UINT32 = 6\n\ -uint8 FLOAT32 = 7\n\ -uint8 FLOAT64 = 8\n\ -\n\ -string name # Name of field\n\ -uint32 offset # Offset from start of point struct\n\ -uint8 datatype # Datatype enumeration, see above\n\ -uint32 count # How many elements in the field\n\ -"; + return "# This message holds the description of one point entry in the\n" +"# PointCloud2 message format.\n" +"uint8 INT8 = 1\n" +"uint8 UINT8 = 2\n" +"uint8 INT16 = 3\n" +"uint8 UINT16 = 4\n" +"uint8 INT32 = 5\n" +"uint8 UINT32 = 6\n" +"uint8 FLOAT32 = 7\n" +"uint8 FLOAT64 = 8\n" +"\n" +"string name # Name of field\n" +"uint32 offset # Offset from start of point struct\n" +"uint8 datatype # Datatype enumeration, see above\n" +"uint32 count # How many elements in the field\n" +; } static const char* value(const ::sensor_msgs::PointField_&) { return value(); } @@ -235,7 +272,7 @@ struct Printer< ::sensor_msgs::PointField_ > template static void stream(Stream& s, const std::string& indent, const ::sensor_msgs::PointField_& v) { s << indent << "name: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.name); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.name); s << indent << "offset: "; Printer::stream(s, indent + " ", v.offset); s << indent << "datatype: "; diff --git a/thirdparty/ros/include/sensor_msgs/Range.h b/thirdparty/ros/include/sensor_msgs/Range.h index d46e6ac..a0f9620 100644 --- a/thirdparty/ros/include/sensor_msgs/Range.h +++ b/thirdparty/ros/include/sensor_msgs/Range.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -64,6 +64,14 @@ struct Range_ +// reducing the odds to have name collisions with Windows.h +#if defined(_WIN32) && defined(ULTRASOUND) + #undef ULTRASOUND +#endif +#if defined(_WIN32) && defined(INFRARED) + #undef INFRARED +#endif + enum { ULTRASOUND = 0u, INFRARED = 1u, @@ -95,6 +103,25 @@ ros::message_operations::Printer< ::sensor_msgs::Range_ >::s return s; } + +template +bool operator==(const ::sensor_msgs::Range_ & lhs, const ::sensor_msgs::Range_ & rhs) +{ + return lhs.header == rhs.header && + lhs.radiation_type == rhs.radiation_type && + lhs.field_of_view == rhs.field_of_view && + lhs.min_range == rhs.min_range && + lhs.max_range == rhs.max_range && + lhs.range == rhs.range; +} + +template +bool operator!=(const ::sensor_msgs::Range_ & lhs, const ::sensor_msgs::Range_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -104,23 +131,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::Range_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::Range_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::Range_ > @@ -132,6 +143,16 @@ struct IsMessage< ::sensor_msgs::Range_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::Range_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::Range_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::Range_ > : TrueType @@ -172,64 +193,62 @@ struct Definition< ::sensor_msgs::Range_ > { static const char* value() { - return "# Single range reading from an active ranger that emits energy and reports\n\ -# one range reading that is valid along an arc at the distance measured. \n\ -# This message is not appropriate for laser scanners. See the LaserScan\n\ -# message if you are working with a laser scanner.\n\ -\n\ -# This message also can represent a fixed-distance (binary) ranger. This\n\ -# sensor will have min_range===max_range===distance of detection.\n\ -# These sensors follow REP 117 and will output -Inf if the object is detected\n\ -# and +Inf if the object is outside of the detection range.\n\ -\n\ -Header header # timestamp in the header is the time the ranger\n\ - # returned the distance reading\n\ -\n\ -# Radiation type enums\n\ -# If you want a value added to this list, send an email to the ros-users list\n\ -uint8 ULTRASOUND=0\n\ -uint8 INFRARED=1\n\ -\n\ -uint8 radiation_type # the type of radiation used by the sensor\n\ - # (sound, IR, etc) [enum]\n\ -\n\ -float32 field_of_view # the size of the arc that the distance reading is\n\ - # valid for [rad]\n\ - # the object causing the range reading may have\n\ - # been anywhere within -field_of_view/2 and\n\ - # field_of_view/2 at the measured range. \n\ - # 0 angle corresponds to the x-axis of the sensor.\n\ -\n\ -float32 min_range # minimum range value [m]\n\ -float32 max_range # maximum range value [m]\n\ - # Fixed distance rangers require min_range==max_range\n\ -\n\ -float32 range # range data [m]\n\ - # (Note: values < range_min or > range_max\n\ - # should be discarded)\n\ - # Fixed distance rangers only output -Inf or +Inf.\n\ - # -Inf represents a detection within fixed distance.\n\ - # (Detection too close to the sensor to quantify)\n\ - # +Inf represents no detection within the fixed distance.\n\ - # (Object out of range)\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# Single range reading from an active ranger that emits energy and reports\n" +"# one range reading that is valid along an arc at the distance measured. \n" +"# This message is not appropriate for laser scanners. See the LaserScan\n" +"# message if you are working with a laser scanner.\n" +"\n" +"# This message also can represent a fixed-distance (binary) ranger. This\n" +"# sensor will have min_range===max_range===distance of detection.\n" +"# These sensors follow REP 117 and will output -Inf if the object is detected\n" +"# and +Inf if the object is outside of the detection range.\n" +"\n" +"Header header # timestamp in the header is the time the ranger\n" +" # returned the distance reading\n" +"\n" +"# Radiation type enums\n" +"# If you want a value added to this list, send an email to the ros-users list\n" +"uint8 ULTRASOUND=0\n" +"uint8 INFRARED=1\n" +"\n" +"uint8 radiation_type # the type of radiation used by the sensor\n" +" # (sound, IR, etc) [enum]\n" +"\n" +"float32 field_of_view # the size of the arc that the distance reading is\n" +" # valid for [rad]\n" +" # the object causing the range reading may have\n" +" # been anywhere within -field_of_view/2 and\n" +" # field_of_view/2 at the measured range. \n" +" # 0 angle corresponds to the x-axis of the sensor.\n" +"\n" +"float32 min_range # minimum range value [m]\n" +"float32 max_range # maximum range value [m]\n" +" # Fixed distance rangers require min_range==max_range\n" +"\n" +"float32 range # range data [m]\n" +" # (Note: values < range_min or > range_max\n" +" # should be discarded)\n" +" # Fixed distance rangers only output -Inf or +Inf.\n" +" # -Inf represents a detection within fixed distance.\n" +" # (Detection too close to the sensor to quantify)\n" +" # +Inf represents no detection within the fixed distance.\n" +" # (Object out of range)\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::Range_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/RegionOfInterest.h b/thirdparty/ros/include/sensor_msgs/RegionOfInterest.h index 53facfa..b17fcd7 100644 --- a/thirdparty/ros/include/sensor_msgs/RegionOfInterest.h +++ b/thirdparty/ros/include/sensor_msgs/RegionOfInterest.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -81,6 +81,24 @@ ros::message_operations::Printer< ::sensor_msgs::RegionOfInterest_ +bool operator==(const ::sensor_msgs::RegionOfInterest_ & lhs, const ::sensor_msgs::RegionOfInterest_ & rhs) +{ + return lhs.x_offset == rhs.x_offset && + lhs.y_offset == rhs.y_offset && + lhs.height == rhs.height && + lhs.width == rhs.width && + lhs.do_rectify == rhs.do_rectify; +} + +template +bool operator!=(const ::sensor_msgs::RegionOfInterest_ & lhs, const ::sensor_msgs::RegionOfInterest_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -90,23 +108,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::RegionOfInterest_ > - : TrueType - { }; - -template -struct IsFixedSize< ::sensor_msgs::RegionOfInterest_ const> - : TrueType - { }; template struct IsMessage< ::sensor_msgs::RegionOfInterest_ > @@ -118,6 +120,16 @@ struct IsMessage< ::sensor_msgs::RegionOfInterest_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::RegionOfInterest_ > + : TrueType + { }; + +template +struct IsFixedSize< ::sensor_msgs::RegionOfInterest_ const> + : TrueType + { }; + template struct HasHeader< ::sensor_msgs::RegionOfInterest_ > : FalseType @@ -158,26 +170,26 @@ struct Definition< ::sensor_msgs::RegionOfInterest_ > { static const char* value() { - return "# This message is used to specify a region of interest within an image.\n\ -#\n\ -# When used to specify the ROI setting of the camera when the image was\n\ -# taken, the height and width fields should either match the height and\n\ -# width fields for the associated image; or height = width = 0\n\ -# indicates that the full resolution image was captured.\n\ -\n\ -uint32 x_offset # Leftmost pixel of the ROI\n\ - # (0 if the ROI includes the left edge of the image)\n\ -uint32 y_offset # Topmost pixel of the ROI\n\ - # (0 if the ROI includes the top edge of the image)\n\ -uint32 height # Height of ROI\n\ -uint32 width # Width of ROI\n\ -\n\ -# True if a distinct rectified ROI should be calculated from the \"raw\"\n\ -# ROI in this message. Typically this should be False if the full image\n\ -# is captured (ROI not used), and True if a subwindow is captured (ROI\n\ -# used).\n\ -bool do_rectify\n\ -"; + return "# This message is used to specify a region of interest within an image.\n" +"#\n" +"# When used to specify the ROI setting of the camera when the image was\n" +"# taken, the height and width fields should either match the height and\n" +"# width fields for the associated image; or height = width = 0\n" +"# indicates that the full resolution image was captured.\n" +"\n" +"uint32 x_offset # Leftmost pixel of the ROI\n" +" # (0 if the ROI includes the left edge of the image)\n" +"uint32 y_offset # Topmost pixel of the ROI\n" +" # (0 if the ROI includes the top edge of the image)\n" +"uint32 height # Height of ROI\n" +"uint32 width # Width of ROI\n" +"\n" +"# True if a distinct rectified ROI should be calculated from the \"raw\"\n" +"# ROI in this message. Typically this should be False if the full image\n" +"# is captured (ROI not used), and True if a subwindow is captured (ROI\n" +"# used).\n" +"bool do_rectify\n" +; } static const char* value(const ::sensor_msgs::RegionOfInterest_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/RelativeHumidity.h b/thirdparty/ros/include/sensor_msgs/RelativeHumidity.h index ff5ec8e..632cb2a 100644 --- a/thirdparty/ros/include/sensor_msgs/RelativeHumidity.h +++ b/thirdparty/ros/include/sensor_msgs/RelativeHumidity.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::RelativeHumidity_ +bool operator==(const ::sensor_msgs::RelativeHumidity_ & lhs, const ::sensor_msgs::RelativeHumidity_ & rhs) +{ + return lhs.header == rhs.header && + lhs.relative_humidity == rhs.relative_humidity && + lhs.variance == rhs.variance; +} + +template +bool operator!=(const ::sensor_msgs::RelativeHumidity_ & lhs, const ::sensor_msgs::RelativeHumidity_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -81,23 +97,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::RelativeHumidity_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::RelativeHumidity_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::RelativeHumidity_ > @@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::RelativeHumidity_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::RelativeHumidity_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::RelativeHumidity_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::RelativeHumidity_ > : TrueType @@ -149,36 +159,34 @@ struct Definition< ::sensor_msgs::RelativeHumidity_ > { static const char* value() { - return " # Single reading from a relative humidity sensor. Defines the ratio of partial\n\ - # pressure of water vapor to the saturated vapor pressure at a temperature.\n\ -\n\ - Header header # timestamp of the measurement\n\ - # frame_id is the location of the humidity sensor\n\ -\n\ - float64 relative_humidity # Expression of the relative humidity\n\ - # from 0.0 to 1.0.\n\ - # 0.0 is no partial pressure of water vapor\n\ - # 1.0 represents partial pressure of saturation\n\ -\n\ - float64 variance # 0 is interpreted as variance unknown\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return " # Single reading from a relative humidity sensor. Defines the ratio of partial\n" +" # pressure of water vapor to the saturated vapor pressure at a temperature.\n" +"\n" +" Header header # timestamp of the measurement\n" +" # frame_id is the location of the humidity sensor\n" +"\n" +" float64 relative_humidity # Expression of the relative humidity\n" +" # from 0.0 to 1.0.\n" +" # 0.0 is no partial pressure of water vapor\n" +" # 1.0 represents partial pressure of saturation\n" +"\n" +" float64 variance # 0 is interpreted as variance unknown\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::RelativeHumidity_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/SetCameraInfo.h b/thirdparty/ros/include/sensor_msgs/SetCameraInfo.h index 2e4c167..2395a9e 100644 --- a/thirdparty/ros/include/sensor_msgs/SetCameraInfo.h +++ b/thirdparty/ros/include/sensor_msgs/SetCameraInfo.h @@ -57,8 +57,8 @@ struct DataType< ::sensor_msgs::SetCameraInfo > { }; -// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfoRequest> should match -// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfo > +// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfoRequest> should match +// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfo > template<> struct MD5Sum< ::sensor_msgs::SetCameraInfoRequest> { @@ -72,8 +72,8 @@ struct MD5Sum< ::sensor_msgs::SetCameraInfoRequest> } }; -// service_traits::DataType< ::sensor_msgs::SetCameraInfoRequest> should match -// service_traits::DataType< ::sensor_msgs::SetCameraInfo > +// service_traits::DataType< ::sensor_msgs::SetCameraInfoRequest> should match +// service_traits::DataType< ::sensor_msgs::SetCameraInfo > template<> struct DataType< ::sensor_msgs::SetCameraInfoRequest> { @@ -87,8 +87,8 @@ struct DataType< ::sensor_msgs::SetCameraInfoRequest> } }; -// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfoResponse> should match -// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfo > +// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfoResponse> should match +// service_traits::MD5Sum< ::sensor_msgs::SetCameraInfo > template<> struct MD5Sum< ::sensor_msgs::SetCameraInfoResponse> { @@ -102,8 +102,8 @@ struct MD5Sum< ::sensor_msgs::SetCameraInfoResponse> } }; -// service_traits::DataType< ::sensor_msgs::SetCameraInfoResponse> should match -// service_traits::DataType< ::sensor_msgs::SetCameraInfo > +// service_traits::DataType< ::sensor_msgs::SetCameraInfoResponse> should match +// service_traits::DataType< ::sensor_msgs::SetCameraInfo > template<> struct DataType< ::sensor_msgs::SetCameraInfoResponse> { diff --git a/thirdparty/ros/include/sensor_msgs/SetCameraInfoRequest.h b/thirdparty/ros/include/sensor_msgs/SetCameraInfoRequest.h index 51db184..87ece0c 100644 --- a/thirdparty/ros/include/sensor_msgs/SetCameraInfoRequest.h +++ b/thirdparty/ros/include/sensor_msgs/SetCameraInfoRequest.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -62,6 +62,20 @@ ros::message_operations::Printer< ::sensor_msgs::SetCameraInfoRequest_ +bool operator==(const ::sensor_msgs::SetCameraInfoRequest_ & lhs, const ::sensor_msgs::SetCameraInfoRequest_ & rhs) +{ + return lhs.camera_info == rhs.camera_info; +} + +template +bool operator!=(const ::sensor_msgs::SetCameraInfoRequest_ & lhs, const ::sensor_msgs::SetCameraInfoRequest_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -71,23 +85,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::SetCameraInfoRequest_ > @@ -99,6 +97,16 @@ struct IsMessage< ::sensor_msgs::SetCameraInfoRequest_ const : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::SetCameraInfoRequest_ > : FalseType @@ -139,190 +147,188 @@ struct Definition< ::sensor_msgs::SetCameraInfoRequest_ > { static const char* value() { - return "\n\ -\n\ -\n\ -\n\ -\n\ -\n\ -\n\ -\n\ -sensor_msgs/CameraInfo camera_info\n\ -\n\ -================================================================================\n\ -MSG: sensor_msgs/CameraInfo\n\ -# This message defines meta information for a camera. It should be in a\n\ -# camera namespace on topic \"camera_info\" and accompanied by up to five\n\ -# image topics named:\n\ -#\n\ -# image_raw - raw data from the camera driver, possibly Bayer encoded\n\ -# image - monochrome, distorted\n\ -# image_color - color, distorted\n\ -# image_rect - monochrome, rectified\n\ -# image_rect_color - color, rectified\n\ -#\n\ -# The image_pipeline contains packages (image_proc, stereo_image_proc)\n\ -# for producing the four processed image topics from image_raw and\n\ -# camera_info. The meaning of the camera parameters are described in\n\ -# detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.\n\ -#\n\ -# The image_geometry package provides a user-friendly interface to\n\ -# common operations using this meta information. If you want to, e.g.,\n\ -# project a 3d point into image coordinates, we strongly recommend\n\ -# using image_geometry.\n\ -#\n\ -# If the camera is uncalibrated, the matrices D, K, R, P should be left\n\ -# zeroed out. In particular, clients may assume that K[0] == 0.0\n\ -# indicates an uncalibrated camera.\n\ -\n\ -#######################################################################\n\ -# Image acquisition info #\n\ -#######################################################################\n\ -\n\ -# Time of image acquisition, camera coordinate frame ID\n\ -Header header # Header timestamp should be acquisition time of image\n\ - # Header frame_id should be optical frame of camera\n\ - # origin of frame should be optical center of camera\n\ - # +x should point to the right in the image\n\ - # +y should point down in the image\n\ - # +z should point into the plane of the image\n\ -\n\ -\n\ -#######################################################################\n\ -# Calibration Parameters #\n\ -#######################################################################\n\ -# These are fixed during camera calibration. Their values will be the #\n\ -# same in all messages until the camera is recalibrated. Note that #\n\ -# self-calibrating systems may \"recalibrate\" frequently. #\n\ -# #\n\ -# The internal parameters can be used to warp a raw (distorted) image #\n\ -# to: #\n\ -# 1. An undistorted image (requires D and K) #\n\ -# 2. A rectified image (requires D, K, R) #\n\ -# The projection matrix P projects 3D points into the rectified image.#\n\ -#######################################################################\n\ -\n\ -# The image dimensions with which the camera was calibrated. Normally\n\ -# this will be the full camera resolution in pixels.\n\ -uint32 height\n\ -uint32 width\n\ -\n\ -# The distortion model used. Supported models are listed in\n\ -# sensor_msgs/distortion_models.h. For most cameras, \"plumb_bob\" - a\n\ -# simple model of radial and tangential distortion - is sufficient.\n\ -string distortion_model\n\ -\n\ -# The distortion parameters, size depending on the distortion model.\n\ -# For \"plumb_bob\", the 5 parameters are: (k1, k2, t1, t2, k3).\n\ -float64[] D\n\ -\n\ -# Intrinsic camera matrix for the raw (distorted) images.\n\ -# [fx 0 cx]\n\ -# K = [ 0 fy cy]\n\ -# [ 0 0 1]\n\ -# Projects 3D points in the camera coordinate frame to 2D pixel\n\ -# coordinates using the focal lengths (fx, fy) and principal point\n\ -# (cx, cy).\n\ -float64[9] K # 3x3 row-major matrix\n\ -\n\ -# Rectification matrix (stereo cameras only)\n\ -# A rotation matrix aligning the camera coordinate system to the ideal\n\ -# stereo image plane so that epipolar lines in both stereo images are\n\ -# parallel.\n\ -float64[9] R # 3x3 row-major matrix\n\ -\n\ -# Projection/camera matrix\n\ -# [fx' 0 cx' Tx]\n\ -# P = [ 0 fy' cy' Ty]\n\ -# [ 0 0 1 0]\n\ -# By convention, this matrix specifies the intrinsic (camera) matrix\n\ -# of the processed (rectified) image. That is, the left 3x3 portion\n\ -# is the normal camera intrinsic matrix for the rectified image.\n\ -# It projects 3D points in the camera coordinate frame to 2D pixel\n\ -# coordinates using the focal lengths (fx', fy') and principal point\n\ -# (cx', cy') - these may differ from the values in K.\n\ -# For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will\n\ -# also have R = the identity and P[1:3,1:3] = K.\n\ -# For a stereo pair, the fourth column [Tx Ty 0]' is related to the\n\ -# position of the optical center of the second camera in the first\n\ -# camera's frame. We assume Tz = 0 so both cameras are in the same\n\ -# stereo image plane. The first camera always has Tx = Ty = 0. For\n\ -# the right (second) camera of a horizontal stereo pair, Ty = 0 and\n\ -# Tx = -fx' * B, where B is the baseline between the cameras.\n\ -# Given a 3D point [X Y Z]', the projection (x, y) of the point onto\n\ -# the rectified image is given by:\n\ -# [u v w]' = P * [X Y Z 1]'\n\ -# x = u / w\n\ -# y = v / w\n\ -# This holds for both images of a stereo pair.\n\ -float64[12] P # 3x4 row-major matrix\n\ -\n\ -\n\ -#######################################################################\n\ -# Operational Parameters #\n\ -#######################################################################\n\ -# These define the image region actually captured by the camera #\n\ -# driver. Although they affect the geometry of the output image, they #\n\ -# may be changed freely without recalibrating the camera. #\n\ -#######################################################################\n\ -\n\ -# Binning refers here to any camera setting which combines rectangular\n\ -# neighborhoods of pixels into larger \"super-pixels.\" It reduces the\n\ -# resolution of the output image to\n\ -# (width / binning_x) x (height / binning_y).\n\ -# The default values binning_x = binning_y = 0 is considered the same\n\ -# as binning_x = binning_y = 1 (no subsampling).\n\ -uint32 binning_x\n\ -uint32 binning_y\n\ -\n\ -# Region of interest (subwindow of full camera resolution), given in\n\ -# full resolution (unbinned) image coordinates. A particular ROI\n\ -# always denotes the same window of pixels on the camera sensor,\n\ -# regardless of binning settings.\n\ -# The default setting of roi (all values 0) is considered the same as\n\ -# full resolution (roi.width = width, roi.height = height).\n\ -RegionOfInterest roi\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -\n\ -================================================================================\n\ -MSG: sensor_msgs/RegionOfInterest\n\ -# This message is used to specify a region of interest within an image.\n\ -#\n\ -# When used to specify the ROI setting of the camera when the image was\n\ -# taken, the height and width fields should either match the height and\n\ -# width fields for the associated image; or height = width = 0\n\ -# indicates that the full resolution image was captured.\n\ -\n\ -uint32 x_offset # Leftmost pixel of the ROI\n\ - # (0 if the ROI includes the left edge of the image)\n\ -uint32 y_offset # Topmost pixel of the ROI\n\ - # (0 if the ROI includes the top edge of the image)\n\ -uint32 height # Height of ROI\n\ -uint32 width # Width of ROI\n\ -\n\ -# True if a distinct rectified ROI should be calculated from the \"raw\"\n\ -# ROI in this message. Typically this should be False if the full image\n\ -# is captured (ROI not used), and True if a subwindow is captured (ROI\n\ -# used).\n\ -bool do_rectify\n\ -"; + return "# This service requests that a camera stores the given CameraInfo \n" +"# as that camera's calibration information.\n" +"#\n" +"# The width and height in the camera_info field should match what the\n" +"# camera is currently outputting on its camera_info topic, and the camera\n" +"# will assume that the region of the imager that is being referred to is\n" +"# the region that the camera is currently capturing.\n" +"\n" +"sensor_msgs/CameraInfo camera_info # The camera_info to store\n" +"\n" +"================================================================================\n" +"MSG: sensor_msgs/CameraInfo\n" +"# This message defines meta information for a camera. It should be in a\n" +"# camera namespace on topic \"camera_info\" and accompanied by up to five\n" +"# image topics named:\n" +"#\n" +"# image_raw - raw data from the camera driver, possibly Bayer encoded\n" +"# image - monochrome, distorted\n" +"# image_color - color, distorted\n" +"# image_rect - monochrome, rectified\n" +"# image_rect_color - color, rectified\n" +"#\n" +"# The image_pipeline contains packages (image_proc, stereo_image_proc)\n" +"# for producing the four processed image topics from image_raw and\n" +"# camera_info. The meaning of the camera parameters are described in\n" +"# detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.\n" +"#\n" +"# The image_geometry package provides a user-friendly interface to\n" +"# common operations using this meta information. If you want to, e.g.,\n" +"# project a 3d point into image coordinates, we strongly recommend\n" +"# using image_geometry.\n" +"#\n" +"# If the camera is uncalibrated, the matrices D, K, R, P should be left\n" +"# zeroed out. In particular, clients may assume that K[0] == 0.0\n" +"# indicates an uncalibrated camera.\n" +"\n" +"#######################################################################\n" +"# Image acquisition info #\n" +"#######################################################################\n" +"\n" +"# Time of image acquisition, camera coordinate frame ID\n" +"Header header # Header timestamp should be acquisition time of image\n" +" # Header frame_id should be optical frame of camera\n" +" # origin of frame should be optical center of camera\n" +" # +x should point to the right in the image\n" +" # +y should point down in the image\n" +" # +z should point into the plane of the image\n" +"\n" +"\n" +"#######################################################################\n" +"# Calibration Parameters #\n" +"#######################################################################\n" +"# These are fixed during camera calibration. Their values will be the #\n" +"# same in all messages until the camera is recalibrated. Note that #\n" +"# self-calibrating systems may \"recalibrate\" frequently. #\n" +"# #\n" +"# The internal parameters can be used to warp a raw (distorted) image #\n" +"# to: #\n" +"# 1. An undistorted image (requires D and K) #\n" +"# 2. A rectified image (requires D, K, R) #\n" +"# The projection matrix P projects 3D points into the rectified image.#\n" +"#######################################################################\n" +"\n" +"# The image dimensions with which the camera was calibrated. Normally\n" +"# this will be the full camera resolution in pixels.\n" +"uint32 height\n" +"uint32 width\n" +"\n" +"# The distortion model used. Supported models are listed in\n" +"# sensor_msgs/distortion_models.h. For most cameras, \"plumb_bob\" - a\n" +"# simple model of radial and tangential distortion - is sufficient.\n" +"string distortion_model\n" +"\n" +"# The distortion parameters, size depending on the distortion model.\n" +"# For \"plumb_bob\", the 5 parameters are: (k1, k2, t1, t2, k3).\n" +"float64[] D\n" +"\n" +"# Intrinsic camera matrix for the raw (distorted) images.\n" +"# [fx 0 cx]\n" +"# K = [ 0 fy cy]\n" +"# [ 0 0 1]\n" +"# Projects 3D points in the camera coordinate frame to 2D pixel\n" +"# coordinates using the focal lengths (fx, fy) and principal point\n" +"# (cx, cy).\n" +"float64[9] K # 3x3 row-major matrix\n" +"\n" +"# Rectification matrix (stereo cameras only)\n" +"# A rotation matrix aligning the camera coordinate system to the ideal\n" +"# stereo image plane so that epipolar lines in both stereo images are\n" +"# parallel.\n" +"float64[9] R # 3x3 row-major matrix\n" +"\n" +"# Projection/camera matrix\n" +"# [fx' 0 cx' Tx]\n" +"# P = [ 0 fy' cy' Ty]\n" +"# [ 0 0 1 0]\n" +"# By convention, this matrix specifies the intrinsic (camera) matrix\n" +"# of the processed (rectified) image. That is, the left 3x3 portion\n" +"# is the normal camera intrinsic matrix for the rectified image.\n" +"# It projects 3D points in the camera coordinate frame to 2D pixel\n" +"# coordinates using the focal lengths (fx', fy') and principal point\n" +"# (cx', cy') - these may differ from the values in K.\n" +"# For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will\n" +"# also have R = the identity and P[1:3,1:3] = K.\n" +"# For a stereo pair, the fourth column [Tx Ty 0]' is related to the\n" +"# position of the optical center of the second camera in the first\n" +"# camera's frame. We assume Tz = 0 so both cameras are in the same\n" +"# stereo image plane. The first camera always has Tx = Ty = 0. For\n" +"# the right (second) camera of a horizontal stereo pair, Ty = 0 and\n" +"# Tx = -fx' * B, where B is the baseline between the cameras.\n" +"# Given a 3D point [X Y Z]', the projection (x, y) of the point onto\n" +"# the rectified image is given by:\n" +"# [u v w]' = P * [X Y Z 1]'\n" +"# x = u / w\n" +"# y = v / w\n" +"# This holds for both images of a stereo pair.\n" +"float64[12] P # 3x4 row-major matrix\n" +"\n" +"\n" +"#######################################################################\n" +"# Operational Parameters #\n" +"#######################################################################\n" +"# These define the image region actually captured by the camera #\n" +"# driver. Although they affect the geometry of the output image, they #\n" +"# may be changed freely without recalibrating the camera. #\n" +"#######################################################################\n" +"\n" +"# Binning refers here to any camera setting which combines rectangular\n" +"# neighborhoods of pixels into larger \"super-pixels.\" It reduces the\n" +"# resolution of the output image to\n" +"# (width / binning_x) x (height / binning_y).\n" +"# The default values binning_x = binning_y = 0 is considered the same\n" +"# as binning_x = binning_y = 1 (no subsampling).\n" +"uint32 binning_x\n" +"uint32 binning_y\n" +"\n" +"# Region of interest (subwindow of full camera resolution), given in\n" +"# full resolution (unbinned) image coordinates. A particular ROI\n" +"# always denotes the same window of pixels on the camera sensor,\n" +"# regardless of binning settings.\n" +"# The default setting of roi (all values 0) is considered the same as\n" +"# full resolution (roi.width = width, roi.height = height).\n" +"RegionOfInterest roi\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +"\n" +"================================================================================\n" +"MSG: sensor_msgs/RegionOfInterest\n" +"# This message is used to specify a region of interest within an image.\n" +"#\n" +"# When used to specify the ROI setting of the camera when the image was\n" +"# taken, the height and width fields should either match the height and\n" +"# width fields for the associated image; or height = width = 0\n" +"# indicates that the full resolution image was captured.\n" +"\n" +"uint32 x_offset # Leftmost pixel of the ROI\n" +" # (0 if the ROI includes the left edge of the image)\n" +"uint32 y_offset # Topmost pixel of the ROI\n" +" # (0 if the ROI includes the top edge of the image)\n" +"uint32 height # Height of ROI\n" +"uint32 width # Width of ROI\n" +"\n" +"# True if a distinct rectified ROI should be calculated from the \"raw\"\n" +"# ROI in this message. Typically this should be False if the full image\n" +"# is captured (ROI not used), and True if a subwindow is captured (ROI\n" +"# used).\n" +"bool do_rectify\n" +; } static const char* value(const ::sensor_msgs::SetCameraInfoRequest_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/SetCameraInfoResponse.h b/thirdparty/ros/include/sensor_msgs/SetCameraInfoResponse.h index a1cc27c..369361a 100644 --- a/thirdparty/ros/include/sensor_msgs/SetCameraInfoResponse.h +++ b/thirdparty/ros/include/sensor_msgs/SetCameraInfoResponse.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -38,7 +38,7 @@ struct SetCameraInfoResponse_ typedef uint8_t _success_type; _success_type success; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _status_message_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _status_message_type; _status_message_type status_message; @@ -66,6 +66,21 @@ ros::message_operations::Printer< ::sensor_msgs::SetCameraInfoResponse_ +bool operator==(const ::sensor_msgs::SetCameraInfoResponse_ & lhs, const ::sensor_msgs::SetCameraInfoResponse_ & rhs) +{ + return lhs.success == rhs.success && + lhs.status_message == rhs.status_message; +} + +template +bool operator!=(const ::sensor_msgs::SetCameraInfoResponse_ & lhs, const ::sensor_msgs::SetCameraInfoResponse_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -75,23 +90,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::SetCameraInfoResponse_ > @@ -103,6 +102,16 @@ struct IsMessage< ::sensor_msgs::SetCameraInfoResponse_ cons : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::SetCameraInfoResponse_ > : FalseType @@ -143,10 +152,10 @@ struct Definition< ::sensor_msgs::SetCameraInfoResponse_ > { static const char* value() { - return "bool success\n\ -string status_message\n\ -\n\ -"; + return "bool success # True if the call succeeded\n" +"string status_message # Used to give details about success\n" +"\n" +; } static const char* value(const ::sensor_msgs::SetCameraInfoResponse_&) { return value(); } @@ -187,7 +196,7 @@ struct Printer< ::sensor_msgs::SetCameraInfoResponse_ > s << indent << "success: "; Printer::stream(s, indent + " ", v.success); s << indent << "status_message: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.status_message); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.status_message); } }; diff --git a/thirdparty/ros/include/sensor_msgs/Temperature.h b/thirdparty/ros/include/sensor_msgs/Temperature.h index 21a336a..1fa4f7c 100644 --- a/thirdparty/ros/include/sensor_msgs/Temperature.h +++ b/thirdparty/ros/include/sensor_msgs/Temperature.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::Temperature_ +bool operator==(const ::sensor_msgs::Temperature_ & lhs, const ::sensor_msgs::Temperature_ & rhs) +{ + return lhs.header == rhs.header && + lhs.temperature == rhs.temperature && + lhs.variance == rhs.variance; +} + +template +bool operator!=(const ::sensor_msgs::Temperature_ & lhs, const ::sensor_msgs::Temperature_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -81,23 +97,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::Temperature_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::Temperature_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::Temperature_ > @@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::Temperature_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::Temperature_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::Temperature_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::Temperature_ > : TrueType @@ -149,32 +159,30 @@ struct Definition< ::sensor_msgs::Temperature_ > { static const char* value() { - return " # Single temperature reading.\n\ -\n\ - Header header # timestamp is the time the temperature was measured\n\ - # frame_id is the location of the temperature reading\n\ -\n\ - float64 temperature # Measurement of the Temperature in Degrees Celsius\n\ -\n\ - float64 variance # 0 is interpreted as variance unknown\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return " # Single temperature reading.\n" +"\n" +" Header header # timestamp is the time the temperature was measured\n" +" # frame_id is the location of the temperature reading\n" +"\n" +" float64 temperature # Measurement of the Temperature in Degrees Celsius\n" +"\n" +" float64 variance # 0 is interpreted as variance unknown\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::Temperature_&) { return value(); } diff --git a/thirdparty/ros/include/sensor_msgs/TimeReference.h b/thirdparty/ros/include/sensor_msgs/TimeReference.h index cebc141..0108209 100644 --- a/thirdparty/ros/include/sensor_msgs/TimeReference.h +++ b/thirdparty/ros/include/sensor_msgs/TimeReference.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -44,7 +44,7 @@ struct TimeReference_ typedef ros::Time _time_ref_type; _time_ref_type time_ref; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _source_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _source_type; _source_type source; @@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::TimeReference_ +bool operator==(const ::sensor_msgs::TimeReference_ & lhs, const ::sensor_msgs::TimeReference_ & rhs) +{ + return lhs.header == rhs.header && + lhs.time_ref == rhs.time_ref && + lhs.source == rhs.source; +} + +template +bool operator!=(const ::sensor_msgs::TimeReference_ & lhs, const ::sensor_msgs::TimeReference_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace sensor_msgs namespace ros @@ -81,23 +97,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': True} -// {'std_msgs': ['/opt/ros/kinetic/share/std_msgs/cmake/../msg'], 'geometry_msgs': ['/opt/ros/kinetic/share/geometry_msgs/cmake/../msg'], 'sensor_msgs': ['/tmp/binarydeb/ros-kinetic-sensor-msgs-1.12.5/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 -struct IsFixedSize< ::sensor_msgs::TimeReference_ > - : FalseType - { }; - -template -struct IsFixedSize< ::sensor_msgs::TimeReference_ const> - : FalseType - { }; template struct IsMessage< ::sensor_msgs::TimeReference_ > @@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::TimeReference_ const> : TrueType { }; +template +struct IsFixedSize< ::sensor_msgs::TimeReference_ > + : FalseType + { }; + +template +struct IsFixedSize< ::sensor_msgs::TimeReference_ const> + : FalseType + { }; + template struct HasHeader< ::sensor_msgs::TimeReference_ > : TrueType @@ -149,32 +159,30 @@ struct Definition< ::sensor_msgs::TimeReference_ > { static const char* value() { - return "# Measurement from an external time source not actively synchronized with the system clock.\n\ -\n\ -Header header # stamp is system time for which measurement was valid\n\ - # frame_id is not used \n\ -\n\ -time time_ref # corresponding time from this external source\n\ -string source # (optional) name of time source\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/Header\n\ -# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# Measurement from an external time source not actively synchronized with the system clock.\n" +"\n" +"Header header # stamp is system time for which measurement was valid\n" +" # frame_id is not used \n" +"\n" +"time time_ref # corresponding time from this external source\n" +"string source # (optional) name of time source\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/Header\n" +"# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::sensor_msgs::TimeReference_&) { return value(); } @@ -219,7 +227,7 @@ struct Printer< ::sensor_msgs::TimeReference_ > s << indent << "time_ref: "; Printer::stream(s, indent + " ", v.time_ref); s << indent << "source: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.source); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.source); } }; diff --git a/thirdparty/ros/include/sensor_msgs/distortion_models.h b/thirdparty/ros/include/sensor_msgs/distortion_models.h index c42492d..a4c6c90 100644 --- a/thirdparty/ros/include/sensor_msgs/distortion_models.h +++ b/thirdparty/ros/include/sensor_msgs/distortion_models.h @@ -44,6 +44,7 @@ namespace sensor_msgs { const std::string PLUMB_BOB = "plumb_bob"; const std::string RATIONAL_POLYNOMIAL = "rational_polynomial"; + const std::string EQUIDISTANT = "equidistant"; } } diff --git a/thirdparty/ros/include/sensor_msgs/image_encodings.h b/thirdparty/ros/include/sensor_msgs/image_encodings.h index 0180491..e872bba 100644 --- a/thirdparty/ros/include/sensor_msgs/image_encodings.h +++ b/thirdparty/ros/include/sensor_msgs/image_encodings.h @@ -36,6 +36,7 @@ #ifndef SENSOR_MSGS_IMAGE_ENCODINGS_H #define SENSOR_MSGS_IMAGE_ENCODINGS_H +#include #include #include diff --git a/thirdparty/ros/include/sensor_msgs/impl/point_cloud2_iterator.h b/thirdparty/ros/include/sensor_msgs/impl/point_cloud2_iterator.h new file mode 100644 index 0000000..a580102 --- /dev/null +++ b/thirdparty/ros/include/sensor_msgs/impl/point_cloud2_iterator.h @@ -0,0 +1,417 @@ +/* + * Software License Agreement (BSD License) + * + * Copyright (c) 2013, Open Source Robotics Foundation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Open Source Robotics Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SENSOR_MSGS_IMPL_POINT_CLOUD_ITERATOR_H +#define SENSOR_MSGS_IMPL_POINT_CLOUD_ITERATOR_H + +#include +#include +#include +#include +#include + +/** + * \brief Private implementation used by PointCloud2Iterator + * \author Vincent Rabaud + */ + +namespace +{ +/** Return the size of a datatype (which is an enum of sensor_msgs::PointField::) in bytes + * @param datatype one of the enums of sensor_msgs::PointField:: + */ +inline int sizeOfPointField(int datatype) +{ + if ((datatype == sensor_msgs::PointField::INT8) || (datatype == sensor_msgs::PointField::UINT8)) + return 1; + else if ((datatype == sensor_msgs::PointField::INT16) || (datatype == sensor_msgs::PointField::UINT16)) + return 2; + else if ((datatype == sensor_msgs::PointField::INT32) || (datatype == sensor_msgs::PointField::UINT32) || + (datatype == sensor_msgs::PointField::FLOAT32)) + return 4; + else if (datatype == sensor_msgs::PointField::FLOAT64) + return 8; + else + { + std::stringstream err; + err << "PointField of type " << datatype << " does not exist"; + throw std::runtime_error(err.str()); + } + return -1; +} + +/** Private function that adds a PointField to the "fields" member of a PointCloud2 + * @param cloud_msg the PointCloud2 to add a field to + * @param name the name of the field + * @param count the number of elements in the PointField + * @param datatype the datatype of the elements + * @param offset the offset of that element + * @return the offset of the next PointField that will be added to the PointCLoud2 + */ +inline int addPointField(sensor_msgs::PointCloud2 &cloud_msg, const std::string &name, int count, int datatype, + int offset) +{ + sensor_msgs::PointField point_field; + point_field.name = name; + point_field.count = count; + point_field.datatype = datatype; + point_field.offset = offset; + cloud_msg.fields.push_back(point_field); + + // Update the offset + return offset + point_field.count * sizeOfPointField(datatype); +} +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +namespace sensor_msgs +{ + +inline PointCloud2Modifier::PointCloud2Modifier(PointCloud2& cloud_msg) : cloud_msg_(cloud_msg) +{ +} + +inline size_t PointCloud2Modifier::size() const +{ + return cloud_msg_.data.size() / cloud_msg_.point_step; +} + +inline void PointCloud2Modifier::reserve(size_t size) +{ + cloud_msg_.data.reserve(size * cloud_msg_.point_step); +} + +inline void PointCloud2Modifier::resize(size_t size) +{ + cloud_msg_.data.resize(size * cloud_msg_.point_step); + + // Update height/width + if (cloud_msg_.height == 1) { + cloud_msg_.width = size; + cloud_msg_.row_step = size * cloud_msg_.point_step; + } else + if (cloud_msg_.width == 1) + cloud_msg_.height = size; + else { + cloud_msg_.height = 1; + cloud_msg_.width = size; + cloud_msg_.row_step = size * cloud_msg_.point_step; + } +} + +inline void PointCloud2Modifier::clear() +{ + cloud_msg_.data.clear(); + + // Update height/width + if (cloud_msg_.height == 1) + cloud_msg_.row_step = cloud_msg_.width = 0; + else + if (cloud_msg_.width == 1) + cloud_msg_.height = 0; + else + cloud_msg_.row_step = cloud_msg_.width = cloud_msg_.height = 0; +} + + +/** + * @brief Function setting some fields in a PointCloud and adjusting the + * internals of the PointCloud2 + * @param n_fields the number of fields to add. The fields are given as + * triplets: name of the field as char*, number of elements in the + * field, the datatype of the elements in the field + * + * E.g, you create your PointCloud2 message with XYZ/RGB as follows: + *
+ *   setPointCloud2FieldsByString(cloud_msg, 4, "x", 1, sensor_msgs::PointField::FLOAT32,
+ *                                              "y", 1, sensor_msgs::PointField::FLOAT32,
+ *                                              "z", 1, sensor_msgs::PointField::FLOAT32,
+ *                                              "rgb", 1, sensor_msgs::PointField::FLOAT32);
+ * 
+ * WARNING: THIS DOES NOT TAKE INTO ACCOUNT ANY PADDING AS DONE UNTIL HYDRO + * For simple usual cases, the overloaded setPointCloud2FieldsByString is what you want. + */ +inline void PointCloud2Modifier::setPointCloud2Fields(int n_fields, ...) +{ + cloud_msg_.fields.clear(); + cloud_msg_.fields.reserve(n_fields); + va_list vl; + va_start(vl, n_fields); + int offset = 0; + for (int i = 0; i < n_fields; ++i) { + // Create the corresponding PointField + std::string name(va_arg(vl, char*)); + int count(va_arg(vl, int)); + int datatype(va_arg(vl, int)); + offset = addPointField(cloud_msg_, name, count, datatype, offset); + } + va_end(vl); + + // Resize the point cloud accordingly + cloud_msg_.point_step = offset; + cloud_msg_.row_step = cloud_msg_.width * cloud_msg_.point_step; + cloud_msg_.data.resize(cloud_msg_.height * cloud_msg_.row_step); +} + +/** + * @brief Function setting some fields in a PointCloud and adjusting the + * internals of the PointCloud2 + * @param n_fields the number of fields to add. The fields are given as + * strings: "xyz" (3 floats), "rgb" (3 uchar stacked in a float), + * "rgba" (4 uchar stacked in a float) + * @return void + * + * WARNING: THIS FUNCTION DOES ADD ANY NECESSARY PADDING TRANSPARENTLY + */ +inline void PointCloud2Modifier::setPointCloud2FieldsByString(int n_fields, ...) +{ + cloud_msg_.fields.clear(); + cloud_msg_.fields.reserve(n_fields); + va_list vl; + va_start(vl, n_fields); + int offset = 0; + for (int i = 0; i < n_fields; ++i) { + // Create the corresponding PointFields + std::string + field_name = std::string(va_arg(vl, char*)); + if (field_name == "xyz") { + sensor_msgs::PointField point_field; + // Do x, y and z + offset = addPointField(cloud_msg_, "x", 1, sensor_msgs::PointField::FLOAT32, offset); + offset = addPointField(cloud_msg_, "y", 1, sensor_msgs::PointField::FLOAT32, offset); + offset = addPointField(cloud_msg_, "z", 1, sensor_msgs::PointField::FLOAT32, offset); + offset += sizeOfPointField(sensor_msgs::PointField::FLOAT32); + } else + if ((field_name == "rgb") || (field_name == "rgba")) { + offset = addPointField(cloud_msg_, field_name, 1, sensor_msgs::PointField::FLOAT32, offset); + offset += 3 * sizeOfPointField(sensor_msgs::PointField::FLOAT32); + } else + throw std::runtime_error("Field " + field_name + " does not exist"); + } + va_end(vl); + + // Resize the point cloud accordingly + cloud_msg_.point_step = offset; + cloud_msg_.row_step = cloud_msg_.width * cloud_msg_.point_step; + cloud_msg_.data.resize(cloud_msg_.height * cloud_msg_.row_step); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +namespace impl +{ + +/** + */ +template class V> +PointCloud2IteratorBase::PointCloud2IteratorBase() : data_char_(0), data_(0), data_end_(0) +{ +} + +/** + * @param cloud_msg_ The PointCloud2 to iterate upon + * @param field_name The field to iterate upon + */ +template class V> +PointCloud2IteratorBase::PointCloud2IteratorBase(C &cloud_msg, const std::string &field_name) +{ + int offset = set_field(cloud_msg, field_name); + + data_char_ = &(cloud_msg.data.front()) + offset; + data_ = reinterpret_cast(data_char_); + data_end_ = reinterpret_cast(&(cloud_msg.data.back()) + 1 + offset); +} + +/** Assignment operator + * @param iter the iterator to copy data from + * @return a reference to *this + */ +template class V> +V& PointCloud2IteratorBase::operator =(const V &iter) +{ + if (this != &iter) + { + point_step_ = iter.point_step_; + data_char_ = iter.data_char_; + data_ = iter.data_; + data_end_ = iter.data_end_; + is_bigendian_ = iter.is_bigendian_; + } + + return *this; +} + +/** Access the i th element starting at the current pointer (useful when a field has several elements of the same + * type) + * @param i + * @return a reference to the i^th value from the current position + */ +template class V> +TT& PointCloud2IteratorBase::operator [](size_t i) const +{ + return *(data_ + i); +} + +/** Dereference the iterator. Equivalent to accessing it through [0] + * @return the value to which the iterator is pointing + */ +template class V> +TT& PointCloud2IteratorBase::operator *() const +{ + return *data_; +} + +/** Increase the iterator to the next element + * @return a reference to the updated iterator + */ +template class V> +V& PointCloud2IteratorBase::operator ++() +{ + data_char_ += point_step_; + data_ = reinterpret_cast(data_char_); + return *static_cast*>(this); +} + +/** Basic pointer addition + * @param i the amount to increase the iterator by + * @return an iterator with an increased position + */ +template class V> +V PointCloud2IteratorBase::operator +(int i) +{ + V res = *static_cast*>(this); + + res.data_char_ += i*point_step_; + res.data_ = reinterpret_cast(res.data_char_); + + return res; +} + +/** Increase the iterator by a certain amount + * @return a reference to the updated iterator + */ +template class V> +V& PointCloud2IteratorBase::operator +=(int i) +{ + data_char_ += i*point_step_; + data_ = reinterpret_cast(data_char_); + return *static_cast*>(this); +} + +/** Compare to another iterator + * @return whether the current iterator points to a different address than the other one + */ +template class V> +bool PointCloud2IteratorBase::operator !=(const V& iter) const +{ + return iter.data_ != data_; +} + +/** Return the end iterator + * @return the end iterator (useful when performing normal iterator processing with ++) + */ +template class V> +V PointCloud2IteratorBase::end() const +{ + V res = *static_cast*>(this); + res.data_ = data_end_; + return res; +} + +/** Common code to set the field of the PointCloud2 + * @param cloud_msg the PointCloud2 to modify + * @param field_name the name of the field to iterate upon + * @return the offset at which the field is found + */ +template class V> +int PointCloud2IteratorBase::set_field(const sensor_msgs::PointCloud2 &cloud_msg, const std::string &field_name) +{ + is_bigendian_ = cloud_msg.is_bigendian; + point_step_ = cloud_msg.point_step; + // make sure the channel is valid + std::vector::const_iterator field_iter = cloud_msg.fields.begin(), field_end = + cloud_msg.fields.end(); + while ((field_iter != field_end) && (field_iter->name != field_name)) + ++field_iter; + + if (field_iter == field_end) { + // Handle the special case of r,g,b,a (we assume they are understood as the channels of an rgb or rgba field) + if ((field_name == "r") || (field_name == "g") || (field_name == "b") || (field_name == "a")) + { + // Check that rgb or rgba is present + field_iter = cloud_msg.fields.begin(); + while ((field_iter != field_end) && (field_iter->name != "rgb") && (field_iter->name != "rgba")) + ++field_iter; + if (field_iter == field_end) + throw std::runtime_error("Field " + field_name + " does not exist"); + if (field_name == "r") + { + if (is_bigendian_) + return field_iter->offset + 1; + else + return field_iter->offset + 2; + } + if (field_name == "g") + { + if (is_bigendian_) + return field_iter->offset + 2; + else + return field_iter->offset + 1; + } + if (field_name == "b") + { + if (is_bigendian_) + return field_iter->offset + 3; + else + return field_iter->offset + 0; + } + if (field_name == "a") + { + if (is_bigendian_) + return field_iter->offset + 0; + else + return field_iter->offset + 3; + } + } else + throw std::runtime_error("Field " + field_name + " does not exist"); + } + + return field_iter->offset; +} + +} +} + +#endif// SENSOR_MSGS_IMPL_POINT_CLOUD_ITERATOR_H diff --git a/thirdparty/ros/include/sensor_msgs/point_field_conversion.h b/thirdparty/ros/include/sensor_msgs/point_field_conversion.h index 473b853..0fe59e1 100644 --- a/thirdparty/ros/include/sensor_msgs/point_field_conversion.h +++ b/thirdparty/ros/include/sensor_msgs/point_field_conversion.h @@ -120,6 +120,8 @@ namespace sensor_msgs{ case sensor_msgs::PointField::FLOAT64: return readPointCloud2BufferValue(data_ptr); } + // This should never be reached, but return statement added to avoid compiler warning. (#84) + return T(); } /*! diff --git a/thirdparty/ros/include/std_msgs/Bool.h b/thirdparty/ros/include/std_msgs/Bool.h index 951197f..338019c 100644 --- a/thirdparty/ros/include/std_msgs/Bool.h +++ b/thirdparty/ros/include/std_msgs/Bool.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Bool_ >::strea return s; } + +template +bool operator==(const ::std_msgs::Bool_ & lhs, const ::std_msgs::Bool_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Bool_ & lhs, const ::std_msgs::Bool_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Bool_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Bool_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Bool_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Bool_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Bool_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Bool_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Bool_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Bool_ > { static const char* value() { - return "bool data\n\ -"; + return "bool data\n" +; } static const char* value(const ::std_msgs::Bool_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Byte.h b/thirdparty/ros/include/std_msgs/Byte.h index 2f131e8..b2cc751 100644 --- a/thirdparty/ros/include/std_msgs/Byte.h +++ b/thirdparty/ros/include/std_msgs/Byte.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Byte_ >::strea return s; } + +template +bool operator==(const ::std_msgs::Byte_ & lhs, const ::std_msgs::Byte_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Byte_ & lhs, const ::std_msgs::Byte_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Byte_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Byte_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Byte_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Byte_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Byte_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Byte_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Byte_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Byte_ > { static const char* value() { - return "byte data\n\ -"; + return "byte data\n" +; } static const char* value(const ::std_msgs::Byte_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/ByteMultiArray.h b/thirdparty/ros/include/std_msgs/ByteMultiArray.h index 0594ad2..0049629 100644 --- a/thirdparty/ros/include/std_msgs/ByteMultiArray.h +++ b/thirdparty/ros/include/std_msgs/ByteMultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct ByteMultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::ByteMultiArray_ +bool operator==(const ::std_msgs::ByteMultiArray_ & lhs, const ::std_msgs::ByteMultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::ByteMultiArray_ & lhs, const ::std_msgs::ByteMultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::ByteMultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::ByteMultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::ByteMultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::ByteMultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::ByteMultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::ByteMultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::ByteMultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::ByteMultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -byte[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"byte[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::ByteMultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Char.h b/thirdparty/ros/include/std_msgs/Char.h index c743fcc..d1025bb 100644 --- a/thirdparty/ros/include/std_msgs/Char.h +++ b/thirdparty/ros/include/std_msgs/Char.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Char_ >::strea return s; } + +template +bool operator==(const ::std_msgs::Char_ & lhs, const ::std_msgs::Char_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Char_ & lhs, const ::std_msgs::Char_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Char_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Char_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Char_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Char_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Char_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Char_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Char_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Char_ > { static const char* value() { - return "char data\n\ -"; + return "char data\n" +; } static const char* value(const ::std_msgs::Char_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/ColorRGBA.h b/thirdparty/ros/include/std_msgs/ColorRGBA.h index 8dcef5b..cde1516 100644 --- a/thirdparty/ros/include/std_msgs/ColorRGBA.h +++ b/thirdparty/ros/include/std_msgs/ColorRGBA.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -76,6 +76,23 @@ ros::message_operations::Printer< ::std_msgs::ColorRGBA_ >:: return s; } + +template +bool operator==(const ::std_msgs::ColorRGBA_ & lhs, const ::std_msgs::ColorRGBA_ & rhs) +{ + return lhs.r == rhs.r && + lhs.g == rhs.g && + lhs.b == rhs.b && + lhs.a == rhs.a; +} + +template +bool operator!=(const ::std_msgs::ColorRGBA_ & lhs, const ::std_msgs::ColorRGBA_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -85,23 +102,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::ColorRGBA_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::ColorRGBA_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::ColorRGBA_ > @@ -113,6 +114,16 @@ struct IsMessage< ::std_msgs::ColorRGBA_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::ColorRGBA_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::ColorRGBA_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::ColorRGBA_ > : FalseType @@ -153,11 +164,11 @@ struct Definition< ::std_msgs::ColorRGBA_ > { static const char* value() { - return "float32 r\n\ -float32 g\n\ -float32 b\n\ -float32 a\n\ -"; + return "float32 r\n" +"float32 g\n" +"float32 b\n" +"float32 a\n" +; } static const char* value(const ::std_msgs::ColorRGBA_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Duration.h b/thirdparty/ros/include/std_msgs/Duration.h index 40319b5..c1e842b 100644 --- a/thirdparty/ros/include/std_msgs/Duration.h +++ b/thirdparty/ros/include/std_msgs/Duration.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Duration_ >::s return s; } + +template +bool operator==(const ::std_msgs::Duration_ & lhs, const ::std_msgs::Duration_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Duration_ & lhs, const ::std_msgs::Duration_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Duration_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Duration_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Duration_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Duration_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Duration_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Duration_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Duration_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Duration_ > { static const char* value() { - return "duration data\n\ -"; + return "duration data\n" +; } static const char* value(const ::std_msgs::Duration_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Empty.h b/thirdparty/ros/include/std_msgs/Empty.h index cb0bacc..eda9804 100644 --- a/thirdparty/ros/include/std_msgs/Empty.h +++ b/thirdparty/ros/include/std_msgs/Empty.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -58,6 +58,7 @@ ros::message_operations::Printer< ::std_msgs::Empty_ >::stre return s; } + } // namespace std_msgs namespace ros @@ -67,23 +68,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Empty_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Empty_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Empty_ > @@ -95,6 +80,16 @@ struct IsMessage< ::std_msgs::Empty_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Empty_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Empty_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Empty_ > : FalseType @@ -135,8 +130,8 @@ struct Definition< ::std_msgs::Empty_ > { static const char* value() { - return "\n\ -"; + return "\n" +; } static const char* value(const ::std_msgs::Empty_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Float32.h b/thirdparty/ros/include/std_msgs/Float32.h index 0ac3fa1..8465187 100644 --- a/thirdparty/ros/include/std_msgs/Float32.h +++ b/thirdparty/ros/include/std_msgs/Float32.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Float32_ >::st return s; } + +template +bool operator==(const ::std_msgs::Float32_ & lhs, const ::std_msgs::Float32_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Float32_ & lhs, const ::std_msgs::Float32_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Float32_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Float32_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Float32_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Float32_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Float32_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Float32_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Float32_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Float32_ > { static const char* value() { - return "float32 data\n\ -"; + return "float32 data\n" +; } static const char* value(const ::std_msgs::Float32_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Float32MultiArray.h b/thirdparty/ros/include/std_msgs/Float32MultiArray.h index dfd1fa6..78522d5 100644 --- a/thirdparty/ros/include/std_msgs/Float32MultiArray.h +++ b/thirdparty/ros/include/std_msgs/Float32MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct Float32MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Float32MultiArray_ +bool operator==(const ::std_msgs::Float32MultiArray_ & lhs, const ::std_msgs::Float32MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Float32MultiArray_ & lhs, const ::std_msgs::Float32MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Float32MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::Float32MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::Float32MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Float32MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Float32MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::Float32MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::Float32MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Float32MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -float32[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"float32[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::Float32MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Float64.h b/thirdparty/ros/include/std_msgs/Float64.h index d038016..7c441f3 100644 --- a/thirdparty/ros/include/std_msgs/Float64.h +++ b/thirdparty/ros/include/std_msgs/Float64.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Float64_ >::st return s; } + +template +bool operator==(const ::std_msgs::Float64_ & lhs, const ::std_msgs::Float64_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Float64_ & lhs, const ::std_msgs::Float64_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Float64_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Float64_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Float64_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Float64_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Float64_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Float64_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Float64_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Float64_ > { static const char* value() { - return "float64 data\n\ -"; + return "float64 data\n" +; } static const char* value(const ::std_msgs::Float64_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Float64MultiArray.h b/thirdparty/ros/include/std_msgs/Float64MultiArray.h index 62683b3..6fa5fba 100644 --- a/thirdparty/ros/include/std_msgs/Float64MultiArray.h +++ b/thirdparty/ros/include/std_msgs/Float64MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct Float64MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Float64MultiArray_ +bool operator==(const ::std_msgs::Float64MultiArray_ & lhs, const ::std_msgs::Float64MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Float64MultiArray_ & lhs, const ::std_msgs::Float64MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Float64MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::Float64MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::Float64MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Float64MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Float64MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::Float64MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::Float64MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Float64MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -float64[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"float64[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::Float64MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Header.h b/thirdparty/ros/include/std_msgs/Header.h index f8daebe..4c01202 100644 --- a/thirdparty/ros/include/std_msgs/Header.h +++ b/thirdparty/ros/include/std_msgs/Header.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -43,7 +43,7 @@ struct Header_ typedef ros::Time _stamp_type; _stamp_type stamp; - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _frame_id_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _frame_id_type; _frame_id_type frame_id; @@ -71,6 +71,22 @@ ros::message_operations::Printer< ::std_msgs::Header_ >::str return s; } + +template +bool operator==(const ::std_msgs::Header_ & lhs, const ::std_msgs::Header_ & rhs) +{ + return lhs.seq == rhs.seq && + lhs.stamp == rhs.stamp && + lhs.frame_id == rhs.frame_id; +} + +template +bool operator!=(const ::std_msgs::Header_ & lhs, const ::std_msgs::Header_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -80,23 +96,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Header_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::Header_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::Header_ > @@ -108,6 +108,16 @@ struct IsMessage< ::std_msgs::Header_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Header_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::Header_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::Header_ > : FalseType @@ -148,22 +158,20 @@ struct Definition< ::std_msgs::Header_ > { static const char* value() { - return "# Standard metadata for higher-level stamped data types.\n\ -# This is generally used to communicate timestamped data \n\ -# in a particular coordinate frame.\n\ -# \n\ -# sequence ID: consecutively increasing ID \n\ -uint32 seq\n\ -#Two-integer timestamp that is expressed as:\n\ -# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ -# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ -# time-handling sugar is provided by the client library\n\ -time stamp\n\ -#Frame this data is associated with\n\ -# 0: no frame\n\ -# 1: global frame\n\ -string frame_id\n\ -"; + return "# Standard metadata for higher-level stamped data types.\n" +"# This is generally used to communicate timestamped data \n" +"# in a particular coordinate frame.\n" +"# \n" +"# sequence ID: consecutively increasing ID \n" +"uint32 seq\n" +"#Two-integer timestamp that is expressed as:\n" +"# * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n" +"# * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n" +"# time-handling sugar is provided by the client library\n" +"time stamp\n" +"#Frame this data is associated with\n" +"string frame_id\n" +; } static const char* value(const ::std_msgs::Header_&) { return value(); } @@ -207,7 +215,7 @@ struct Printer< ::std_msgs::Header_ > s << indent << "stamp: "; Printer::stream(s, indent + " ", v.stamp); s << indent << "frame_id: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.frame_id); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.frame_id); } }; diff --git a/thirdparty/ros/include/std_msgs/Int16.h b/thirdparty/ros/include/std_msgs/Int16.h index 2fae55c..f9322dd 100644 --- a/thirdparty/ros/include/std_msgs/Int16.h +++ b/thirdparty/ros/include/std_msgs/Int16.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int16_ >::stre return s; } + +template +bool operator==(const ::std_msgs::Int16_ & lhs, const ::std_msgs::Int16_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int16_ & lhs, const ::std_msgs::Int16_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int16_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Int16_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Int16_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int16_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int16_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Int16_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Int16_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int16_ > { static const char* value() { - return "int16 data\n\ -"; + return "int16 data\n" +; } static const char* value(const ::std_msgs::Int16_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Int16MultiArray.h b/thirdparty/ros/include/std_msgs/Int16MultiArray.h index cc57fed..82ac824 100644 --- a/thirdparty/ros/include/std_msgs/Int16MultiArray.h +++ b/thirdparty/ros/include/std_msgs/Int16MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct Int16MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int16MultiArray_ +bool operator==(const ::std_msgs::Int16MultiArray_ & lhs, const ::std_msgs::Int16MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int16MultiArray_ & lhs, const ::std_msgs::Int16MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int16MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::Int16MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::Int16MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int16MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int16MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::Int16MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::Int16MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int16MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -int16[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"int16[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::Int16MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Int32.h b/thirdparty/ros/include/std_msgs/Int32.h index 2c03215..07b90a3 100644 --- a/thirdparty/ros/include/std_msgs/Int32.h +++ b/thirdparty/ros/include/std_msgs/Int32.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int32_ >::stre return s; } + +template +bool operator==(const ::std_msgs::Int32_ & lhs, const ::std_msgs::Int32_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int32_ & lhs, const ::std_msgs::Int32_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int32_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Int32_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Int32_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int32_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int32_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Int32_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Int32_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int32_ > { static const char* value() { - return "int32 data\n\ -"; + return "int32 data\n" +; } static const char* value(const ::std_msgs::Int32_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Int32MultiArray.h b/thirdparty/ros/include/std_msgs/Int32MultiArray.h index 47deadb..2b35eea 100644 --- a/thirdparty/ros/include/std_msgs/Int32MultiArray.h +++ b/thirdparty/ros/include/std_msgs/Int32MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct Int32MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int32MultiArray_ +bool operator==(const ::std_msgs::Int32MultiArray_ & lhs, const ::std_msgs::Int32MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int32MultiArray_ & lhs, const ::std_msgs::Int32MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int32MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::Int32MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::Int32MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int32MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int32MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::Int32MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::Int32MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int32MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -int32[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"int32[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::Int32MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Int64.h b/thirdparty/ros/include/std_msgs/Int64.h index d53ed02..6993d18 100644 --- a/thirdparty/ros/include/std_msgs/Int64.h +++ b/thirdparty/ros/include/std_msgs/Int64.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int64_ >::stre return s; } + +template +bool operator==(const ::std_msgs::Int64_ & lhs, const ::std_msgs::Int64_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int64_ & lhs, const ::std_msgs::Int64_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int64_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Int64_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Int64_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int64_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int64_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Int64_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Int64_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int64_ > { static const char* value() { - return "int64 data\n\ -"; + return "int64 data\n" +; } static const char* value(const ::std_msgs::Int64_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Int64MultiArray.h b/thirdparty/ros/include/std_msgs/Int64MultiArray.h index 0c209a1..6635224 100644 --- a/thirdparty/ros/include/std_msgs/Int64MultiArray.h +++ b/thirdparty/ros/include/std_msgs/Int64MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct Int64MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int64MultiArray_ +bool operator==(const ::std_msgs::Int64MultiArray_ & lhs, const ::std_msgs::Int64MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int64MultiArray_ & lhs, const ::std_msgs::Int64MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int64MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::Int64MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::Int64MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int64MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int64MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::Int64MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::Int64MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int64MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -int64[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"int64[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::Int64MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Int8.h b/thirdparty/ros/include/std_msgs/Int8.h index 4c1f164..60372dc 100644 --- a/thirdparty/ros/include/std_msgs/Int8.h +++ b/thirdparty/ros/include/std_msgs/Int8.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int8_ >::strea return s; } + +template +bool operator==(const ::std_msgs::Int8_ & lhs, const ::std_msgs::Int8_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int8_ & lhs, const ::std_msgs::Int8_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int8_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Int8_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Int8_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int8_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int8_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Int8_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Int8_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int8_ > { static const char* value() { - return "int8 data\n\ -"; + return "int8 data\n" +; } static const char* value(const ::std_msgs::Int8_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/Int8MultiArray.h b/thirdparty/ros/include/std_msgs/Int8MultiArray.h index 3784d3b..609d48b 100644 --- a/thirdparty/ros/include/std_msgs/Int8MultiArray.h +++ b/thirdparty/ros/include/std_msgs/Int8MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct Int8MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int8MultiArray_ +bool operator==(const ::std_msgs::Int8MultiArray_ & lhs, const ::std_msgs::Int8MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Int8MultiArray_ & lhs, const ::std_msgs::Int8MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Int8MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::Int8MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::Int8MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int8MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Int8MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::Int8MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::Int8MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int8MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -int8[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"int8[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::Int8MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/MultiArrayDimension.h b/thirdparty/ros/include/std_msgs/MultiArrayDimension.h index 94bfdc6..4e64af8 100644 --- a/thirdparty/ros/include/std_msgs/MultiArrayDimension.h +++ b/thirdparty/ros/include/std_msgs/MultiArrayDimension.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -37,7 +37,7 @@ struct MultiArrayDimension_ - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _label_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _label_type; _label_type label; typedef uint32_t _size_type; @@ -71,6 +71,22 @@ ros::message_operations::Printer< ::std_msgs::MultiArrayDimension_ +bool operator==(const ::std_msgs::MultiArrayDimension_ & lhs, const ::std_msgs::MultiArrayDimension_ & rhs) +{ + return lhs.label == rhs.label && + lhs.size == rhs.size && + lhs.stride == rhs.stride; +} + +template +bool operator!=(const ::std_msgs::MultiArrayDimension_ & lhs, const ::std_msgs::MultiArrayDimension_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -80,23 +96,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::MultiArrayDimension_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::MultiArrayDimension_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::MultiArrayDimension_ > @@ -108,6 +108,16 @@ struct IsMessage< ::std_msgs::MultiArrayDimension_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::MultiArrayDimension_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::MultiArrayDimension_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::MultiArrayDimension_ > : FalseType @@ -148,10 +158,10 @@ struct Definition< ::std_msgs::MultiArrayDimension_ > { static const char* value() { - return "string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::MultiArrayDimension_&) { return value(); } @@ -191,7 +201,7 @@ struct Printer< ::std_msgs::MultiArrayDimension_ > template static void stream(Stream& s, const std::string& indent, const ::std_msgs::MultiArrayDimension_& v) { s << indent << "label: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.label); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.label); s << indent << "size: "; Printer::stream(s, indent + " ", v.size); s << indent << "stride: "; diff --git a/thirdparty/ros/include/std_msgs/MultiArrayLayout.h b/thirdparty/ros/include/std_msgs/MultiArrayLayout.h index 3b73764..3b8cd35 100644 --- a/thirdparty/ros/include/std_msgs/MultiArrayLayout.h +++ b/thirdparty/ros/include/std_msgs/MultiArrayLayout.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -36,7 +36,7 @@ struct MultiArrayLayout_ - typedef std::vector< ::std_msgs::MultiArrayDimension_ , typename ContainerAllocator::template rebind< ::std_msgs::MultiArrayDimension_ >::other > _dim_type; + typedef std::vector< ::std_msgs::MultiArrayDimension_ , typename std::allocator_traits::template rebind_alloc< ::std_msgs::MultiArrayDimension_ >> _dim_type; _dim_type dim; typedef uint32_t _data_offset_type; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::MultiArrayLayout_ +bool operator==(const ::std_msgs::MultiArrayLayout_ & lhs, const ::std_msgs::MultiArrayLayout_ & rhs) +{ + return lhs.dim == rhs.dim && + lhs.data_offset == rhs.data_offset; +} + +template +bool operator!=(const ::std_msgs::MultiArrayLayout_ & lhs, const ::std_msgs::MultiArrayLayout_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::MultiArrayLayout_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::MultiArrayLayout_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::MultiArrayLayout_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::MultiArrayLayout_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::MultiArrayLayout_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::MultiArrayLayout_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::MultiArrayLayout_ > : FalseType @@ -144,39 +153,39 @@ struct Definition< ::std_msgs::MultiArrayLayout_ > { static const char* value() { - return "# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::MultiArrayLayout_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/String.h b/thirdparty/ros/include/std_msgs/String.h index d73c8e1..cad7a52 100644 --- a/thirdparty/ros/include/std_msgs/String.h +++ b/thirdparty/ros/include/std_msgs/String.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -33,7 +33,7 @@ struct String_ - typedef std::basic_string, typename ContainerAllocator::template rebind::other > _data_type; + typedef std::basic_string, typename std::allocator_traits::template rebind_alloc> _data_type; _data_type data; @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::String_ >::str return s; } + +template +bool operator==(const ::std_msgs::String_ & lhs, const ::std_msgs::String_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::String_ & lhs, const ::std_msgs::String_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::String_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::String_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::String_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::String_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::String_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::String_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::String_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::String_ > { static const char* value() { - return "string data\n\ -"; + return "string data\n" +; } static const char* value(const ::std_msgs::String_&) { return value(); } @@ -177,7 +185,7 @@ struct Printer< ::std_msgs::String_ > template static void stream(Stream& s, const std::string& indent, const ::std_msgs::String_& v) { s << indent << "data: "; - Printer, typename ContainerAllocator::template rebind::other > >::stream(s, indent + " ", v.data); + Printer, typename std::allocator_traits::template rebind_alloc>>::stream(s, indent + " ", v.data); } }; diff --git a/thirdparty/ros/include/std_msgs/Time.h b/thirdparty/ros/include/std_msgs/Time.h index e47fec4..9e7bea9 100644 --- a/thirdparty/ros/include/std_msgs/Time.h +++ b/thirdparty/ros/include/std_msgs/Time.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Time_ >::strea return s; } + +template +bool operator==(const ::std_msgs::Time_ & lhs, const ::std_msgs::Time_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::Time_ & lhs, const ::std_msgs::Time_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::Time_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::Time_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::Time_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Time_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::Time_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::Time_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::Time_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Time_ > { static const char* value() { - return "time data\n\ -"; + return "time data\n" +; } static const char* value(const ::std_msgs::Time_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt16.h b/thirdparty/ros/include/std_msgs/UInt16.h index 377ae13..8bc37cc 100644 --- a/thirdparty/ros/include/std_msgs/UInt16.h +++ b/thirdparty/ros/include/std_msgs/UInt16.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::UInt16_ >::str return s; } + +template +bool operator==(const ::std_msgs::UInt16_ & lhs, const ::std_msgs::UInt16_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt16_ & lhs, const ::std_msgs::UInt16_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt16_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt16_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::UInt16_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::UInt16_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt16_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt16_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::UInt16_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::UInt16_ > { static const char* value() { - return "uint16 data\n\ -"; + return "uint16 data\n" +; } static const char* value(const ::std_msgs::UInt16_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt16MultiArray.h b/thirdparty/ros/include/std_msgs/UInt16MultiArray.h index a8deaeb..8cc1da5 100644 --- a/thirdparty/ros/include/std_msgs/UInt16MultiArray.h +++ b/thirdparty/ros/include/std_msgs/UInt16MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct UInt16MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::UInt16MultiArray_ +bool operator==(const ::std_msgs::UInt16MultiArray_ & lhs, const ::std_msgs::UInt16MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt16MultiArray_ & lhs, const ::std_msgs::UInt16MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt16MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt16MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::UInt16MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::UInt16MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt16MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt16MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::UInt16MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::UInt16MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -uint16[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"uint16[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::UInt16MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt32.h b/thirdparty/ros/include/std_msgs/UInt32.h index 2d9f745..b7a3c4c 100644 --- a/thirdparty/ros/include/std_msgs/UInt32.h +++ b/thirdparty/ros/include/std_msgs/UInt32.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::UInt32_ >::str return s; } + +template +bool operator==(const ::std_msgs::UInt32_ & lhs, const ::std_msgs::UInt32_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt32_ & lhs, const ::std_msgs::UInt32_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt32_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt32_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::UInt32_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::UInt32_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt32_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt32_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::UInt32_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::UInt32_ > { static const char* value() { - return "uint32 data\n\ -"; + return "uint32 data\n" +; } static const char* value(const ::std_msgs::UInt32_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt32MultiArray.h b/thirdparty/ros/include/std_msgs/UInt32MultiArray.h index 2fd8f3a..ec63286 100644 --- a/thirdparty/ros/include/std_msgs/UInt32MultiArray.h +++ b/thirdparty/ros/include/std_msgs/UInt32MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct UInt32MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::UInt32MultiArray_ +bool operator==(const ::std_msgs::UInt32MultiArray_ & lhs, const ::std_msgs::UInt32MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt32MultiArray_ & lhs, const ::std_msgs::UInt32MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt32MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt32MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::UInt32MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::UInt32MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt32MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt32MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::UInt32MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::UInt32MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -uint32[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"uint32[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::UInt32MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt64.h b/thirdparty/ros/include/std_msgs/UInt64.h index 448393d..23c7217 100644 --- a/thirdparty/ros/include/std_msgs/UInt64.h +++ b/thirdparty/ros/include/std_msgs/UInt64.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::UInt64_ >::str return s; } + +template +bool operator==(const ::std_msgs::UInt64_ & lhs, const ::std_msgs::UInt64_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt64_ & lhs, const ::std_msgs::UInt64_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt64_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt64_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::UInt64_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::UInt64_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt64_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt64_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::UInt64_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::UInt64_ > { static const char* value() { - return "uint64 data\n\ -"; + return "uint64 data\n" +; } static const char* value(const ::std_msgs::UInt64_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt64MultiArray.h b/thirdparty/ros/include/std_msgs/UInt64MultiArray.h index 28ac539..6c2d85d 100644 --- a/thirdparty/ros/include/std_msgs/UInt64MultiArray.h +++ b/thirdparty/ros/include/std_msgs/UInt64MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct UInt64MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::UInt64MultiArray_ +bool operator==(const ::std_msgs::UInt64MultiArray_ & lhs, const ::std_msgs::UInt64MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt64MultiArray_ & lhs, const ::std_msgs::UInt64MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt64MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt64MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::UInt64MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::UInt64MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt64MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt64MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::UInt64MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::UInt64MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -uint64[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"uint64[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::UInt64MultiArray_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt8.h b/thirdparty/ros/include/std_msgs/UInt8.h index e698e5f..fe42c6d 100644 --- a/thirdparty/ros/include/std_msgs/UInt8.h +++ b/thirdparty/ros/include/std_msgs/UInt8.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::UInt8_ >::stre return s; } + +template +bool operator==(const ::std_msgs::UInt8_ & lhs, const ::std_msgs::UInt8_ & rhs) +{ + return lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt8_ & lhs, const ::std_msgs::UInt8_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -70,23 +84,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': True, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt8_ > - : TrueType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt8_ const> - : TrueType - { }; template struct IsMessage< ::std_msgs::UInt8_ > @@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::UInt8_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt8_ > + : TrueType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt8_ const> + : TrueType + { }; + template struct HasHeader< ::std_msgs::UInt8_ > : FalseType @@ -138,8 +146,8 @@ struct Definition< ::std_msgs::UInt8_ > { static const char* value() { - return "uint8 data\n\ -"; + return "uint8 data\n" +; } static const char* value(const ::std_msgs::UInt8_&) { return value(); } diff --git a/thirdparty/ros/include/std_msgs/UInt8MultiArray.h b/thirdparty/ros/include/std_msgs/UInt8MultiArray.h index a185aa0..067f983 100644 --- a/thirdparty/ros/include/std_msgs/UInt8MultiArray.h +++ b/thirdparty/ros/include/std_msgs/UInt8MultiArray.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include @@ -39,7 +39,7 @@ struct UInt8MultiArray_ typedef ::std_msgs::MultiArrayLayout_ _layout_type; _layout_type layout; - typedef std::vector::other > _data_type; + typedef std::vector::template rebind_alloc> _data_type; _data_type data; @@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::UInt8MultiArray_ +bool operator==(const ::std_msgs::UInt8MultiArray_ & lhs, const ::std_msgs::UInt8MultiArray_ & rhs) +{ + return lhs.layout == rhs.layout && + lhs.data == rhs.data; +} + +template +bool operator!=(const ::std_msgs::UInt8MultiArray_ & lhs, const ::std_msgs::UInt8MultiArray_ & rhs) +{ + return !(lhs == rhs); +} + + } // namespace std_msgs namespace ros @@ -76,23 +91,7 @@ namespace message_traits -// BOOLTRAITS {'IsFixedSize': False, 'IsMessage': True, 'HasHeader': False} -// {'std_msgs': ['/tmp/binarydeb/ros-kinetic-std-msgs-0.5.11/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 -struct IsFixedSize< ::std_msgs::UInt8MultiArray_ > - : FalseType - { }; - -template -struct IsFixedSize< ::std_msgs::UInt8MultiArray_ const> - : FalseType - { }; template struct IsMessage< ::std_msgs::UInt8MultiArray_ > @@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::UInt8MultiArray_ const> : TrueType { }; +template +struct IsFixedSize< ::std_msgs::UInt8MultiArray_ > + : FalseType + { }; + +template +struct IsFixedSize< ::std_msgs::UInt8MultiArray_ const> + : FalseType + { }; + template struct HasHeader< ::std_msgs::UInt8MultiArray_ > : FalseType @@ -144,48 +153,48 @@ struct Definition< ::std_msgs::UInt8MultiArray_ > { static const char* value() { - return "# Please look at the MultiArrayLayout message definition for\n\ -# documentation on all multiarrays.\n\ -\n\ -MultiArrayLayout layout # specification of data layout\n\ -uint8[] data # array of data\n\ -\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayLayout\n\ -# The multiarray declares a generic multi-dimensional array of a\n\ -# particular data type. Dimensions are ordered from outer most\n\ -# to inner most.\n\ -\n\ -MultiArrayDimension[] dim # Array of dimension properties\n\ -uint32 data_offset # padding elements at front of data\n\ -\n\ -# Accessors should ALWAYS be written in terms of dimension stride\n\ -# and specified outer-most dimension first.\n\ -# \n\ -# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\ -#\n\ -# A standard, 3-channel 640x480 image with interleaved color channels\n\ -# would be specified as:\n\ -#\n\ -# dim[0].label = \"height\"\n\ -# dim[0].size = 480\n\ -# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\ -# dim[1].label = \"width\"\n\ -# dim[1].size = 640\n\ -# dim[1].stride = 3*640 = 1920\n\ -# dim[2].label = \"channel\"\n\ -# dim[2].size = 3\n\ -# dim[2].stride = 3\n\ -#\n\ -# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\ -\n\ -================================================================================\n\ -MSG: std_msgs/MultiArrayDimension\n\ -string label # label of given dimension\n\ -uint32 size # size of given dimension (in type units)\n\ -uint32 stride # stride of given dimension\n\ -"; + return "# Please look at the MultiArrayLayout message definition for\n" +"# documentation on all multiarrays.\n" +"\n" +"MultiArrayLayout layout # specification of data layout\n" +"uint8[] data # array of data\n" +"\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayLayout\n" +"# The multiarray declares a generic multi-dimensional array of a\n" +"# particular data type. Dimensions are ordered from outer most\n" +"# to inner most.\n" +"\n" +"MultiArrayDimension[] dim # Array of dimension properties\n" +"uint32 data_offset # padding elements at front of data\n" +"\n" +"# Accessors should ALWAYS be written in terms of dimension stride\n" +"# and specified outer-most dimension first.\n" +"# \n" +"# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" +"#\n" +"# A standard, 3-channel 640x480 image with interleaved color channels\n" +"# would be specified as:\n" +"#\n" +"# dim[0].label = \"height\"\n" +"# dim[0].size = 480\n" +"# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" +"# dim[1].label = \"width\"\n" +"# dim[1].size = 640\n" +"# dim[1].stride = 3*640 = 1920\n" +"# dim[2].label = \"channel\"\n" +"# dim[2].size = 3\n" +"# dim[2].stride = 3\n" +"#\n" +"# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" +"\n" +"================================================================================\n" +"MSG: std_msgs/MultiArrayDimension\n" +"string label # label of given dimension\n" +"uint32 size # size of given dimension (in type units)\n" +"uint32 stride # stride of given dimension\n" +; } static const char* value(const ::std_msgs::UInt8MultiArray_&) { return value(); } diff --git a/thirdparty/ros/roscpp_core b/thirdparty/ros/roscpp_core index e884838..1a74781 160000 --- a/thirdparty/ros/roscpp_core +++ b/thirdparty/ros/roscpp_core @@ -1 +1 @@ -Subproject commit e8848380bc3fbf1b5a8dd11a551b38a3d55cec46 +Subproject commit 1a74781ce707b1a2198d1bd6799b892b3c1fa195