Skip to content

Commit

Permalink
finally compiles
Browse files Browse the repository at this point in the history
  • Loading branch information
Chao Qu committed Sep 4, 2014
1 parent 7f47011 commit 260502b
Show file tree
Hide file tree
Showing 9 changed files with 209 additions and 312 deletions.
19 changes: 10 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ else()
endif()

find_package(catkin REQUIRED COMPONENTS
roscpp nodelet camera_base cv_brdige
roscpp nodelet camera_base cv_bridge
)
find_package(OpenCV)

Expand All @@ -31,8 +31,8 @@ catkin_package(
# DEPENDS system_lib
)

include_directories(include)
include_directories(
include
${catkin_INCLUDE_DIRS}
${EBUS_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
Expand All @@ -49,6 +49,14 @@ target_link_libraries(${PROJECT_NAME}
${EBUS_LIBRARIES}
)

# node
add_executable(${PROJECT_NAME}_node
src/flir_gige/flir_gige_main.cpp
)
target_link_libraries(${PROJECT_NAME}_node
${PROJECT_NAME}
)

## Add cmake target dependencies of the executable/library
add_dependencies(${PROJECT_NAME}
${catkin_EXPORTED_TARGETS}
Expand All @@ -57,10 +65,3 @@ add_dependencies(${PROJECT_NAME}
${${PROJECT_NAME}_EXPORTED_TARGETS}
)

# node
add_executable(${PROJECT_NAME}_node
src/flir_gige/flir_gige_main.cpp
)
target_link_libraries(${PROJECT_NAME}_node
${PROJECT_NAME}
)
2 changes: 1 addition & 1 deletion cfg/FlirGigeDyn.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ gen = ParameterGenerator()
gen.add("fps", double_t, 0, "frame per second", 20, 1, 60)
gen.add("raw", bool_t, 0, "Raw 14-bit data", False)

exit(gen.generate(PACKAGE, "flir_gige", "FlirDyn"))
exit(gen.generate(PACKAGE, "flir_gige", "FlirGigeDyn"))
29 changes: 15 additions & 14 deletions include/flir_gige/flir_gige.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include <PvPipeline.h>

#include <sensor_msgs/Image.h>
#include <flir_gige/FlirGigeDynConfig.h>

#include "flir_gige/planck.h"

Expand All @@ -32,36 +33,33 @@ class FlirGige {
FlirGige(const std::string &ip_address);

const std::string &ip_address() const { return ip_address_; }
const std::string &display_id() const { return display_di_; }

void Connect();

void Start();

void Stop();

void Disconnect();
const std::string &display_id() const { return display_id_; }
bool ready() const { return ready_; }

void Configure(FlirGigeDynConfig &config);
bool GrabImage(sensor_msgs::Image &image_msg);

private:
using PvDevicePtr = std::unique_ptr<PvDevice, FreeDevice>;
using PvStreamPtr = std::unique_ptr<PvStream, FreeStream>;
using PvPipelinePtr = std::unique_ptr<PvPipeline>;

void FindDevice(const std::string &ip);
bool FindDevice(const std::string &ip);
std::string AvailableDevice() const;

void Connect();
void Disconnect();
void ConnectDevice();
void OpenStream();
void ConfigureStream();
void CreatePipeline();
void StartAcquisition();
void StopAcquisition();
void AcquireImages();
void LabeledOutput(const std::string &msg) const;

double GetSpotPixel(const cv::Mat &image) const;
void SetPixelFormat(int bit);
void SetAoi(int *width, int *height);
// void SetPixelFormat(int bit);

// double GetSpotPixel(const cv::Mat &image) const;

std::string ip_address_;
std::string display_id_;
Expand All @@ -70,6 +68,9 @@ class FlirGige {
PvDevicePtr device_;
PvStreamPtr stream_;
PvPipelinePtr pipeline_;
PvGenParameterArray *param_array_;
bool ready_;
bool raw_;
};

} // namespace flir_gige
Expand Down
3 changes: 2 additions & 1 deletion include/flir_gige/flir_gige_ros.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ class FlirGigeRos : public CameraRosBase {
FlirGigeRos(const ros::NodeHandle& nh)
: CameraRosBase{nh}, flir_gige_{identifier()} {}

virtual bool Grab(const sensor_msgs::ImagePtr* image_msg) override;
FlirGige& camera() { return flir_gige_; }
virtual bool Grab(const sensor_msgs::ImagePtr& image_msg) override;

private:
FlirGige flir_gige_;
Expand Down
11 changes: 5 additions & 6 deletions include/flir_gige/planck.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,21 @@ namespace flir_gige {
* @brief The Planck constants from flir thermal camera
*/
struct Planck {
Planck() = default;
Planck(const double B, const double F, const double O, const double R)
: B{B}, F{F}, O{O}, R{R} {}
Planck() : B{0}, F{0}, O{0}, R{0} {}
Planck(double B, double F, double O, double R) : B{B}, F{F}, O{O}, R{R} {}

double B;
double F;
double O;
double R;
static const double kT0{273.15}; ///< Kelvin at 0 celcius
static constexpr double kT0{273.15}; ///< Kelvin at 0 celcius

/**
* @brief CelsiusToRaw Convert celsius to 16-bit raw data
* @param t Celcius
* @return raw data
*/
inline int CelsiusToRaw(const double t) const {
int CelsiusToRaw(const double t) const {
return R / (std::exp(B / (t + kT0)) - F) + O;
}

Expand All @@ -33,7 +32,7 @@ struct Planck {
* @param s Raw data
* @return temperature in celsius
*/
inline double RawToCelsius(const int s) const {
double RawToCelsius(const int s) const {
return B / std::log(R / (s - O) + F) - kT0;
}
};
Expand Down
2 changes: 1 addition & 1 deletion nodelet_plugins.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<library path="lib/libflir_gige">
<class name="flir_gige/FlirNodelet" type="flir_gige::FlirNodelet"
<class name="flir_gige/FlirGigeNodelet" type="flir_gige::FlirGigeNodelet"
base_class_type="nodelet::Nodelet">
<description>
This is a nodelet for the Flir thermal camera
Expand Down
Loading

0 comments on commit 260502b

Please sign in to comment.