GithubHelp home page GithubHelp logo

ifm_camera's Introduction

**************************************************************************************************************
O3D3xx Toolbox:
**************************************************************************************************************
O3D3xx Toolbox contains a driver and utilities for usage with O3D3xx cameras built and sold by IFM Electronic
gmbh. The O3D cameras are time-of-flight 3D cameras based on the Photonic Mixer Device imager from PMD
Technologies. Currently, these include the O3D3xx series of cameras. This library is intended for providing
hands on basic functinality of camera like connecting, configuring, grabing frames and disconnecting from
camera.

To that end, the focus has been on providing following sample guide applications.
i.  LightVis - a GUI application, to visualize the camera output.
ii. Sample application - A C/C++ code, showing usage of basic functions of camera. 

**************************************************************************************************************
Supported Platforms:
**************************************************************************************************************
Only Windows OS 32 and 64 bit platforms are supported.

**************************************************************************************************************
Prerequisites:
**************************************************************************************************************
The following software have to be installed on the PC before you can build the library -
1) 	CMake (version 3.0.2 or higher from http://cmake.org/cmake/resources/software.html)

The following software is needed to build the Doxygen documentation -
1) 	Doxygen (version 1.8.7 or higher from http://www.stack.nl/~dimitri/doxygen/download.html)
2) 	Graphviz (version 2.38 or higher from http://www.graphviz.org/Download.php)


NOTE: We have built and tested the code with the versions mentioned above. Higher versions 
should also work seamlessly, but this is not guranteed.

**************************************************************************************************************
Installation:
**************************************************************************************************************
Download the source code from ifm official site.
The source code folder contains code related files for "O3D3xx plugin development" project.
It mainly consists of O3D3xx source and processing plugin, along with dependent code and third party tools, 
test suites etc.

The folder structure is -->
Base Folder 
	--> processing_plugin - the files needed to build the processing plugin
	--> source_plugin - the files needed to build the source plugin
	--> samples - all the sample codes
	--> frame_rate_test - codes to test and print the frame rate of camera
	--> tests - all the unit test codes
	--> third_party - all the third party code
	
Once you have source code and want to know how to build the software, follow the steps given below -

Process for building the Source Code -
1) 	Open the CMake GUI (Start Menu -> All Programs -> CMake 2.8 -> CMake (cmake-gui)).
2) 	In the "Where is the Source code", point to the location of the "code" folder where the file "CMakeLists.txt" is located.
3) 	In the "Where to build the binaries", point to the location to build the binaries.
	It is recommended that a separate folder called as "build" (this name can be changed)
	be created in a separate location on the PC for this purpose. If the build folder is 
	a subfolder of the code folder, then an error message is given to the user and no build
	is generated.
4)	Click on "Configure". Select the Visual Studio (VS) compiler version that you have installed on your PC.
	Please note the following mapping to be used for building 32 bit binaries-  
	VS 2008 --> Visual Studio 9
	VS 2010 --> Visual Studio 10
	VS 2012 --> Visual Studio 11
	VS 2013 --> Visual Studio 12
	VS 2015 --> Visual Studio 14
	Similarly one can build 64 bit binaries by using following compiler options 
	VS 2008 --> Visual Studio 9 Win64
	VS 2010 --> Visual Studio 10 Win64
	VS 2012 --> Visual Studio 11 Win64
	VS 2013 --> Visual Studio 12 Win64
	VS 2015 --> Visual Studio 14 Win64
	
	NOTE: If Python and pthread libraries are not installed on your machine, you might see a message
	on the CMake console where it is looking for those libraries. These libraries are not needed for
	correct execution of the project and these messages can be safely ignored.
5)	There are a couple of options in CMake which the user can select if required -
		O3D3XX_SAMPLE_CODES_BUILD_ALL - This option if selected (default ON),
			generates the sample code project.
		O3D3XX_FRAME_RATE_TESTS_BUILD_ALL - This option if selected (default ON),
			generates the frame rate tests project.
		O3D3XX_UNIT_TESTS_BUILD_ALL - This option if selected (default OFF),
			generates the unit test and Gtest projects.
		O3D3XX_DOXYGEN_DOCUMENTATION_GENERATE - This option if selected (default OFF),
			generates the doxygen documentation. For this option to work, please have
			a look at the software required for doxygen described in the section above.
6)	Click on "Generate".
7)	This will build a VS solution in the "build" folder.
8)	Open the VS Solution in VS.
9)	You will see a list pf projects which are created as -
		ALL_BUILD - CMake project; do not touch
		FrameRateTestsO3D3xxCamera - Frame rate Test Application
		gtest - part of the gtest library
		gtest_main - part of the gtest library
		libxmlrpc - part of the open source XML-RPC library
		libxmlrpc_client - part of the open source XML-RPC library
		libxmlrpc_util - part of the open source XML-RPC library
		libxmlrpc_xmlparse - part of the open source XML-RPC library
		libxmlrpc_xmltok - part of the open source XML-RPC library
		O3D3xxCamera - Source plugin for the O3D3xx Camera
		O3D3xxProc - Processing plugin for the O3D3xx Camera
		SampleO3D3xxCamera - Sample code for using the O3D3xxCamera Class directly
		ZERO_CHECK - CMake project; do not touch
