diff --git a/spinnaker_camera_driver/cmake/download_spinnaker b/spinnaker_camera_driver/cmake/download_spinnaker
index 283722a4..f64cc96b 100755
--- a/spinnaker_camera_driver/cmake/download_spinnaker
+++ b/spinnaker_camera_driver/cmake/download_spinnaker
@@ -39,178 +39,36 @@ import urllib
logging.basicConfig(level=logging.INFO)
-URL_TEMPLATES = {
- 'focal': {
- 'deb': 'https://packages.clearpathrobotics.com/stable/flir/Spinnaker/Ubuntu{version}/spinnaker-2.2.0.48-Ubuntu{version}-{arch}-pkg.tar.gz',
- 'src': None, # if we ever have non-deb archives that require manual extraction, those package URLS will go here.
- },
- 'jammy': {
- 'deb': 'https://packages.clearpathrobotics.com/stable/flir/Spinnaker/Ubuntu{version}/spinnaker-3.1.0.79-Ubuntu{version}-{arch}-pkg.tar.gz',
- 'src': None, # if we ever have non-deb archives that require manual extraction, those package URLS will go here
- },
- 'noble': {
- 'deb': 'https://pfrommer.us/Spinnaker/Ubuntu{version}/spinnaker-4.0.0.116-{arch}-pkg-{version}.tar.gz',
- 'src': None, # if we ever have non-deb archives that require manual extraction, those package URLS will go here
- },
-}
-
-ARCHS = {
- 'focal': {
- 'x86_64': {
- 'linux_arch': 'amd64',
- 'current': '20.04',
- 'type': 'deb',
- 'folder_name': 'spinnaker-2.2.0.48-amd64',
- 'shared_library': 'opt/spinnaker/lib/',
- 'debs': [
- 'libgentl_2.2.0.48_amd64.deb',
- 'libspinnaker_2.2.0.48_amd64.deb',
- 'libspinnaker-c_2.2.0.48_amd64.deb',
- 'libspinnaker-c-dev_2.2.0.48_amd64.deb',
- 'libspinnaker-dev_2.2.0.48_amd64.deb',
- 'libspinvideo_2.2.0.48_amd64.deb',
- 'libspinvideo-c_2.2.0.48_amd64.deb',
- 'libspinvideo-c-dev_2.2.0.48_amd64.deb',
- 'libspinvideo-dev_2.2.0.48_amd64.deb',
- 'spinnaker_2.2.0.48_amd64.deb',
- 'spinnaker-doc_2.2.0.48_amd64.deb',
- 'spinupdate_2.2.0.48_amd64.deb',
- 'spinupdate-dev_2.2.0.48_amd64.deb',
- 'spinview-qt_2.2.0.48_amd64.deb',
- 'spinview-qt-dev_2.2.0.48_amd64.deb',
- ],
- },
- 'armv8': {
- 'linux_arch': 'arm64',
- 'current': '20.04',
- 'type': 'deb',
- 'shared_library': 'opt/spinnaker/lib/',
- 'folder_name': 'spinnaker-2.2.0.48-arm64',
- 'debs': [
- 'libgentl_2.2.0.48_arm64.deb',
- 'libspinnaker_2.2.0.48_arm64.deb',
- 'libspinnaker-c_2.2.0.48_arm64.deb',
- 'libspinnaker-c-dev_2.2.0.48_arm64.deb',
- 'libspinnaker-dev_2.2.0.48_arm64.deb',
- 'libspinvideo_2.2.0.48_arm64.deb',
- 'libspinvideo-c_2.2.0.48_arm64.deb',
- 'libspinvideo-c-dev_2.2.0.48_arm64.deb',
- 'libspinvideo-dev_2.2.0.48_arm64.deb',
- 'spinnaker_2.2.0.48_arm64.deb',
- 'spinnaker-doc_2.2.0.48_arm64.deb',
- 'spinupdate_2.2.0.48_arm64.deb',
- 'spinupdate-dev_2.2.0.48_arm64.deb',
- 'spinview-qt_2.2.0.48_arm64.deb',
- 'spinview-qt-dev_2.2.0.48_arm64.deb',
- ],
- },
- },
- 'jammy': {
- 'x86_64': {
- 'linux_arch': 'amd64',
- 'type': 'deb',
- 'folder_name': 'spinnaker-3.1.0.79-amd64',
- 'shared_library': 'opt/spinnaker/lib/',
- 'debs': [
- 'libgentl_3.1.0.79_amd64.deb',
- 'libspinnaker_3.1.0.79_amd64.deb',
- 'libspinnaker-c_3.1.0.79_amd64.deb',
- 'libspinnaker-c-dev_3.1.0.79_amd64.deb',
- 'libspinnaker-dev_3.1.0.79_amd64.deb',
- 'libspinvideo_3.1.0.79_amd64.deb',
- 'libspinvideo-c_3.1.0.79_amd64.deb',
- 'libspinvideo-c-dev_3.1.0.79_amd64.deb',
- 'libspinvideo-dev_3.1.0.79_amd64.deb',
- 'spinnaker_3.1.0.79_amd64.deb',
- 'spinnaker-doc_3.1.0.79_amd64.deb',
- 'spinupdate_3.1.0.79_amd64.deb',
- 'spinupdate-dev_3.1.0.79_amd64.deb',
- 'spinview-qt_3.1.0.79_amd64.deb',
- 'spinview-qt-dev_3.1.0.79_amd64.deb',
- ],
- },
- 'armv8': {
- 'linux_arch': 'arm64',
- 'type': 'deb',
- 'shared_library': 'opt/spinnaker/lib/',
- 'folder_name': 'spinnaker-3.1.0.79-arm64',
- 'debs': [
- 'libgentl_3.1.0.79_arm64.deb',
- 'libspinnaker_3.1.0.79_arm64.deb',
- 'libspinnaker-c_3.1.0.79_arm64.deb',
- 'libspinnaker-c-dev_3.1.0.79_arm64.deb',
- 'libspinnaker-dev_3.1.0.79_arm64.deb',
- 'libspinvideo_3.1.0.79_arm64.deb',
- 'libspinvideo-c_3.1.0.79_arm64.deb',
- 'libspinvideo-c-dev_3.1.0.79_arm64.deb',
- 'libspinvideo-dev_3.1.0.79_arm64.deb',
- 'spinnaker_3.1.0.79_arm64.deb',
- 'spinnaker-doc_3.1.0.79_arm64.deb',
- 'spinupdate_3.1.0.79_arm64.deb',
- 'spinupdate-dev_3.1.0.79_arm64.deb',
- 'spinview-qt_3.1.0.79_arm64.deb',
- 'spinview-qt-dev_3.1.0.79_arm64.deb',
- ],
- },
- },
- 'noble': {
- 'x86_64': {
- 'linux_arch': 'amd64',
- 'type': 'deb',
- 'folder_name': 'spinnaker-4.0.0.116-amd64',
- 'shared_library': 'opt/spinnaker/lib/',
- 'debs': [
- 'libgentl_4.0.0.116_amd64.deb',
- 'libspinnaker_4.0.0.116_amd64.deb',
- 'libspinnaker-c_4.0.0.116_amd64.deb',
- 'libspinnaker-c-dev_4.0.0.116_amd64.deb',
- 'libspinnaker-dev_4.0.0.116_amd64.deb',
- 'spinnaker_4.0.0.116_amd64.deb',
- 'spinnaker-doc_4.0.0.116_amd64.deb',
- ],
- },
- 'armv8': {
- 'linux_arch': 'arm64',
- 'type': 'deb',
- 'shared_library': 'opt/spinnaker/lib/',
- 'folder_name': 'spinnaker-4.0.0.116-arm64',
- 'debs': [
- 'libgentl_4.0.0.116_amd64.deb',
- 'libspinnaker_4.0.0.116_amd64.deb',
- 'libspinnaker-c_4.0.0.116_amd64.deb',
- 'libspinnaker-c-dev_4.0.0.116_amd64.deb',
- 'libspinnaker-dev_4.0.0.116_amd64.deb',
- 'spinnaker_4.0.0.116_amd64.deb',
- 'spinnaker-doc_4.0.0.116_amd64.deb',
- ],
- },
- },
-}
-
-
OS_LIBRARY_VERSION = {
'focal': '20.04',
'jammy': '22.04',
'noble': '24.04',
}
+ARCH_LINUX_ARCH = {
+ 'x86_64': 'amd64',
+ 'armv8': 'arm64',
+}
+
arch = sys.argv[1]
destination_folder = sys.argv[2]
os_code_name = sys.argv[3]
+spinnaker_version='4.2.0.46'
-
+linux_arch = ARCH_LINUX_ARCH[arch]
os_version = OS_LIBRARY_VERSION[os_code_name]
-my_arch = ARCHS[os_code_name][arch]
-archive_url = URL_TEMPLATES[os_code_name][my_arch['type']].format(
- arch=my_arch['linux_arch'], version=os_version
-)
-folder_name = my_arch['folder_name']
-shared_library = my_arch['shared_library']
+archive_url = f'https://pfrommer.us/Spinnaker/spinnaker-{spinnaker_version}-{linux_arch}-pkg-{os_version}.tar.gz'
+print('archive url: ', archive_url)
+folder_name = f'spinnaker-{spinnaker_version}-{linux_arch}'
+
+print('CPU architecture is ', arch)
+print('linux arch is ', linux_arch)
+print('OS code name is ', os_code_name)
+print('OS version is ', os_version)
+print('Destination folder is ', destination_folder)
-print('CPU architecture is %s', arch)
-print('OS code name is %s', os_code_name)
-print('Destination folder is %s', destination_folder)
+spinnaker_base = 'opt/spinnaker/lib'
if not os.path.exists(os.path.join(os.getcwd(), folder_name)):
cj = http.cookiejar.CookieJar()
@@ -219,13 +77,12 @@ if not os.path.exists(os.path.join(os.getcwd(), folder_name)):
print('Downloading SDK archive from {0}...'.format(archive_url))
resp = opener.open(archive_url)
-
print('Unpacking tarball.')
with tarfile.open(mode='r:gz', fileobj=io.BytesIO(resp.read())) as tar:
tar.extractall()
-
print('Unpacking debs.')
debs = glob.glob(os.path.join(os.getcwd(), folder_name, '*.deb'))
+
unpack_dir = os.path.join(os.getcwd())
if not os.path.exists(unpack_dir):
os.makedirs(unpack_dir)
@@ -237,11 +94,11 @@ if not os.path.exists(os.path.join(os.getcwd(), folder_name)):
print('Copying libraries to {0}'.format(destination_folder))
if not os.path.exists(destination_folder):
os.makedirs(destination_folder)
- libs = glob.glob(os.path.join(os.getcwd(), 'opt/spinnaker/lib', 'libSpinnaker*.so*'))
- libs += glob.glob(os.path.join(os.getcwd(), 'opt/spinnaker/lib', 'libG*.so*'))
- libs += glob.glob(os.path.join(os.getcwd(), 'opt/spinnaker/lib', 'lib*Parser*.so*'))
- libs += glob.glob(os.path.join(os.getcwd(), 'opt/spinnaker/lib', 'libLog*.so*'))
- libs += glob.glob(os.path.join(os.getcwd(), 'opt/spinnaker/lib', 'libNodeMapData*.so*'))
+ libs = glob.glob(os.path.join(os.getcwd(), spinnaker_base, 'libSpinnaker*.so*'))
+ libs += glob.glob(os.path.join(os.getcwd(), spinnaker_base, 'libG*.so*'))
+ libs += glob.glob(os.path.join(os.getcwd(), spinnaker_base, 'lib*Parser*.so*'))
+ libs += glob.glob(os.path.join(os.getcwd(), spinnaker_base, 'libLog*.so*'))
+ libs += glob.glob(os.path.join(os.getcwd(), spinnaker_base, 'libNodeMapData*.so*'))
for lib in libs:
print('Copying: {}'.format(os.path.basename(lib)))
shutil.copyfile(lib, os.path.join(destination_folder, os.path.basename(lib)))
diff --git a/spinnaker_camera_driver/package.xml b/spinnaker_camera_driver/package.xml
index 1c479eed..226f8b08 100644
--- a/spinnaker_camera_driver/package.xml
+++ b/spinnaker_camera_driver/package.xml
@@ -24,6 +24,7 @@
libusb-1.0-dev
ffmpeg
+ libomp-dev
yaml-cpp