Prosilica GC QuickStart Guide The QuickStart Guide is available in 12 languages including Chinese, Danish, Dutch, English, Finnish, French, German, Italian, Japanese, Norwegian, Spanish, and Swedish. Prosilica GC Technical Manual V2.4.4 Find camera-specific information in the technical manual. The current official release of the driver is 6.4.6, released on September 26, 2011 by Christopher R. Baker cbaker+iwan1394@cs.cmu.edu. After more than a year of wrestling with the nuances of Microsoft's 64-bit operating systems, and with no small quantity of assistance from a few brave testers (you know who you are!), I am proud to officially release this next version of the CMU 1394 Digital.
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Ros Prosilica Driver
This tutorial will show you how to determine the prosilica camera's IP address if you do not remember it.Keywords: Prosilica, IP, camera
Tutorial Level: BEGINNER
Next Tutorial:Configuring the Prosilica gigE for a desktop
Contents
Compiling
Start by getting the dependencies and compiling the driver.
Powered On and Plugged in
Make sure that your Prosilica camera is powered at 12V, connected to your computer, and the green and orange network lights are lit.
Making Sure the Network is Configured for IPv4 Networking
Before you can find a camera on the network, the network adapter to which the camera is connected must be configured for IPv4 networking. In many cases this will be done already, so try skipping to the next section of this tutorial, and come back here if the discover command can't find your camera.
Configuring a network adapter is beyond the scope of this tutorial. The following tips may allow you to get started, but may get you in trouble with your network administrator. Moreover, the setup you get by following these tips will not persist when the computer is rebooted.
To check that an adapter is configured for IPv4 networking, use the ifconfig command. For example if your camera is connected to eth0, do:
In this case, the camera has an inet6 addr, but no inet addr, so it is not configured for IPv4 networking.
We can give the adapter an IPv4 address with the following command (this address probably won't get you in trouble):
Now we can check that the computer does indeed have an inet addr:
Capturing the IP address
Run:
where ethx is the interface the camera is connected to. This will be listening for traffic and return the IP address of our camera.
In another window run:
The tcpdump command will output a line similar to this one:
The address of the camera is 10.68.0.20. (Note that ListCameras will probably not see the camera.)
You can now configure the network interface (or an alias) in such a way that the camera is on the same subnet, and you can set the camera's IP address as described in the configuring the Prosilica gigE for a desktop tutorial.
Overview¶
Scorpion Vision Software supports the complete range of AVT Prosilica and AVT GigE cameras using the
- PVGrab.dll - Scorpion Camera Driver, standard mode
- PVGrabNoBroadcast.dll - Scorpion Camera Driver, initializes in no-broadcast mode only
- PVAPI.dll - Prosilica API dll
Standard or No Broadcast mode driver - which one to choose
In standard mode broadcast messages are sent periodically over the network in order to discover new cameras.The advantage is that in Scorpion user can choose camera from a list of names. The broadcast messages are not affecting image grabbing efficiency and are not visible, unless user is monitoring network traffic.However if broadcast messages are annoying to the user, there is an alternative driver version PVGrabNoBroadcast.dll, which does not send any broadcast messages. As a consequence, Scorpion cannot present camera list, so the user has to specify cameras by their IP addresses in the camera name field. Other than that, the two drivers are identical.
Note
- Please specify cameras by their IP addresses when using PVGrabNoBroadcast.dll
- IP addresses (instead of camera names) can be used with PVGrab.dll as well.
Installing Scorpion camera driver¶
Scorpion driver PVGrab.dll or PVGrabNoBroadcast.dll require Prosilica API library PVAPI.dll.
Usually all ddl’s are installed together with Scorpion.
However if another driver version is required, please make sure both PVGrab.dll and Prosilica’s PVAPI.dll are copied into Scorpion folder.
See Release notes for download links.
Note
- The camera must answer a ping.
- If the camera is on a different subnet, it will not hear the ping, and so will not answer.
- In order for the Prosilica Viewer to see a camera, the camera and the NIC must talk on the same subnet and the subnet mask must be set properly too.
- The Prosilica Viewer only sees cameras that are on the local subnet.
- The GigEIPConfig utility however sees beyond the subnet and will list every camera on the local network without regard to subnet.
- Use the GigEIPConfig program to manage / configure the ip-address of a connected camera
- Use the Prosilica Viewer to test a configured and connected camera
See the Prosilica documentation for more details on camera installation.
More information about Prosilica - http://www.prosilica.com/
More information about ethernet - http://computer.howstuffworks.com/ethernet.htm/printable>
Selecting the Prosilica Camera driver¶
Perform the following steps to select Prosilica camera driver in Scorpion:
- Activate the Service.Camera tab
- Right-click mouse over the Camera Settings menu
- Select Cameradriver
- Select the PVGrab.dll
Note
- Important: When switching between PVGrab.dll and PVGrabNoBroadcast.dll please first remove all cameras from Scorpion camera list and then restart Scorpion.
- After that you can select another driver and start selecting/adding cameras. You may need to recreate image which is removed along with camera removal.
- If more than one Prosilica camera is used in a Scorpion profile, only one type of Scorpion Prosilica drivers can be used in the same profile.
Camera visibility
Prosilica cameras are visible to the driver only if they are connected to the same subnet as the computer and they are not blocked by the computer firewall. Normally cameras can be selected using the browse button (marked as ‘...’).
Note
To access cameras on different subnets you can type the IP address (e.g. 192.0.0.1) in the Camera field of the Camera Settings dialog.
Prosilica GigE Property Pages¶
Below are the property pages explained.
The camera setup dialog allows the user to set the most common properties of the camera.
To access other properties use the Scorpion commands described in the command section or by the Python interface.
Prosilica Camera Driver Ros
General Page
Supported Image formats
Trigger mode
- Freerun - continuous video stream.
- This option reduces the acquisition time but increases the Ethernet load.
- SyncIn1..4 - hardware triggered. Triggered due to the Trigger event settings
- FixedRate - acquires images at a fixed rate set by the frame rate value
- Software - a trigger command is sent to the camera for each image request. This option reduces the Ethernet load to a minimum but increases the acquisition time.
Note
- Freerun is a fast streaming mode using bandwidth continously
- Software Trigger is slower but uses less bandwidth
Trigger Event
- Applies to Trigger mode SyncIn1..4 only. See actual camera documentation for event settings.
Framerate
- Applies to Trigger mode FixedRate only.
- Defines number of frames per second (fps)
- The framerate maximum depends of physical Ethernet capacity, GigE settings and image size.
Controls Page
Sets the most common controls for the camera. See the camera specification for actual camera for further information.
LUT Page
Apply lookup table. Lookup table must follow some rules, see lookup table example.
LUT File
Column
- In drop down list choose column to use.
Generate LUT Table
GigE Page
PacketSize
This parameter determines the Ethernet packet size. Generally speaking this number should be set to as large as the network adapter will allow. If this number is reduced, then CPU loading will increase. These large packet sizes are called Jumbo Packets in Ethernet terminology. If your Gigabit Ethernet - 1000baseT network adaptor does not support Jumbo Packets of at least 9 Kbytes, then you will need to reduce PacketSize parameter of the camera to match the maximum Jumbo packet size supported by your Gigabit Ethernet inteface. The default value for GigE is 8332.
Note
- Use 1500 as packetsize for fast ethernet - 100baseT
- Make sure network adapter and camera driver have the same packet size specified
StreamBytesPerSecond
- This control is very useful. This control can be used to moderate the data rate of the camera.
- This is particularly useful for slowing the camera down so that it can operate over slower links such as Fast Ethernet - 100 MBit or wireless networks.
- It is also an important control for multicamera situations. When multiple cameras are connected to a single Gigabit Ethernet port (usually through a switch), StreamBytesPerSecond for each camera needs to be set to a value so that the sum of each cameras StreamBytesPerSecond parameter does not exceed the data rate of the GigE port.
Note
- Setting this number to 994952 = 8 MBit is good for 100baseT.
- On 1000baseT a value corresponding to 80 to 100 MBit.
- One byte is 8 bits. The practical capacity on a 100BaseT is 60 - 80 - 100 MBit.
Attributes Page
The Attribute Page lists all available camera properties:
- Attribute - attribute name, this is the name to be used in get/set property commands
- Type
- C - command
- E - enumeration
- S - string
- I - integer
- F - float
- Flags
- R - readable
- W - writable
- C - constant
- V - volatile (camera controlled value)
- Value - current value
- Range - attribute range
- Category - the attribute category
For detailed attribute information see http://www.prosilica.com
Setting properties using Python¶
Use the following python interface to read and modify camera properties:
- long values:
- setProperty (‘propertyName’, value)
- getProperty (‘propertyName’)
- float or text values:
- executeCmd(‘set’, ‘propertyName=value’)
- executeCmd(‘get’, ‘propertyName’)
Note
- Obtain Property name from Attributes page
- Property names are case sensitive
Example 1: Setting white balance from Central script
Set long value.
Example 2: Setting trigger event
Set enumeration value, which is set the same way as text values.
Example 3: Setting framerate
Set float value.