Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
55071c4
Remove old call to g_thread_init()
ssafarik Aug 15, 2012
3fc25d3
Print useful info to console.
ssafarik Aug 15, 2012
abf05f6
Fixed gain,exposure in dynamic_reconfigure.
ssafarik Aug 15, 2012
4ec702e
Formatting and variable names.
ssafarik Aug 15, 2012
fc23ee9
Added framerate.
ssafarik Aug 16, 2012
a631f3f
Enforce parameter limits in dynamic_reconfigure.
ssafarik Aug 16, 2012
20c42d3
Added autoexposure & autogain.
ssafarik Aug 16, 2012
328fa20
Read exposure/gain after setting autoexposure/autogain.
ssafarik Aug 16, 2012
b391af1
ROI parameters /camera/roi/x, etc
ssafarik Aug 16, 2012
74b7920
Added an example .yaml file for ROI
ssafarik Aug 16, 2012
acb0651
Enforce limits on ROI.
ssafarik Aug 17, 2012
1675c29
Enforce limits on ROI.
ssafarik Aug 17, 2012
0000952
Handle missing roi parameter.
ssafarik Aug 17, 2012
2209731
Added params for triggering.
ssafarik Aug 17, 2012
15b4cc0
Improved logging output.
ssafarik Aug 17, 2012
9922be9
Fix a startup glitch.
ssafarik Aug 17, 2012
e8eb482
Minor tweaks.
ssafarik Aug 17, 2012
540d806
Turn off auto-once settings when done.
ssafarik Sep 12, 2012
07f8c0c
Changed param name.
ssafarik Sep 12, 2012
38276a7
Working on sync of camera & ROS timestamps.
ssafarik Sep 25, 2012
1c98613
Moving average timestamp control.
ssafarik Sep 26, 2012
be155f9
Improved timestamp controller. Syncs ROS time with camera time.
ssafarik Sep 27, 2012
dc574c6
Fix a couple of compiler warnings.
ssafarik Nov 8, 2012
d398223
Can now specify camera guid on command-line or via parameter.
ssafarik Nov 30, 2012
1844fa3
Typo.
ssafarik Nov 30, 2012
e78192d
Cleaned up namespace handling.
ssafarik Dec 1, 2012
8596e1d
Readme
ssafarik Dec 4, 2012
65fadb2
Readme
ssafarik Dec 4, 2012
bc80911
Readme
ssafarik Dec 4, 2012
c4a8daf
Namespace fix for CameraInfoManager.
ssafarik Dec 4, 2012
bb48ef9
Add bytes per pixel to image step.
ssafarik Mar 26, 2013
961def0
Cleanup camera & device vars.
ssafarik Mar 27, 2013
9f784fe
Only use camera features that are implemented in the camera.
ssafarik Mar 27, 2013
0ba96d5
Added parameters for focuspos, mtu, and useAutoContrast.
ssafarik Mar 27, 2013
ecda715
Improve logic in CreateStream().
ssafarik Mar 27, 2013
d0fab30
Add some test code to print all camera feature values.
ssafarik Mar 27, 2013
0a4ec15
ros::spinOnce() on a more regular basis.
ssafarik Mar 27, 2013
5d388c7
Fix a bug with setting the initial ROI.
ssafarik Mar 27, 2013
d2ec667
Added the dynamic_reconfigure .cfg file for focuspos.
ssafarik Mar 27, 2013
ec3d918
CMakeLists to build RelWithDebInfo
ssafarik Mar 27, 2013
84cd0be
Add support for every feature of every camera; MTU; Improved device i…
ssafarik Apr 10, 2013
421f7e3
Change default TriggerMode to Off.
ssafarik Apr 11, 2013
1758437
Allow user to cancel when retrying on startup; Improved startup text …
ssafarik Apr 11, 2013
bb9d711
Print which camera was opened when opening (any).
ssafarik Apr 11, 2013
490b25a
Switch to newer aravis API for arv_camera_get_gain_bounds().
ssafarik Apr 23, 2013
3db02da
Updated readme.
ssafarik Apr 23, 2013
8561b13
Updated readme.
ssafarik Apr 23, 2013
86c40b4
Remove the hack from CMakeLists.txt
ssafarik Apr 23, 2013
638fe3e
Updated FindAravis.cmake
ssafarik Apr 23, 2013
c0120a5
Increased range of Gain.
ssafarik Apr 24, 2013
e494701
Remove some commented-out code.
ssafarik Apr 24, 2013
0bda931
Merge branch 'master' of github.com:ssafarik/camera_aravis
ssafarik Apr 24, 2013
8aab174
Fix the package so it compiles under hydro
Oct 21, 2013
683d199
Change name to ROS camera driver standard
Oct 21, 2013
43b9af3
Use libaravis-0.4
ssafarik Oct 28, 2013
9975c18
Update package.xml; finish conversion to catkin build system.
ssafarik Oct 28, 2013
b5e70d0
Removing deprecated g_type_init() call from camnode.cpp
bradleypowers Oct 3, 2014
e43cf79
Merge pull request #2 from locusrobotics/master
ssafarik Oct 3, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 24 additions & 44 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,44 +1,24 @@
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules )
FIND_PACKAGE(Aravis)

