Files
simulation/setup.py
2026-02-09 03:39:49 +00:00

78 lines
2.9 KiB
Python

"""ROS 2 Python package setup for UAV-UGV Simulation."""
from setuptools import setup, find_packages
import os
from glob import glob
package_name = 'uav_ugv_simulation'
setup(
name=package_name,
version='1.0.0',
packages=find_packages(exclude=['tests']),
data_files=[
# Package resource index
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
# Package.xml
('share/' + package_name, ['package.xml']),
# Launch files
(os.path.join('share', package_name, 'launch'),
glob('launch/*.py')),
(os.path.join('share', package_name, 'launch', 'utils'),
glob('launch/utils/*.py')),
# Config files
(os.path.join('share', package_name, 'config'),
glob('config/*.yaml') + glob('config/*.parm')),
# World files
(os.path.join('share', package_name, 'worlds'),
glob('worlds/*.world')),
# Model files
(os.path.join('share', package_name, 'models', 'iris_with_camera'),
glob('models/iris_with_camera/*')),
(os.path.join('share', package_name, 'models', 'iris_with_sensors'),
glob('models/iris_with_sensors/*')),
(os.path.join('share', package_name, 'models', 'custom_ugv'),
glob('models/custom_ugv/*')),
# Scripts
(os.path.join('share', package_name, 'scripts'),
glob('scripts/*.sh')),
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='Developer',
maintainer_email='developer@example.com',
description='UAV-UGV Gazebo SITL Simulation with GPS-Denied Navigation',
license='MIT',
tests_require=['pytest'],
entry_points={
'console_scripts': [
# Vision nodes
'visual_odom_node = src.nodes.visual_odom_node:main',
'camera_processor = src.vision.camera_processor:main',
'optical_flow_node = src.vision.optical_flow:main',
# Localization nodes
'position_estimator = src.localization.position_estimator:main',
'ekf_fusion_node = src.localization.ekf_fusion:main',
# Navigation nodes
'vision_nav_node = src.nodes.vision_nav_node:main',
'local_planner = src.navigation.local_planner:main',
'waypoint_follower = src.navigation.waypoint_follower:main',
# Control nodes
'uav_controller = src.control.uav_controller:main',
'ugv_controller = src.control.ugv_controller:main',
'mission_planner = src.control.mission_planner:main',
# Safety nodes
'geofence_node = src.nodes.geofence_node:main',
'failsafe_handler = src.safety.failsafe_handler:main',
# Coordination
'multi_vehicle_coord = src.nodes.multi_vehicle_coord:main',
],
},
)