micro-ROS / micro_ros_arduino

micro-ROS library for Arduino
Apache License 2.0
435 stars 112 forks source link

RP2040 cortex-m0plus/libmicroros.a not linking functions #910

Closed Kotochleb closed 2 years ago

Kotochleb commented 2 years ago

Hi. I tried to build micro_ros for RP2040 with Arduino support on a board with RP2040 that is not Arduino Nano RP2040 Connect. I would like not to use custom buildchains and use as much mainstrem code as possible. I want to connect with my SBC over UART, preferably UART 0, but right now serial over USB is fine. My code is modyfied micro-ros_publisher.ino without including #include <micro_ros_arduino.h> and with set_microros_transports() changed to:

extern "C" bool arduino_transport_open(struct uxrCustomTransport * transport);
extern "C" bool arduino_transport_close(struct uxrCustomTransport * transport);
extern "C" size_t arduino_transport_write(struct uxrCustomTransport* transport, const uint8_t * buf, size_t len, uint8_t * err);
extern "C" size_t arduino_transport_read(struct uxrCustomTransport* transport, uint8_t* buf, size_t len, int timeout, uint8_t* err);

rmw_uros_set_custom_transport(
    true,
    NULL,
    arduino_transport_open,
    arduino_transport_close,
    arduino_transport_write,
    arduino_transport_read
);

My platform.ini looks as follows:

[env:maker_pi_cytron]
platform = raspberrypi
board = pico
framework = arduino
board_build.mcu = rp2040
board_build.f_cpu = 133000000L

build_flags = 
    -L ./.pio/libdeps/maker_pi_cytron/micro_ros_arduino/src/cortex-m0plus/
    -l microros
    -D LIB_PICO_STDIO_USB
    -D PICO_UART_ENABLE_CRLF_SUPPORT=0
    -D PICO_STDIO_ENABLE_CRLF_SUPPORT=0
    -D PICO_STDIO_DEFAULT_CRLF=0

platform_packages =
  toolchain-gccarmnoneeabi @ ~1.70201.0
  framework-arduino-mbed @ ~2.4.1

lib_deps =
    https://github.com/micro-ROS/micro_ros_arduino

While trying to build this code I get following warnings and finally build fails. I tried to rebuild the libmicroros.a from within the docker but it didn't fix the issue. Previously when I was experimenting with wizio-pico the code was building, but the SDK in this repo is too old and I had to move to someting more modern.

Logs below show that the problem might be realted to linking to functions in cortex-m0plus/libmicroros.a file. (I had to clip part of the logs)