include(FindPkgConfig)
pkg_check_modules(GLIB glib-2.0)

# Set the build type. Options are:
# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
# Debug : w/ debug symbols, w/o optimization
# Release : w/o debug symbols, w/ optimization
# RelWithDebInfo : w/ debug symbols, w/ optimization
# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
#set(ROS_BUILD_TYPE RelWithDebInfo)

rosbuild_init()

#set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

# add dynamic reconfigure api
rosbuild_find_ros_package(dynamic_reconfigure)
include(${dynamic_reconfigure_PACKAGE_PATH}/cmake/cfgbuild.cmake)
gencfg()

#uncomment if you have defined messages
#rosbuild_genmsg()
#uncomment if you have defined services
#rosbuild_gensrv()

#common commands for building c++ executables and libraries
#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
#target_link_libraries(${PROJECT_NAME} another_library)
#rosbuild_add_boost_directories()
#rosbuild_link_boost(${PROJECT_NAME} thread)
#rosbuild_add_executable(example examples/example.cpp)
#target_link_libraries(example ${PROJECT_NAME})

rosbuild_add_executable(camnode src/camnode.cpp)
target_link_libraries(camnode ${ARAVIS_LIBRARY} ${GLIB_LIBRARIES})
include_directories(${ARAVIS_INCLUDE_PATH} ${GLIB_INCLUDE_DIRS})
# http://ros.org/doc/groovy/api/catkin/html/user_guide/supposed.html
cmake_minimum_required(VERSION 2.8.3)
project(camera_aravis)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules)
find_package(catkin REQUIRED COMPONENTS roscpp sensor_msgs image_transport camera_info_manager dynamic_reconfigure driver_base tf dynamic_reconfigure)
find_package(Aravis REQUIRED)
find_package(GLIB2 REQUIRED)

generate_dynamic_reconfigure_options(cfg/CameraAravisConfig.cfg)
catkin_package(
DEPENDS Aravis GLIB2
CATKIN_DEPENDS roscpp sensor_msgs image_transport camera_info_manager dynamic_reconfigure driver_base tf
INCLUDE_DIRS
LIBRARIES
)

include_directories(cfg/cpp ${catkin_INCLUDE_DIRS} ${ARAVIS_INCLUDE_PATH} ${GLIB2_INCLUDE_DIRS})

message(${ARAVIS_LIBRARY})

add_executable(camnode src/camnode.cpp)

target_link_libraries(camnode ${catkin_LIBRARIES} ${ARAVIS_LIBRARY} glib-2.0 gmodule-2.0 gobject-2.0)
add_dependencies(camnode ${PROJECT_NAME}_gencfg)
7 changes: 4 additions & 3 deletions CMakeModules/FindAravis.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ INCLUDE(FindPackageHandleStandardArgs)

