-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I want to write my own intrinsic parameter on device but I'm confused about rectification process #10766
Comments
Hi @demul The RealSense ROS2 wrapper that you linked to at https://github.com/intel/ros2_intel_realsense is obsolete and has not been updated for years. The current ROS2 wrapper can be found at https://github.com/IntelRealSense/realsense-ros/tree/ros2-beta Although most RealSense stream formats are rectified, the Y16 format is unrectified, as described at IntelRealSense/realsense-ros#1670 where a RealSense user shared the edit that they made to the wrapper's base_realsense_node.cpp file to publish unrectified Y16. https://github.com/IntelRealSense/realsense-ros/tree/ros2-beta/realsense2_camera/src |
I tried IntelRealSense/realsense-ros#1670 I tried https://github.com/IntelRealSense/realsense-ros/tree/ros2-beta/realsense2_camera/src I just want u to try to get Y16 infra image on ros2 driver on D455 and tell me how to do it. |
I went back to the beginning of this case to re-read it for new insights. I note that you were using the CustomRW tool that is part of the custom calibration system and were writing your own XML calibration but were concerned about calibrating with rectified frames. However, the calibration tool does not calibrate with a rectified format. It calibrates with unrectified Y16 infrared, as described on page 11 of Intel's custom calibration white-paper guide at the link below. https://dev.intelrealsense.com/docs/d400-series-custom-calibration-white-paper So an approach that you could perhaps use is:
|
Thankss @MartyG-RealSense |
I will refer your question to my Intel RealSense development colleagues. Thanks very much for your patience! |
Thanks @MartyG-RealSense |
Not yet. I will follow up the inquiry that I made to my colleagues. Thanks very much for your patience! |
A member of the RealSense ROS development team provided the following advice about edits to base_realsense_node.cpp to try. For a code update I suggest changing this line:
And if point cloud texture is needed, these lines should be updated too: |
@MartyG-RealSense Plz try and verify it works before u comment |
There is the least time-wasting solution u can give
|
I do genuinely understand your frustration. Using the edits suggested in #10766 (comment) to edit base_realsense_node.cpp yourself is the only solution that we can offer at the present time though, unfortunately. I do apologize. |
@MartyG-RealSense |
"base_realsense_node.cpp yourself is the only solution that we can offer at the present time though"
You're just short of responsibility and you're too lazy to do after-sales service. |
This is not a simple thing that a lazy employee reject a nervous customer's request. |
@MartyG-RealSense
So U can help me with that,
|
Thank you for your patience whilst I discussed your case with my Intel RealSense colleagues. They provided the feedback below. Y16 is unrectified calibration frames. It is supported in SDK APIs (for example, enable_stream in librealsense\include\librealsense2\hpp\rs_pipeline.hpp and demonstrated in the Realsense Viewer). The ROS2 wrapper does not support calibration. For custom calibration, please use Y16 as described in the custom calibration white paper and use the sample app as reference. https://dev.intelrealsense.com/docs/d400-series-custom-calibration-white-paper Do not use the sample app directly as that is for example purposes only. Users are expected to write their own calibration app with the SDK API and their own calibration algorithm. Many of our customers have successfully used this approach to calibrate their devices on production lines. CustomRW expects results produced from this approach. To avoid device malfunction, please do NOT overwrite the calibration on the device with results from rectified images. If you have a Non Disclosure Agreement (NDA) with Intel then please open a ticket on Intel's Zendesk support channel. |
Hi @demul Was the information provided in the comment above helpful to you, please? Thanks! |
Partially helpful. To explain in more detail, There are the two major reasons. If either problem is solved, you can get Y16 stream from ROS2 wrapper. Thanks for your supports. @MartyG-RealSense |
You are very welcome, @demul - it's great to hear that you achieved a solution. Thanks very much for your detailed response, which I will pass to the RealSense ROS development team. Thanks again! |
Hi @demul Do you require further assistance with this case, please? Thanks! |
I'll not close this issue. This issue is critical and must be tracked until officially solved. |
Thanks very much for the update. What do you believe the next step should be in order to resolve this issue to your satisfaction, please? |
You already know the next steps. It is to solve these issues and update ros2 wrapper branch. |
Thank you @demul - I will discuss the issue further with my Intel RealSense colleagues. |
After discussion with my RealSense colleagues, an official Intel internal feature request for adding Y16 support to the ros2_beta ROS wrapper has been created. In the meantime, please continue to use your own solution. This case should be kept open whilst the change request is active. Thanks! |
That's sounds great! |
@MartyG-RealSense
I'm curious is there any progression on this feature. |
Hi @demul I check the status of this Y16 feature request every few months but there is no progress to report so far, unfortunately. |
Hi @MartyG-RealSense , I think you can close this issue since it was fixed in IntelRealSense/realsense-ros#2840 |
Okay, thanks very much @SamerKhshiboun for bringing it to my attention! |
I want to write my own intrinsic parameter on device.
I know I can access the calibration parameter on device by the command
"Intel.Realsense.CustomRW -r"
and I can write my own intrinsic parameter by
"Intel.Realsense.CustomRW -w -f myparam.xml"
But there is a confusing point!
The device driver publish rectified frames.
So if i calibrate my image by this rectified frames, i'll get distortion parameters of already rectified image.
But it seems that the parameters shown by "Intel.Realsense.CustomRW -r" has the distortion parameters of raw(not-rectified) image.
So, how can I get raw(not-rectified) frames from the driver?
My machine : D455
Environment : Ubuntu
Driver : https://github.com/intel/ros2_intel_realsense
The text was updated successfully, but these errors were encountered: