micro-ROS / micro-ROS/micro_ros_setup

micro_ros_agent not found when launching sensor_combined_listener.launch.py

Open
#609 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
509
Forks
183
Avg merge
22h 26m
Merged PRs (30d)
7

Description

Background: I have a ros2-px4 docker container with micro-ROS installed (ros2 foxy).
I can successfully launch the micro-ros-agent with the command:
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888

But when I start another terminal and launch the sensor_combined_listener.launch.py-file in the px4_ros_com/launch package, I get the following error output:

```bash
[INFO] [micro_ros_agent udp4 --port 8888 -v -1]: process started with pid [529904]
[INFO] [sensor_combined_listener-2]: process started with pid [529906]
[micro_ros_agent udp4 --port 8888 -v -1] /bin/sh: 1: micro_ros_agent: not found
[ERROR] [micro_ros_agent udp4 --port 8888 -v -1]: process has died [pid 529904, exit code 127, cmd 'micro_ros_agent udp4 --port 8888 -v '].
```

It seems like the command micro_ros_agent is not recognized even though it was just used and started an agent.
In the default sensor_combined_listener.launch.py-file, the command for starting the agent was previously called "micro-ros-agent" which I have changed to "micro_ros_agent", which fixed previous errors, but this error is new and unknown to me.
(I have sourced the ros installation and ros workspace). I can do a colcon build in the ros workspace with only stderr outputs as errors, rest is built successfully (i.e. no packages fail to build), which does not say much specific.
This workspace contains both px4-dependencies and micro-ROS source files, but micro-ROS is supposed to be used together with PX4-Autopilot. The PX4-Autopilot-repo is located in a separate src-folder.

Thankful for any help!

Contributor guide

Open the contributing guide

Research direction

Start with px4_ros_com/launch/sensor_combined_listener.launch.py and compare its agent command with the successful `ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888` invocation. Check how the launch process resolves the executable in the sourced environment; done means the launch starts the micro-ROS agent without exit code 127 and the sensor listener also starts.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, shell
Domain
embedded-iot, robotics
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.