Provide branch for ROS 2 Jazzy and update GIT_TAG for xrceagent

Open
#223 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp

Research direction

Start with SuperBuild.cmake in the rolling branch and inspect the GIT_TAG for Micro-XRCE-DDS-Agent. Reproduce the colcon build after sourcing ROS Rolling, then review graph_typesupport.cpp and the patches in the referenced prs/pr-rolling-fastcdr-2.2.x branch. Done means the agent builds against Fast-CDR 2.2.x for the requested ROS 2 branch.

Written by the indexing model from the issue text.

Description

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

Dominant language
C++
Stars
201
Forks
111
Avg merge
1d 6h
Merged PRs (30d)
10

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from micro-ROS/micro-ROS-Agent

All issues in micro-ROS/micro-ROS-Agent

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.