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?
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.
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 thepointcloud_to_laserscan
package. I'm dealing with thedepthimage_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 itsmin_height
/max_height
parameters or itstarget_frame
parameter as in the answer linked aboveAsked 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 nokinetic
branch, I tried building theindigo
branch but it doesn't work. I was able to build thedepth_image_proc
package but don't see the point of it. it has no launch file or anything. I tried the example they gave inexecution
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 themax height
parameter did not seem to work, the map generated is still gotten from the the line of sight of the cmaera, maybe changing thetarget frame
would help but I dont quite know how that works. if I changetarget 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