.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libactionlib_msgs__rosidl_typesupport_introspection_c-goal_status__type_support.c.obj): In function `GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_init_function':
goal_status__type_support.c:(.text.GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_init_function+0x0): multiple definition of `GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libaction_msgs__rosidl_typesupport_introspection_c-goal_status__type_support.c.obj):goal_status__type_support.c:(.text.GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libactionlib_msgs__rosidl_typesupport_introspection_c-goal_status__type_support.c.obj): In function `GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_fini_function':
goal_status__type_support.c:(.text.GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_fini_function+0x0): multiple definition of `GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libaction_msgs__rosidl_typesupport_introspection_c-goal_status__type_support.c.obj):goal_status__type_support.c:(.text.GoalStatus__rosidl_typesupport_introspection_c__GoalStatus_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libactionlib_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj): In function `GoalStatusArray__rosidl_typesupport_introspection_c__size_function__GoalStatus__status_list':
goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__size_function__GoalStatus__status_list+0x0): multiple definition of `GoalStatusArray__rosidl_typesupport_introspection_c__size_function__GoalStatus__status_list'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libaction_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj):goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__size_function__GoalStatus__status_list+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libactionlib_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj): In function `GoalStatusArray__rosidl_typesupport_introspection_c__get_const_function__GoalStatus__status_list':
goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__get_const_function__GoalStatus__status_list+0x0): multiple definition of `GoalStatusArray__rosidl_typesupport_introspection_c__get_const_function__GoalStatus__status_list'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libaction_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj):goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__get_const_function__GoalStatus__status_list+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libactionlib_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj): In function `GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_init_function':
goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_init_function+0x0): multiple definition of `GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libaction_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj):goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libactionlib_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj): In function `GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_fini_function':
goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_fini_function+0x0): multiple definition of `GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libaction_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj):goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__GoalStatusArray_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libactionlib_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj): In function `GoalStatusArray__rosidl_typesupport_introspection_c__resize_function__GoalStatus__status_list':
goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__resize_function__GoalStatus__status_list+0x0): multiple definition of `GoalStatusArray__rosidl_typesupport_introspection_c__resize_function__GoalStatus__status_list'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libaction_msgs__rosidl_typesupport_introspection_c-goal_status_array__type_support.c.obj):goal_status_array__type_support.c:(.text.GoalStatusArray__rosidl_typesupport_introspection_c__resize_function__GoalStatus__status_list+0x0): first defined here
multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__get_const_function__MultiArrayDimension__dim+0x0): multiple definition of `MultiArrayLayout__rosidl_typesupport_introspection_c__get_const_function__MultiArrayDimension__dim'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj):multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__get_const_function__MultiArrayDimension__dim+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj): In function `MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_init_function':
multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_init_function+0x0): multiple definition of `MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj):multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj): In function `MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_fini_function':
multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_fini_function+0x0): multiple definition of `MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj):multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__MultiArrayLayout_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj): In function `MultiArrayLayout__rosidl_typesupport_introspection_c__resize_function__MultiArrayDimension__dim':
multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__resize_function__MultiArrayDimension__dim+0x0): multiple definition of `MultiArrayLayout__rosidl_typesupport_introspection_c__resize_function__MultiArrayDimension__dim'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj):multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__resize_function__MultiArrayDimension__dim+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj): In function `MultiArrayLayout__rosidl_typesupport_introspection_c__get_function__MultiArrayDimension__dim':
multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__get_function__MultiArrayDimension__dim+0x0): multiple definition of `MultiArrayLayout__rosidl_typesupport_introspection_c__get_function__MultiArrayDimension__dim'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-multi_array_layout__type_support.c.obj):multi_array_layout__type_support.c:(.text.MultiArrayLayout__rosidl_typesupport_introspection_c__get_function__MultiArrayDimension__dim+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-string__type_support.c.obj): In function `String__rosidl_typesupport_introspection_c__String_init_function':
string__type_support.c:(.text.String__rosidl_typesupport_introspection_c__String_init_function+0x0): multiple definition of `String__rosidl_typesupport_introspection_c__String_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-string__type_support.c.obj):string__type_support.c:(.text.String__rosidl_typesupport_introspection_c__String_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-string__type_support.c.obj): In function `String__rosidl_typesupport_introspection_c__String_fini_function':
string__type_support.c:(.text.String__rosidl_typesupport_introspection_c__String_fini_function+0x0): multiple definition of `String__rosidl_typesupport_introspection_c__String_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-string__type_support.c.obj):string__type_support.c:(.text.String__rosidl_typesupport_introspection_c__String_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int16__type_support.c.obj): In function `UInt16__rosidl_typesupport_introspection_c__UInt16_init_function':
u_int16__type_support.c:(.text.UInt16__rosidl_typesupport_introspection_c__UInt16_init_function+0x0): multiple definition of `UInt16__rosidl_typesupport_introspection_c__UInt16_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int16__type_support.c.obj):u_int16__type_support.c:(.text.UInt16__rosidl_typesupport_introspection_c__UInt16_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int16__type_support.c.obj): In function `UInt16__rosidl_typesupport_introspection_c__UInt16_fini_function':
u_int16__type_support.c:(.text.UInt16__rosidl_typesupport_introspection_c__UInt16_fini_function+0x0): multiple definition of `UInt16__rosidl_typesupport_introspection_c__UInt16_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int16__type_support.c.obj):u_int16__type_support.c:(.text.UInt16__rosidl_typesupport_introspection_c__UInt16_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int16_multi_array__type_support.c.obj): In function `UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_init_function':
u_int16_multi_array__type_support.c:(.text.UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_init_function+0x0): multiple definition of `UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int16_multi_array__type_support.c.obj):u_int16_multi_array__type_support.c:(.text.UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int16_multi_array__type_support.c.obj): In function `UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_fini_function':
u_int16_multi_array__type_support.c:(.text.UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_fini_function+0x0): multiple definition of `UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int16_multi_array__type_support.c.obj):u_int16_multi_array__type_support.c:(.text.UInt16MultiArray__rosidl_typesupport_introspection_c__UInt16MultiArray_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int32__type_support.c.obj): In function `UInt32__rosidl_typesupport_introspection_c__UInt32_init_function':
u_int32__type_support.c:(.text.UInt32__rosidl_typesupport_introspection_c__UInt32_init_function+0x0): multiple definition of `UInt32__rosidl_typesupport_introspection_c__UInt32_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int32__type_support.c.obj):u_int32__type_support.c:(.text.UInt32__rosidl_typesupport_introspection_c__UInt32_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int32__type_support.c.obj): In function `UInt32__rosidl_typesupport_introspection_c__UInt32_fini_function':
u_int32__type_support.c:(.text.UInt32__rosidl_typesupport_introspection_c__UInt32_fini_function+0x0): multiple definition of `UInt32__rosidl_typesupport_introspection_c__UInt32_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int32__type_support.c.obj):u_int32__type_support.c:(.text.UInt32__rosidl_typesupport_introspection_c__UInt32_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int32_multi_array__type_support.c.obj): In function `UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_init_function':
u_int32_multi_array__type_support.c:(.text.UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_init_function+0x0): multiple definition of `UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int32_multi_array__type_support.c.obj):u_int32_multi_array__type_support.c:(.text.UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int32_multi_array__type_support.c.obj): In function `UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_fini_function':
u_int32_multi_array__type_support.c:(.text.UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_fini_function+0x0): multiple definition of `UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int32_multi_array__type_support.c.obj):u_int32_multi_array__type_support.c:(.text.UInt32MultiArray__rosidl_typesupport_introspection_c__UInt32MultiArray_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int64__type_support.c.obj): In function `UInt64__rosidl_typesupport_introspection_c__UInt64_init_function':
u_int64__type_support.c:(.text.UInt64__rosidl_typesupport_introspection_c__UInt64_init_function+0x0): multiple definition of `UInt64__rosidl_typesupport_introspection_c__UInt64_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int64__type_support.c.obj):u_int64__type_support.c:(.text.UInt64__rosidl_typesupport_introspection_c__UInt64_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int64__type_support.c.obj): In function `UInt64__rosidl_typesupport_introspection_c__UInt64_fini_function':
u_int64__type_support.c:(.text.UInt64__rosidl_typesupport_introspection_c__UInt64_fini_function+0x0): multiple definition of `UInt64__rosidl_typesupport_introspection_c__UInt64_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int64__type_support.c.obj):u_int64__type_support.c:(.text.UInt64__rosidl_typesupport_introspection_c__UInt64_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int64_multi_array__type_support.c.obj): In function `UInt64MultiArray__rosidl_typesupport_introspection_c__UInt64MultiArray_init_function':
u_int64_multi_array__type_support.c:(.text.UInt64MultiArray__rosidl_typesupport_introspection_c__UInt64MultiArray_init_function+0x0): multiple definition of `UInt64MultiArray__rosidl_typesupport_introspection_c__UInt64MultiArray_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-u_int64_multi_array__type_support.c.obj):u_int64_multi_array__type_support.c:(.text.UInt64MultiArray__rosidl_typesupport_introspection_c__UInt64MultiArray_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_msgs__rosidl_typesupport_introspection_c-u_int64_multi_array__type_support.c.obj): In function `UInt64MultiArray__rosidl_typesupport_introspection_c__UInt64MultiArray_fini_function':
u_int64_multi_array__type_support.c:(.text.UInt64MultiArray__rosidl_typesupport_introspection_c__UInt64MultiArray_fini_function+0x0): multiple definition of `UInt64MultiArray__rosidl_typesupport_introspection_c__UInt64MultiArray_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-empty__type_support.c.obj): In function `Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_init_function':
empty__type_support.c:(.text.Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_init_function+0x0): multiple definition of `Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_srvs__rosidl_typesupport_introspection_c-empty__type_support.c.obj):empty__type_support.c:(.text.Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-empty__type_support.c.obj): In function `Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_fini_function':
empty__type_support.c:(.text.Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_fini_function+0x0): multiple definition of `Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libstd_srvs__rosidl_typesupport_introspection_c-empty__type_support.c.obj):empty__type_support.c:(.text.Empty_Response__rosidl_typesupport_introspection_c__Empty_Response_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_Goal__rosidl_typesupport_introspection_c__Fibonacci_Goal_init_function':
fibonacci__type_support.c:(.text.Fibonacci_Goal__rosidl_typesupport_introspection_c__Fibonacci_Goal_init_function+0x0): multiple definition of `Fibonacci_Goal__rosidl_typesupport_introspection_c__Fibonacci_Goal_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_Goal__rosidl_typesupport_introspection_c__Fibonacci_Goal_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_Goal__rosidl_typesupport_introspection_c__Fibonacci_Goal_fini_function':
fibonacci__type_support.c:(.text.Fibonacci_Goal__rosidl_typesupport_introspection_c__Fibonacci_Goal_fini_function+0x0): multiple definition of `Fibonacci_Goal__rosidl_typesupport_introspection_c__Fibonacci_Goal_fini_function'
fibonacci__type_support.c:(.text.Fibonacci_Feedback__rosidl_typesupport_introspection_c__Fibonacci_Feedback_fini_function+0x0): multiple definition of `Fibonacci_Feedback__rosidl_typesupport_introspection_c__Fibonacci_Feedback_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_Feedback__rosidl_typesupport_introspection_c__Fibonacci_Feedback_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_init_function':
fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_init_function+0x0): multiple definition of `Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_fini_function':
fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_fini_function+0x0): multiple definition of `Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Request__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Request_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_init_function':
fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_init_function+0x0): multiple definition of `Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_fini_function':
fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_fini_function+0x0): multiple definition of `Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_SendGoal_Response__rosidl_typesupport_introspection_c__Fibonacci_SendGoal_Response_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_init_function':
fibonacci__type_support.c:(.text.Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_init_function+0x0): multiple definition of `Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_fini_function':
fibonacci__type_support.c:(.text.Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_fini_function+0x0): multiple definition of `Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_GetResult_Request__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Request_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_init_function':
fibonacci__type_support.c:(.text.Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_init_function+0x0): multiple definition of `Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_fini_function':
fibonacci__type_support.c:(.text.Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_fini_function+0x0): multiple definition of `Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_GetResult_Response__rosidl_typesupport_introspection_c__Fibonacci_GetResult_Response_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_init_function':
fibonacci__type_support.c:(.text.Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_init_function+0x0): multiple definition of `Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_init_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_init_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj): In function `Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_fini_function':
fibonacci__type_support.c:(.text.Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_fini_function+0x0): multiple definition of `Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_fini_function'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libexample_interfaces__rosidl_typesupport_introspection_c-fibonacci__type_support.c.obj):fibonacci__type_support.c:(.text.Fibonacci_FeedbackMessage__rosidl_typesupport_introspection_c__Fibonacci_FeedbackMessage_fini_function+0x0): first defined here
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_generator_c-gripper_command__functions.c.obj): In function `control_msgs__action__GripperCommand_Goal__init':
gripper_command__functions.c:(.text.control_msgs__action__GripperCommand_Goal__init+0xa): undefined reference to `control_msgs__msg__GripperCommand__init'
gripper_command__functions.c:(.text.control_msgs__action__GripperCommand_Goal__init+0x18): undefined reference to `control_msgs__msg__GripperCommand__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_generator_c-gripper_command__functions.c.obj): In function `control_msgs__action__GripperCommand_Goal__fini':
gripper_command__functions.c:(.text.control_msgs__action__GripperCommand_Goal__fini+0x6): undefined reference to `control_msgs__msg__GripperCommand__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_generator_c-gripper_command__functions.c.obj): In function `control_msgs__action__GripperCommand_SendGoal_Request__init':
gripper_command__functions.c:(.text.control_msgs__action__GripperCommand_SendGoal_Request__init+0x1a): undefined reference to `control_msgs__msg__GripperCommand__init'
gripper_command__functions.c:(.text.control_msgs__action__GripperCommand_SendGoal_Request__init+0x28): undefined reference to `control_msgs__msg__GripperCommand__fini'
gripper_command__functions.c:(.text.control_msgs__action__GripperCommand_SendGoal_Request__init+0x34): undefined reference to `control_msgs__msg__GripperCommand__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_generator_c-gripper_command__functions.c.obj): In function `control_msgs__action__GripperCommand_SendGoal_Request__fini':
gripper_command__functions.c:(.text.control_msgs__action__GripperCommand_SendGoal_Request__fini+0xe): undefined reference to `control_msgs__msg__GripperCommand__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_introspection_c-gripper_command__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__control_msgs__action__GripperCommand_Goal':
gripper_command__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__control_msgs__action__GripperCommand_Goal+0x2): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_introspection_c-gripper_command__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__control_msgs__action__GripperCommand_SendGoal_Request':
gripper_command__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__control_msgs__action__GripperCommand_SendGoal_Request+0xa): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_introspection_c-gripper_command__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_service_type_support_handle__control_msgs__action__GripperCommand_SendGoal':
gripper_command__type_support.c:(.text.rosidl_typesupport_introspection_c__get_service_type_support_handle__control_msgs__action__GripperCommand_SendGoal+0x32): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_microxrcedds_c-gripper_command__type_support_c.c.obj): In function `get_serialized_size_control_msgs__action__GripperCommand_Goal':
gripper_command__type_support_c.c:(.text.get_serialized_size_control_msgs__action__GripperCommand_Goal+0x8): undefined reference to `get_serialized_size_control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_microxrcedds_c-gripper_command__type_support_c.c.obj): In function `_GripperCommand_Goal__max_serialized_size':
gripper_command__type_support_c.c:(.text._GripperCommand_Goal__max_serialized_size+0xe): undefined reference to `max_serialized_size_control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_microxrcedds_c-gripper_command__type_support_c.c.obj): In function `_GripperCommand_Goal__get_serialized_size':
gripper_command__type_support_c.c:(.text._GripperCommand_Goal__get_serialized_size+0xa): undefined reference to `get_serialized_size_control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_microxrcedds_c-gripper_command__type_support_c.c.obj): In function `_GripperCommand_SendGoal_Request__get_serialized_size':
gripper_command__type_support_c.c:(.text._GripperCommand_SendGoal_Request__get_serialized_size+0x1a): undefined reference to `get_serialized_size_control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libcontrol_msgs__rosidl_typesupport_microxrcedds_c-gripper_command__type_support_c.c.obj): In function `_GripperCommand_SendGoal_Request__max_serialized_size':
gripper_command__type_support_c.c:(.text._GripperCommand_SendGoal_Request__max_serialized_size+0x1c): undefined reference to `max_serialized_size_control_msgs__msg__GripperCommand'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-arrays__functions.c.obj): In function `test_msgs__srv__Arrays_Request__init':
arrays__functions.c:(.text.test_msgs__srv__Arrays_Request__init+0x2d4): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-arrays__functions.c.obj): In function `test_msgs__srv__Arrays_Request__fini':
arrays__functions.c:(.text.test_msgs__srv__Arrays_Request__fini+0x20): undefined reference to `test_msgs__msg__BasicTypes__fini'
arrays__functions.c:(.text.test_msgs__srv__Arrays_Request__fini+0x28): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-arrays__functions.c.obj):arrays__functions.c:(.text.test_msgs__srv__Arrays_Request__fini+0x32): more undefined references to `test_msgs__msg__BasicTypes__fini' follow
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-arrays__functions.c.obj): In function `test_msgs__srv__Arrays_Response__init':
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__init+0x54): undefined reference to `test_msgs__msg__BasicTypes__init'
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__init+0x66): undefined reference to `test_msgs__msg__BasicTypes__init'
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__init+0x7e): undefined reference to `test_msgs__msg__BasicTypes__init'
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__init+0x2c8): undefined reference to `test_msgs__msg__BasicTypes__fini'
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__init+0x2ce): undefined reference to `test_msgs__msg__BasicTypes__fini'
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__init+0x2d4): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-arrays__functions.c.obj): In function `test_msgs__srv__Arrays_Response__fini':
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__fini+0x20): undefined reference to `test_msgs__msg__BasicTypes__fini'
arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__fini+0x28): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-arrays__functions.c.obj):arrays__functions.c:(.text.test_msgs__srv__Arrays_Response__fini+0x32): more undefined references to `test_msgs__msg__BasicTypes__fini' follow
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-bounded_sequences__functions.c.obj): In function `test_msgs__msg__BoundedSequences__fini.part.0':
bounded_sequences__functions.c:(.text.test_msgs__msg__BoundedSequences__fini.part.0+0x74): undefined reference to `test_msgs__msg__BasicTypes__Sequence__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-bounded_sequences__functions.c.obj): In function `test_msgs__msg__BoundedSequences__init':
bounded_sequences__functions.c:(.text.test_msgs__msg__BoundedSequences__init+0xf8): undefined reference to `test_msgs__msg__BasicTypes__Sequence__init'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-bounded_sequences__functions.c.obj): In function `test_msgs__msg__BoundedSequences__Sequence__init':
bounded_sequences__functions.c:(.text.test_msgs__msg__BoundedSequences__Sequence__init+0x156): undefined reference to `test_msgs__msg__BasicTypes__Sequence__init'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-multi_nested__functions.c.obj): In function `test_msgs__msg__MultiNested__init.part.1':
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init.part.1+0x16): undefined reference to `test_msgs__msg__Arrays__Sequence__init'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init.part.1+0x58): undefined reference to `test_msgs__msg__Arrays__Sequence__init'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init.part.1+0x7a): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init.part.1+0x84): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init.part.1+0x8e): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init.part.1+0xcc): undefined reference to `test_msgs__msg__Arrays__Sequence__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init.part.1+0xde): undefined reference to `test_msgs__msg__Arrays__Sequence__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-multi_nested__functions.c.obj): In function `test_msgs__msg__MultiNested__init':
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init+0x1c): undefined reference to `test_msgs__msg__Arrays__init'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init+0xbe): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init+0xc8): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init+0xd2): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init+0xfe): undefined reference to `test_msgs__msg__Arrays__Sequence__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__init+0x116): undefined reference to `test_msgs__msg__Arrays__Sequence__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-multi_nested__functions.c.obj): In function `test_msgs__msg__MultiNested__fini':
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__fini+0x6): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__fini+0x10): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__fini+0x1a): undefined reference to `test_msgs__msg__Arrays__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__fini+0x5a): undefined reference to `test_msgs__msg__Arrays__Sequence__fini'
multi_nested__functions.c:(.text.test_msgs__msg__MultiNested__fini+0x72): undefined reference to `test_msgs__msg__Arrays__Sequence__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested__functions.c.obj): In function `test_msgs__msg__Nested__init':
nested__functions.c:(.text.test_msgs__msg__Nested__init+0xa): undefined reference to `test_msgs__msg__BasicTypes__init'
nested__functions.c:(.text.test_msgs__msg__Nested__init+0x18): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested__functions.c.obj): In function `test_msgs__msg__Nested__fini':
nested__functions.c:(.text.test_msgs__msg__Nested__fini+0x6): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested_message__functions.c.obj): In function `test_msgs__action__NestedMessage_Goal__init':
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Goal__init+0x1e): undefined reference to `test_msgs__msg__BasicTypes__init'
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Goal__init+0x3c): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested_message__functions.c.obj): In function `test_msgs__action__NestedMessage_Goal__fini':
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Goal__fini+0xe): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested_message__functions.c.obj): In function `test_msgs__action__NestedMessage_Result__init':
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Result__init+0x1e): undefined reference to `test_msgs__msg__BasicTypes__init'
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Result__init+0x3c): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested_message__functions.c.obj): In function `test_msgs__action__NestedMessage_Result__fini':
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Result__fini+0xe): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested_message__functions.c.obj): In function `test_msgs__action__NestedMessage_Feedback__init':
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Feedback__init+0x1e): undefined reference to `test_msgs__msg__BasicTypes__init'
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Feedback__init+0x3c): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested_message__functions.c.obj): In function `test_msgs__action__NestedMessage_Feedback__fini':
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_Feedback__fini+0xe): undefined reference to `test_msgs__msg__BasicTypes__fini'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_generator_c-nested_message__functions.c.obj): In function `test_msgs__action__NestedMessage_SendGoal_Request__init':
nested_message__functions.c:(.text.test_msgs__action__NestedMessage_SendGoal_Request__init+0x32): undefined reference to `test_msgs__msg__BasicTypes__init'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-multi_nested__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__MultiNested':
multi_nested__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__MultiNested+0x2): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__Arrays'
multi_nested__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__MultiNested+0x16): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__Arrays'
multi_nested__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__MultiNested+0x30): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__Arrays'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-nested__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__Nested':
nested__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__Nested+0x2): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-nested_message__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_Goal':
nested_message__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_Goal+0xa): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-nested_message__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_Result':
nested_message__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_Result+0xa): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-nested_message__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_Feedback':
nested_message__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_Feedback+0xa): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-nested_message__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_SendGoal_Request':
nested_message__type_support.c:(.text.rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__action__NestedMessage_SendGoal_Request+0x12): undefined reference to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-nested_message__type_support.c.obj):nested_message__type_support.c:(.text.rosidl_typesupport_introspection_c__get_service_type_support_handle__test_msgs__action__NestedMessage_SendGoal+0x3a): more undefined references to `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__BasicTypes' follow
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-unbounded_sequences__type_support.c.obj): In function `UnboundedSequences__rosidl_typesupport_introspection_c__resize_function__BasicTypes__basic_types_values':
unbounded_sequences__type_support.c:(.text.UnboundedSequences__rosidl_typesupport_introspection_c__resize_function__BasicTypes__basic_types_values+0x6): undefined reference to `test_msgs__msg__BasicTypes__Sequence__fini'
unbounded_sequences__type_support.c:(.text.UnboundedSequences__rosidl_typesupport_introspection_c__resize_function__BasicTypes__basic_types_values+0xe): undefined reference to `test_msgs__msg__BasicTypes__Sequence__init'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_introspection_c-unbounded_sequences__type_support.c.obj): In function `rosidl_typesupport_introspection_c__get_message_type_support_handle__test_msgs__msg__UnboundedSequences':
unbounded_sequences__type_support.c:
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_microxrcedds_c-nested_message__type_support_c.c.obj):nested_message__type_support_c.c:(.text._NestedMessage_SendGoal_Request__max_serialized_size+0x26): more undefined references to `max_serialized_size_test_msgs__msg__BasicTypes' follow
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_microxrcedds_c-unbounded_sequences__type_support_c.c.obj): In function `get_serialized_size_test_msgs__msg__UnboundedSequences.part.0':
unbounded_sequences__type_support_c.c:(.text.get_serialized_size_test_msgs__msg__UnboundedSequences.part.0+0x1d2): undefined reference to `rosidl_typesupport_microxrcedds_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_microxrcedds_c-unbounded_sequences__type_support_c.c.obj): In function `_UnboundedSequences__cdr_deserialize':
unbounded_sequences__type_support_c.c:(.text._UnboundedSequences__cdr_deserialize+0x1ec): undefined reference to `rosidl_typesupport_microxrcedds_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
.pio/libdeps/pi_pico/micro_ros_arduino/src/cortex-m0plus/libmicroros.a(libtest_msgs__rosidl_typesupport_microxrcedds_c-unbounded_sequences__type_support_c.c.obj): In function `_UnboundedSequences__cdr_serialize':
unbounded_sequences__type_support_c.c:(.text._UnboundedSequences__cdr_serialize+0x12a): undefined reference to `rosidl_typesupport_microxrcedds_c__get_message_type_support_handle__test_msgs__msg__BasicTypes'
pablogs9 commented 2 years ago

Please copy here the whole build output log.

Can you share your whole code? Why are you removing #include <micro_ros_arduino.h>?

Kotochleb commented 2 years ago

Here is main.cpp file: https://github.com/Kotochleb/microros_rp2040_robot/blob/main/src/main.cpp

I am not including micro_ros_arduino.h since it does not add anything to the code. In case of specifying Raspberry Pi Pico it will force transport layer to be over wifi. If I don't define any target architecture, from what I understand from source code, it won't do anything. That is why I am defining transport layer myself.

In case of build log, the problem is that I exceed a boundary of how long my message on GitHub can be, and I tried to clip is as little as I could. Most of the logs are repetitive.

pablogs9 commented 2 years ago

In some Arduino environments the include makes the build system to resolve the library:

Using board 'teensy41' from platform in folder: /home/pgarrido/.arduino15/packages/teensy/avr
Using core 'teensy4' from platform in folder: /home/pgarrido/.arduino15/packages/teensy/avr
Detecting libraries used...
/home/pgarrido/.arduino15/packages/teensy/../tools/arm/bin/arm-none-eabi-g++ -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=153 -DARDUINO=10607 -DARDUINO_TEENSY41 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH -I/home/pgarrido/.arduino15/packages/teensy/avr/cores/teensy4 /tmp/arduino-sketch-776FACD3F9198D5291708649B4419502/sketch/micro-ros_reconnection_example.ino.cpp -o /dev/null

CHECK HERE:

Alternatives for micro_ros_arduino.h: [micro_ros_arduino-0.0.1@2.0.4-rolling]
ResolveLibrary(micro_ros_arduino.h)
  -> candidates: [micro_ros_arduino-0.0.1@2.0.4-rolling]

Maybe if you remove this line, the build system is not including the library and that's why the linker does not find the symbols.

Kotochleb commented 2 years ago

I included the micro_ros_arduino.h and I got error messages related to wifi. I also added -U ARDUINO_NANO_RP2040_CONNECT to ensure that this platform won't be compiled. But eventually, it still wants to include wifi anyway.

<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:2: warning: extra tokens at end of #undef directive
Compiling .pio/build/maker_pi_cytron/lib0cf/SocketWrapper/MbedSSLClient.cpp.o
<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:2: warning: extra tokens at end of #undef directive
Compiling .pio/build/maker_pi_cytron/lib0cf/SocketWrapper/MbedServer.cpp.o
<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:2: warning: extra tokens at end of #undef directive
Compiling .pio/build/maker_pi_cytron/lib0cf/SocketWrapper/MbedUdp.cpp.o
<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:2: warning: extra tokens at end of #undef directive
Compiling .pio/build/maker_pi_cytron/lib0cf/SocketWrapper/SocketHelpers.cpp.o
<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:2: warning: extra tokens at end of #undef directive
Compiling .pio/build/maker_pi_cytron/lib0cf/SocketWrapper/utility/http_parser/http_parser.c.o
Compiling .pio/build/maker_pi_cytron/liba84/Ethernet/Ethernet.cpp.o
<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:2: warning: extra tokens at end of #undef directive
<command-line>:0:2: warning: extra tokens at end of #undef directive
<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:2: warning: extra tokens at end of #undef directive
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c: In function 'http_parser_execute':
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:1817:31: warning: this statement may fall through [-Wimplicit-fallthrough=]
               parser->upgrade = 1;
               ~~~~~~~~~~~~~~~~^~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:1819:13: note: here
             case 1:
             ^~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c: In function 'http_parser_parse_url':
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:2376:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
         found_at = 1;
         ~~~~~~~~~^~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:2379:7: note: here
       case s_req_server:
       ^~~~
*** [.pio/build/maker_pi_cytron/lib0cf/SocketWrapper/utility/http_parser/http_parser.c.o] Error 1
In file included from /home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedSSLClient.cpp:1:0:
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedSSLClient.h: In member function 'int arduino::MbedSSLClient::setRootCA()':
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedSSLClient.h:46:14: error: 'TLSSocket' was not declared in this scope
     return ((TLSSocket*)sock)->set_root_ca_cert_path("/wlan/");
              ^~~~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedSSLClient.h:46:14: note: suggested alternative: 'DTLSSocket'
     return ((TLSSocket*)sock)->set_root_ca_cert_path("/wlan/");
              ^~~~~~~~~
              DTLSSocket
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedSSLClient.h:46:24: error: expected primary-expression before ')' token
     return ((TLSSocket*)sock)->set_root_ca_cert_path("/wlan/");
                        ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedSSLClient.h:46:25: error: expected ')' before 'sock'
     return ((TLSSocket*)sock)->set_root_ca_cert_path("/wlan/");
                         ^~~~
*** [.pio/build/maker_pi_cytron/src/main.cpp.o] Error 1
*** [.pio/build/maker_pi_cytron/lib0cf/SocketWrapper/MbedSSLClient.cpp.o] Error 1
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp: In member function 'int arduino::MbedClient::connectSSL(SocketAddress)':
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:123:16: error: expected type-specifier before 'TLSSocket'
     sock = new TLSSocket();
                ^~~~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:134:19: error: 'TLSSocket' does not name a type; did you mean 'DTLSSocket'?
   if (static_cast<TLSSocket *>(sock)->open(getNetwork()) != NSAPI_ERROR_OK) {
                   ^~~~~~~~~
                   DTLSSocket
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:134:29: error: expected '>' before '*' token
   if (static_cast<TLSSocket *>(sock)->open(getNetwork()) != NSAPI_ERROR_OK) {
                             ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:134:29: error: expected '(' before '*' token
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:134:30: error: expected primary-expression before '>' token
   if (static_cast<TLSSocket *>(sock)->open(getNetwork()) != NSAPI_ERROR_OK) {
                              ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:134:39: error: 'class Socket' has no member named 'open'
   if (static_cast<TLSSocket *>(sock)->open(getNetwork()) != NSAPI_ERROR_OK) {
                                       ^~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:134:77: error: expected ')' before '{' token
   if (static_cast<TLSSocket *>(sock)->open(getNetwork()) != NSAPI_ERROR_OK) {
                                                                             ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:138:26: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
   address = socketAddress;
                          ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:141:42: error: 'TLSSocket' does not name a type; did you mean 'DTLSSocket'?
   nsapi_error_t returnCode = static_cast<TLSSocket *>(sock)->connect(socketAddress);
                                          ^~~~~~~~~
                                          DTLSSocket
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:141:52: error: expected '>' before '*' token
   nsapi_error_t returnCode = static_cast<TLSSocket *>(sock)->connect(socketAddress);
                                                    ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:141:52: error: expected '(' before '*' token
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:141:53: error: expected primary-expression before '>' token
   nsapi_error_t returnCode = static_cast<TLSSocket *>(sock)->connect(socketAddress);
                                                     ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/MbedClient.cpp:141:84: error: expected ')' before ';' token
   nsapi_error_t returnCode = static_cast<TLSSocket *>(sock)->connect(socketAddress);
                                                                                    ^
*** [.pio/build/maker_pi_cytron/lib0cf/SocketWrapper/MbedClient.cpp.o] Error 1
*** [.pio/build/maker_pi_cytron/lib0cf/SocketWrapper/MbedUdp.cpp.o] Error 1
*** [.pio/build/maker_pi_cytron/lib0cf/SocketWrapper/MbedServer.cpp.o] Error 1
In file included from /home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/SocketHelpers.cpp:104:0:
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:82:27: error: expected ')' before '*' token
     HttpsRequest(TLSSocket* socket,
                           ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h: In constructor 'HttpsRequest::HttpsRequest(NetworkInterface*, const char*, http_method, const char*, mbed::Callback<void(const char*, long unsigned int)>)':
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:62:23: error: expected type-specifier before 'TLSSocket'
         _socket = new TLSSocket();
                       ^~~~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:63:11: error: 'TLSSocket' was not declared in this scope
         ((TLSSocket*)_socket)->open(network);
           ^~~~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:63:11: note: suggested alternative: 'DTLSSocket'
         ((TLSSocket*)_socket)->open(network);
           ^~~~~~~~~
           DTLSSocket
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:63:21: error: expected primary-expression before ')' token
         ((TLSSocket*)_socket)->open(network);
                     ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:63:22: error: expected ')' before '_socket'
         ((TLSSocket*)_socket)->open(network);
                      ^~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:65:23: error: expected primary-expression before ')' token
           ((TLSSocket*)_socket)->set_root_ca_cert(ssl_ca_pem);
                       ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:65:24: error: expected ')' before '_socket'
           ((TLSSocket*)_socket)->set_root_ca_cert(ssl_ca_pem);
                        ^~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:67:23: error: expected primary-expression before ')' token
           ((TLSSocket*)_socket)->set_root_ca_cert_path("/wlan/");
                       ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:67:24: error: expected ')' before '_socket'
           ((TLSSocket*)_socket)->set_root_ca_cert_path("/wlan/");
                        ^~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h: In member function 'virtual nsapi_error_t HttpsRequest::connect_socket(char*, uint16_t)':
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:103:18: error: 'TLSSocket' was not declared in this scope
         return ((TLSSocket*)_socket)->connect(socketAddress);
                  ^~~~~~~~~
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:103:18: note: suggested alternative: 'DTLSSocket'
         return ((TLSSocket*)_socket)->connect(socketAddress);
                  ^~~~~~~~~
                  DTLSSocket
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:103:28: error: expected primary-expression before ')' token
         return ((TLSSocket*)_socket)->connect(socketAddress);
                            ^
/home/user/.platformio/packages/framework-arduino-mbed@2.4.1/libraries/SocketWrapper/src/utility/https_request.h:103:29: error: expected ')' before '_socket'
         return ((TLSSocket*)_socket)->connect(socketAddress);
                             ^~~~~~~
*** [.pio/build/maker_pi_cytron/liba84/Ethernet/Ethernet.cpp.o] Error 1
*** [.pio/build/maker_pi_cytron/lib0cf/SocketWrapper/SocketHelpers.cpp.o] Error 1
pablogs9 commented 2 years ago

Maybe you should add another target that is a bare RP2040 and is not related to RP2040 Nano. If you make those modifications in micro_ros_arduino.h do not hesitate to contribute them via PR.

Kotochleb commented 2 years ago

Sure. I will fork it and try to implement it.

Kotochleb commented 2 years ago

Ok. I made it work over USB. So far micro_ros_arduino.h includes anything with wifi even though preprocessor should omit those includes. I will take a deeper look into that on the weekend. It turned out the linker problem was solved in https://github.com/micro-ROS/micro_ros_arduino/issues/774.

With all that, I got nice 100 Hz published over USB. Right now, I will clean up all the stuff, make the code look better, do some more testing and hopefully the PR will be open in two weeks.

EDIT. Transport over Serial1 works as well, but so far, I only managed to get about 60 Hz out of it.

pablogs9 commented 2 years ago

Nice, I'm closing. Please reopen if you have any related issue,