Comments (11)
@nickzherdev Hi, we are currently discussing on that and hope to get some decision until end of the month. If the decision was positive, we would need about 1 month to get things implemented. So, some time in March (or April) could do.
@pablo-quilez FYI.
from pylon-ros-camera.
Hi @mpQuintana , the pylon ROS driver is based on pylon 5.2. As pylon 6.x and pylon 5.2 are not binary compatible, I would suggest that you install pylon 5.2 instead. Another thing to consider is, that the current ROS adapter was designed for GigE cameras with GenICam SFNC v1.1 and new Basler ace2 GigE camera (like yours) are based on GenICam SFNC v2.x. This means that the ace2 camera does use partly different names for some camera features. In other words, some modifications to the ROS adapter may be needed in order to get that camera with all its features working.
@pablo-quilez FYI
from pylon-ros-camera.
Hello @m-binev, thank you for your answer. I have tried with pylon 5.2 but now I get a different error: "what(): Error while accessing GainRaw in PylonGigECamera". I am trying to look into the implications of using GenICam SFNC v2.x instead of v1.1, this means I should modify the PylonCameraParameter? Or what would I need to modify?
This is the console output:
started roslaunch server http://pc2829pt:36537/
SUMMARY
PARAMETERS
- /pylon_camera_node/brightness: 100
- /pylon_camera_node/brightness_continuous: True
- /pylon_camera_node/camera_frame: pylon_camera
- /pylon_camera_node/camera_info_url:
- /pylon_camera_node/device_user_id:
- /pylon_camera_node/enable_current_params_publisher: True
- /pylon_camera_node/enable_status_publisher: True
- /pylon_camera_node/frame_rate: 5.0
- /pylon_camera_node/gain: 0.5
- /pylon_camera_node/gain_auto: True
- /pylon_camera_node/gige/inter_pkg_delay: 1000
- /pylon_camera_node/gige/mtu_size: 1500
- /pylon_camera_node/image_encoding: rgb8
- /pylon_camera_node/startup_user_set: CurrentSetting
- /rosdistro: kinetic
- /rosversion: 1.12.14
NODES
/
pylon_camera_node (pylon_camera/pylon_camera_node)
auto-starting new master
process[master]: started with pid [1566]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 242967ca-4e72-11eb-be7b-1065303dcaa8
process[rosout-1]: started with pid [1579]
started core service [/rosout]
process[pylon_camera_node-2]: started with pid [1591]
gain is given and has value 0.5
brightness is given and has value 100
brightness is continuous
gain is set to auto
[ WARN] [1609753771.139300776]: Autoflash: 0, line2: 1 , line3: 1
[ INFO] [1609753771.139345974]: No Device User ID set -> Will open the camera device found first
[ INFO] [1609753771.395447129]: Found camera with DeviceUserID camera_1: a2A1920-51gcBAS
[ WARN] [1609753771.623949934]: No User Set Is selected, Camera current setting will be used
[ INFO] [1609753771.654818164]: Cam supports the following [GenAPI|ROS] image encodings: ['Mono8'|'mono8'] ['Mono12'|'mono16'] ['Mono12p'|'NO_ROS_EQUIVALENT'] ['RGB8'|'rgb8'] ['BGR8'|'bgr8'] ['YCbCr422_8'|'NO_ROS_EQUIVALENT'] ['BayerRG8'|'bayer_rggb8'] ['BayerRG12'|'bayer_rggb16'] ['BayerRG12p'|'NO_ROS_EQUIVALENT']
[ INFO] [1609753771.828643476]: CameraInfoURL needed for rectification! ROS-Param: '/pylon_camera_node/camera_info_url' = '' is invalid!
[ WARN] [1609753771.828699588]: Will only provide distorted /image_raw images!
terminate called after throwing an instance of 'std::runtime_error'
what(): Error while accessing GainRaw in PylonGigECamera
[pylon_camera_node-2] process has died [pid 1591, exit code -6, cmd /home/idiada/Ensemble/basler_catkin_ws/devel/lib/pylon_camera/pylon_camera_node __name:=pylon_camera_node __log:=/home/idiada/.ros/log/242967ca-4e72-11eb-be7b-1065303dcaa8/pylon_camera_node-2.log].
log file: /home/idiada/.ros/log/242967ca-4e72-11eb-be7b-1065303dcaa8/pylon_camera_node-2*.log
from pylon-ros-camera.
@mpQuintana Hi, well, this is the "correct" error message you could expect)) That is, the ace2 does not have any GainRaw (int), ExposureTimeRaw (int), etc. Instead, it has Gain (float), ExposureTime (float), etc. Thus, it would be better if you add these new parameters to the GigE camera implementation.
FYI: the ace2 GigE cameras can be treated like (compared to) ace USB cameras, because both comply with SFNC 2.x.
In other words, you can have a look at similar parameter implementation of the USB camera in ROS and replicate it for GigE with SFNC 2.x. Regards
from pylon-ros-camera.
Thank you @m-binev that is very helpful. I am trying to follow your suggestion but I am getting errors when compiling.
I am modifying the file pylon_camera/include/internal/impl/pylon_camera_gige.hpp to change from GainRaw to Gain for example (I have tried different attributes), Do I need to modify this in any other files? I think I'm missing something.
from pylon-ros-camera.
@mpQuintana Hi, okay, I'm not a ROS developer, but I suppose I know where the problem is - let me elaborate on that.
- I suppose, you have tried to modify the access to GainRaw (int, sfnc 1.1) to Gain (float, sfnc2.x). I suppose, you have also modified the typedef in the beginning of the same file.
- based on the error message, e.g. "class Pylon::CBaslerGigEInstantCamera has no member named Gain", I assume that the current ROS port for GigE cameras is based on the native pylon class CBaslerGigEInstantCamera.
Native means, that all camera parameters are members of that class and have been already generated based on camera parameter XML files that describe a SFNC 1.x GigE camera in pylon. - in turn, it could be very tricky and complicated to add support for a completely new parameter while using a native pylon class that does not know anything about that.
- for such cases in pylon there is the so-called generic class, i.e., CInsantCamera.
With this class you first pick up the camera nodemap directly from the camera (it describes all its parameters), and may then access any camera parameter. This approach is described in the pylon C++ SDK sample "ParametrizeCamera_GenericParameterAccess". Thus, I suppose this would be the right way to go here, if ace2 GigE should be supported in the current ROS adapter with pylon 5.2.
By the way, pylon Viewer is using exactly this generic class/approach, which is why it works well with ace2 GigE.
Summary:
I suppose a little more implementation would be needed in order to get the ace2 GigE working with the current ROS adapter. ace2 USB should be working out of the box though.
If pylon 6.x should be used with ROS (because it natively supports ace2 GigE), the new class CBaslerUniversalInstantCamera should be used instead of CBaslerGigEInstantCamera.
@pablo-quilez FYI.
from pylon-ros-camera.
Hi!
Luckily, I saw this thread before trying to run four Baslers 1920-51gcBAS with pylon 6.1.1 on our sensor unit.
May I ask, when the support for that camera type will be added natively into the driver? Approximately?
from pylon-ros-camera.
Hello @m-binev. Any news regarding the support of ACE 2 GigE Cameras in ROS? We have ACE 2 BASIC GigE cameras and will have ACE 2 PRO GigE cameras soon, and we need to integrate them with ROS soon.
from pylon-ros-camera.
@mpQuintana Hi, we are working on that already and hope to have a new brach based on pylon 6.2 that supports ace 2 GigE cameras by e.g. middle of April.
@pablo-quilez FYI.
from pylon-ros-camera.
Hello,
we updated on last Friday the pylon6-dev branch. This should solve the issue, as we upgrade the driver for the missing cameras. Please let me know if it is working properly.
Thanks and regards!
from pylon-ros-camera.
I am closing this issue as it seems that the problem has been solved.
from pylon-ros-camera.
Related Issues (20)
- not able to run acA5472-17uc camera. Topics are not going beyond 6Hz HOT 5
- Frame Transmission Delay HOT 4
- Chunk Mode Timestamp HOT 6
- Make Blaze camera dependency optional HOT 6
- [Humble] build error: no member named OutlierRemovalTolerance HOT 1
- Blaze Camera not being found by ROS2 node HOT 11
- can't found pylon_camera pylon_camera_node HOT 4
- [Humble] Boost COMPONENTS libraries getting replaced by pylon_ros2_camera_component HOT 3
- No "running" status message when using specific device user id HOT 2
- Driver installation problem HOT 5
- AutofuntionROI Offset OutOfRangeException HOT 4
- Frame rate not adjusting with new ROI HOT 2
- multiple USB cameras retrieveresult delay HOT 1
- Question about function PylonInitialize HOT 5
- pylon_camera fps not reaching set frame_rate HOT 8
- Camera Config help for short range imaging HOT 2
- Connection multiple cameras ROS2 and publish images HOT 2
- ACE cameras PTP synchronization (acA_1920-40gc) HOT 2
- No available camera. Keep waiting and trying... HOT 2
- Synchronization error with image timestamp
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pylon-ros-camera.