Merge branch 'build-fixes-2' into 'master'
build fixes and updates See merge request basalt/basalt!49
This commit is contained in:
commit
bd2b6b419b
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 7c5dd97dd8aba4ce6fb6df4d0e1dce0c7fb6be79
|
||||
Subproject commit 79ab28e443326bdf863c81c4457bccf19a48097e
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 7bdf0628b1276379886c7f6dda2cef2b3b374f0b
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Accel_<ContainerAllocator> >:
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Accel_<ContainerAllocator1> & lhs, const ::geometry_msgs::Accel_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.linear == rhs.linear &&
|
||||
lhs.angular == rhs.angular;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Accel_<ContainerAllocator1> & lhs, const ::geometry_msgs::Accel_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Accel_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Accel_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Accel_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Accel_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Accel_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Accel_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Accel_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -145,23 +154,23 @@ struct Definition< ::geometry_msgs::Accel_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::AccelStamped_<ContainerAlloca
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::AccelStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::AccelStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.accel == rhs.accel;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::AccelStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::AccelStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::AccelStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::AccelStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::AccelStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,47 +154,45 @@ struct Definition< ::geometry_msgs::AccelStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -69,6 +69,21 @@ ros::message_operations::Printer< ::geometry_msgs::AccelWithCovariance_<Containe
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::AccelWithCovariance_<ContainerAllocator1> & lhs, const ::geometry_msgs::AccelWithCovariance_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.accel == rhs.accel &&
|
||||
lhs.covariance == rhs.covariance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::AccelWithCovariance_<ContainerAllocator1> & lhs, const ::geometry_msgs::AccelWithCovariance_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> >
|
||||
|
@ -106,6 +105,16 @@ struct IsMessage< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> cons
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -146,35 +155,35 @@ struct Definition< ::geometry_msgs::AccelWithCovariance_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::AccelWithCovarianceStamped_<C
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.accel == rhs.accel;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocato
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,59 +154,57 @@ struct Definition< ::geometry_msgs::AccelWithCovarianceStamped_<ContainerAllocat
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "# This represents an estimated accel with reference coordinate frame and timestamp.\n\
|
||||
Header header\n\
|
||||
AccelWithCovariance 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/AccelWithCovariance\n\
|
||||
# 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 represents an estimated accel with reference coordinate frame and timestamp.\n"
|
||||
"Header header\n"
|
||||
"AccelWithCovariance 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/AccelWithCovariance\n"
|
||||
"# 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::AccelWithCovarianceStamped_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -97,6 +97,27 @@ ros::message_operations::Printer< ::geometry_msgs::Inertia_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Inertia_<ContainerAllocator1> & lhs, const ::geometry_msgs::Inertia_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Inertia_<ContainerAllocator1> & lhs, const ::geometry_msgs::Inertia_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Inertia_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Inertia_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Inertia_<ContainerAllocator> >
|
||||
|
@ -134,6 +139,16 @@ struct IsMessage< ::geometry_msgs::Inertia_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Inertia_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Inertia_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Inertia_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -174,36 +189,36 @@ struct Definition< ::geometry_msgs::Inertia_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::InertiaStamped_<ContainerAllo
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::InertiaStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::InertiaStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.inertia == rhs.inertia;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::InertiaStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::InertiaStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::InertiaStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::InertiaStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::InertiaStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::InertiaStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::InertiaStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::InertiaStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::InertiaStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,59 +154,57 @@ struct Definition< ::geometry_msgs::InertiaStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Point_<ContainerAllocator> >:
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Point_<ContainerAllocator1> & lhs, const ::geometry_msgs::Point_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.x == rhs.x &&
|
||||
lhs.y == rhs.y &&
|
||||
lhs.z == rhs.z;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Point_<ContainerAllocator1> & lhs, const ::geometry_msgs::Point_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Point_<ContainerAllocator> >
|
||||
|
@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Point_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Point_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -148,11 +158,11 @@ struct Definition< ::geometry_msgs::Point_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Point32_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Point32_<ContainerAllocator1> & lhs, const ::geometry_msgs::Point32_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.x == rhs.x &&
|
||||
lhs.y == rhs.y &&
|
||||
lhs.z == rhs.z;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Point32_<ContainerAllocator1> & lhs, const ::geometry_msgs::Point32_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Point32_<ContainerAllocator> >
|
||||
|
@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Point32_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Point32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Point32_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -148,18 +158,18 @@ struct Definition< ::geometry_msgs::Point32_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PointStamped_<ContainerAlloca
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::PointStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PointStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.point == rhs.point;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::PointStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PointStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PointStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PointStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::PointStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PointStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PointStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PointStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::PointStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,35 +154,33 @@ struct Definition< ::geometry_msgs::PointStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -34,7 +34,7 @@ struct Polygon_
|
|||
|
||||
|
||||
|
||||
typedef std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > _points_type;
|
||||
typedef std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::geometry_msgs::Point32_<ContainerAllocator> >> _points_type;
|
||||
_points_type points;
|
||||
|
||||
|
||||
|
@ -62,6 +62,20 @@ ros::message_operations::Printer< ::geometry_msgs::Polygon_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Polygon_<ContainerAllocator1> & lhs, const ::geometry_msgs::Polygon_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.points == rhs.points;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Polygon_<ContainerAllocator1> & lhs, const ::geometry_msgs::Polygon_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Polygon_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Polygon_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Polygon_<ContainerAllocator> >
|
||||
|
@ -99,6 +97,16 @@ struct IsMessage< ::geometry_msgs::Polygon_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Polygon_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Polygon_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Polygon_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -139,23 +147,23 @@ struct Definition< ::geometry_msgs::Polygon_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PolygonStamped_<ContainerAllo
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::PolygonStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PolygonStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.polygon == rhs.polygon;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::PolygonStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PolygonStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PolygonStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PolygonStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::PolygonStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PolygonStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PolygonStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PolygonStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::PolygonStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,47 +154,45 @@ struct Definition< ::geometry_msgs::PolygonStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Pose_<ContainerAllocator> >::
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Pose_<ContainerAllocator1> & lhs, const ::geometry_msgs::Pose_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.position == rhs.position &&
|
||||
lhs.orientation == rhs.orientation;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Pose_<ContainerAllocator1> & lhs, const ::geometry_msgs::Pose_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Pose_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Pose_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Pose_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -145,26 +154,26 @@ struct Definition< ::geometry_msgs::Pose_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Pose2D_<ContainerAllocator> >
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Pose2D_<ContainerAllocator1> & lhs, const ::geometry_msgs::Pose2D_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.x == rhs.x &&
|
||||
lhs.y == rhs.y &&
|
||||
lhs.theta == rhs.theta;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Pose2D_<ContainerAllocator1> & lhs, const ::geometry_msgs::Pose2D_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose2D_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose2D_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Pose2D_<ContainerAllocator> >
|
||||
|
@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Pose2D_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose2D_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Pose2D_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Pose2D_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -148,12 +158,20 @@ struct Definition< ::geometry_msgs::Pose2D_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -40,7 +40,7 @@ struct PoseArray_
|
|||
typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
|
||||
_header_type header;
|
||||
|
||||
typedef std::vector< ::geometry_msgs::Pose_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Pose_<ContainerAllocator> >::other > _poses_type;
|
||||
typedef std::vector< ::geometry_msgs::Pose_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::geometry_msgs::Pose_<ContainerAllocator> >> _poses_type;
|
||||
_poses_type poses;
|
||||
|
||||
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseArray_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::PoseArray_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.poses == rhs.poses;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::PoseArray_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::PoseArray_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PoseArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::PoseArray_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,52 +154,50 @@ struct Definition< ::geometry_msgs::PoseArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseStamped_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::PoseStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.pose == rhs.pose;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::PoseStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::PoseStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PoseStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::PoseStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,50 +154,48 @@ struct Definition< ::geometry_msgs::PoseStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -69,6 +69,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseWithCovariance_<Container
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::PoseWithCovariance_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseWithCovariance_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.pose == rhs.pose &&
|
||||
lhs.covariance == rhs.covariance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::PoseWithCovariance_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseWithCovariance_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> >
|
||||
|
@ -106,6 +105,16 @@ struct IsMessage< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> const
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -146,38 +155,38 @@ struct Definition< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::PoseWithCovarianceStamped_<Co
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.pose == rhs.pose;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,63 +154,61 @@ struct Definition< ::geometry_msgs::PoseWithCovarianceStamped_<ContainerAllocato
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "# This expresses an estimated pose with a reference coordinate frame and timestamp\n\
|
||||
\n\
|
||||
Header header\n\
|
||||
PoseWithCovariance 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/PoseWithCovariance\n\
|
||||
# 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 expresses an estimated pose with a reference coordinate frame and timestamp\n"
|
||||
"\n"
|
||||
"Header header\n"
|
||||
"PoseWithCovariance 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/PoseWithCovariance\n"
|
||||
"# 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::PoseWithCovarianceStamped_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -76,6 +76,23 @@ ros::message_operations::Printer< ::geometry_msgs::Quaternion_<ContainerAllocato
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Quaternion_<ContainerAllocator1> & lhs, const ::geometry_msgs::Quaternion_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.x == rhs.x &&
|
||||
lhs.y == rhs.y &&
|
||||
lhs.z == rhs.z &&
|
||||
lhs.w == rhs.w;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Quaternion_<ContainerAllocator1> & lhs, const ::geometry_msgs::Quaternion_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Quaternion_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Quaternion_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Quaternion_<ContainerAllocator> >
|
||||
|
@ -113,6 +114,16 @@ struct IsMessage< ::geometry_msgs::Quaternion_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Quaternion_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Quaternion_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Quaternion_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -153,13 +164,13 @@ struct Definition< ::geometry_msgs::Quaternion_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::QuaternionStamped_<ContainerA
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::QuaternionStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::QuaternionStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.quaternion == rhs.quaternion;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::QuaternionStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::QuaternionStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,38 +154,36 @@ struct Definition< ::geometry_msgs::QuaternionStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Transform_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Transform_<ContainerAllocator1> & lhs, const ::geometry_msgs::Transform_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.translation == rhs.translation &&
|
||||
lhs.rotation == rhs.rotation;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Transform_<ContainerAllocator1> & lhs, const ::geometry_msgs::Transform_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Transform_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Transform_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Transform_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Transform_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Transform_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Transform_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Transform_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -145,32 +154,32 @@ struct Definition< ::geometry_msgs::Transform_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -42,7 +42,7 @@ struct TransformStamped_
|
|||
typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
|
||||
_header_type header;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _child_frame_id_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _child_frame_id_type;
|
||||
_child_frame_id_type child_frame_id;
|
||||
|
||||
typedef ::geometry_msgs::Transform_<ContainerAllocator> _transform_type;
|
||||
|
@ -73,6 +73,22 @@ ros::message_operations::Printer< ::geometry_msgs::TransformStamped_<ContainerAl
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::TransformStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::TransformStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.child_frame_id == rhs.child_frame_id &&
|
||||
lhs.transform == rhs.transform;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::TransformStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::TransformStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TransformStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TransformStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::TransformStamped_<ContainerAllocator> >
|
||||
|
@ -110,6 +110,16 @@ struct IsMessage< ::geometry_msgs::TransformStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TransformStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TransformStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::TransformStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -150,63 +160,61 @@ struct Definition< ::geometry_msgs::TransformStamped_<ContainerAllocator> >
|
|||
{
|
||||
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\
|
||||
# <a href=\"http://wiki.ros.org/tf\">tf</a> 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"
|
||||
"# <a href=\"http://wiki.ros.org/tf\">tf</a> 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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -249,7 +257,7 @@ struct Printer< ::geometry_msgs::TransformStamped_<ContainerAllocator> >
|
|||
s << std::endl;
|
||||
Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
|
||||
s << indent << "child_frame_id: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.child_frame_id);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.child_frame_id);
|
||||
s << indent << "transform: ";
|
||||
s << std::endl;
|
||||
Printer< ::geometry_msgs::Transform_<ContainerAllocator> >::stream(s, indent + " ", v.transform);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Twist_<ContainerAllocator> >:
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Twist_<ContainerAllocator1> & lhs, const ::geometry_msgs::Twist_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.linear == rhs.linear &&
|
||||
lhs.angular == rhs.angular;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Twist_<ContainerAllocator1> & lhs, const ::geometry_msgs::Twist_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Twist_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Twist_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Twist_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Twist_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Twist_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Twist_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Twist_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -145,23 +154,23 @@ struct Definition< ::geometry_msgs::Twist_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::TwistStamped_<ContainerAlloca
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::TwistStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::TwistStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.twist == rhs.twist;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::TwistStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::TwistStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::TwistStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::TwistStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::TwistStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,47 +154,45 @@ struct Definition< ::geometry_msgs::TwistStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -69,6 +69,21 @@ ros::message_operations::Printer< ::geometry_msgs::TwistWithCovariance_<Containe
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::TwistWithCovariance_<ContainerAllocator1> & lhs, const ::geometry_msgs::TwistWithCovariance_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.twist == rhs.twist &&
|
||||
lhs.covariance == rhs.covariance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::TwistWithCovariance_<ContainerAllocator1> & lhs, const ::geometry_msgs::TwistWithCovariance_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> >
|
||||
|
@ -106,6 +105,16 @@ struct IsMessage< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> cons
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -146,35 +155,35 @@ struct Definition< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::TwistWithCovarianceStamped_<C
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.twist == rhs.twist;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocato
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,59 +154,57 @@ struct Definition< ::geometry_msgs::TwistWithCovarianceStamped_<ContainerAllocat
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "# This represents an estimated twist with reference coordinate frame and timestamp.\n\
|
||||
Header header\n\
|
||||
TwistWithCovariance 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/TwistWithCovariance\n\
|
||||
# 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 represents an estimated twist with reference coordinate frame and timestamp.\n"
|
||||
"Header header\n"
|
||||
"TwistWithCovariance 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/TwistWithCovariance\n"
|
||||
"# 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::TwistWithCovarianceStamped_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -71,6 +71,22 @@ ros::message_operations::Printer< ::geometry_msgs::Vector3_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Vector3_<ContainerAllocator1> & lhs, const ::geometry_msgs::Vector3_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.x == rhs.x &&
|
||||
lhs.y == rhs.y &&
|
||||
lhs.z == rhs.z;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Vector3_<ContainerAllocator1> & lhs, const ::geometry_msgs::Vector3_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Vector3_<ContainerAllocator> >
|
||||
|
@ -108,6 +108,16 @@ struct IsMessage< ::geometry_msgs::Vector3_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Vector3_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -148,17 +158,17 @@ struct Definition< ::geometry_msgs::Vector3_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Vector3Stamped_<ContainerAllo
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Vector3Stamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::Vector3Stamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.vector == rhs.vector;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Vector3Stamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::Vector3Stamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,41 +154,39 @@ struct Definition< ::geometry_msgs::Vector3Stamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::Wrench_<ContainerAllocator> >
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::Wrench_<ContainerAllocator1> & lhs, const ::geometry_msgs::Wrench_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.force == rhs.force &&
|
||||
lhs.torque == rhs.torque;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::Wrench_<ContainerAllocator1> & lhs, const ::geometry_msgs::Wrench_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Wrench_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Wrench_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::Wrench_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::Wrench_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Wrench_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::Wrench_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::Wrench_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -145,24 +154,24 @@ struct Definition< ::geometry_msgs::Wrench_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -68,6 +68,21 @@ ros::message_operations::Printer< ::geometry_msgs::WrenchStamped_<ContainerAlloc
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::geometry_msgs::WrenchStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::WrenchStamped_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.wrench == rhs.wrench;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::geometry_msgs::WrenchStamped_<ContainerAllocator1> & lhs, const ::geometry_msgs::WrenchStamped_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::WrenchStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::WrenchStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::geometry_msgs::WrenchStamped_<ContainerAllocator> >
|
||||
|
@ -105,6 +104,16 @@ struct IsMessage< ::geometry_msgs::WrenchStamped_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::WrenchStamped_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::geometry_msgs::WrenchStamped_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::geometry_msgs::WrenchStamped_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -145,48 +154,46 @@ struct Definition< ::geometry_msgs::WrenchStamped_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -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<float, typename ContainerAllocator::template rebind<float>::other > _cell_voltage_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _cell_voltage_type;
|
||||
_cell_voltage_type cell_voltage;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _location_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _cell_temperature_type;
|
||||
_cell_temperature_type cell_temperature;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _location_type;
|
||||
_location_type location;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _serial_number_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _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_<ContainerAllocato
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::BatteryState_<ContainerAllocator1> & lhs, const ::sensor_msgs::BatteryState_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::BatteryState_<ContainerAllocator1> & lhs, const ::sensor_msgs::BatteryState_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::BatteryState_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::BatteryState_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::BatteryState_<ContainerAllocator> >
|
||||
|
@ -229,6 +317,16 @@ struct IsMessage< ::sensor_msgs::BatteryState_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::BatteryState_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::BatteryState_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::BatteryState_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -245,12 +343,12 @@ struct MD5Sum< ::sensor_msgs::BatteryState_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "476f837fa6771f6e16e3bf4ef96f8770";
|
||||
return "4ddae7f048e32fda22cac764685e3974";
|
||||
}
|
||||
|
||||
static const char* value(const ::sensor_msgs::BatteryState_<ContainerAllocator>&) { 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<class ContainerAllocator>
|
||||
|
@ -269,74 +367,75 @@ struct Definition< ::sensor_msgs::BatteryState_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { 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_<ContainerAllocator> >
|
|||
Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
|
||||
s << indent << "voltage: ";
|
||||
Printer<float>::stream(s, indent + " ", v.voltage);
|
||||
s << indent << "temperature: ";
|
||||
Printer<float>::stream(s, indent + " ", v.temperature);
|
||||
s << indent << "current: ";
|
||||
Printer<float>::stream(s, indent + " ", v.current);
|
||||
s << indent << "charge: ";
|
||||
|
@ -415,10 +518,16 @@ struct Printer< ::sensor_msgs::BatteryState_<ContainerAllocator> >
|
|||
s << indent << " cell_voltage[" << i << "]: ";
|
||||
Printer<float>::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<float>::stream(s, indent + " ", v.cell_temperature[i]);
|
||||
}
|
||||
s << indent << "location: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.location);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.location);
|
||||
s << indent << "serial_number: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.serial_number);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.serial_number);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -74,10 +74,10 @@ struct CameraInfo_
|
|||
typedef uint32_t _width_type;
|
||||
_width_type width;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _distortion_model_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _distortion_model_type;
|
||||
_distortion_model_type distortion_model;
|
||||
|
||||
typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _D_type;
|
||||
typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _D_type;
|
||||
_D_type D;
|
||||
|
||||
typedef boost::array<double, 9> _K_type;
|
||||
|
@ -123,6 +123,30 @@ ros::message_operations::Printer< ::sensor_msgs::CameraInfo_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::CameraInfo_<ContainerAllocator1> & lhs, const ::sensor_msgs::CameraInfo_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::CameraInfo_<ContainerAllocator1> & lhs, const ::sensor_msgs::CameraInfo_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CameraInfo_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CameraInfo_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::CameraInfo_<ContainerAllocator> >
|
||||
|
@ -160,6 +168,16 @@ struct IsMessage< ::sensor_msgs::CameraInfo_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CameraInfo_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CameraInfo_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::CameraInfo_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -200,178 +218,176 @@ struct Definition< ::sensor_msgs::CameraInfo_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -426,7 +442,7 @@ struct Printer< ::sensor_msgs::CameraInfo_<ContainerAllocator> >
|
|||
s << indent << "width: ";
|
||||
Printer<uint32_t>::stream(s, indent + " ", v.width);
|
||||
s << indent << "distortion_model: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.distortion_model);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.distortion_model);
|
||||
s << indent << "D[]" << std::endl;
|
||||
for (size_t i = 0; i < v.D.size(); ++i)
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -35,10 +35,10 @@ struct ChannelFloat32_
|
|||
|
||||
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _name_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _name_type;
|
||||
_name_type name;
|
||||
|
||||
typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _values_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _values_type;
|
||||
_values_type values;
|
||||
|
||||
|
||||
|
@ -66,6 +66,21 @@ ros::message_operations::Printer< ::sensor_msgs::ChannelFloat32_<ContainerAlloca
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::ChannelFloat32_<ContainerAllocator1> & lhs, const ::sensor_msgs::ChannelFloat32_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.name == rhs.name &&
|
||||
lhs.values == rhs.values;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::ChannelFloat32_<ContainerAllocator1> & lhs, const ::sensor_msgs::ChannelFloat32_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >
|
||||
|
@ -103,6 +102,16 @@ struct IsMessage< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -143,31 +152,31 @@ struct Definition< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -206,7 +215,7 @@ struct Printer< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >
|
|||
template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::sensor_msgs::ChannelFloat32_<ContainerAllocator>& v)
|
||||
{
|
||||
s << indent << "name: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.name);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.name);
|
||||
s << indent << "values[]" << std::endl;
|
||||
for (size_t i = 0; i < v.values.size(); ++i)
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -41,10 +41,10 @@ struct CompressedImage_
|
|||
typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
|
||||
_header_type header;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _format_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _format_type;
|
||||
_format_type format;
|
||||
|
||||
typedef std::vector<uint8_t, typename ContainerAllocator::template rebind<uint8_t>::other > _data_type;
|
||||
typedef std::vector<uint8_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<uint8_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::CompressedImage_<ContainerAlloc
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::CompressedImage_<ContainerAllocator1> & lhs, const ::sensor_msgs::CompressedImage_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.format == rhs.format &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::CompressedImage_<ContainerAllocator1> & lhs, const ::sensor_msgs::CompressedImage_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CompressedImage_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CompressedImage_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::CompressedImage_<ContainerAllocator> >
|
||||
|
@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::CompressedImage_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CompressedImage_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::CompressedImage_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::CompressedImage_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -149,38 +159,36 @@ struct Definition< ::sensor_msgs::CompressedImage_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -223,7 +231,7 @@ struct Printer< ::sensor_msgs::CompressedImage_<ContainerAllocator> >
|
|||
s << std::endl;
|
||||
Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
|
||||
s << indent << "format: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.format);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.format);
|
||||
s << indent << "data[]" << std::endl;
|
||||
for (size_t i = 0; i < v.data.size(); ++i)
|
||||
{
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::FluidPressure_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::FluidPressure_<ContainerAllocator1> & lhs, const ::sensor_msgs::FluidPressure_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.fluid_pressure == rhs.fluid_pressure &&
|
||||
lhs.variance == rhs.variance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::FluidPressure_<ContainerAllocator1> & lhs, const ::sensor_msgs::FluidPressure_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::FluidPressure_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::FluidPressure_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::FluidPressure_<ContainerAllocator> >
|
||||
|
@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::FluidPressure_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::FluidPressure_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::FluidPressure_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::FluidPressure_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -149,36 +159,34 @@ struct Definition< ::sensor_msgs::FluidPressure_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::Illuminance_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::Illuminance_<ContainerAllocator1> & lhs, const ::sensor_msgs::Illuminance_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.illuminance == rhs.illuminance &&
|
||||
lhs.variance == rhs.variance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::Illuminance_<ContainerAllocator1> & lhs, const ::sensor_msgs::Illuminance_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Illuminance_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Illuminance_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::Illuminance_<ContainerAllocator> >
|
||||
|
@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::Illuminance_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Illuminance_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Illuminance_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::Illuminance_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -149,45 +159,43 @@ struct Definition< ::sensor_msgs::Illuminance_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -55,7 +55,7 @@ struct Image_
|
|||
typedef uint32_t _width_type;
|
||||
_width_type width;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _encoding_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _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<uint8_t, typename ContainerAllocator::template rebind<uint8_t>::other > _data_type;
|
||||
typedef std::vector<uint8_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<uint8_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -92,6 +92,26 @@ ros::message_operations::Printer< ::sensor_msgs::Image_<ContainerAllocator> >::s
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::Image_<ContainerAllocator1> & lhs, const ::sensor_msgs::Image_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::Image_<ContainerAllocator1> & lhs, const ::sensor_msgs::Image_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Image_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Image_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::Image_<ContainerAllocator> >
|
||||
|
@ -129,6 +133,16 @@ struct IsMessage< ::sensor_msgs::Image_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Image_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Image_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::Image_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -169,52 +183,50 @@ struct Definition< ::sensor_msgs::Image_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -265,7 +277,7 @@ struct Printer< ::sensor_msgs::Image_<ContainerAllocator> >
|
|||
s << indent << "width: ";
|
||||
Printer<uint32_t>::stream(s, indent + " ", v.width);
|
||||
s << indent << "encoding: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.encoding);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.encoding);
|
||||
s << indent << "is_bigendian: ";
|
||||
Printer<uint8_t>::stream(s, indent + " ", v.is_bigendian);
|
||||
s << indent << "step: ";
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -105,6 +105,26 @@ ros::message_operations::Printer< ::sensor_msgs::Imu_<ContainerAllocator> >::str
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::Imu_<ContainerAllocator1> & lhs, const ::sensor_msgs::Imu_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::Imu_<ContainerAllocator1> & lhs, const ::sensor_msgs::Imu_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Imu_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Imu_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::Imu_<ContainerAllocator> >
|
||||
|
@ -142,6 +146,16 @@ struct IsMessage< ::sensor_msgs::Imu_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Imu_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Imu_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::Imu_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -182,71 +196,69 @@ struct Definition< ::sensor_msgs::Imu_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -45,16 +45,16 @@ struct JointState_
|
|||
typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
|
||||
_header_type header;
|
||||
|
||||
typedef std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > _name_type;
|
||||
typedef std::vector<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>> _name_type;
|
||||
_name_type name;
|
||||
|
||||
typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _position_type;
|
||||
typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _position_type;
|
||||
_position_type position;
|
||||
|
||||
typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _velocity_type;
|
||||
typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _velocity_type;
|
||||
_velocity_type velocity;
|
||||
|
||||
typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _effort_type;
|
||||
typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _effort_type;
|
||||
_effort_type effort;
|
||||
|
||||
|
||||
|
@ -82,6 +82,24 @@ ros::message_operations::Printer< ::sensor_msgs::JointState_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::JointState_<ContainerAllocator1> & lhs, const ::sensor_msgs::JointState_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.name == rhs.name &&
|
||||
lhs.position == rhs.position &&
|
||||
lhs.velocity == rhs.velocity &&
|
||||
lhs.effort == rhs.effort;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::JointState_<ContainerAllocator1> & lhs, const ::sensor_msgs::JointState_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JointState_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JointState_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::JointState_<ContainerAllocator> >
|
||||
|
@ -119,6 +121,16 @@ struct IsMessage< ::sensor_msgs::JointState_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JointState_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JointState_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::JointState_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -159,51 +171,49 @@ struct Definition< ::sensor_msgs::JointState_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -251,7 +261,7 @@ struct Printer< ::sensor_msgs::JointState_<ContainerAllocator> >
|
|||
for (size_t i = 0; i < v.name.size(); ++i)
|
||||
{
|
||||
s << indent << " name[" << i << "]: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.name[i]);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.name[i]);
|
||||
}
|
||||
s << indent << "position[]" << std::endl;
|
||||
for (size_t i = 0; i < v.position.size(); ++i)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -41,10 +41,10 @@ struct Joy_
|
|||
typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
|
||||
_header_type header;
|
||||
|
||||
typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _axes_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _axes_type;
|
||||
_axes_type axes;
|
||||
|
||||
typedef std::vector<int32_t, typename ContainerAllocator::template rebind<int32_t>::other > _buttons_type;
|
||||
typedef std::vector<int32_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<int32_t>> _buttons_type;
|
||||
_buttons_type buttons;
|
||||
|
||||
|
||||
|
@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::Joy_<ContainerAllocator> >::str
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::Joy_<ContainerAllocator1> & lhs, const ::sensor_msgs::Joy_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.axes == rhs.axes &&
|
||||
lhs.buttons == rhs.buttons;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::Joy_<ContainerAllocator1> & lhs, const ::sensor_msgs::Joy_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Joy_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Joy_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::Joy_<ContainerAllocator> >
|
||||
|
@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::Joy_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Joy_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Joy_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::Joy_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -149,29 +159,27 @@ struct Definition< ::sensor_msgs::Joy_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -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_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::JoyFeedback_<ContainerAllocator1> & lhs, const ::sensor_msgs::JoyFeedback_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.type == rhs.type &&
|
||||
lhs.id == rhs.id &&
|
||||
lhs.intensity == rhs.intensity;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::JoyFeedback_<ContainerAllocator1> & lhs, const ::sensor_msgs::JoyFeedback_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedback_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedback_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::JoyFeedback_<ContainerAllocator> >
|
||||
|
@ -119,6 +130,16 @@ struct IsMessage< ::sensor_msgs::JoyFeedback_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedback_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedback_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::JoyFeedback_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -159,22 +180,22 @@ struct Definition< ::sensor_msgs::JoyFeedback_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -34,7 +34,7 @@ struct JoyFeedbackArray_
|
|||
|
||||
|
||||
|
||||
typedef std::vector< ::sensor_msgs::JoyFeedback_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::JoyFeedback_<ContainerAllocator> >::other > _array_type;
|
||||
typedef std::vector< ::sensor_msgs::JoyFeedback_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::sensor_msgs::JoyFeedback_<ContainerAllocator> >> _array_type;
|
||||
_array_type array;
|
||||
|
||||
|
||||
|
@ -62,6 +62,20 @@ ros::message_operations::Printer< ::sensor_msgs::JoyFeedbackArray_<ContainerAllo
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator1> & lhs, const ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.array == rhs.array;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator1> & lhs, const ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> >
|
||||
|
@ -99,6 +97,16 @@ struct IsMessage< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -139,26 +147,26 @@ struct Definition< ::sensor_msgs::JoyFeedbackArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -33,7 +33,7 @@ struct LaserEcho_
|
|||
|
||||
|
||||
|
||||
typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _echoes_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _echoes_type;
|
||||
_echoes_type echoes;
|
||||
|
||||
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::sensor_msgs::LaserEcho_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::LaserEcho_<ContainerAllocator1> & lhs, const ::sensor_msgs::LaserEcho_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.echoes == rhs.echoes;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::LaserEcho_<ContainerAllocator1> & lhs, const ::sensor_msgs::LaserEcho_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserEcho_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserEcho_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::LaserEcho_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::sensor_msgs::LaserEcho_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserEcho_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserEcho_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::LaserEcho_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,12 +146,12 @@ struct Definition< ::sensor_msgs::LaserEcho_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -76,10 +76,10 @@ struct LaserScan_
|
|||
typedef float _range_max_type;
|
||||
_range_max_type range_max;
|
||||
|
||||
typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _ranges_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _ranges_type;
|
||||
_ranges_type ranges;
|
||||
|
||||
typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _intensities_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _intensities_type;
|
||||
_intensities_type intensities;
|
||||
|
||||
|
||||
|
@ -107,6 +107,29 @@ ros::message_operations::Printer< ::sensor_msgs::LaserScan_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::LaserScan_<ContainerAllocator1> & lhs, const ::sensor_msgs::LaserScan_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::LaserScan_<ContainerAllocator1> & lhs, const ::sensor_msgs::LaserScan_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserScan_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserScan_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::LaserScan_<ContainerAllocator> >
|
||||
|
@ -144,6 +151,16 @@ struct IsMessage< ::sensor_msgs::LaserScan_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserScan_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::LaserScan_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::LaserScan_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -184,54 +201,52 @@ struct Definition< ::sensor_msgs::LaserScan_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -75,6 +75,22 @@ ros::message_operations::Printer< ::sensor_msgs::MagneticField_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::MagneticField_<ContainerAllocator1> & lhs, const ::sensor_msgs::MagneticField_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.magnetic_field == rhs.magnetic_field &&
|
||||
lhs.magnetic_field_covariance == rhs.magnetic_field_covariance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::MagneticField_<ContainerAllocator1> & lhs, const ::sensor_msgs::MagneticField_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MagneticField_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MagneticField_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::MagneticField_<ContainerAllocator> >
|
||||
|
@ -112,6 +112,16 @@ struct IsMessage< ::sensor_msgs::MagneticField_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MagneticField_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MagneticField_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::MagneticField_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -152,59 +162,57 @@ struct Definition< ::sensor_msgs::MagneticField_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -48,16 +48,16 @@ struct MultiDOFJointState_
|
|||
typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
|
||||
_header_type header;
|
||||
|
||||
typedef std::vector<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > , typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::other > _joint_names_type;
|
||||
typedef std::vector<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>> _joint_names_type;
|
||||
_joint_names_type joint_names;
|
||||
|
||||
typedef std::vector< ::geometry_msgs::Transform_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Transform_<ContainerAllocator> >::other > _transforms_type;
|
||||
typedef std::vector< ::geometry_msgs::Transform_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::geometry_msgs::Transform_<ContainerAllocator> >> _transforms_type;
|
||||
_transforms_type transforms;
|
||||
|
||||
typedef std::vector< ::geometry_msgs::Twist_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Twist_<ContainerAllocator> >::other > _twist_type;
|
||||
typedef std::vector< ::geometry_msgs::Twist_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::geometry_msgs::Twist_<ContainerAllocator> >> _twist_type;
|
||||
_twist_type twist;
|
||||
|
||||
typedef std::vector< ::geometry_msgs::Wrench_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Wrench_<ContainerAllocator> >::other > _wrench_type;
|
||||
typedef std::vector< ::geometry_msgs::Wrench_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::geometry_msgs::Wrench_<ContainerAllocator> >> _wrench_type;
|
||||
_wrench_type wrench;
|
||||
|
||||
|
||||
|
@ -85,6 +85,24 @@ ros::message_operations::Printer< ::sensor_msgs::MultiDOFJointState_<ContainerAl
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator1> & lhs, const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator1> & lhs, const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> >
|
||||
|
@ -122,6 +124,16 @@ struct IsMessage< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -162,92 +174,90 @@ struct Definition< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -295,7 +305,7 @@ struct Printer< ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> >
|
|||
for (size_t i = 0; i < v.joint_names.size(); ++i)
|
||||
{
|
||||
s << indent << " joint_names[" << i << "]: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.joint_names[i]);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.joint_names[i]);
|
||||
}
|
||||
s << indent << "transforms[]" << std::endl;
|
||||
for (size_t i = 0; i < v.transforms.size(); ++i)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -78,10 +78,10 @@ struct MultiEchoLaserScan_
|
|||
typedef float _range_max_type;
|
||||
_range_max_type range_max;
|
||||
|
||||
typedef std::vector< ::sensor_msgs::LaserEcho_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::LaserEcho_<ContainerAllocator> >::other > _ranges_type;
|
||||
typedef std::vector< ::sensor_msgs::LaserEcho_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::sensor_msgs::LaserEcho_<ContainerAllocator> >> _ranges_type;
|
||||
_ranges_type ranges;
|
||||
|
||||
typedef std::vector< ::sensor_msgs::LaserEcho_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::LaserEcho_<ContainerAllocator> >::other > _intensities_type;
|
||||
typedef std::vector< ::sensor_msgs::LaserEcho_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::sensor_msgs::LaserEcho_<ContainerAllocator> >> _intensities_type;
|
||||
_intensities_type intensities;
|
||||
|
||||
|
||||
|
@ -109,6 +109,29 @@ ros::message_operations::Printer< ::sensor_msgs::MultiEchoLaserScan_<ContainerAl
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator1> & lhs, const ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator1> & lhs, const ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> >
|
||||
|
@ -146,6 +153,16 @@ struct IsMessage< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -186,63 +203,61 @@ struct Definition< ::sensor_msgs::MultiEchoLaserScan_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -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_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::NavSatFix_<ContainerAllocator1> & lhs, const ::sensor_msgs::NavSatFix_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::NavSatFix_<ContainerAllocator1> & lhs, const ::sensor_msgs::NavSatFix_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatFix_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatFix_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::NavSatFix_<ContainerAllocator> >
|
||||
|
@ -146,6 +164,16 @@ struct IsMessage< ::sensor_msgs::NavSatFix_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatFix_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatFix_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::NavSatFix_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -186,96 +214,94 @@ struct Definition< ::sensor_msgs::NavSatFix_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -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_<ContainerAllocato
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::NavSatStatus_<ContainerAllocator1> & lhs, const ::sensor_msgs::NavSatStatus_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.status == rhs.status &&
|
||||
lhs.service == rhs.service;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::NavSatStatus_<ContainerAllocator1> & lhs, const ::sensor_msgs::NavSatStatus_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatStatus_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatStatus_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::NavSatStatus_<ContainerAllocator> >
|
||||
|
@ -129,6 +154,16 @@ struct IsMessage< ::sensor_msgs::NavSatStatus_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatStatus_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::NavSatStatus_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::NavSatStatus_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -169,29 +204,29 @@ struct Definition< ::sensor_msgs::NavSatStatus_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -43,10 +43,10 @@ struct PointCloud_
|
|||
typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
|
||||
_header_type header;
|
||||
|
||||
typedef std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > _points_type;
|
||||
typedef std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::geometry_msgs::Point32_<ContainerAllocator> >> _points_type;
|
||||
_points_type points;
|
||||
|
||||
typedef std::vector< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >::other > _channels_type;
|
||||
typedef std::vector< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::sensor_msgs::ChannelFloat32_<ContainerAllocator> >> _channels_type;
|
||||
_channels_type channels;
|
||||
|
||||
|
||||
|
@ -74,6 +74,22 @@ ros::message_operations::Printer< ::sensor_msgs::PointCloud_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::PointCloud_<ContainerAllocator1> & lhs, const ::sensor_msgs::PointCloud_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.points == rhs.points &&
|
||||
lhs.channels == rhs.channels;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::PointCloud_<ContainerAllocator1> & lhs, const ::sensor_msgs::PointCloud_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::PointCloud_<ContainerAllocator> >
|
||||
|
@ -111,6 +111,16 @@ struct IsMessage< ::sensor_msgs::PointCloud_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::PointCloud_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -151,79 +161,77 @@ struct Definition< ::sensor_msgs::PointCloud_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -60,7 +60,7 @@ struct PointCloud2_
|
|||
typedef uint32_t _width_type;
|
||||
_width_type width;
|
||||
|
||||
typedef std::vector< ::sensor_msgs::PointField_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::sensor_msgs::PointField_<ContainerAllocator> >::other > _fields_type;
|
||||
typedef std::vector< ::sensor_msgs::PointField_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::sensor_msgs::PointField_<ContainerAllocator> >> _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<uint8_t, typename ContainerAllocator::template rebind<uint8_t>::other > _data_type;
|
||||
typedef std::vector<uint8_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<uint8_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
typedef uint8_t _is_dense_type;
|
||||
|
@ -103,6 +103,28 @@ ros::message_operations::Printer< ::sensor_msgs::PointCloud2_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::PointCloud2_<ContainerAllocator1> & lhs, const ::sensor_msgs::PointCloud2_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::PointCloud2_<ContainerAllocator1> & lhs, const ::sensor_msgs::PointCloud2_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud2_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud2_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::PointCloud2_<ContainerAllocator> >
|
||||
|
@ -140,6 +146,16 @@ struct IsMessage< ::sensor_msgs::PointCloud2_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud2_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointCloud2_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::PointCloud2_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -180,70 +196,68 @@ struct Definition< ::sensor_msgs::PointCloud2_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct PointField_
|
|||
|
||||
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _name_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _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_<ContainerAllocator>
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::PointField_<ContainerAllocator1> & lhs, const ::sensor_msgs::PointField_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.name == rhs.name &&
|
||||
lhs.offset == rhs.offset &&
|
||||
lhs.datatype == rhs.datatype &&
|
||||
lhs.count == rhs.count;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::PointField_<ContainerAllocator1> & lhs, const ::sensor_msgs::PointField_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointField_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointField_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::PointField_<ContainerAllocator> >
|
||||
|
@ -139,6 +166,16 @@ struct IsMessage< ::sensor_msgs::PointField_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointField_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::PointField_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::PointField_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -179,22 +216,22 @@ struct Definition< ::sensor_msgs::PointField_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -235,7 +272,7 @@ struct Printer< ::sensor_msgs::PointField_<ContainerAllocator> >
|
|||
template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::sensor_msgs::PointField_<ContainerAllocator>& v)
|
||||
{
|
||||
s << indent << "name: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.name);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.name);
|
||||
s << indent << "offset: ";
|
||||
Printer<uint32_t>::stream(s, indent + " ", v.offset);
|
||||
s << indent << "datatype: ";
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -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_<ContainerAllocator> >::s
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::Range_<ContainerAllocator1> & lhs, const ::sensor_msgs::Range_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::Range_<ContainerAllocator1> & lhs, const ::sensor_msgs::Range_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Range_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Range_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::Range_<ContainerAllocator> >
|
||||
|
@ -132,6 +143,16 @@ struct IsMessage< ::sensor_msgs::Range_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Range_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Range_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::Range_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -172,64 +193,62 @@ struct Definition< ::sensor_msgs::Range_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -81,6 +81,24 @@ ros::message_operations::Printer< ::sensor_msgs::RegionOfInterest_<ContainerAllo
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::RegionOfInterest_<ContainerAllocator1> & lhs, const ::sensor_msgs::RegionOfInterest_<ContainerAllocator2> & 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<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::RegionOfInterest_<ContainerAllocator1> & lhs, const ::sensor_msgs::RegionOfInterest_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> >
|
||||
|
@ -118,6 +120,16 @@ struct IsMessage< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -158,26 +170,26 @@ struct Definition< ::sensor_msgs::RegionOfInterest_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::RelativeHumidity_<ContainerAllo
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::RelativeHumidity_<ContainerAllocator1> & lhs, const ::sensor_msgs::RelativeHumidity_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.relative_humidity == rhs.relative_humidity &&
|
||||
lhs.variance == rhs.variance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::RelativeHumidity_<ContainerAllocator1> & lhs, const ::sensor_msgs::RelativeHumidity_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> >
|
||||
|
@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -149,36 +159,34 @@ struct Definition< ::sensor_msgs::RelativeHumidity_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -62,6 +62,20 @@ ros::message_operations::Printer< ::sensor_msgs::SetCameraInfoRequest_<Container
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator1> & lhs, const ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.camera_info == rhs.camera_info;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator1> & lhs, const ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> >
|
||||
|
@ -99,6 +97,16 @@ struct IsMessage< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> const
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -139,190 +147,188 @@ struct Definition< ::sensor_msgs::SetCameraInfoRequest_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -38,7 +38,7 @@ struct SetCameraInfoResponse_
|
|||
typedef uint8_t _success_type;
|
||||
_success_type success;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _status_message_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _status_message_type;
|
||||
_status_message_type status_message;
|
||||
|
||||
|
||||
|
@ -66,6 +66,21 @@ ros::message_operations::Printer< ::sensor_msgs::SetCameraInfoResponse_<Containe
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator1> & lhs, const ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.success == rhs.success &&
|
||||
lhs.status_message == rhs.status_message;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator1> & lhs, const ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> >
|
||||
|
@ -103,6 +102,16 @@ struct IsMessage< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> cons
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -143,10 +152,10 @@ struct Definition< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -187,7 +196,7 @@ struct Printer< ::sensor_msgs::SetCameraInfoResponse_<ContainerAllocator> >
|
|||
s << indent << "success: ";
|
||||
Printer<uint8_t>::stream(s, indent + " ", v.success);
|
||||
s << indent << "status_message: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.status_message);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.status_message);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::Temperature_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::Temperature_<ContainerAllocator1> & lhs, const ::sensor_msgs::Temperature_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.temperature == rhs.temperature &&
|
||||
lhs.variance == rhs.variance;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::Temperature_<ContainerAllocator1> & lhs, const ::sensor_msgs::Temperature_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Temperature_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Temperature_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::Temperature_<ContainerAllocator> >
|
||||
|
@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::Temperature_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Temperature_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::Temperature_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::Temperature_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -149,32 +159,30 @@ struct Definition< ::sensor_msgs::Temperature_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -44,7 +44,7 @@ struct TimeReference_
|
|||
typedef ros::Time _time_ref_type;
|
||||
_time_ref_type time_ref;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _source_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _source_type;
|
||||
_source_type source;
|
||||
|
||||
|
||||
|
@ -72,6 +72,22 @@ ros::message_operations::Printer< ::sensor_msgs::TimeReference_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::sensor_msgs::TimeReference_<ContainerAllocator1> & lhs, const ::sensor_msgs::TimeReference_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.header == rhs.header &&
|
||||
lhs.time_ref == rhs.time_ref &&
|
||||
lhs.source == rhs.source;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::sensor_msgs::TimeReference_<ContainerAllocator1> & lhs, const ::sensor_msgs::TimeReference_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::TimeReference_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::TimeReference_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::sensor_msgs::TimeReference_<ContainerAllocator> >
|
||||
|
@ -109,6 +109,16 @@ struct IsMessage< ::sensor_msgs::TimeReference_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::TimeReference_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::sensor_msgs::TimeReference_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::sensor_msgs::TimeReference_<ContainerAllocator> >
|
||||
: TrueType
|
||||
|
@ -149,32 +159,30 @@ struct Definition< ::sensor_msgs::TimeReference_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -219,7 +227,7 @@ struct Printer< ::sensor_msgs::TimeReference_<ContainerAllocator> >
|
|||
s << indent << "time_ref: ";
|
||||
Printer<ros::Time>::stream(s, indent + " ", v.time_ref);
|
||||
s << indent << "source: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.source);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.source);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#ifndef SENSOR_MSGS_IMAGE_ENCODINGS_H
|
||||
#define SENSOR_MSGS_IMAGE_ENCODINGS_H
|
||||
|
||||
#include <cstdlib>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
|
||||
|
|
|
@ -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 <sensor_msgs/PointCloud2.h>
|
||||
#include <cstdarg>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
/**
|
||||
* \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:
|
||||
* <PRE>
|
||||
* 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);
|
||||
* </PRE>
|
||||
* 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<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
PointCloud2IteratorBase<T, TT, U, C, V>::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<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
PointCloud2IteratorBase<T, TT, U, C, V>::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<TT*>(data_char_);
|
||||
data_end_ = reinterpret_cast<TT*>(&(cloud_msg.data.back()) + 1 + offset);
|
||||
}
|
||||
|
||||
/** Assignment operator
|
||||
* @param iter the iterator to copy data from
|
||||
* @return a reference to *this
|
||||
*/
|
||||
template<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
V<T>& PointCloud2IteratorBase<T, TT, U, C, V>::operator =(const V<T> &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<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
TT& PointCloud2IteratorBase<T, TT, U, C, V>::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<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
TT& PointCloud2IteratorBase<T, TT, U, C, V>::operator *() const
|
||||
{
|
||||
return *data_;
|
||||
}
|
||||
|
||||
/** Increase the iterator to the next element
|
||||
* @return a reference to the updated iterator
|
||||
*/
|
||||
template<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
V<T>& PointCloud2IteratorBase<T, TT, U, C, V>::operator ++()
|
||||
{
|
||||
data_char_ += point_step_;
|
||||
data_ = reinterpret_cast<TT*>(data_char_);
|
||||
return *static_cast<V<T>*>(this);
|
||||
}
|
||||
|
||||
/** Basic pointer addition
|
||||
* @param i the amount to increase the iterator by
|
||||
* @return an iterator with an increased position
|
||||
*/
|
||||
template<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
V<T> PointCloud2IteratorBase<T, TT, U, C, V>::operator +(int i)
|
||||
{
|
||||
V<T> res = *static_cast<V<T>*>(this);
|
||||
|
||||
res.data_char_ += i*point_step_;
|
||||
res.data_ = reinterpret_cast<TT*>(res.data_char_);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/** Increase the iterator by a certain amount
|
||||
* @return a reference to the updated iterator
|
||||
*/
|
||||
template<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
V<T>& PointCloud2IteratorBase<T, TT, U, C, V>::operator +=(int i)
|
||||
{
|
||||
data_char_ += i*point_step_;
|
||||
data_ = reinterpret_cast<TT*>(data_char_);
|
||||
return *static_cast<V<T>*>(this);
|
||||
}
|
||||
|
||||
/** Compare to another iterator
|
||||
* @return whether the current iterator points to a different address than the other one
|
||||
*/
|
||||
template<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
bool PointCloud2IteratorBase<T, TT, U, C, V>::operator !=(const V<T>& iter) const
|
||||
{
|
||||
return iter.data_ != data_;
|
||||
}
|
||||
|
||||
/** Return the end iterator
|
||||
* @return the end iterator (useful when performing normal iterator processing with ++)
|
||||
*/
|
||||
template<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
V<T> PointCloud2IteratorBase<T, TT, U, C, V>::end() const
|
||||
{
|
||||
V<T> res = *static_cast<const V<T>*>(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<typename T, typename TT, typename U, typename C, template <typename> class V>
|
||||
int PointCloud2IteratorBase<T, TT, U, C, V>::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<sensor_msgs::PointField>::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
|
|
@ -120,6 +120,8 @@ namespace sensor_msgs{
|
|||
case sensor_msgs::PointField::FLOAT64:
|
||||
return readPointCloud2BufferValue<sensor_msgs::PointField::FLOAT64, T>(data_ptr);
|
||||
}
|
||||
// This should never be reached, but return statement added to avoid compiler warning. (#84)
|
||||
return T();
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Bool_<ContainerAllocator> >::strea
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Bool_<ContainerAllocator1> & lhs, const ::std_msgs::Bool_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Bool_<ContainerAllocator1> & lhs, const ::std_msgs::Bool_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Bool_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Bool_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Bool_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Bool_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Bool_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Bool_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Bool_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Bool_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "bool data\n\
|
||||
";
|
||||
return "bool data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Bool_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Byte_<ContainerAllocator> >::strea
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Byte_<ContainerAllocator1> & lhs, const ::std_msgs::Byte_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Byte_<ContainerAllocator1> & lhs, const ::std_msgs::Byte_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Byte_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Byte_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Byte_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Byte_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Byte_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Byte_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Byte_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Byte_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "byte data\n\
|
||||
";
|
||||
return "byte data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Byte_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct ByteMultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<int8_t, typename ContainerAllocator::template rebind<int8_t>::other > _data_type;
|
||||
typedef std::vector<int8_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<int8_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::ByteMultiArray_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::ByteMultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::ByteMultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::ByteMultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::ByteMultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ByteMultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ByteMultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::ByteMultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::ByteMultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ByteMultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ByteMultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::ByteMultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::ByteMultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Char_<ContainerAllocator> >::strea
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Char_<ContainerAllocator1> & lhs, const ::std_msgs::Char_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Char_<ContainerAllocator1> & lhs, const ::std_msgs::Char_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Char_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Char_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Char_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Char_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Char_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Char_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Char_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Char_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "char data\n\
|
||||
";
|
||||
return "char data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Char_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -76,6 +76,23 @@ ros::message_operations::Printer< ::std_msgs::ColorRGBA_<ContainerAllocator> >::
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::ColorRGBA_<ContainerAllocator1> & lhs, const ::std_msgs::ColorRGBA_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.r == rhs.r &&
|
||||
lhs.g == rhs.g &&
|
||||
lhs.b == rhs.b &&
|
||||
lhs.a == rhs.a;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::ColorRGBA_<ContainerAllocator1> & lhs, const ::std_msgs::ColorRGBA_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ColorRGBA_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ColorRGBA_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::ColorRGBA_<ContainerAllocator> >
|
||||
|
@ -113,6 +114,16 @@ struct IsMessage< ::std_msgs::ColorRGBA_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ColorRGBA_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::ColorRGBA_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::ColorRGBA_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -153,11 +164,11 @@ struct Definition< ::std_msgs::ColorRGBA_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Duration_<ContainerAllocator> >::s
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Duration_<ContainerAllocator1> & lhs, const ::std_msgs::Duration_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Duration_<ContainerAllocator1> & lhs, const ::std_msgs::Duration_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Duration_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Duration_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Duration_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Duration_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Duration_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Duration_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Duration_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Duration_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "duration data\n\
|
||||
";
|
||||
return "duration data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Duration_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -58,6 +58,7 @@ ros::message_operations::Printer< ::std_msgs::Empty_<ContainerAllocator> >::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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Empty_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Empty_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Empty_<ContainerAllocator> >
|
||||
|
@ -95,6 +80,16 @@ struct IsMessage< ::std_msgs::Empty_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Empty_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Empty_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Empty_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -135,8 +130,8 @@ struct Definition< ::std_msgs::Empty_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "\n\
|
||||
";
|
||||
return "\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Empty_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Float32_<ContainerAllocator> >::st
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Float32_<ContainerAllocator1> & lhs, const ::std_msgs::Float32_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Float32_<ContainerAllocator1> & lhs, const ::std_msgs::Float32_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Float32_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Float32_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Float32_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Float32_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "float32 data\n\
|
||||
";
|
||||
return "float32 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Float32_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct Float32MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _data_type;
|
||||
typedef std::vector<float, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<float>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Float32MultiArray_<ContainerAlloca
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Float32MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Float32MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Float32MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Float32MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Float32MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Float32MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float32MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Float32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Float32MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Float64_<ContainerAllocator> >::st
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Float64_<ContainerAllocator1> & lhs, const ::std_msgs::Float64_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Float64_<ContainerAllocator1> & lhs, const ::std_msgs::Float64_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Float64_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Float64_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Float64_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Float64_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "float64 data\n\
|
||||
";
|
||||
return "float64 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Float64_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct Float64MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _data_type;
|
||||
typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Float64MultiArray_<ContainerAlloca
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Float64MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Float64MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Float64MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Float64MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Float64MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Float64MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Float64MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Float64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Float64MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -43,7 +43,7 @@ struct Header_
|
|||
typedef ros::Time _stamp_type;
|
||||
_stamp_type stamp;
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _frame_id_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _frame_id_type;
|
||||
_frame_id_type frame_id;
|
||||
|
||||
|
||||
|
@ -71,6 +71,22 @@ ros::message_operations::Printer< ::std_msgs::Header_<ContainerAllocator> >::str
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Header_<ContainerAllocator1> & lhs, const ::std_msgs::Header_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.seq == rhs.seq &&
|
||||
lhs.stamp == rhs.stamp &&
|
||||
lhs.frame_id == rhs.frame_id;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Header_<ContainerAllocator1> & lhs, const ::std_msgs::Header_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Header_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Header_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Header_<ContainerAllocator> >
|
||||
|
@ -108,6 +108,16 @@ struct IsMessage< ::std_msgs::Header_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Header_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Header_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Header_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -148,22 +158,20 @@ struct Definition< ::std_msgs::Header_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -207,7 +215,7 @@ struct Printer< ::std_msgs::Header_<ContainerAllocator> >
|
|||
s << indent << "stamp: ";
|
||||
Printer<ros::Time>::stream(s, indent + " ", v.stamp);
|
||||
s << indent << "frame_id: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.frame_id);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.frame_id);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int16_<ContainerAllocator> >::stre
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int16_<ContainerAllocator1> & lhs, const ::std_msgs::Int16_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int16_<ContainerAllocator1> & lhs, const ::std_msgs::Int16_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int16_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int16_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int16_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int16_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "int16 data\n\
|
||||
";
|
||||
return "int16 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Int16_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct Int16MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<int16_t, typename ContainerAllocator::template rebind<int16_t>::other > _data_type;
|
||||
typedef std::vector<int16_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<int16_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int16MultiArray_<ContainerAllocato
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int16MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int16MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int16MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int16MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int16MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int16MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int16MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int16MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int16MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int32_<ContainerAllocator> >::stre
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int32_<ContainerAllocator1> & lhs, const ::std_msgs::Int32_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int32_<ContainerAllocator1> & lhs, const ::std_msgs::Int32_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int32_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int32_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int32_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int32_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "int32 data\n\
|
||||
";
|
||||
return "int32 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Int32_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct Int32MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<int32_t, typename ContainerAllocator::template rebind<int32_t>::other > _data_type;
|
||||
typedef std::vector<int32_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<int32_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int32MultiArray_<ContainerAllocato
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int32MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int32MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int32MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int32MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int32MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int32MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int32MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int32MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int64_<ContainerAllocator> >::stre
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int64_<ContainerAllocator1> & lhs, const ::std_msgs::Int64_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int64_<ContainerAllocator1> & lhs, const ::std_msgs::Int64_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int64_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int64_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int64_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int64_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "int64 data\n\
|
||||
";
|
||||
return "int64 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Int64_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct Int64MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<int64_t, typename ContainerAllocator::template rebind<int64_t>::other > _data_type;
|
||||
typedef std::vector<int64_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<int64_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int64MultiArray_<ContainerAllocato
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int64MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int64MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int64MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int64MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int64MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int64MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int64MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int64MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Int8_<ContainerAllocator> >::strea
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int8_<ContainerAllocator1> & lhs, const ::std_msgs::Int8_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int8_<ContainerAllocator1> & lhs, const ::std_msgs::Int8_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int8_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Int8_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int8_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Int8_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "int8 data\n\
|
||||
";
|
||||
return "int8 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Int8_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct Int8MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<int8_t, typename ContainerAllocator::template rebind<int8_t>::other > _data_type;
|
||||
typedef std::vector<int8_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<int8_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::Int8MultiArray_<ContainerAllocator
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Int8MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int8MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Int8MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::Int8MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Int8MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::Int8MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Int8MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Int8MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::Int8MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -37,7 +37,7 @@ struct MultiArrayDimension_
|
|||
|
||||
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _label_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _label_type;
|
||||
_label_type label;
|
||||
|
||||
typedef uint32_t _size_type;
|
||||
|
@ -71,6 +71,22 @@ ros::message_operations::Printer< ::std_msgs::MultiArrayDimension_<ContainerAllo
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::MultiArrayDimension_<ContainerAllocator1> & lhs, const ::std_msgs::MultiArrayDimension_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.label == rhs.label &&
|
||||
lhs.size == rhs.size &&
|
||||
lhs.stride == rhs.stride;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::MultiArrayDimension_<ContainerAllocator1> & lhs, const ::std_msgs::MultiArrayDimension_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayDimension_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >
|
||||
|
@ -108,6 +108,16 @@ struct IsMessage< ::std_msgs::MultiArrayDimension_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayDimension_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -148,10 +158,10 @@ struct Definition< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -191,7 +201,7 @@ struct Printer< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >
|
|||
template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::std_msgs::MultiArrayDimension_<ContainerAllocator>& v)
|
||||
{
|
||||
s << indent << "label: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.label);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.label);
|
||||
s << indent << "size: ";
|
||||
Printer<uint32_t>::stream(s, indent + " ", v.size);
|
||||
s << indent << "stride: ";
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -36,7 +36,7 @@ struct MultiArrayLayout_
|
|||
|
||||
|
||||
|
||||
typedef std::vector< ::std_msgs::MultiArrayDimension_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >::other > _dim_type;
|
||||
typedef std::vector< ::std_msgs::MultiArrayDimension_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::std_msgs::MultiArrayDimension_<ContainerAllocator> >> _dim_type;
|
||||
_dim_type dim;
|
||||
|
||||
typedef uint32_t _data_offset_type;
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::MultiArrayLayout_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::MultiArrayLayout_<ContainerAllocator1> & lhs, const ::std_msgs::MultiArrayLayout_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.dim == rhs.dim &&
|
||||
lhs.data_offset == rhs.data_offset;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::MultiArrayLayout_<ContainerAllocator1> & lhs, const ::std_msgs::MultiArrayLayout_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayLayout_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayLayout_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::MultiArrayLayout_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::MultiArrayLayout_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayLayout_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::MultiArrayLayout_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::MultiArrayLayout_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,39 +153,39 @@ struct Definition< ::std_msgs::MultiArrayLayout_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -33,7 +33,7 @@ struct String_
|
|||
|
||||
|
||||
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _data_type;
|
||||
typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::String_<ContainerAllocator> >::str
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::String_<ContainerAllocator1> & lhs, const ::std_msgs::String_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::String_<ContainerAllocator1> & lhs, const ::std_msgs::String_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::String_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::String_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::String_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::String_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::String_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::String_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::String_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::String_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "string data\n\
|
||||
";
|
||||
return "string data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::String_<ContainerAllocator>&) { return value(); }
|
||||
|
@ -177,7 +185,7 @@ struct Printer< ::std_msgs::String_<ContainerAllocator> >
|
|||
template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::std_msgs::String_<ContainerAllocator>& v)
|
||||
{
|
||||
s << indent << "data: ";
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.data);
|
||||
Printer<std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>>::stream(s, indent + " ", v.data);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::Time_<ContainerAllocator> >::strea
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::Time_<ContainerAllocator1> & lhs, const ::std_msgs::Time_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::Time_<ContainerAllocator1> & lhs, const ::std_msgs::Time_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Time_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Time_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::Time_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::Time_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Time_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::Time_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::Time_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::Time_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "time data\n\
|
||||
";
|
||||
return "time data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::Time_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::UInt16_<ContainerAllocator> >::str
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::UInt16_<ContainerAllocator1> & lhs, const ::std_msgs::UInt16_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::UInt16_<ContainerAllocator1> & lhs, const ::std_msgs::UInt16_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::UInt16_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::UInt16_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::UInt16_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::UInt16_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "uint16 data\n\
|
||||
";
|
||||
return "uint16 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::UInt16_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct UInt16MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<uint16_t, typename ContainerAllocator::template rebind<uint16_t>::other > _data_type;
|
||||
typedef std::vector<uint16_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<uint16_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::UInt16MultiArray_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::UInt16MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::UInt16MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::UInt16MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::UInt16MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::UInt16MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::UInt16MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt16MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::UInt16MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::UInt16MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::UInt32_<ContainerAllocator> >::str
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::UInt32_<ContainerAllocator1> & lhs, const ::std_msgs::UInt32_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::UInt32_<ContainerAllocator1> & lhs, const ::std_msgs::UInt32_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::UInt32_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::UInt32_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::UInt32_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::UInt32_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "uint32 data\n\
|
||||
";
|
||||
return "uint32 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::UInt32_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct UInt32MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<uint32_t, typename ContainerAllocator::template rebind<uint32_t>::other > _data_type;
|
||||
typedef std::vector<uint32_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<uint32_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::UInt32MultiArray_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::UInt32MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::UInt32MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::UInt32MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::UInt32MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::UInt32MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::UInt32MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt32MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::UInt32MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::UInt32MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -61,6 +61,20 @@ ros::message_operations::Printer< ::std_msgs::UInt64_<ContainerAllocator> >::str
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::UInt64_<ContainerAllocator1> & lhs, const ::std_msgs::UInt64_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::UInt64_<ContainerAllocator1> & lhs, const ::std_msgs::UInt64_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::UInt64_<ContainerAllocator> >
|
||||
|
@ -98,6 +96,16 @@ struct IsMessage< ::std_msgs::UInt64_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64_<ContainerAllocator> >
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64_<ContainerAllocator> const>
|
||||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::UInt64_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -138,8 +146,8 @@ struct Definition< ::std_msgs::UInt64_<ContainerAllocator> >
|
|||
{
|
||||
static const char* value()
|
||||
{
|
||||
return "uint64 data\n\
|
||||
";
|
||||
return "uint64 data\n"
|
||||
;
|
||||
}
|
||||
|
||||
static const char* value(const ::std_msgs::UInt64_<ContainerAllocator>&) { return value(); }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include <ros/types.h>
|
||||
#include <ros/serialization.h>
|
||||
|
@ -39,7 +39,7 @@ struct UInt64MultiArray_
|
|||
typedef ::std_msgs::MultiArrayLayout_<ContainerAllocator> _layout_type;
|
||||
_layout_type layout;
|
||||
|
||||
typedef std::vector<uint64_t, typename ContainerAllocator::template rebind<uint64_t>::other > _data_type;
|
||||
typedef std::vector<uint64_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<uint64_t>> _data_type;
|
||||
_data_type data;
|
||||
|
||||
|
||||
|
@ -67,6 +67,21 @@ ros::message_operations::Printer< ::std_msgs::UInt64MultiArray_<ContainerAllocat
|
|||
return s;
|
||||
}
|
||||
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator==(const ::std_msgs::UInt64MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::UInt64MultiArray_<ContainerAllocator2> & rhs)
|
||||
{
|
||||
return lhs.layout == rhs.layout &&
|
||||
lhs.data == rhs.data;
|
||||
}
|
||||
|
||||
template<typename ContainerAllocator1, typename ContainerAllocator2>
|
||||
bool operator!=(const ::std_msgs::UInt64MultiArray_<ContainerAllocator1> & lhs, const ::std_msgs::UInt64MultiArray_<ContainerAllocator2> & 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 <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsMessage< ::std_msgs::UInt64MultiArray_<ContainerAllocator> >
|
||||
|
@ -104,6 +103,16 @@ struct IsMessage< ::std_msgs::UInt64MultiArray_<ContainerAllocator> const>
|
|||
: TrueType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct IsFixedSize< ::std_msgs::UInt64MultiArray_<ContainerAllocator> const>
|
||||
: FalseType
|
||||
{ };
|
||||
|
||||
template <class ContainerAllocator>
|
||||
struct HasHeader< ::std_msgs::UInt64MultiArray_<ContainerAllocator> >
|
||||
: FalseType
|
||||
|
@ -144,48 +153,48 @@ struct Definition< ::std_msgs::UInt64MultiArray_<ContainerAllocator> >
|
|||
{
|
||||
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_<ContainerAllocator>&) { return value(); }
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue