- Hardware description: I'm using and Arduino Portenta H7- Software: I'm running it on Arduino IDE 1.8.19, with the micro-ros Humble library (I've tried both 2.0.5 and 2.0.7)
Steps to reproduce the issue
I'm literally trying to run any of the ROS examples. When I run the publisher I get a load of errors relating to libraries/functions not being found. When I go through my files I can find most of them. I suspect it might be a compatibility issue but I have no idea how to resolve it.
Here are the error messages:
_Build options changed, rebuilding all
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/src/native_ethernet_transport.cpp: In function 'size_t arduino_native_ethernet_udp_transport_read(uxrCustomTransport*, uint8_t*, size_t, int, uint8_t*)':
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/src/native_ethernet_transport.cpp:74:21: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
return (available < 0) ? 0 : available;
~~~~~~~~~~^~~
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/src/wifi_transport.cpp: In function 'size_t arduino_wifi_transport_read(uxrCustomTransport*, uint8_t*, size_t, int, uint8_t*)':
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/src/wifi_transport.cpp:53:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(millis() - start_time < timeout && udp_client.parsePacket() == 0){
~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/src/wifi_transport.cpp:59:20: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
return (readed < 0) ? 0 : readed;
~~~~~~~^~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/Ethernet/src/Ethernet.cpp: In member function 'int arduino::EthernetClass::begin(uint8_t*, long unsigned int, long unsigned int)':
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/Ethernet/src/Ethernet.cpp:13:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/MbedClient.cpp: In member function 'size_t arduino::MbedClient::write(const uint8_t*, size_t)':
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/MbedClient.cpp:219:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
} while ((ret != size && ret == NSAPI_ERROR_WOULD_BLOCK) && connected());
~~~~^~~~~~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/MbedUdp.cpp: In member function 'virtual int arduino::MbedUDP::endPacket()':
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/MbedUdp.cpp:76:22: warning: variable length array 'buffer' is used [-Wvla]
uint8_t buffer[size];
^
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/MbedUdp.cpp:77:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < size; i++) {
~~^~~~~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/MbedUdp.cpp: In member function 'virtual size_t arduino::MbedUDP::write(const uint8_t*, size_t)':
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/MbedUdp.cpp:97:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i<size; i++) {
~^~~~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/SocketHelpers.cpp: In member function 'int arduino::MbedSocketClass::download(const char*, bool, mbed::Callback<void(const char*, long unsigned int)>)':
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/SocketHelpers.cpp:187:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0; i<header_fields.size(); i++) {
~^~~~~~~~~~~~~~~~~~~~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c: In function 'http_parser_execute':
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:1817:31: warning: this statement may fall through [-Wimplicit-fallthrough=]
parser->upgrade = 1;
~~~~~~~~~~~~~~~~^~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:1819:13: note: here
case 1:
^~~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c: In function 'http_parser_parse_url':
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:2376:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
found_at = 1;
~~~~~~~~~^~~
/home/robot2/.arduino15/packages/arduino/hardware/mbed_portenta/4.1.1/libraries/SocketWrapper/src/utility/http_parser/http_parser.c:2379:7: note: here
case s_req_server:
^~~~
sketch/micro-ros_publisher.ino.cpp.o: In function `timer_callback(rcl_timer_s*, long long)':
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:36: undefined reference to `rcl_publish'
sketch/micro-ros_publisher.ino.cpp.o: In function `set_microros_transports':
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/src/micro_ros_arduino.h:33: undefined reference to `rmw_uros_set_custom_transport'
sketch/micro-ros_publisher.ino.cpp.o: In function `setup':
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:49: undefined reference to `rcutils_get_default_allocator'
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:52: undefined reference to `rclc_support_init'
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:55: undefined reference to `rclc_node_init_default'
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:58: undefined reference to `rosidl_typesupport_c__get_message_type_support_handle__std_msgs__msg__Int32'
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:58: undefined reference to `rclc_publisher_init_default'
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:66: undefined reference to `rclc_timer_init_default'
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:73: undefined reference to `rclc_executor_init'
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:74: undefined reference to `rclc_executor_add_timer'
sketch/micro-ros_publisher.ino.cpp.o: In function `loop':
/home/robot2/Arduino/libraries/micro_ros_arduino-2.0.5-humble/examples/micro-ros_publisher/micro-ros_publisher.ino:81: undefined reference to `rclc_executor_spin_some'
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Portenta H7._
Additional information
If anyone could also suggest a way I can use micro-ros without using the arduino library, i dont mind switching hardware. I'll also take it.
I do also have the same error prompts in the bottom half. I've tried tons of fix based on other similar issues including patching and building meta file.
- Hardware description: I'm using and Arduino Portenta H7 - Software: I'm running it on Arduino IDE 1.8.19, with the micro-ros Humble library (I've tried both 2.0.5 and 2.0.7)
Steps to reproduce the issue
I'm literally trying to run any of the ROS examples. When I run the publisher I get a load of errors relating to libraries/functions not being found. When I go through my files I can find most of them. I suspect it might be a compatibility issue but I have no idea how to resolve it.
Here are the error messages:
Additional information
If anyone could also suggest a way I can use micro-ros without using the arduino library, i dont mind switching hardware. I'll also take it.
Thanks :)