PX4 to ROS2 connection does not work

  1. I have a HoverGames drone running PX4 v1.13.2 and

  2. An offboard developer system sustained by Ubuntu 22.04 and running ROS2 Humble

  3. The micrortps_client (on PX4) and micrortps_agent (on offboard computer) are installed and are able to communicate through serial interface.

3A. When I run “ micrortps_client status” in PX4 shell I can see rx: 0.460 Kb/s and tx: 11.709 Kb/s. If micrortps_agents were not executed I have rx: 0.0 Kb/s
3B. Or in the final when I close, trhough Ctrl + C, micrortps_agent I get:

[ micrortps_agent ] Interrupt signal (2) received.
[ micrortps_transport ] Closed UART.
[ micrortps_agent ] RECEIVED: 2570 messages - 3770846 bytes; 322869 LOOPS - 326.422 seconds - 11.55KB/s
[ micrortps_agent ] SENT: 3261 messages - 169572 bytes

My personal conclusion, from 3A and 3B, is that micrortps_client and micrortps_agent communicate and exchange data without any problems.

I do not know if it helps, but when micrortps_agent runs I get continuously:

[ micrortps_agent ] Unexpected topic ID ‘27’ to publish. Please make sure the agent is capable of parsing the message associated to the topic ID ‘27’

Now the problem:

  1. By running: ros2 topic list (previously “cd ~/ros2_ws” and “. install/setup.sh”)

  2. If export RMW_IMPLEMENTATION=rmw_fastrtps_cpp is presented in .bashrc I get only:

/parameter_events
/rosout

  1. If
    export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
    export CYCLONEDDS_URI=/home/$USER/CycloneDDSConfig.xml

I get also only:

/parameter_events
/rosout

I would appreciate any solution or insight on this problem.

Hi @mdobrea

micrortps (I mean px4_ros_com and px4_msgs on branches release/1.13) was not planned to be supported on Ubuntu 22 and ROS 2 humble. Could you share what did you change to make the two packages compile?

I didn’t do nothing special. So, the steps were as follows:

  1. I made a new SD card (it include Ubuntu 22.04 and ROS 2 Humble) following the steps from here:
  1. Next:

$ cd ~
$ mkdir -p ros_ws/src
$ cd ~/ros2_ws/src
$ git clone GitHub - PX4/px4_ros_com: ROS2/ROS interface with PX4 through a Fast-RTPS bridge
$ git clone GitHub - PX4/px4_msgs: ROS/ROS2 messages that match the uORB messages counterparts on the PX4 Firmware

  1. And in the end I build the components:

$ colcon build

No errors, no problems - may be only 40-50 minutes of waiting.

Previously I do the same {Ubuntu 22.04 and ROS 2 Humble} on a laptop and {Ubuntu 20.04 and ROS 2 Galactic} on a desktop in order to work with Gazebo - in the end I was able to learn in a simulated environment without any problems.

So, if px4_ros_com and px4_msgs were not planned to be supported on Ubuntu 22 and ROS 2 Humble - may be here is the problem.

I went on Ubuntu 22.04 and ROS 2 Humble mainly because I hand no more ideas on Ubuntu 20.04 and ROS 2 Galactic.

In conclusion, do you recommend me to find a solution on Ubuntu 20.04 and ROS 2 Galactic?

