Giter VIP home page Giter VIP logo

Comments (11)

m-binev avatar m-binev commented on July 2, 2024 1

@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.

m-binev avatar m-binev commented on July 2, 2024

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.

mpQuintana avatar mpQuintana commented on July 2, 2024

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.

m-binev avatar m-binev commented on July 2, 2024

@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.

mpQuintana avatar mpQuintana commented on July 2, 2024

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.

This is the code modified:
Selection_309

And this is the error:
Selection_308

from pylon-ros-camera.

m-binev avatar m-binev commented on July 2, 2024

@mpQuintana Hi, okay, I'm not a ROS developer, but I suppose I know where the problem is - let me elaborate on that.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

nickzherdev avatar nickzherdev commented on July 2, 2024

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.

mpQuintana avatar mpQuintana commented on July 2, 2024

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.

m-binev avatar m-binev commented on July 2, 2024

@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.

pablo-quilez avatar pablo-quilez commented on July 2, 2024

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.

FrancoisPicardDTI avatar FrancoisPicardDTI commented on July 2, 2024

I am closing this issue as it seems that the problem has been solved.

from pylon-ros-camera.

Related Issues (20)

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.