msadowski / ros_web_tutorial

Files for my ros web tutorial
3 stars 2 forks source link

some question about evo #1

Closed dzxbiubiubiu closed 4 years ago

dzxbiubiubiu commented 4 years ago

Hi:) Recently, I am using the evo https://michaelgrupp.github.io/evo/ to evaluate my slam algorithm(cartographer 3d).But I just can plot the trajectory of odom.Fortunately, I find your work in your blog https://msadowski.github.io/Comparing-SLAM-with-ROS-evo/. But when I run the script https://github.com/MichaelGrupp/evo/blob/master/contrib/record_tf_as_posestamped_bag.py, it doesn't perform well.

2d_to_3d map_to_foot与odom对比 Could you give me some questions or could you give me your bagfile that I can try it by your data. Sorry to contact you here, but I can't find your contact information in your blog. Thanks! I am looking forward to your reply!

msadowski commented 4 years ago

Hi!

Thanks for getting in touch. I just checked and unfortunately I've purged all my bags couple of weeks ago. The bags used for that blog post were also there :(

Can you tell me what are you plotting in your graphs? How did you derive the data?

dzxbiubiubiu commented 4 years ago

Hi! Thank's for your reply and then I will try to describe my work to you as detailed as possible.

Firstly, I build two model rooms with the gazebo and the robot model is the turtlebot3. 图片1 图片2

Secondly, I run the slam algorithm. Like this:roslaunch slam_lidarr slam.launch slam_methods:=cartographer_vlp16.Or roslaunch slam_lidar slam.launch slam_methods:=cartographer and so on.

Finally, I make the turtlebot3 cruise the room to collect enough data. roslaunch omtb_map_extension_plugin automove.launch room_name:=room_z Then I get the rosbag file, it records some topics such that 'odom' /'clock'/'tf'/'tf_static'/'scan'/'imu'/'map'.

Then,I find the evo project. I can plot the trajectory of nav_msgs/Odometry topic. room_l room_z As you see it works very well. But it is meaningless to just get the odom topic.

And fortunately I found yor work in your blog. Firstly I get the filtered bag like this: rosbag filter room_l1.bag bag_filtered_l1.bag "topic == '/clock' or topic == '/robot1/joint_states' or topic == '/robot1/odom/filtered' or topic == '/scan' or (topic=='/tf' and m.transforms[0].header.frame_id != '/robot1/map') or topic=='/tf_static'"

Secondly, I run the script https://github.com/msadowski/ros_web_tutorial/issues/url like this: 2020-04-17 19-06-08屏幕截图 2020-04-17 19-07-43屏幕截图 And after that I get a bag that record the tf as posestamp.

Finally I merge the two bag by the script which you wrote in your blog.

And then I plot the trajectory of the merge bag by the evo. 图片3 图片4 and the ''base_footprint'' and the ''base link'' are the same thing in my system. So you can thinf of the "base_footprint" as "base_link".You can see the difference between them. 图片5 图片6

And then I run the cartographer 2d slam algorithm to get the different result like this: imagez0 merge_l1 z0_rpe You can see the 2d algorithm perform very well and it has the perfectly coincident trajectory with the odom.

These are all my work. I get a bad result but I can't find the resolution to the question. What puzzles me most is that the 2d algorithm perform very well and the 3d algorithm perform very bad.Though things went to two extremes , I can't resolve it.

I am not sure my steps are right.I am going crazy because of this problem.

Thanks for your anything that can tell me to solve the problem. I am sorry that I write so much thing to you.Anyway, thanks very much!

I am looking forward to your reply!

msadowski commented 4 years ago

If I were you for the time being I would stick to using a single map for now until you are happy with the results, only then I would move to experimenting with other environments etc. I'm not sure how much my insights will help you as the problem is complex but here they are:

One thing you can try out is running the 2D slam with slam_toolbox - I found it much better than Cartographer out of the box.

I'll have some further thinking about your issue and will let you know if I come up with something else. In the mean time I would advise you to use rviz for debugging issue and only if you are happy with everything I would start looking into evo.

dzxbiubiubiu commented 4 years ago

Hi , I am so glad to recieve your reply. In fact, I have recorded the transform between map and odom. room_z1_map_to_odom Unfortunately, the transform isn't 0, and it moves around quite a lot. It also can be see in my tf tree.

msadowski commented 4 years ago

OK, then here is what I would do:

You will be looking at something similar to UMBMark: http://www-personal.umich.edu/~johannb/Papers/umbmark.pdf (that's a great read, highly recommend it).

This is how I would go about it. It'll probably take some time to set up but that's what I've been doing for the past couple of years and this method hasn't failed me yet.

Good luck!

dzxbiubiubiu commented 4 years ago

Hi, sorry to reply to you so late. Thanks for your answer to this question. I will try to resolve this question as you say.

Anyway, Thank you for everything!