Micrortps has been removed from the main branch of px4_ros_com (see px4_ros_com overhaul corresponding with new PX4-Autopilot microdds_client by dagar · Pull Request #157 · PX4/px4_ros_com · GitHub).
Now, PX4 - ROS 2 connection for PX4 versions above 1.13 is managed by micro XRCE-DDS.

Therefore, which version (commit hash) are you using for PX4-Autopilot, px4_msgs and px4_ros_com ?
If you want to use PX4-Autopilot v1.13.2 then you need micrortps and px4_msgs and px4_ros_com checked out on branch release/1.13.

According to this

You should NOT even have micrortps available.


px4_msgs and px4_ros_com are going to be supported on Ubuntu 22 and ROS 2 Humble. What is not going to be supported is just the the branch release/1.13.


To sum it up
I suggest you to use ROS 2 Foxy and Ubuntu 20.04 if you want to use micrortps and PX4 version 1.13.x. And read carefully the guide ROS 2 User Guide (PX4-ROS 2 Bridge) | PX4 User Guide (v1.13) as it explains which branches you should use.

Dear Mr. @Benja

  1. First of all I read all the documentation you pointed me and the 2 videos from beginning – so, right now I’m a little more informed :slight_smile:
  2. I also installed Java, Fast-RTPS(DDS) (git clone --recursive GitHub - eProsima/Fast-DDS: The most complete DDS - Proven: Plenty of success cases. -b v2.9.1), and Fast-RTPS-Gen (git clone --recursive GitHub - eProsima/Fast-DDS-Gen: Fast-DDS IDL code generator tool -b v1.0.4)
  3. I uninstall ROS 2 Galactic and I install ROS 2 Foxy.
  4. I deleted all my workspace (~/ros2_ws).

FIRST TEST:

  1. The ROS 2 bridge packages was cloned:
$ git clone -b release/1.13 https://github.com/PX4/px4_ros_com.git ~/px4_ros_com_ros2/src/px4_ros_com
$ git clone -b release/1.13 https://github.com/PX4/px4_msgs.git ~/px4_ros_com_ros2/src/px4_msgs
  1. When I use the script to build the ROS 2 workspace I get the error:
$ source build_ros2_workspace.bash
Error: Unable to access jarfile /usr/local/bin/../share/fastrtpsgen/java/fastrtpsgen.jar
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1, mixed mode)
Connection to 192.168.0.104 closed.

And the SSH connection closed.

  1. Java version:
$ java --version
openjdk 11.0.18 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1, mixed mode)
  1. The error is from the following line of the script:
[fastrtpsgen_path, "-version"]).decode("utf-8").strip()[-5:]
  1. When I run “fastrtpsgen -version” I get the same error.

  2. By running from the CLI:

$ colcon build

the px4_msgs is OK build but the px4_ros_com has errors:

/usr/bin/cmake: /usr/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
c++: error: /home/user/ros2_ws/build/px4_ros_com/src/micrortps_agent/microRTPS_agent.cpp: No such file or directory
c++: fatal error: no input files
compilation terminated.
make[2]: *** [CMakeFiles/micrortps_agent.dir/build.make:497: CMakeFiles/micrortps_agent.dir/src/micrortps_agent/microRTPS_agent.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:142: CMakeFiles/micrortps_agent.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs.…
/usr/bin/cmake: /usr/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)

SECOND TEST:

  1. I clone the ROS 2 bridge packages px4_ros_com and px4_msgs to the /src directory
git clone https://github.com/PX4/px4_ros_com.git
git clone https://github.com/PX4/px4_msgs.git
  1. I build the components:
$ colcon build

