Hello Mat
I am using the obstacles_detection node to generate an obstacle cloud from pointclouds generated by 3 D435i depth cameras (2 front facing, one backward facing). Obstacle detection seems to work well when the robot is stationary. when the robot rotates, there is an error in classifying obstacles(red) and ground(green). After some delay, the obstacle cloud and the ground cloud are classified correctly (video below): video: external link Note that I NormalSegmentation is set to false. I have also tried enabling normal segmentation . The same problem persists. I still can't figure out what is causing this behavior and how to fix it. Any help is appreciated.
TOM SMITH
|
Administrator
|
Is the robot tilting while moving? It seems at 0.13 that the frames on right changed (which are those frames?), making the robot tilting in the other direction so that ground on left changed from red to green, while the ground on right changed from green to red. Without knowing which Grid/ parameters you used it is difficult to say. When using Grid/NormalsSegmentation=false, a passthrough filter is used between Grid/MaxGroundHeight and Grid/MinGroundHeight. When Grid/NormalsSegmentation=true, the ground is segmented using normals of the point cloud, accordingly to Grid/MaxGroundAngle parameter. In general, I use always Grid/NormalsSegmentation=true (in particular when the robot is not 3DoF). |
This post was updated on .
thanks Mat for your fast reply
this is my Grid parameters : param name="Grid/FromDepth" type="string" value="true" param name="Grid/NoiseFilteringRadius" type="string" value="0.1" param name="Grid/NoiseFilteringMinNeighbors" type="string" value="10" param name="Grid/3D" type="bool" value="false" param name="Grid/RayTracing" type="bool" value="true" param name="Grid/MaxGroundHeight" type="string" value="-0.3" param name="Grid/MaxObstacleHeight" type="string" value="0.3" param name="Grid/NormalsSegmentation" type="string" value="true" param name="Grid/FlatObstacleDetected" type="bool" value="false" param name="Grid/GroundIsObstacle" type="bool" value="false" param name="Grid/RangeMax" type="string" value="5.0" param name="Grid/RangeMin" type="string" value="0" param name="Grid/MapFrameProjection" type="bool" value="true 1 - I am not using NormalsSegmentation because the robot is now navigating on a flat ground in the university lab. 2 - I am interesting in knowing your opinion about the benifits of enabling NormalsSegmentation. 3 - I am sure that the robot is not tilting , but i a investigating now to know what happens on 0:13 to know if there a problem in the cameras. I am using 3 D435 cameras and T265 for odometry. may this problem a failure in the function of T265 ?
TOM SMITH
|
Administrator
|
Hi,
The frames I was referring between 0:13 and 0:14 are those: Did the height change? if so, this is maybe why the 0.3 thresholds behave differently if the robot jumped 10-15 cm over. Grid/NormalsSegmentation would be off only when moving on a flat surface AND that odometry is 3DoF. As you are using T265 as odometry, it is not 3DoF. You could try Grid/NormalsSegmentation without Grid/MaxGroundHeight and Grid/MaxObstacleHeight parameters to be more robust to change in height or attitude. |
This post was updated on .
Hi Mat ,
I have confirmed the tf's of my cameras with the base link. every thing is ok. the robot is not tilting or jumping ( 10 - 15 cm as you suppose ) while rotating . the problem still found may this error coming from the drifting of the T265 ? as indicated in this link : https://github.com/IntelRealSense/librealsense/issues/6534 another question ( i doubt if it causes this problem ) : Grid/MaxGroundAngle should be set different than 45 (default) ??
TOM SMITH
|
Free forum by Nabble | Edit this page |