Is there are an easy way to find out which versions of voxl-px4 are compatible with which versions voxl-mpa-to-ros2? Idk if you guys are tracking this internally or not. I think it might be good to have a a tag for voxl-mpa-to-ros2 to match each sdk tag of voxl-px4 where the firmware/message definitions change. I noticed that the latest tags for for both packages have at least one message definition conflict (that happens to be the message I need to work with)
Am I right to assume I could just drop the voxl-px4/px4-firmaware/msg directory in place of voxl-mpa-to-ros2/colcon_ws/src/px4_msgs/msg directory to match up message defintions when building voxl-mpa-to-ros2? If I take the CMakeLists.txt file out of the uorb message definition repo in the px4 firmware both message def repos look otherwise identical in terms of format
On a side note, I'm having an issue building the voxl-mpa-to-ros2 package. I'm getting the following errors for each version I've tried (tag sdk-1.1 and sdk-1.3., master branch). This is from my last attempt.
qrb5165-emulator:~((sdk-1.1.0))(0.0.1)$ ./build.sh qrb5165
Starting >>> camera_calibration_parsers
Starting >>> image_transport
Starting >>> px4_msgs
Starting >>> voxl_msgs
Starting >>> voxl_offboard_figure8
Finished <<< voxl_offboard_figure8 [4.82s]
--- stderr: px4_msgs
CMake Error at /opt/ros/foxy/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake:60 (message):
execute_process(/usr/bin/python3 -m rosidl_adapter --package-name px4_msgs
--arguments-file
/home/root/colcon_ws/build/px4_msgs/rosidl_adapter__arguments__px4_msgs.json
--output-dir /home/root/colcon_ws/build/px4_msgs/rosidl_adapter/px4_msgs
--output-file
/home/root/colcon_ws/build/px4_msgs/rosidl_adapter/px4_msgs.idls) returned
error code 1:
AttributeError processing template 'msg.idl.em'
Traceback (most recent call last):
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/resource/__init__.py", line 51, in evaluate_template
em.BUFFERED_OPT: True,
AttributeError: module 'em' has no attribute 'BUFFERED_OPT'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/__main__.py", line 19, in <module>
sys.exit(main())
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/main.py", line 55, in main
pathlib.Path(relative_path), output_dir)
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/__init__.py", line 20, in convert_to_idl
package_dir, package_name, interface_file, output_dir / 'msg')
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/msg/__init__.py", line 39, in convert_msg_to_idl
expand_template('msg.idl.em', data, output_file, encoding='iso-8859-1')
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/resource/__init__.py", line 23, in expand_template
content = evaluate_template(template_name, data)
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/resource/__init__.py", line 69, in evaluate_template
_interpreter.shutdown()
AttributeError: 'NoneType' object has no attribute 'shutdown'
Call Stack (most recent call first):
/opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:130 (rosidl_adapt_interfaces)
CMakeLists.txt:28 (rosidl_generate_interfaces)
---
Failed <<< px4_msgs [13.9s, exited with code 1]
--- stderr: voxl_msgs
CMake Error at /opt/ros/foxy/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake:60 (message):
execute_process(/usr/bin/python3 -m rosidl_adapter --package-name voxl_msgs
--arguments-file
/home/root/colcon_ws/build/voxl_msgs/rosidl_adapter__arguments__voxl_msgs.json
--output-dir /home/root/colcon_ws/build/voxl_msgs/rosidl_adapter/voxl_msgs
--output-file
/home/root/colcon_ws/build/voxl_msgs/rosidl_adapter/voxl_msgs.idls)
returned error code 1:
AttributeError processing template 'msg.idl.em'
Traceback (most recent call last):
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/resource/__init__.py", line 51, in evaluate_template
em.BUFFERED_OPT: True,
AttributeError: module 'em' has no attribute 'BUFFERED_OPT'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/__main__.py", line 19, in <module>
sys.exit(main())
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/main.py", line 55, in main
pathlib.Path(relative_path), output_dir)
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/__init__.py", line 20, in convert_to_idl
package_dir, package_name, interface_file, output_dir / 'msg')
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/msg/__init__.py", line 39, in convert_msg_to_idl
expand_template('msg.idl.em', data, output_file, encoding='iso-8859-1')
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/resource/__init__.py", line 23, in expand_template
content = evaluate_template(template_name, data)
File "/opt/ros/foxy/lib/python3.6/site-packages/rosidl_adapter/resource/__init__.py", line 69, in evaluate_template
_interpreter.shutdown()
AttributeError: 'NoneType' object has no attribute 'shutdown'
Call Stack (most recent call first):
/opt/ros/foxy/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:130 (rosidl_adapt_interfaces)
CMakeLists.txt:22 (rosidl_generate_interfaces)
---
Failed <<< voxl_msgs [13.9s, exited with code 1]
Aborted <<< camera_calibration_parsers [21.0s]
Aborted <<< image_transport [22.6s]
Summary: 1 package finished [23.8s]
2 packages failed: px4_msgs voxl_msgs
2 packages aborted: camera_calibration_parsers image_transport
2 packages had stderr output: px4_msgs voxl_msgs
4 packages not processed
The error has been the same for each version I've tried to build. This is without making changes to the msg directory.
Any idea why this is happening? I've built these packages in the past successfully, not sure what changed