Giter Club home page Giter Club logo

Comments (24)

TSRyan avatar TSRyan commented on July 21, 2024 1

No worries; thanks for checking. I had assumed auto-train was continuous instead of one-shot, oops. I added a while loop to check for AUTO_TRAIN = false every 100 ms before updating the pixel coordinates and auto_train in current_config_ as you suggested.

from rpg_dvs_ros.

YongjianDeng avatar YongjianDeng commented on July 21, 2024

Hi,

Is there any method to downgrade DAVIS revision from 16 to 9912? or specifically 9912.

I had reflashed DAVIS device from 9912 to 16 for executing jAER toolkit, but this ROS package requires 16 revision.

Thanks.

Hi,

Have you already solved this problem? Because I am now facing the same issue as yours.

BW

Thanks

from rpg_dvs_ros.

llongi avatar llongi commented on July 21, 2024

Hi, just to clarify the issue:
all current DAVIS cameras and iniVation software (libcaer 3.0, jAER 1.7, Flashy) do require logic version 16. Our DAVIS346 RED cameras only work with version 16.
The current RPG ROS driver uses an old libcaer version (2.something) that only supports the old logic version 9912.
The correct solution here is to fix the ROS driver so it uses the latest libcaer 3.0 release.

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

I ran into this issue as well. As you suggested, @llongi , I installed libcaer version 3.0.0, but I encountered errors when trying to rebuild the davis_ros_driver package:

$ catkin build davis_ros_driver

...

/home/tryan/catkin_ws/src/rpg_dvs_ros/davis_ros_driver/src/driver.cpp: In member function ‘void davis_ros_driver::DavisRosDriver::changeDvsParameters()’:
/home/tryan/catkin_ws/src/rpg_dvs_ros/davis_ros_driver/src/driver.cpp:303:70: error: ‘DAVIS_CONFIG_APS_FRAME_DELAY’ was not declared in this scope
                 caerDeviceConfigSet(davis_handle_, DAVIS_CONFIG_APS, DAVIS_CONFIG_APS_FRAME_DELAY, current_config_.frame_delay);
                                                                      ^
/home/tryan/catkin_ws/src/rpg_dvs_ros/davis_ros_driver/src/driver.cpp:307:70: error: ‘DAVIS_CONFIG_IMU_RUN’ was not declared in this scope
                 caerDeviceConfigSet(davis_handle_, DAVIS_CONFIG_IMU, DAVIS_CONFIG_IMU_RUN, current_config_.imu_enabled);
                                                                      ^
...

Some of the configuration parameters appear to have changed (compare davis.h between versions of libcaer), so the driver node itself will need to be modified to deal with the new parameters (e.g., DAVIS_CONFIG_APS_FRAME_MODE) and remove obsolete code (e.g., handling DAVIS_CONFIG_APS_FRAME_DELAY). I haven't had time to make the modifications, but I'm posting this in case it sheds some light for someone else.

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

I have the DAVIS ROS driver working with libcaer 3 now. After updating to libcaer 3 and removing references to frame_delay and imu_run, I implemented support for frame_mode and frame_interval, which replaced frame_delay. Incidentally, without frame_mode implemented, the APS picture did not display properly; it looked like an interleaved double image. If anyone wants specifics, let me know.

from rpg_dvs_ros.

llongi avatar llongi commented on July 21, 2024

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

I'll add the IMU_RUN replacements for a PR if you'd like.