10)	You are now ready to build all the projects.
11) After successful compilation of code, 
	i. 	If the doxygen documentation generation is selected, the technical reference document 
		named "O3D3xx_Plugin.chm" and / or "O3D3xx_Plugin.pdf" shall be available at, "build/docs".
	ii. The generated binaries shall be available at, "build/bin/<configuration_folder>".
		<configuration_folder> denotes the configuration by which you build the solution eg: Debug, Release etc.


**************************************************************************************************************
Usage:
**************************************************************************************************************
______________________________________________________________________________________________________________
Sample C code - shows usage of class functions via C code.
______________________________________________________________________________________________________________
User application can directly access O3D3xx plugin class functions to talk to camera. A sample C/C++ code
is given to demonstrate usage of O3D3xx plugin class functions.
Steps to use sample code:
	1)If your camera ip is 192.168.0.69, xmlrpc port is 80 and pcic port is 50010, then directly go to step 4.
	2)In solution window, open file "sample.cpp" listed under "SampleO3D3xxCamera" project.
	3)Change the IP Address in SOURCE_PARAM field 
 	4)Compile the solution.
	5) After successfull compilation of project, the executable for sample C code shall be generated by name 
	"SampleO3D3xxCamera.exe" at "build/bin/<configuration_folder>".<configuration_folder> denotes the 
	configuration by which you build the solution. It could be Debug, Release etc.
	Double click the executable. It shall demonstrate configuration of camera and grabbing of frames and 
	image data.

______________________________________________________________________________________________________________
LightVis - shows usage of O3D3xx plugin via third party application.
______________________________________________________________________________________________________________
Steps to use LightVis to communicate with camera:
	1)Compile the solution.
	2)After, successfull compilation of project, open "build/bin/<configuration_folder>" folder.
	<configuration_folder> denotes the configuration by which you built the solution. 
	It could be Debug, Release etc.
	3)If your camera ip is 192.168.0.69, xmlrpc port is 80 and pcic port is 50010, then directly go to step 5.
	4)The "build/bin/<configuration_folder>" folder contains "lv.cfg" file.
	Open "lv.cfg" file in editor. This is configuration file of LightVis. It gives the details of camera 
	ip address, xmlrpc port, pcic port, source plugin binary name and processing plugin binary name to LightVis.
	
	Find following line in "lv.cfg" file,
	192.168.0.69:80:50010
	
	a)If your camera ip address is not 192.168.0.69,
	Replace 192.168.0.69 with your camera's ip address.
	
	b) If your xmlrpc port number is not 80, then
	Replace "80" with your xmlrpc port number.

	c)If your pcic port number is not 50010, then
	Replace "50010" with your pcic port number.
	Save the file.
	
	Suppose your camera ip addresss is 192.168.0.1, xmlrpc port is "8080" and pcic port is "2000", then 
	the "lv.cfg" file should have
	192.168.0.1:8080:2000
	5)Double click on "LightVis.exe". This is the LightVis executable.
	6)LightVis shall show images captured from camera.
	7)Also integration time can be configured via LightVis.
	
NOTE: 
	It is observed that when the code is compiled in Visual Studio 2012, 2013, and 2015 in release mode and
	compiler optimization flag is set to -O2 (Maximize Speed), then, the LightViz application crashes after
	some time. The solution to this is to reduce the optimization level. By default, the CMake script sets 
	the optimization level to -Od ('Disabled').
**************************************************************************************************************

**************************************************************************************************************
Generating Unit Test Report in XML Format:
**************************************************************************************************************
Motivation:
	GTest code allows us the generate the Test Report in XML format. Once we have this in XML format, we can
	import it into any tool like Polarion. Also, this allows automated parsing of the results for tools like
	Jenkins Build Server.
	
Steps:
	1)	The GTest executable created (O3D3xxTests.exe) when executed, runs the unit tests and prints the results
		on the console.
	2)	To generate the report in XML file, the following command is needed to be executed on the command prompt -
			O3D3xxTests.exe --gtest_output="xml:PATH_TO_XML/XML_FILE_NAME.xml"
		where, PATH_TO_XML = the path to generate the XML file
		XML_FILE_NAME = the name of the XML file to be generated
	3)	Once the user runs this, then the file is generated in JUnit XML format which can be uploaded to tools 
		like Polarion.
**************************************************************************************************************

ifm_camera's People

Contributors

brettlimone avatar

Stargazers

ymeramar avatar

Watchers

James Cloos avatar quincy.chen avatar

ifm_camera's Issues

LightVis

Hi, the lightVis.exe don't generate, its's normal?
Or need other aplicattion?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.