odom and kinect mismatch in gazebo

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

odom and kinect mismatch in gazebo

Dong Jin Yook
Hi,

I`m trying to create a map using rtabmap in Gazebo. But when I raise the speed of the robot, the map is drawn strangely.

example,


Within the red box, walls of different angles are created. so, map is not created smoothly.
The odometry is correct.
I tried to increase the RTABMAP/DetectionRate, but the map was rather broken.

I`m unsing parameter in "kinect+Odometry+Fake 2D laser from Kinect"
odom updaterate 100Hz, Kinect updaterate 100Hz and robot_state_publisher 100Hz from Gazebo

Have you any idea of what am I doing wrong?
Thanks in advance!

Reply | Threaded
Open this post in threaded view
|

Re: odom and kinect mismatch in gazebo

matlabbe
Administrator
Hi,

Do you mean that point clouds are "tilted" in those areas? Is your camera always rotating only in yaw (the robot doesn't swing when it stops for example which would make the camera tilt)?

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

Re: odom and kinect mismatch in gazebo

Dong Jin Yook
This post was updated on .
Hi,

1. Do you mean that point clouds are "tilted" in those areas?  Well... Point cloud is created from various angles. If the robot rotates, map is not created smoothly.

2. Is your camera always rotating only in yaw? No.

When the robot makes a map while rotating or moving, it is not created smoothly.
The moving speed or rotation speed of the robot is fast.

Have you any idea of what am I doing wrong?
Thanks in advance!

RTAB-MAP Parameters
    <param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/>
    <param name="Mem/SaveDepth16Format"        type="bool"  value="false"/>
    <param name="RGBD/ProximityBySpace"        type="string" value="false"/>    
    <param name="RGBD/AngularUpdate"           type="string" value="0.01"/>    
    <param name="RGBD/LinearUpdate"            type="string" value="0.01"/>     
    <param name="RGBD/OptimizeFromGraphEnd"    type="string" value="false"/>   
    <param name="Optimizer/Slam2D"             type="string" value="true"/>
    <param name="Reg/Strategy"                 type="string" value="1"/>       
    <param name="Reg/Force3DoF"                type="string" value="true"/> 
    <param name="Vis/MinInliers"               type="string" value="5"/>
    <param name="Vis/InlierDistance"           type="string" value="0.1"/>     
    <param name="Rtabmap/TimeThr"              type="string" value="700"/>
    <param name="Mem/RehearsalSimilarity"      type="string" value="0.45"/>
    <param name="Icp/CoprrespondenceRatio"     type="string" value="0.3"/>
    <param name="Grid/FromDepth"               type="string" value="false"/>
    <param name="RGBD/ProximityPathMaxNeighbors"  type="string"   value="0"/>
    <param name="Kp/WordsPerImage"             type="string"    value="-1" />

Reply | Threaded
Open this post in threaded view
|

Re: odom and kinect mismatch in gazebo

matlabbe
Administrator
Hi,

you have
<param name="Optimizer/Slam2D"             type="string" value="true"/>
<param name="Reg/Force3DoF"                type="string" value="true"/> 
which assumes that your camera only rotates in yaw, setting roll and pitch rotation value to 0. So if the camera has tilted while resetting pitch to zero, the corresponding point cloud will be added tilted. Unless you make sure that the camera only moves in x,y and yaw (3DoF), you would have to do 6FoF SLAM instead (setting to false above). In the later case, you cannot use 2D laser scan for mapping or refining.
Reply | Threaded
Open this post in threaded view
|

Re: odom and kinect mismatch in gazebo

Dong Jin Yook
Hi,

The problem is not resolved
Is there a way to create a map without a local loop closure?

Reply | Threaded
Open this post in threaded view
|

Re: odom and kinect mismatch in gazebo

matlabbe
Administrator
With your parameters, only global loop closure detection is activated. To disable global loop closure detection, you can set "Kp/MaxFeatures" to -1. Note that the map will be then constructed with odometry only. If you still have "tilted wall" problem, it is not rtabmap related. It is maybe that the simulated robot is moving in pitch, roll or z at some point in the environment (swinging when stopping or when turning fast), while its odometry is 3DoF (doesn't estimate the tilt).

cheers,
Mathieu