ArduPilot / ArduPilot/ardupilot_dev_docker
Incompatible version of Python empy in ardupilot-dev-ros
- 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
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