78 lines
2.9 KiB
Python
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',
|
|
],
|
|
},
|
|
)
|