As for FRAME_MODE, it did default to 0, but that mode did not display properly (and still doesn't). It does however display properly in grayscale and original modes. I'm using a DAVIS346 red color

Default:
frame_mode_default
Note how the image appears enlarged (sort of) and the chair back appears in both the left and right sides of the frame. It seems like the pixels are not arranged correctly.

Grayscale:
frame_mode_grayscale

Original:
frame_mode_original

from rpg_dvs_ros.

llongi avatar llongi commented on July 21, 2024

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

I noticed that, too. I'll look into it further.

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

I got the default frame mode to work with the color data; it now publishes an rgb8-encoded ROS image message when it sees 3 channels, and mono8 for single-channel frame events. Apparently, dvs_renderer converts it to grayscale anyway, but if you use image_view to look at the published message directly from the driver, it is in color as expected.

On a side note, I added the skip, polarity, and ROI (both DVS and APS) filter functionalities and made them dynamically reconfigurable.

from rpg_dvs_ros.

YongjianDeng avatar YongjianDeng commented on July 21, 2024

I got the default frame mode to work with the color data; it now publishes an rgb8-encoded ROS image message when it sees 3 channels, and mono8 for single-channel frame events. Apparently, dvs_renderer converts it to grayscale anyway, but if you use image_view to look at the published message directly from the driver, it is in color as expected.

On a side note, I added the skip, polarity, and ROI (both DVS and APS) filter functionalities and made them dynamically reconfigurable.

Hi TSRyan,

I am newer in ROS, cannot figure out the driver stuff, would you tell me some detail about how to transform the dependency from library 1.0 to library 3.0?

Thank you a lot

Tony

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

The exact changes I made are in my fork of this repo. The main things to get up and running are:

I added support to make the hardware filters dynamically reconfigurable as well, but that's not strictly necessary. If you don't want to bother figuring out how to code only the changes you need, you can just clone my repo instead of the main one in step 6 of the normal install instructions:

git clone https://github.com/TSRyan/rpg_dvs_ros.git

instead of

git clone https://github.com/uzh-rpg/rpg_dvs_ros.git

NOTE: my updates are in the update/use_libcaer3_with_davis346 branch of my repo--not master, so you will need to make sure you check out the proper branch. The rest of the instructions still apply. I hope this helps!

EDIT: formatting for clarity
EDIT: add note indicating appropriate branch of my repo.

from rpg_dvs_ros.

llongi avatar llongi commented on July 21, 2024

Branch looks good to me.
Just a comment on the hot-pixel filter auto-train: you don't have to send values manually, libcaer does that for you. The moment you do configSet(AUTO_TRAIN, true), it starts looking at events, learns the 8 most active pixels, and if they are above 5 KHz it sends the commands to the hardware to filter them out.
So really there's nothing to do manually there.

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

I'm not 100% sure I understand what you mean by sending the values manually. I do send the config values to the hardware manually when AUTO_TRAIN is false (I did this to confirm that known pixels were being filtered), but when AUTO_TRAIN is true, I pull them from the hardware and update the config to match (so you can see the automatic changes in rqt_reconfigure). Actually, in doing so, I noticed that the auto train output seems to have the column and rows backwards (trying to set the row values to 346 and columns to 260), or maybe I do, but I haven't found the error. In any case, if I have misunderstood or should handle it differently, please let me know.

EDIT: I just realized my confusion may better expressed as a question: Are you referring to the manual mode of hot-pixel filtering (AUTO_TRAIN=false), or am I still manually sending values (unintentional) when AUTO_TRAIN=true?

from rpg_dvs_ros.

llongi avatar llongi commented on July 21, 2024

from rpg_dvs_ros.

llongi avatar llongi commented on July 21, 2024

Looks good to me. 👍 If it's all working for you, I suggest you do a PR, to me it looks ready for more testing and merging then.

from rpg_dvs_ros.

YongjianDeng avatar YongjianDeng commented on July 21, 2024

The exact changes I made are in my fork of this repo. The main things to get up and running are:

If you don't want to bother figuring out how to code only the changes you need, you can just clone my repo instead of the main one in step 6 of the normal install instructions:

git clone https://github.com/TSRyan/rpg_dvs_ros.git

instead of

git clone https://github.com/uzh-rpg/rpg_dvs_ros.git

The rest of the instructions still apply. I hope this helps!

Hi TSRyan,

Thanks you a lot for your generous help.

BW,

Tony

from rpg_dvs_ros.

superhector2000 avatar superhector2000 commented on July 21, 2024

Hi TSRyan,
When I clone using "git clone https://github.com/TSRyan/rpg_dvs_ros.git
", it downloads the main repo and doesn't have your changes. So I download it as a Zip file. It turns out it compiles fine but when I tried running the camera it shows me the same error as the DAVIS revision from 16 to 9912, but instead from 16 to 18. What can I do about it? Inivation doesn't seem to have previous firmware versions available.

2018-12-04 08:47:00 (TZ-0500): ERROR: DAVIS ID-1: Device firmware version incorrect. You have version 5; but version 4 is required. Please update by following the Flashy documentation at 'https://inivation.com/support/software/reflashing/'.
2018-12-04 08:47:00 (TZ-0500): ERROR: DAVIS ID-1: Device logic version incorrect. You have version 18; but version 16 is required. Please update by following the Flashy documentation at 'https://inivation.com/support/software/reflashing/'.
2018-12-04 08:47:00 (TZ-0500): CRITICAL: DAVIS ID-1: Failed to open device, see above log message for more information (errno=-6).

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

Hi @superhector2000,
My mistake. You need to clone the update/use_libcaer3_with_DAVIS346 branch of my repo--not the master branch. The errors you're getting are actually from libcaer. My update branch uses libcaer 3.0.0, but there is now a 3.1.0. I can't say for sure how your device will interact with libcaer as I only have experience with my own device, but if you still get similar errors after switching branches, I would start looking at that aspect of things.

I will update my previous comments to reflect the appropriate branch of my repo to clone. Sorry for the confusion.

from rpg_dvs_ros.

superhector2000 avatar superhector2000 commented on July 21, 2024

I am assuming that your device has logic version 16? I have a new DAVIS346 red, that comes with version logic version 18 :( I just tried changing the libcaer to 3.1.0 but when I run roslaunch dvs_renderer renderer_mono.launch, the app just hangs.

from rpg_dvs_ros.

TSRyan avatar TSRyan commented on July 21, 2024

Yeah, my DAVIS is logic version 16. I don't know what changes there are in 18 or if/how they may affect the driver.

Did you try roslaunch dvs_renderer davis_mono.launch? That's the example launch file suggested in the README. I don't think renderer_mono.launch brings up the device driver--or are you launching the driver elsewhere?

from rpg_dvs_ros.

llongi avatar llongi commented on July 21, 2024

Logic 18 fixes a problem related to IMU RUN controls, fixes corrupt data with DAVIS BLUE, and enables IMU on DAVIS RED. From a usage point of view it's an easy upgrade from libcaer 3.0 (logic 16) to 3.1 (logic 18). There are no changes to commands or configurations or data formats. Simply build the ROS driver against 3.1.0 and it should work correctly.

from rpg_dvs_ros.

superhector2000 avatar superhector2000 commented on July 21, 2024

Sorry, I meant 'roslaunch dvs_renderer davis_mono.launch'. Still got the error of requiring logic version 16 while I have 18.

from rpg_dvs_ros.

superhector2000 avatar superhector2000 commented on July 21, 2024

It is working! Thanks for your help Luca and TSRyan! You were right Luca, the driver didn't affect anything else.
So here is what I did to fix it:

  1. Modify the CMakeLists.txt to download 3.1.0
  2. Do a fresh build of the ros packages (rm -rf devel/ build/ and follow steps 7 and on)
    Thanks!

from rpg_dvs_ros.

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.