ArduPilot / ArduPilot/ardupilot_dev_docker

Incompatible version of Python empy in ardupilot-dev-ros

Open
#34 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
21
Forks
24
PR merge metrics
No merged PRs in 30d

Description

The `ardupilot-dev-ros` image installs `empy 4.2` which is not compatible with ROS 2 Humble. This is apparent when trying to build the ArduPilot ROS 2 packages from the container:

```bash
colcon build --packages-select ardupilot_msgs
Starting >>> ardupilot_msgs
--- stderr: ardupilot_msgs
CMake Error at /opt/ros/humble/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake:59 (message):
execute_process(/usr/bin/python3 -m rosidl_adapter --package-name
ardupilot_msgs --arguments-file
/root/ardu_ws/build/ardupilot_msgs/rosidl_adapter__arguments__ardupilot_msgs.json
--output-dir
/root/ardu_ws/build/ardupilot_msgs/rosidl_adapter/ardupilot_msgs
--output-file
/root/ardu_ws/build/ardupilot_msgs/rosidl_adapter/ardupilot_msgs.idls)
returned error code 1:

AttributeError processing template 'msg.idl.em'

Traceback (most recent call last):

File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/resource/__init__.py", line 51, in evaluate_template
em.BUFFERED_OPT: True,

AttributeError: module 'em' has no attribute 'BUFFERED_OPT'

...etc
```

It can be remedied in the container by running:

```bash
pip install empy==3.3.4
```

but would be better fixed in the image.

Contributor guide

Open the contributing guide

Research direction

Start by locating the Dockerfile or image definition for ardupilot-dev-ros and inspect how empy is installed. Reproduce the failure with `colcon build --packages-select ardupilot_msgs`, then verify the image uses empy 3.3.4 and that the ROS 2 Humble package builds successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.