FIND_PATH(ARAVIS_INCLUDE_PATH arv.h
"$ENV{ARAVIS_INCLUDE_PATH}"
/usr/include/aravis-0.2
/usr/local/include/aravis-0.4
)

FIND_LIBRARY(ARAVIS_LIBRARY aravis-0.2
FIND_LIBRARY(ARAVIS_LIBRARY aravis-0.4
"$ENV{ARAVIS_LIBRARY}"
/usr/lib
/usr/local/lib
)

FIND_PACKAGE_HANDLE_STANDARD_ARGS(ARAVIS DEFAULT_MSG
ARAVIS_INCLUDE_PATH
ARAVIS_LIBRARY)

217 changes: 217 additions & 0 deletions CMakeModules/FindGLIB2.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
# - Try to find GLib2
# Once done this will define
#
# GLIB2_FOUND - system has GLib2
# GLIB2_INCLUDE_DIRS - the GLib2 include directory
# GLIB2_LIBRARIES - Link these to use GLib2
#
# HAVE_GLIB_GREGEX_H glib has gregex.h header and
# supports g_regex_match_simple
#
# Copyright (c) 2006 Andreas Schneider <mail@cynapses.org>
# Copyright (c) 2006 Philippe Bernery <philippe.bernery@gmail.com>
# Copyright (c) 2007 Daniel Gollub <dgollub@suse.de>
# Copyright (c) 2007 Alban Browaeys <prahal@yahoo.com>
# Copyright (c) 2008 Michael Bell <michael.bell@web.de>
# Copyright (c) 2008 Bjoern Ricks <bjoern.ricks@googlemail.com>
#
# Redistribution and use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#


IF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS )
# in cache already
SET(GLIB2_FOUND TRUE)
ELSE (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS )

INCLUDE(FindPkgConfig)

## Glib
IF ( GLIB2_FIND_REQUIRED )
SET( _pkgconfig_REQUIRED "REQUIRED" )
ELSE ( GLIB2_FIND_REQUIRED )
SET( _pkgconfig_REQUIRED "" )
ENDIF ( GLIB2_FIND_REQUIRED )

IF ( GLIB2_MIN_VERSION )
PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0>=${GLIB2_MIN_VERSION} )
ELSE ( GLIB2_MIN_VERSION )
PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0 )
ENDIF ( GLIB2_MIN_VERSION )
IF ( PKG_CONFIG_FOUND )
IF ( GLIB2_FOUND )
SET ( GLIB2_CORE_FOUND TRUE )
ELSE ( GLIB2_FOUND )
SET ( GLIB2_CORE_FOUND FALSE )
ENDIF ( GLIB2_FOUND )
ENDIF ( PKG_CONFIG_FOUND )

# Look for glib2 include dir and libraries w/o pkgconfig
IF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND )
FIND_PATH(
_glibconfig_include_DIR
NAMES
glibconfig.h
PATHS
/opt/gnome/lib64
/opt/gnome/lib
/opt/lib/
/opt/local/lib
/sw/lib/
/usr/lib64
/usr/lib
/usr/local/include
${CMAKE_LIBRARY_PATH}
PATH_SUFFIXES
glib-2.0/include
)

FIND_PATH(
_glib2_include_DIR
NAMES
glib.h
PATHS
/opt/gnome/include
/opt/local/include
/sw/include
/usr/include
/usr/local/include
PATH_SUFFIXES
glib-2.0
)

#MESSAGE(STATUS "Glib headers: ${_glib2_include_DIR}")

FIND_LIBRARY(
_glib2_link_DIR
NAMES
glib-2.0
glib
PATHS
/opt/gnome/lib
/opt/local/lib
/sw/lib
/usr/lib
/usr/local/lib
)
IF ( _glib2_include_DIR AND _glib2_link_DIR )
SET ( _glib2_FOUND TRUE )
ENDIF ( _glib2_include_DIR AND _glib2_link_DIR )


