micro-ROS/micro_ros_setup

Micro-ROS Agent Build Fail - DDS_CDR

n0sc3tipsum opened this issue · 2 comments

Issue template

  • Hardware description: Ubuntu 22.04, ESP32 DevkitC
  • RTOS: No RTOS implemented
  • Installation type: micro-ROS setup
  • Version or commit hash:humble

Steps to reproduce the issue

  1. Follow instructions in : https://micro.ros.org/docs/tutorials/core/first_application_linux/
  2. build agent

Expected behavior

Agent builds successfully

Actual behavior

For some reason, during building of the micro ros agent I get the following errors : (note : I did try install micro_ros_setup a few times before but had to re-install it as I was facing some other issues. The build in this issue is from a newly setup microros_ws.)

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp: In member function ‘virtual bool uros::agent::graph_manager::ParticipantEntitiesInfoTypeSupport::serialize(void*, eprosima::fastrtps::rtps::SerializedPayload_t*)’:

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:57:33: error: ‘DDS_CDR’ is not a member of ‘eprosima::fastcdr::Cdr’

   57 |         eprosima::fastcdr::Cdr::DDS_CDR);

      |                                 ^~~~~~~

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:64:54: error: ‘class eprosima::fastcdr::Cdr’ has no member named ‘getSerializedDataLength’; did you mean ‘get_serialized_data_length’?

   64 |         payload->length = static_cast<uint32_t>(scdr.getSerializedDataLength());

      |                                                      ^~~~~~~~~~~~~~~~~~~~~~~

      |                                                      get_serialized_data_length

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp: In member function ‘virtual bool uros::agent::graph_manager::ParticipantEntitiesInfoTypeSupport::deserialize(eprosima::fastrtps::rtps::SerializedPayload_t*, void*)’:

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:80:33: error: ‘DDS_CDR’ is not a member of ‘eprosima::fastcdr::Cdr’

   80 |         eprosima::fastcdr::Cdr::DDS_CDR);

      |                                 ^~~~~~~

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp: In member function ‘virtual bool uros::agent::graph_manager::MicrorosGraphInfoTypeSupport::serialize(void*, eprosima::fastrtps::rtps::SerializedPayload_t*)’:

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:149:33: error: ‘DDS_CDR’ is not a member of ‘eprosima::fastcdr::Cdr’

  149 |         eprosima::fastcdr::Cdr::DDS_CDR);

      |                                 ^~~~~~~

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:156:54: error: ‘class eprosima::fastcdr::Cdr’ has no member named ‘getSerializedDataLength’; did you mean ‘get_serialized_data_length’?

  156 |         payload->length = static_cast<uint32_t>(scdr.getSerializedDataLength());

      |                                                      ^~~~~~~~~~~~~~~~~~~~~~~

      |                                                      get_serialized_data_length

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp: In member function ‘virtual bool uros::agent::graph_manager::MicrorosGraphInfoTypeSupport::deserialize(eprosima::fastrtps::rtps::SerializedPayload_t*, void*)’:

/home/n0sc3tipsum/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:172:33: error: ‘DDS_CDR’ is not a member of ‘eprosima::fastcdr::Cdr’

  172 |         eprosima::fastcdr::Cdr::DDS_CDR);

      |                                 ^~~~~~~

gmake[2]: *** [CMakeFiles/micro_ros_agent.dir/build.make:118: CMakeFiles/micro_ros_agent.dir/src/agent/graph_manager/graph_typesupport.cpp.o] Error 1

gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/micro_ros_agent.dir/all] Error 2


Additional information

Just following the instructions you mentioned: https://asciinema.org/a/ruiOV0pa9pybhgL152t8HyQfF

Just following the instructions you mentioned: https://asciinema.org/a/ruiOV0pa9pybhgL152t8HyQfF

Yes I was able to get it working on a fresh ROS2 installation in docker, but on my actual laptop it doesn't seem to work. Would I have to just start with a fresh ROS2 setup if I want it to work, or is there something I can clear/update, as I did try to setup micro-ros multiple times by deleting its' directory and re-starting the installation.

Thank you!