Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

micro-Ros issue installing for Arduino Portenta H7 #1740

Open
gabbylancs opened this issue Apr 30, 2024 · 1 comment
Open

micro-Ros issue installing for Arduino Portenta H7 #1740

gabbylancs opened this issue Apr 30, 2024 · 1 comment

Comments

@gabbylancs
Copy link

gabbylancs commented Apr 30, 2024

- 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.

Thanks :)

@aistehoo
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants