micro-ROS / micro-ROS/micro-ROS-Agent

Provide branch for ROS 2 Jazzy and update GIT_TAG for xrceagent

Offen
#223 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C++
Sterne
201
Forks
111
Ø Merge
1 T. 6 Std.
Gemergte PRs (30 T.)
10

Beschreibung

Issue template

This is a feature request. ROS 2 Rolling and Jazzy depend on Fast-CDR 2.2.x. Version 2.4.3 of Micro-XRCE-DDS-Agent supports this but the GIT_TAG in the SuperBuild.cmake in the rolling branch refers to ros2

Steps to reproduce the issue
  • Create a colcon workspace to build this repo, and source ROS Rolling before building.
Expected behavior
  • micro-ROS-Agent will build in a colcon workspace that has sourced ROS Rolling.
Actual behavior
  • micro-ROS-Agent will not build in a colcon workspace that has sourced ROS Rolling.
Additional information

Looks like this will require code changes as well, as micro-ROS-agent will not build against the updated Fast-CDR version. For example:

/Users/rhys/Code/ros2/rolling/ros2-ardupilot/src/micro_ros_agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:57:33: error: no member named 'DDS_CDR' in 'eprosima::fastcdr::Cdr'
        eprosima::fastcdr::Cdr::DDS_CDR);
        ~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/rhys/Code/ros2/rolling/ros2-ardupilot/src/micro_ros_agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:64:54: error: no member named 'getSerializedDataLength' in 'eprosima::fastcdr::Cdr'; did you mean 'get_serialized_data_length'?
        payload->length = static_cast<uint32_t>(scdr.getSerializedDataLength());
                                                     ^~~~~~~~~~~~~~~~~~~~~~~
                                                     get_serialized_data_length
/Users/rhys/Code/ros2/rolling/ros2-rolling/install/fastcdr/include/fastcdr/Cdr.h:266:23: note: 'get_serialized_data_length' declared here
    Cdr_DllAPI size_t get_serialized_data_length() const;
                      ^
/Users/rhys/Code/ros2/rolling/ros2-ardupilot/src/micro_ros_agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:80:33: error: no member named 'DDS_CDR' in 'eprosima::fastcdr::Cdr'
        eprosima::fastcdr::Cdr::DDS_CDR);
        ~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/rhys/Code/ros2/rolling/ros2-ardupilot/src/micro_ros_agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:149:33: error: no member named 'DDS_CDR' in 'eprosima::fastcdr::Cdr'
        eprosima::fastcdr::Cdr::DDS_CDR);
        ~~~~~~~~~~~~~~~~~~~~~~~~^
/Users/rhys/Code/ros2/rolling/ros2-ardupilot/src/micro_ros_agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:156:54: error: no member named 'getSerializedDataLength' in 'eprosima::fastcdr::Cdr'; did you mean 'get_serialized_data_length'?
        payload->length = static_cast<uint32_t>(scdr.getSerializedDataLength());
                                                     ^~~~~~~~~~~~~~~~~~~~~~~
                                                     get_serialized_data_length
/Users/rhys/Code/ros2/rolling/ros2-rolling/install/fastcdr/include/fastcdr/Cdr.h:266:23: note: 'get_serialized_data_length' declared here
    Cdr_DllAPI size_t get_serialized_data_length() const;
                      ^
/Users/rhys/Code/ros2/rolling/ros2-ardupilot/src/micro_ros_agent/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp:172:33: error: no member named 'DDS_CDR' in 'eprosima::fastcdr::Cdr'
        eprosima::fastcdr::Cdr::DDS_CDR);
        ~~~~~~~~~~~~~~~~~~~~~~~~^
6 errors generated.
make[2]: *** [CMakeFiles/micro_ros_agent.dir/src/agent/graph_manager/graph_typesupport.cpp.o] Error 1
make[1]: *** [CMakeFiles/micro_ros_agent.dir/all] Error 2

This branch contains patches to fix the above issue: https://github.com/srmainwaring/micro-ROS-Agent/tree/prs/pr-rolling-fastcdr-2.2.x

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie mit SuperBuild.cmake im rolling-Branch und prüfen Sie den GIT_TAG für Micro-XRCE-DDS-Agent. Reproduzieren Sie den colcon build nach dem Sourcen von ROS Rolling und überprüfen Sie anschließend graph_typesupport.cpp sowie die Patches im referenzierten prs/pr-rolling-fastcdr-2.2.x-Branch. Erledigt ist die Aufgabe, wenn der Agent für den angeforderten ROS 2-Branch gegen Fast-CDR 2.2.x baut.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
build-system, robotics
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.