no errors.

  1. Previously I cloned the micrortps_agent ( git clone https://github.com/PX4/micrortps_agent.git )and build it.

  2. Checking the bridge:

$ . install/setup.sh
$ ros2 topic list

All is OK but I’m unable to get topics from my drone.

Any ideas? Thank you!

May be will help:

$ ros2 doctor --report

   NETWORK CONFIGURATION
device       : can0
flags        : 193<UP,RUNNING,NOARP> 
mtu          : 16
device       : can1
flags        : 193<UP,RUNNING,NOARP> 
mtu          : 16
ether        : 7e:f3:93:76:40:ed
device       : eth0
flags        : 4099<UP,BROADCAST,MULTICAST> 
mtu          : 1500
ether        : 36:fb:61:08:fc:06
device       : eth1
flags        : 4098<BROADCAST,MULTICAST> 
mtu          : 1500
inet         : 127.0.0.1
inet4        : ['127.0.0.1']
inet6        : ['::1']
netmask      : 255.0.0.0
device       : lo
flags        : 73<UP,LOOPBACK,RUNNING> 
mtu          : 65536
inet         : 192.168.0.104
inet4        : ['192.168.0.104']
ether        : d4:53:83:c1:91:e8
inet6        : ['fe80::3777:646b:4a42:162d']
netmask      : 255.255.255.0
device       : mlan0
flags        : 4163<UP,BROADCAST,RUNNING,MULTICAST> 
mtu          : 1500
broadcast    : 192.168.0.255
ether        : 7a:24:6d:c5:ac:42
device       : usb0
flags        : 4099<UP,BROADCAST,MULTICAST> 
mtu          : 1500

   PACKAGE VERSIONS
rosidl_runtime_c                          : required=1.3.0, local=1.3.0
tf2_kdl                                   : required=0.13.14, local=0.13.13
rosidl_cmake                              : required=1.3.0, local=1.3.0
ament_cmake_cpplint                       : required=0.9.8, local=0.9.7
rosidl_default_generators                 : required=1.0.1, local=1.0.1
ament_cpplint                             : required=0.9.8, local=0.9.7
ament_cmake_export_include_directories    : required=0.9.11, local=0.9.11
rosidl_typesupport_cpp                    : required=1.0.2, local=1.0.2
ament_cmake_xmllint                       : required=0.9.8, local=0.9.7
sensor_msgs                               : required=2.0.5, local=2.0.5
geometry2                                 : required=0.13.14, local=0.13.13
rclcpp_lifecycle                          : required=2.4.2, local=2.4.2
ament_cmake_libraries                     : required=0.9.11, local=0.9.11
ros2action                                : required=0.9.13, local=0.9.12
geometry_msgs                             : required=2.0.5, local=2.0.5
ros2service                               : required=0.9.13, local=0.9.12
ament_cmake_copyright                     : required=0.9.8, local=0.9.7
ros2lifecycle                             : required=0.9.13, local=0.9.12
rosidl_generator_c                        : required=1.3.0, local=1.3.0
tf2_py                                    : required=0.13.14, local=0.13.13
unique_identifier_msgs                    : required=2.1.3, local=2.1.3
rosidl_parser                             : required=1.3.0, local=1.3.0
ros2run                                   : required=0.9.13, local=0.9.12
ament_cmake_uncrustify                    : required=0.9.8, local=0.9.7
ros2doctor                                : required=0.9.13, local=0.9.12
ament_cmake_ros                           : required=0.9.2, local=0.9.2
tinyxml2_vendor                           : required=0.7.4, local=0.7.4
action_msgs                               : required=1.0.0, local=1.0.0
rosidl_generator_py                       : required=0.9.7, local=0.9.6
tracetools                                : required=1.0.5, local=1.0.5
rclcpp_components                         : required=2.4.2, local=2.4.2
rosbag2_compression                       : required=0.3.10, local=0.3.9
ros2multicast                             : required=0.9.13, local=0.9.12
ament_cmake                               : required=0.9.11, local=0.9.11
ament_cmake_include_directories           : required=0.9.11, local=0.9.11
rosbag2_transport                         : required=0.3.10, local=0.3.9
yaml_cpp_vendor                           : required=7.0.3, local=7.0.3
ament_lint_cmake                          : required=0.9.8, local=0.9.7
rosidl_typesupport_introspection_cpp      : required=1.3.0, local=1.3.0
rclpy                                     : required=1.0.12, local=1.0.11
rcl_lifecycle                             : required=1.1.14, local=1.1.14
ament_cmake_python                        : required=0.9.11, local=0.9.11
launch_ros                                : required=0.11.7, local=0.11.7
spdlog_vendor                             : required=1.1.3, local=1.1.3
ros_workspace                             : required=1.0.2, local=1.0.2
ament_cmake_export_targets                : required=0.9.11, local=0.9.11
rosidl_typesupport_introspection_c        : required=1.3.0, local=1.3.0
rosidl_typesupport_fastrtps_cpp           : required=1.0.4, local=1.0.4
ros2topic                                 : required=0.9.13, local=0.9.12
ament_cmake_export_dependencies           : required=0.9.11, local=0.9.11
osrf_pycommon                             : required=0.1.11, local=0.1.11
rclcpp                                    : required=2.4.2, local=2.4.2
launch_testing                            : required=0.10.10, local=0.10.10
rmw_implementation_cmake                  : required=1.0.4, local=1.0.3
lifecycle_msgs                            : required=1.0.0, local=1.0.0
ament_cmake_gtest                         : required=0.9.11, local=0.9.11
ament_cmake_cppcheck                      : required=0.9.8, local=0.9.7
composition_interfaces                    : required=1.0.0, local=1.0.0
ament_copyright                           : required=0.9.8, local=0.9.7
rmw_fastrtps_cpp                          : required=1.3.1, local=1.3.1
kdl_parser                                : required=2.4.1, local=2.4.1
rosbag2_converter_default_plugins         : required=0.3.10, local=0.3.9
zstd_vendor                               : required=0.3.10, local=0.3.9
tf2_tools                                 : required=0.13.14, local=0.13.13
stereo_msgs                               : required=2.0.5, local=2.0.5
tf2_msgs                                  : required=0.13.14, local=0.13.13
actionlib_msgs                            : required=2.0.5, local=2.0.5
ros_core                                  : required=0.9.2, local=0.9.2
libstatistics_collector                   : required=1.0.2, local=1.0.1
rcl_interfaces                            : required=1.0.0, local=1.0.0
ros2pkg                                   : required=0.9.13, local=0.9.12
ament_cmake_gmock                         : required=0.9.11, local=0.9.11
sros2                                     : required=0.9.5, local=0.9.5
ros2component                             : required=0.9.13, local=0.9.12
sros2_cmake                               : required=0.9.5, local=0.9.5
ament_package                             : required=0.9.5, local=0.9.5
ament_cmake_export_interfaces             : required=0.9.11, local=0.9.11
ament_xmllint                             : required=0.9.8, local=0.9.7
robot_state_publisher                     : required=2.4.5, local=2.4.5
shape_msgs                                : required=2.0.5, local=2.0.5
ament_cmake_target_dependencies           : required=0.9.11, local=0.9.11
rosidl_runtime_py                         : required=0.9.1, local=0.9.1
ament_cmake_flake8                        : required=0.9.8, local=0.9.7
rosidl_typesupport_fastrtps_c             : required=1.0.4, local=1.0.4
pluginlib                                 : required=2.5.4, local=2.5.4
rcutils                                   : required=1.1.5, local=1.1.4
rcpputils                                 : required=1.3.2, local=1.3.2
builtin_interfaces                        : required=1.0.0, local=1.0.0
class_loader                              : required=2.0.3, local=2.0.3
ament_cmake_version                       : required=0.9.11, local=0.9.11
tf2_geometry_msgs                         : required=0.13.14, local=0.13.13
std_msgs                                  : required=2.0.5, local=2.0.5
rosidl_adapter                            : required=1.3.0, local=1.3.0
shared_queues_vendor                      : required=0.3.10, local=0.3.9
ament_flake8                              : required=0.9.8, local=0.9.7
message_filters                           : required=3.2.5, local=3.2.5
visualization_msgs                        : required=2.0.5, local=2.0.5
rcl_logging_spdlog                        : required=1.1.0, local=1.1.0
ament_lint_common                         : required=0.9.8, local=0.9.7
launch_yaml                               : required=0.10.10, local=0.10.10
fastrtps_cmake_module                     : required=1.0.4, local=1.0.4
urdf                                      : required=2.4.0, local=2.4.0
ament_uncrustify                          : required=0.9.8, local=0.9.7
launch                                    : required=0.10.10, local=0.10.10
rcl_yaml_param_parser                     : required=1.1.14, local=1.1.14
rosidl_typesupport_interface              : required=1.3.0, local=1.3.0
rosbag2_storage_default_plugins           : required=0.3.10, local=0.3.9
rosbag2_cpp                               : required=0.3.10, local=0.3.9
rcl_action                                : required=1.1.14, local=1.1.14
launch_testing_ament_cmake                : required=0.10.10, local=0.10.10
ament_cmake_auto                          : required=0.9.11, local=0.9.11
trajectory_msgs                           : required=2.0.5, local=2.0.5
tf2_ros                                   : required=0.13.14, local=0.13.13
ament_lint                                : required=0.9.8, local=0.9.7
rpyutils                                  : required=0.2.0, local=0.2.0
rosidl_typesupport_c                      : required=1.0.2, local=1.0.2
rosbag2                                   : required=0.3.10, local=0.3.9
ros2bag                                   : required=0.3.10, local=0.3.9
sqlite3_vendor                            : required=0.3.10, local=0.3.9
libyaml_vendor                            : required=1.0.4, local=1.0.4
rmw_dds_common                            : required=1.0.3, local=1.0.3
python_cmake_module                       : required=0.8.1, local=0.8.1
common_interfaces                         : required=2.0.5, local=2.0.5
ament_cmake_pep257                        : required=0.9.8, local=0.9.7
std_srvs                                  : required=2.0.5, local=2.0.5
console_bridge_vendor                     : required=1.2.4, local=1.2.4
rclcpp_action                             : required=2.4.2, local=2.4.2
domain_coordinator                        : required=0.9.2, local=0.9.2
diagnostic_msgs                           : required=2.0.5, local=2.0.5
rosidl_generator_cpp                      : required=1.3.0, local=1.3.0
rosidl_runtime_cpp                        : required=1.3.0, local=1.3.0
ros2node                                  : required=0.9.13, local=0.9.12
rosbag2_storage                           : required=0.3.10, local=0.3.9
eigen3_cmake_module                       : required=0.1.1, local=0.1.1
ros2launch                                : required=0.11.7, local=0.11.7
ament_cmake_export_definitions            : required=0.9.11, local=0.9.11
tf2                                       : required=0.13.14, local=0.13.13
ros_environment                           : required=2.5.1, local=2.5.1
rmw_fastrtps_shared_cpp                   : required=1.3.1, local=1.3.1
ament_cmake_pytest                        : required=0.9.11, local=0.9.11
rmw                                       : required=1.0.4, local=1.0.3
rosgraph_msgs                             : required=1.0.0, local=1.0.0
launch_testing_ros                        : required=0.11.7, local=0.11.7
ament_cppcheck                            : required=0.9.8, local=0.9.7
rosidl_default_runtime                    : required=1.0.1, local=1.0.1
uncrustify_vendor                         : required=1.4.0, local=1.4.0
ros_base                                  : required=0.9.2, local=0.9.2
tf2_eigen                                 : required=0.13.14, local=0.13.13
statistics_msgs                           : required=1.0.0, local=1.0.0
tf2_bullet                                : required=0.13.14, local=0.13.13
ros2interface                             : required=0.9.13, local=0.9.12
nav_msgs                                  : required=2.0.5, local=2.0.5
tinyxml_vendor                            : required=0.8.2, local=0.8.2
tf2_sensor_msgs                           : required=0.13.14, local=0.13.13
ament_lint_auto                           : required=0.9.8, local=0.9.7
ament_cmake_export_libraries              : required=0.9.11, local=0.9.11
ament_index_cpp                           : required=1.1.0, local=1.1.0
ros2param                                 : required=0.9.13, local=0.9.12
rcl                                       : required=1.1.14, local=1.1.14
ament_cmake_lint_cmake                    : required=0.9.8, local=0.9.7
ament_cmake_export_link_flags             : required=0.9.11, local=0.9.11
ament_pep257                              : required=0.9.8, local=0.9.7
ament_cmake_test                          : required=0.9.11, local=0.9.11
ros2cli                                   : required=0.9.13, local=0.9.12
ament_cmake_core                          : required=0.9.11, local=0.9.11
launch_xml                                : required=0.10.10, local=0.10.10
ament_index_python                        : required=1.1.0, local=1.1.0
rmw_implementation                        : required=1.0.3, local=1.0.3

   PLATFORM INFORMATION
system           : Linux
platform info    : Linux-5.10.72-lts-5.10.y+gb1e11be1a78a-aarch64-with-glibc2.29
release          : 5.10.72-lts-5.10.y+gb1e11be1a78a
processor        : aarch64

   RMW MIDDLEWARE
middleware name    : rmw_fastrtps_cpp

   ROS 2 INFORMATION
distribution name      : foxy
distribution type      : ros2
distribution status    : active
release platforms      : {'ubuntu': ['focal']}

   TOPIC LIST
topic               : none
publisher count     : 0
subscriber count    : 0

If I understand correctly, you decided to go with version 1.13, Ubuntu 20.04 and ROS Foxy, perfect!

Let me start from the second test. Even if the ROS 2 workspace compiles you cannot use it. That version (main) is completely incompatible with microRTPS.

Then let’s focus on the first test.

From

I would say that fastrtpsgen is not correctly installed. Did you follow precisely https://docs.px4.io/v1.13/en/dev_setup/fast-dds-installation.html#fast-dds-installation ?

Notice that according to the first note you don’t need to install Fast DDS as it is already available through ROS 2 Foxy. Therefore you only need fastrtpsgen.
You can check that it is properly installed and available running

which fastrtpsgen

the result should be

/usr/local/bin/fastrtpsgen

The best final sanity check consist in building the firmware. From your v1.13.2 PX4-Autopilot directory (see point 1 of the sanity check, first source the ROS 2 Foxy environment (in order to have Fast DDD) and then compile:

source /opt/ros/foxy/setup.bash
make px4_sitl_rtps

Here I assumed that you installed Foxy from binaries.
If all the dependencies are met then the compilation should succeed.

Now you can compile the ROS 2 workspace. Move to the right folder and source ROS 2

~/px4_ros_com_ros2
source /opt/ros/foxy/setup.bash

Build just the messages (debug purposes)

colcon build --symlink-install --packages-select px4_msgs

and then px4_ros_com:

source install/local_setup.bash #source the previously installed messages
colcon build --packages-select px4_ros_com --event-handlers console_direct+

the option --event-handlers console_direct+ is to add verbosity in case something goes wrong.
If no error appears you can continue with point 2 of the sanity check

1 Like
  1. Yes right now I have PX4 version 1.13.2, Ubuntu 20.04 and ROS Foxy.
  2. After I run the following I have no errors at all:
colcon build --symlink-install --packages-select px4_msgs
  1. But when I run:
colcon build --packages-select px4_ros_com --event-handlers console_direct+
  1. The first time I got this error:
[ 1%] Generating micro-RTPS agent code...
Failed to import genmsg: No module named 'genmsg'
You may need to install it using:
pip3 install --user pyros-genmsg

Easy to solve.

  1. After that I get this error:
[ 4%] Generating micro-RTPS agent code...
Error: Unable to access jarfile /usr/local/bin/../share/fastrtpsgen/java/fastrtpsgen.jar
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1, mixed mode)
Traceback (most recent call last):
File "/home/user/ros2_ws/src/px4_ros_com/scripts/generate_microRTPS_bridge.py", line 178, in <module>
fastrtpsgen_version_out = subprocess.check_output(
File "/usr/lib/python3.8/subprocess.py", line 415, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/local/bin/fastrtpsgen', '-version']' returned non-zero exit status 1.
/usr/bin/cmake: /usr/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
[ 5%] Building CXX object CMakeFiles/micrortps_agent.dir/src/micrortps_agent/microRTPS_agent.cpp.o
c++: error: /home/user/ros2_ws/build/px4_ros_com/src/micrortps_agent/microRTPS_agent.cpp: No such file or directory
c++: fatal error: no input files
compilation terminated.
make[2]: *** [CMakeFiles/micrortps_agent.dir/build.make:497: CMakeFiles/micrortps_agent.dir/src/micrortps_agent/microRTPS_agent.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:142: CMakeFiles/micrortps_agent.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs.…
  1. In the next step, in order to get around, I removed from CmakeLists.txt all references to micro-RTPS agent and it finis without errors.

  2. Mainly because I have the agent from here:

git clone https://github.com/PX4/micrortps_agent.git micrortps_agent

and it seams working as you can see in the first post.

  1. But when I run:
$ cd ~/ros2_ws
$ . install/setup.sh
$ ros2 topic list

I get only the topics:

/parameter_events
/rosout
  1. When I check the install through:

ros2 launch px4_ros_com sensor_combined_listener.launch.py

I get this:

[INFO]
[launch]: All log files can be found below
/home/mdobrea/.ros/log/2023-03-19-01-15-41-446210-md-workdepl-57287
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [micro-ros-agent udp4 --port 8888 -v -1]: process started with pid [57288]
[ERROR] [micro-ros-agent udp4 --port 8888 -v -1]: process has died [pid 57288, exit code 127, cmd micro-ros-agent udp4 --port 8888 -v '].
[INFO] [sensor_combined_listener-2]: process started with pid [57290]
[micro-ros-agent udp4 --port 8888 -v -1] /bin/sh: 1: micro-ros-agent: not found
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[sensor_combined_listener-2] [INFO] [1679181346.442051814] [rclcpp]: signal_handler(signum=2)
[ERROR] [sensor_combined_listener-2]: process has died [pid 57290, exit code
-2, cmd
/home/mdobrea/ros2_ws/install/px4_ros_com/lib/px4_ros_com/sensor_combined_listener
--ros-args'].

Dear Mr. @Benja,

I solve the problem!!! Thank you a thousand times!!!

Even if:

which fastrtpsgen

responded OK, with:

/usr/local/bin/fastrtpsgen

There were install errors. So, I installed once again gradle with the latest version 8.0.2 and I build once again Fast-RTPS-Gen.

Now, the:

colcon build --packages-select px4_ros_com --event-handlers console_direct+

works perfectly and I was able to get topics through:

ros2 topic list

Thank you once again! If we ever meet, I’ll buy you a beer! :slight_smile:

1 Like