Robotics StackExchange | Archived questions

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

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

Asked by distro on 2022-10-03 15:53:50 UTC

Comments

Related question with a nice answer: https://answers.ros.org/question/390555/change-the-heightangle-of-the-laser-scan-created-from-pointcloud/

Asked by ljaniec on 2022-10-04 03:18:31 UTC

@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.

Asked by distro on 2022-10-05 16:23:21 UTC

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

Asked by ljaniec on 2022-10-05 16:41:44 UTC

@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.

Asked by distro on 2022-10-05 20:13:56 UTC

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

Asked by ljaniec on 2022-10-06 03:13:48 UTC

@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.

Asked by distro on 2022-10-06 14:04:19 UTC

Maybe these problems can be solved, what are they?

Asked by ljaniec on 2022-10-07 02:41:13 UTC

@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.

Asked by distro on 2022-10-07 15:23:04 UTC

Problems with building the package, not these mentioned in the question. I don't see any building/compile warning and error logs related to the pointcloud_to_laserscan

Asked by ljaniec on 2022-10-08 01:50:17 UTC

@ljaniec I used catkin build. It simply says the package is skipped.

Asked by distro on 2022-10-08 15:30:08 UTC

@ljaniec can you please send me a link of a pointcloud to laser scan package that can be built in ROS1 kinetic platform? I tried the ROS wiki github link for pointcloud to laserscan. There is no kinetic branch, I tried building the indigo branch but it doesn't work. I was able to build the depth_image_procpackage but don't see the point of it. it has no launch file or anything. I tried the example they gave in execution but when I launch the file nothing happens, I don't know how to use it in conjunction with anything else I'm working with.

Asked by distro on 2022-10-12 20:07:11 UTC

@ljaniec I installed the ros-kinectic-pointclpud-to-laserscan and it works I think, however, messing around with the max height parameter did not seem to work, the map generated is still gotten from the the line of sight of the cmaera, maybe changing the target frame would help but I dont quite know how that works. if I change target frame to base-footprint does that mean the packege takes point clouds lower to the ground? I'm not sure now that works.

Asked by distro on 2022-10-29 23:41:41 UTC

Answers