Turtlebot Cameras(Kinect/d435) Cannot detect objects below a certain level from the ground.

asked 2022-10-03 15:53:50 -0600

distro gravatar image

updated 2022-10-12 20:09:49 -0600

I am making use of the depthimage_to_laserscan package with my cameras and turtlebot2. When gmapping, neither my d435 camera nor backup camera(kinect) is able to register certain objects and parts of objects that are close to the floor, like certain table legs, the small wheels on a white board, objects that have a solid base but a mid section with large opening(please see illustration below) etc. what are the launch files I can mess around with? image description

RE-EDIT: Re-examining my RVIZ, There is a horizontal line that divides the image as seen below. The depth cloud looks fine. The horizontal line represents the laserscan data. The laserscan is created from where the camera is positioned on the robot in real life. It seems that the part depth information from that line of sight(that is, the horizontal line) is used for creating the laserscan, the laser scan information is thereofre kind of useless as it does not effeceinetly describe the environment because there are obstacles or parts of obstacles below that line of sight.

Is there a way to resolve this? I want the the whole part of the image to be converted or if I have to chose, I wish for the lower half to be used instead.By the way, the object below is the same as the object "hand drawn" in the previous image. image description

edit retag flag offensive close merge delete

Comments

Related question with a nice answer: https://answers.ros.org/question/3905...

ljaniec gravatar image ljaniec  ( 2022-10-04 03:18:31 -0600 )edit
1

@ljaniec I don't know exactly what file I can find the equivalent of min height, max height parameters because the solution from your link talks about the pointcloud_to_laserscan package. I'm dealing with the depthimage_to_laserscan package.

distro gravatar image distro  ( 2022-10-05 16:23:21 -0600 )edit
1

You can transform depth image to pointcloud e.g. with this package depth_image_proc

ljaniec gravatar image ljaniec  ( 2022-10-05 16:41:44 -0600 )edit
1

@ljaniec How would that help me solve my root issue of not being able to detect objects that are low to the ground? I have editted my Question by the way.

distro gravatar image distro  ( 2022-10-05 20:13:56 -0600 )edit
1

You could transform it to pointcloud, then use pointcloud_to_laserscan with its min_height/max_height parameters or its target_frame parameter as in the answer linked above

ljaniec gravatar image ljaniec  ( 2022-10-06 03:13:48 -0600 )edit
1

@ljaniec in anycase, pointcloud_to_laserscan package apparently does not have a branch for kinetic. I have tried to build it in my workspace and it didn't build.

distro gravatar image distro  ( 2022-10-06 14:04:19 -0600 )edit
1

Maybe these problems can be solved, what are they?

ljaniec gravatar image ljaniec  ( 2022-10-07 02:41:13 -0600 )edit
1

@ljaniec I'm not sure what you mean? I've already explained the problem I'm having, that's the point of the question haha. I probably don't get what you mean. I'm not sure if the ossue is with the depthimage_to_laserscan package or if it has to do with the cameras sepcifically.

distro gravatar image distro  ( 2022-10-07 15:23:04 -0600 )edit