Я создал пакет, который в значительной степени является копией https://github.com/ros2/examples/tree/master/rclpy/topics/minimal_publisher (разница в том, что я использую папку sr c и пакет в папке). Однако при установке и использовании рабочей области она не добавляется в индекс (ros2 pkg list
не перечисляет его).
AMENT_PREFIX_PATH
содержит только базовую рабочую область Eloquent ROS2, а не исходную.
Я обнаружил «проблему», и в папке install/share/iris/hook/
все файлы ament_prefix_path.*
отсутствует.
Также в install/share/iris/package.sh
также отсутствует строка _colcon_package_sh_source_script "$COLCON_CURRENT_PREFIX/share/rotary_encoder_driver/hook/ament_prefix_path.sh"
.
Копирование этих файлов из другого (также в значительной степени идентичного пакета) и добавление этой строки заставляет его работать при поиске рабочей области source install/setup.sh
Однако я хотел бы знать, чего не хватает заставить это работать?
setup.py
from glob import glob
import os
from setuptools import setup
PACKAGE_NAME = "iris"
SHARE_DIR = os.path.join("share", PACKAGE_NAME)
setup(
name=PACKAGE_NAME,
version='0.0.1',
packages=[PACKAGE_NAME],
data_files=[
('share/ament_index/resource_index/packages', ['resource/' + PACKAGE_NAME]),
('share/' + PACKAGE_NAME, ['package.xml']),
(os.path.join(SHARE_DIR, "launch"), glob(os.path.join("launch", "*.launch.py"))),
(os.path.join(SHARE_DIR, "config"), glob(os.path.join("config", "*.yaml"))),
(os.path.join(SHARE_DIR, "urdf"), glob(os.path.join("urdf", "*.urdf")))],
package_dir={'': 'src', },
install_requires=['setuptools'],
author='Andreas Klintberg',
maintainer='Andreas Klintberg',
keywords=['ROS2'],
description='Description',
license='None',
entry_points={
'console_scripts': ["iris = iris.main:main"],
}
)
package.xml
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>iris</name>
<version>0.0.1</version>
<description>Description.</description>
<maintainer>Andreas Klintberg</maintainer>
<license>Not open source</license>
<depend>rclpy</depend>
<export>
<build_type>ament_python</build_type>
</export>
</package>
setup.cfg
[develop]
script-dir=$base/lib/iris
[install]
install-scripts=$base/lib/iris
И папка resource
с пустой файл с именем iris
(имя пакета)
Запуск colcon build
для сборки и установки. Предупреждений нет.
Есть идеи?