Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compile error using wavemap 2.0 with LIVOX_AVAILABLE #67

Closed
YoungCapta1n opened this issue Aug 29, 2024 · 9 comments · Fixed by #68
Closed

compile error using wavemap 2.0 with LIVOX_AVAILABLE #67

YoungCapta1n opened this issue Aug 29, 2024 · 9 comments · Fixed by #68
Assignees
Labels
bug Something isn't working

Comments

@YoungCapta1n
Copy link
Contributor

Question
Thanks for updating wavemap. I've tested wavemap 1.6.3 with livox mid360, it works very well.
When I try a native installation with wavemap 2.0, it cannot build successfully. The compile error is shown as follows,

Images
Screenshot from 2024-08-29 17-32-34

  • CPU: [Intel i9-9900K]
  • GPU: [Nvidia RTX 2080Ti] # Only for visualization-related issues
  • RAM: [32GB]
  • OS: [Ubuntu 20.04]
  • Wavemap
    • install: [Native (ROS noetic with catkin); ]
    • version: [e.g., v2.0.0]
@victorreijgwart
Copy link
Member

Thanks a lot for reporting this @YoungCapta1n. Something must have gone wrong when refactoring, and it slipped through our tests. I'll dig into it and get back to you this afternoon.

@victorreijgwart victorreijgwart added the bug Something isn't working label Aug 29, 2024
@YoungCapta1n
Copy link
Contributor Author

Thanks a lot for reporting this @YoungCapta1n. Something must have gone wrong when refactoring, and it slipped through our tests. I'll dig into it and get back to you this afternoon.

I try to modify the code as follows, All 7 packages succeeded!

src/wavemap/interfaces/ros1/wavemap_ros/include/wavemap_ros/inputs/impl/pointcloud_topic_input_impl.h
Screenshot from 2024-08-29 18-08-09

src/wavemap/interfaces/ros1/wavemap_ros/src/inputs/pointcloud_topic_input.cc
image

@YoungCapta1n
Copy link
Contributor Author

I have another issue when using wavemap 2.0.
The crop operation has been added to the config file.
image

It gives an error when using lookupTransform() function.
image

@victorreijgwart
Copy link
Member

victorreijgwart commented Aug 29, 2024

Thanks for the suggested fix! It also solves the issue on my machine. I'll open a PR for this patch.

Regarding the crop_map operation, you need to set its body_frame param to the name of a ROS TF frame to will be used as the cropping operation's center point. For a robot, you could, for example, take its center of mass. If you don't have such a frame in your TF tree, or if you're not using a robot, you could set it to the TF frame of your sensor. If you're still using the same setup as in this reply, you could set body_frame: "livox_frame". Let me know if this solves the issue.

@YoungCapta1n
Copy link
Contributor Author

body_frame

Thanks for your reply!. body_frame: "livox_frame" gives the same warning. I've tried the crop operation on wavemap branch feature/plugin_system, it works well!

@victorreijgwart
Copy link
Member

@YoungCapta1n, I added you as a co-author for this fix to acknowledge your contribution (see #68). But I wanted to check with you just in case. If you would prefer not to be mentioned, let me know - the commit can still be changed before it gets merged.

@victorreijgwart
Copy link
Member

victorreijgwart commented Aug 29, 2024

One thing that changed between the feature/plugin_system branch and release v2.0.0 is that the TF lookup now happens based on the timestamp of ros::Time::now() instead of using the timestamp of the last measurement. We had to make this change to support ROS-agnostic map operations in wavemap's C++ library.

In your tests, are you replaying a rosbag? If so, could you check if you set /use_sim_time: true and run rosbag play with the --clock argument?

@YoungCapta1n
Copy link
Contributor Author

One thing that changed between the feature/plugin_system branch and release v2.0.0 is that the TF lookup now happens based on the timestamp of ros::Time::now() instead of using the timestamp of the last measurement. We had to make this change to support ROS-agnostic map operations in wavemap's C++ library.

In your tests, are you replaying a rosbag? If so, could you check if you set /use_sim_time: true and run rosbag play with the --clock argument?

Thanks for your reply. I use wavemap2.0 with real-time stream of MID-360, not rosbag. I will check the timestamp and test the crop operation.

@victorreijgwart
Copy link
Member

Hi @YoungCapta1n, I'll close this issue for now since the bug is fixed. If you have follow-up questions or would like to discuss how the timing is handled for map operations, don't hesitate to open a new issue :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants