srv / viso2

A ROS wrapper for libviso2, a library for visual odometry
http://ros.org/wiki/viso2
241 stars 179 forks source link

libviso2 ros #2

Closed loiannog closed 12 years ago

loiannog commented 12 years ago

Stephan, do you think it is possible to add the option replace=true as a ros parameter to set at running time? Is it even possible to set parameters without changing those in the program? If yes in which way? Thanks Giuseppe

stwirth commented 12 years ago

Hi Giuseppe, Could you explain why and how you would like to change the parameter "replace" at runtime? You can modify all other parameters that are described on the wiki page www.ros.org/wiki/viso2_ros in your launch files or via command line arguments (see documentation of roslaunch and rosrun).

loiannog commented 12 years ago

Dear Stephan, we noticed in our system trying the algorithm even if there is a good matching that the odometry drifts when the vision system is blocked in a fixed position. A part of this behavior is due to the fact that the reference images are changed at every iteration. To avoid partially this drift it is possible to set replace=false such that the same reference image is considered. his could be a good solution even in robotics application where many times it is needed to stabilize the vehicle to a fixed position in the space and in this case we are sure that the reference image is always the same and so the option replace=false can be set. When the vehicle is moving replace=true can be set. That's why this option could be really useful. Have you tried the algorithm and noticed a drift on the position odometry too? Best regards. Giuseppe Loianno

Il giorno 05 aprile 2012 20:37, Stephan < reply@reply.github.com

ha scritto:

Hi Giuseppe, Could you explain why and how you would like to change the parameter "replace" at runtime? You can modify all other parameters that are described on the wiki page www.ros.org/wiki/viso2_ros in your launch files or via command line arguments (see documentation of roslaunch and rosrun).


Reply to this email directly or view it on GitHub: https://github.com/srv/srv_vision/issues/2#issuecomment-4982794

stwirth commented 12 years ago

Hi Giuseppe, yes, we observed this drift as well. The mono odometer has a kind of detection for small movements, as it needs it for robust F-Matrix estimation. The stereo odometer however misses that feature. I would like Andreas to add this to his lib, maybe I can provide him a patch. Regarding the setting of replace=true via a ROS parameter, I think this would require reading that parameter in every iteration which may cause an extra communication with the ROS parameter server (= time lag). A ROS service that you could call to fix that parameter to true once you stopped your robot and then again to false when you start moving seems more appropriate to me. Maybe I will move to using dynamic_reconfigure for all the parameters which would support this as well. Unfortunately I have few time to work on this issue now, maybe later in May. I will keep it in mind. Thanks for the report!

Best regards, Stephan

stwirth commented 12 years ago

Giuseppe, I just pushed a new version of the stereo_odometer to github. It contains a new parameter "~motion_threshold" for drift compensation. In my setup I don't see any drift anymore when the camera is fixed, setting this parameter to e.g. 5.0.

Stephan

loiannog commented 12 years ago

Stephan, thank you very much for your support. I have just a question for you so that i have not to change everything in my ros node since i have done a couple of changes to adapt to my case. Which file names have you updated such that i can take just changes you did and add to my version. Thank you very much. Giuseppe

2012/7/11 Stephan < reply@reply.github.com

Giuseppe, I just pushed a new version of the stereo_odometer to github. It contains a new parameter "~motion_threshold" for drift compensation. In my setup I don't see any drift anymore when the camera is fixed, setting this parameter to e.g. 5.0.

Stephan


Reply to this email directly or view it on GitHub: https://github.com/srv/srv_vision/issues/2#issuecomment-6903557

stwirth commented 12 years ago

Hi Giuseppe, please refer to the last commit on the master branch to see all changes: https://github.com/srv/srv_vision/commit/d33528d1b99f1e73d6606b0362167b19db2b2fa4 If you think your changes could be valuable to others, please feel free to submit a patch!

Regards, Stephan

On Wed, Jul 11, 2012 at 1:13 PM, loiannog reply@reply.github.com wrote:

Stephan, thank you very much for your support. I have just a question for you so that i have not to change everything in my ros node since i have done a couple of changes to adapt to my case. Which file names have you updated such that i can take just changes you did and add to my version. Thank you very much. Giuseppe

2012/7/11 Stephan < reply@reply.github.com

Giuseppe, I just pushed a new version of the stereo_odometer to github. It contains a new parameter "~motion_threshold" for drift compensation. In my setup I don't see any drift anymore when the camera is fixed, setting this parameter to e.g. 5.0.

Stephan


Reply to this email directly or view it on GitHub: https://github.com/srv/srv_vision/issues/2#issuecomment-6903557


Reply to this email directly or view it on GitHub: https://github.com/srv/srv_vision/issues/2#issuecomment-6903782

stwirth commented 12 years ago

Hi Giuseppe, please note that I just renamed the stack and a containing package. To keep up with the change, just change the remote URL in your local clone to the new one (srv_vision.git => viso2.git) and run an update. The ROS wiki will take a while to get the documentation updated.