IF ( _glib2_FOUND )
SET ( GLIB2_INCLUDE_DIRS ${_glib2_include_DIR} ${_glibconfig_include_DIR} )
SET ( GLIB2_LIBRARIES ${_glib2_link_DIR} )
SET ( GLIB2_CORE_FOUND TRUE )
ELSE ( _glib2_FOUND )
SET ( GLIB2_CORE_FOUND FALSE )
ENDIF ( _glib2_FOUND )

# Handle dependencies
# libintl
IF ( NOT LIBINTL_FOUND )
FIND_PATH(LIBINTL_INCLUDE_DIR
NAMES
libintl.h
PATHS
/opt/gnome/include
/opt/local/include
/sw/include
/usr/include
/usr/local/include
)

FIND_LIBRARY(LIBINTL_LIBRARY
NAMES
intl
PATHS
/opt/gnome/lib
/opt/local/lib
/sw/lib
/usr/local/lib
/usr/lib
)

IF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR)
SET (LIBINTL_FOUND TRUE)
ENDIF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR)
ENDIF ( NOT LIBINTL_FOUND )

# libiconv
IF ( NOT LIBICONV_FOUND )
FIND_PATH(LIBICONV_INCLUDE_DIR
NAMES
iconv.h
PATHS
/opt/gnome/include
/opt/local/include
/opt/local/include
/sw/include
/sw/include
/usr/local/include
/usr/include
PATH_SUFFIXES
glib-2.0
)

FIND_LIBRARY(LIBICONV_LIBRARY
NAMES
iconv
PATHS
/opt/gnome/lib
/opt/local/lib
/sw/lib
/usr/lib
/usr/local/lib
)

IF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR)
SET (LIBICONV_FOUND TRUE)
ENDIF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR)
ENDIF ( NOT LIBICONV_FOUND )

IF (LIBINTL_FOUND)
SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBINTL_LIBRARY})
SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBINTL_INCLUDE_DIR})
ENDIF (LIBINTL_FOUND)

IF (LIBICONV_FOUND)
SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBICONV_LIBRARY})
SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBICONV_INCLUDE_DIR})
ENDIF (LIBICONV_FOUND)

ENDIF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND )
##

IF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES)
SET (GLIB2_FOUND TRUE)
ENDIF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES)

IF (GLIB2_FOUND)
IF (NOT GLIB2_FIND_QUIETLY)
MESSAGE (STATUS "Found GLib2: ${GLIB2_LIBRARIES} ${GLIB2_INCLUDE_DIRS}")
ENDIF (NOT GLIB2_FIND_QUIETLY)
ELSE (GLIB2_FOUND)
IF (GLIB2_FIND_REQUIRED)
MESSAGE (SEND_ERROR "Could not find GLib2")
ENDIF (GLIB2_FIND_REQUIRED)
ENDIF (GLIB2_FOUND)

# show the GLIB2_INCLUDE_DIRS and GLIB2_LIBRARIES variables only in the advanced view
MARK_AS_ADVANCED(GLIB2_INCLUDE_DIRS GLIB2_LIBRARIES)
MARK_AS_ADVANCED(LIBICONV_INCLUDE_DIR LIBICONV_LIBRARY)
MARK_AS_ADVANCED(LIBINTL_INCLUDE_DIR LIBINTL_LIBRARY)

ENDIF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS)

IF ( GLIB2_FOUND )
# Check if system has a newer version of glib
# which supports g_regex_match_simple
INCLUDE( CheckIncludeFiles )
SET( CMAKE_REQUIRED_INCLUDES ${GLIB2_INCLUDE_DIRS} )
CHECK_INCLUDE_FILES ( glib/gregex.h HAVE_GLIB_GREGEX_H )
# Reset CMAKE_REQUIRED_INCLUDES
SET( CMAKE_REQUIRED_INCLUDES "" )
ENDIF( GLIB2_FOUND )
1 change: 0 additions & 1 deletion Makefile

This file was deleted.

Loading