Initial Commit
This commit is contained in:
77
setup.py
Normal file
77
setup.py
Normal file
@@ -0,0 +1,77 @@
|
||||
"""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',
|
||||
],
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user