ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

How to use robot_localization correctly?

asked 2020-02-14 10:43:22 -0500

tbondar gravatar image

updated 2020-08-23 03:58:05 -0500

Hi All,

I would like to ask you opinions and best practices of using the robot_localization package for the following use case:

  • The vehicle has two wheels (left and right), more accurately two tracks (a robotic vehicle for agriculture).
  • Eventually I will have to achieve automatic GPS waypoint finding.
  • The wheels have fairly accurate encoders, so I can measure travelled distance and speed of both left and right tracks, calculate and publish Odometry messages from that with at least 10Hz.
  • The vehicle is equipped with a navigational device which provides me GPS latitude, longitude and orientation (roll, pith, yaw) and speed. I can use these data to calculate and publish another Odometry message. Latitude and longitude is updated with 1Hz, orientation is updated with 10Hz.

I'm planning to fuse these two odometry sources with one ekf_localization_node and use its output for the waypoint finding. I'm wondering if this is a viable approach to do this or there would be a better way?

Many thanks, Tamás

EDIT 23/08/2020: I have updated my setup based on the answers from @tom-moore (see below and other posts). It's available on GitHub here, just on case it will be useful for someone.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2020-03-25 04:07:16 -0500

Tom Moore gravatar image

Seems viable to me. Are you doing the conversion of the GPS data into your world frame coordinates, are are you using navsat_transform_node? Make sure the IMU adheres to the specifications in the r_l wiki. The package isn't great at handling IMU and GPS only fusion, so the fact that you have encoders will help you immensely.

edit flag offensive delete link more

Comments

Sorry about the delay, there's been a pause in the project, like in everything. I don't plan to use the navsat_transform_node because I don't have direct access to the GPS and IMU inside my navigational device. It reports lat, long and orientation (yaw) values directly and I don't have access to the details. I'll have to put together the Odometry message myself from these. Does this change your opinion regarding feasibility?

I guess the covariances will be the most challenging. I will probably have to ask further questions when I'll get there.

tbondar gravatar image tbondar  ( 2020-07-07 09:34:14 -0500 )edit

If it gives you lat/long/orientation, you should still be able to use navsat_transform_node, but you may need a translation node so it outputs the right message types for consumption by navsat_transform_node. But as long as your GPS conversion outputs usable world-frame coordinates, you should be fine, absolutely. Just fuse pose data from your GPS (or GPS conversion node) and velocity data from the wheel encoders.

Tom Moore gravatar image Tom Moore  ( 2020-07-14 02:29:13 -0500 )edit

@tom-moore Thanks for your reply, I've updated my setup according to your suggestions here and other posts. I've uploaded it with a simple vehicle emulator to GitHub (link above in my original post). My current node graph is here. Would you mind having a quick look just in case you spot something incorrect?

tbondar gravatar image tbondar  ( 2020-08-23 04:04:58 -0500 )edit

Is anything misbehaving, or is it working as expected? I don't have the cycles to dig into it right now, but if there are specific issues, feel free to ask new questions.

Tom Moore gravatar image Tom Moore  ( 2020-08-31 03:48:51 -0500 )edit

Question Tools

3 followers

Stats

Asked: 2020-02-14 10:43:22 -0500

Seen: 273 times

Last updated: Aug 23 '20