This is my first time setting up a micro-ROS and a ROS 2 dev environment, so I suspect there may be something obvious that I'm missing. I'm attempting to run the Zephyr host emulator example in the micro-ROS tutorial [here](https://micro.ros.org/docs/tutorials/core/zephyr_emulator/) with ROS2 humble. Effectively, I've installed `micro_ros_setup`, created/configured/built the firmware and installed `micro_ros_agent`. Then, when I run the zephyr app I see the error listed in the title, and I don't see any change in the output of the micro-ROS agent. What I *think* I'm encountering is that the Zephyr app is unable to reach the micro-ROS agent, thus the "Failed status" error message. From a third terminal I can see the port with `netstat`, so I don't believe this is a firewall issue since the host emulator and micro-ros agent are both running on the same machine. ```sh $ sudo netstat -tulpn | grep 8888 udp 0 0 0.0.0.0:8888 0.0.0.0:* 78240/micro_ros_age ``` Inspecting the source code at `firmware/zephyr_apps/apps/ping_pong/src/main.c`, line 98, it appears as though `rclc_support_init()` is failing. ```c // create init_options RCCHECK(rclc_support_init(&support, 0, NULL, &allocator)); ``` Additionally, **should I see a node running and new topics listed when I run the micro-ROS agent?** I'm seeing neither and I wonder if that's the reason: ```sh $ ros2 topic list /parameter_events /rosout ``` ```sh $ ros2 node list ``` ### Zephyr Tutorial Below is a summary of Zephyr micro-ROS tutorial to show where I'm at and how I got here. Start with micro_ros_setup ```sh source /opt/ros/humble/setup.bash # install micro_ros_setup in new workspace git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup # rosdep & pip sudo apt update && rosdep update rosdep install --from-paths src --ignore-src -y sudo apt-get install python3-pip # build micro_ros_setup and source it colcon build source install/local_setup.bash ``` Then the firmware workspace ```sh # create fw ws ros2 run micro_ros_setup create_firmware_ws.sh zephyr host # configure build ros2 run micro_ros_setup configure_firmware.sh ping_pong --transport udp --ip 127.0.0.1 --port 8888 # build it ros2 run micro_ros_setup build_firmware.sh ``` Next, the micro-ROS agent ```sh # create agent ws ros2 run micro_ros_setup create_agent_ws.sh # build it ros2 run micro_ros_setup build_agent.sh source install/local_setup.bash ``` Then I setup 2 terminals, terminal 1 running the micro-ROS agent and terminal 2 running the Zephyr app. #### Terminal 1: ```sh $ source /opt/ros/humble/setup.bash $ source install/local_setup.bash $ ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 [1704166624.989047] info | UDPv4AgentLinux.cpp | init | running... | port: 8888 [1704166624.989864] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 4 ``` #### Terminal 2 ```sh $ source /opt/ros/humble/setup.bash $ source install/local_setup.bash $ ros2 run micro_ros_setup flash_firmware.sh Flashing firmware for zephyr platform host WARNING: Using a test - not safe - entropy source *** Booting Zephyr OS build zephyr-v2.6.0 *** Failed status on line 98: 1. Aborting. ```