Providing mask to discard features in given portions of the image

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Providing mask to discard features in given portions of the image

luke
Hi all,
I’m using visual odometer (rgbd_odometry in ROS) based on Kinect to reconstruct the trajectory of a semi-autonomous wheelchair. I have the following setup: the Kinect is placed 30 cm on top of the seat and it is slightly inclined towards the ground (~20 deg) to detect tables that the laser scan is not able to safely recognize. A small screen is placed in front of the seat, fixed to wheelchair by means of a support arm and unfortunately in the fiel of vision of the Kinect. I cannot change this configuration. In addition, there is no a static map of the environment.

The visual odometry is not properly work (sub estimation of the current position of the wheelchair by several meters) and the reason (my reasonable guess) is that is acquiring features from the portion of the image related to the small screen (that is fixed with respect to the wheelchair).

Is it possible to provide to rgbd_odometry a mask in order to discard features belonging to portion of the image (specifically the part related to the fixed screen)?

Thanks a lot for any advice,

Luke
Reply | Threaded
Open this post in threaded view
|

Re: Providing mask to discard features in given portions of the image

matlabbe
Administrator
Hi,

Yes, just filter the area of the fixed screen in the depth image prior to rgbd_odometry. By default, rgbd_odometry doesn't use features where there are no valid depth values.

Another approach is to set the ROI of the depth image:
<node name="rgbd_odometry" ...
   <param name="Vis/RoiRatios" type="string" value="0 0 0 0.2"/>
</node>
This will filter 20% of the bottom of the image.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Providing mask to discard features in given portions of the image

luke
Thank you very much Mathieu!