robot_pose_ekf with Lego NXT giving wrong coordinate

asked 2015-03-20 16:55:20 -0500

Beaver_XT gravatar image

I'm working on Lego NXT navigaition using both odometry with IMU data as input in robot_pose_ekf.

  • I have my own design which has different wheel size than the starter robot but with the same wheelbase, give or take.
  • In my launch file, I'm still using robot.urdf file from starter robot provided by NXT stack. Which is obviously doesn't look anything like what I have. But I've corrected wheel_radius and wheel_basis in base_parameters.

What I got from robot_pose_ekf/odom_combined are as following:

  • If the robot is running only in straight line either forward or backward the coordinates are correct. (I've measured them.)
  • Once the robot makes a turn it will start giving wrong coordinate. Mostly position: X will increase continuously even when the robot is travelling in parallel with Y axis.

Sorry for the long intro. Here are my questions:

  • Where should I start to fix the problem? I figured wheel_radius is right since X axis positions in straight line are correct. Unfortunately no matter how I adjust the wheel_basis it still behave strangely once it starts to turn as I described earlier.
  • Does robot.urdf file has anything to do with robot_pose_ekf? I mean does the urdf file provide the shape and design for position calculation (eg. IMU position in relation to centre of gravity) or is it there just for visualization?

One last thing, my Rviz doesn't work. So I don't know how it behave in visualization.

edit retag flag offensive close merge delete