0
$\begingroup$

I am working on an autonomous surface vehicle that will navigate through a parkour of buoys. Since I am a beginner at ROS and I mostly depend on tutorials to learn harder topics such as SLAM and navigation.

The problem is, I could not find a comprehensive tutorial that does SLAM and navigation without the use of wheel odometry (which is not usable for a surface vehicle). I think IMU with LiDAR is my best bet for localization but I don't know how to implement the input from both of these sensors to run a SLAM algorithm.

I am very lost as to what I should do so any help on the topic is appreciated.

$\endgroup$
1
  • $\begingroup$ Welcome to Robotics sivhaslee, but I'm afraid that Unbounded Design Questions are off-topic because there are many ways to solve any given design problem. We prefer practical, answerable questions based on actual problems that you face, so questions which ask for a list of approaches or a subjective recommendation on a method (for how to build something, how to accomplish something, what something is capable of, etc.) are off-topic. Please take a look at How to Ask & tour for more information on how stack exchange works. $\endgroup$
    – Tully
    Apr 8 at 7:39

3 Answers 3

1
$\begingroup$

awesome project!You won't be able to use SLAM properly as stated here:

https://github.com/SteveMacenski/slam_toolbox/issues/221

Another approach that could work is to use hector slam package:

"if you have a lidar sensor you can publish wheel odometry setting "pub_odom = true" in hector mapping or you can use rf2o package to publish odometry data from lidar sensor"

This issue was already discussed in this link:

https://www.reddit.com/r/ROS/comments/12v1k3f/navigation_with_lidar_sensorwithout_wheel_odometry/?rdt=34858

This link provides very useful links, tutorials, and similar use-cases as yours.

The unique disadvantage of using this approach, however, relies on the use of hector slam package which seems it was not yet portable to ROS2. In other words, ROS1- Noetic is the most recent distro.

Developing a Visual SLAM could work: VSLAM for Autonomous Surface Vehicle using ROS. You can google for academic papers,

look for repositories related code

on this topic and finally look for similar works/discussions:

https://discourse.ros.org/t/vslam-ros2-innovation/33547/9

https://answers.ros.org/question/255458/ros-navstack-for-boat/

https://www.wevolver.com/article/lidar-slam-the-ultimate-guide-to-simultaneous-localization-and-mapping

Well, I hope now you have some start to scratch! I think taking a wider look at the community's previous work is the best approach before developing your solution! Good Luck

$\endgroup$
5
  • $\begingroup$ This seems mostly to be a link-only answer $\endgroup$ Apr 6 at 9:45
  • $\begingroup$ It is best to include relevant parts of links in your answer. As some of the links are to Github, then they are probably relatively safe. However, I have seen repositories (as well as linked sites) disappear in the past, which then tend to make answers less useful. It is up to you: If you think that your answer will still be useful if the repos or links goes down, then leave it as it is. Maybe see Should posts be self-contained? and link-rot $\endgroup$ Apr 7 at 8:28
  • 1
    $\begingroup$ Got it @Greenonline my wish was just to show the user the possibilities he could explore (as it has written a general question). I try whenever possible share a direct answer, with code and debug steps. In my opinion, there was no direct or code response for this question, but I comprehend you work to manage the issues, thanks for your observations. I will try to keep my responses in the community guidelines for the future. I am going to maintain my answer since the user found it useful (upvoted), but feel free if you consider to remove, if you think does not match the best practices... $\endgroup$ Apr 8 at 19:29
  • $\begingroup$ I don't think it should be removed (as it seems quite useful), but rather have the relevant parts quoted from the links - in order not to fall foul of Stack Exchange's rules... $\endgroup$ Apr 8 at 19:30
  • 1
    $\begingroup$ I agree! I will take the time of my day to improve it! Then it might be more useful for future related questions. $\endgroup$ Apr 8 at 19:33
1
$\begingroup$

I had the same issue with my own project. As explained by Marcus, I used hector slam for getting odometry data using 2d lidar in Ros Noetic. You can also use ekf robot localization package to fuse imu and odom data if you have reliable imu data.

In Ros2 you can use RTABmap which is originally developed for visual slam but I think it has an example for lidar only case as yours that works fine with nav2 and Ros2. This is an example for turtlebot3 that implements rtabmap with 2d lidar and imu, you also have to add rtabmap_odom node and set subscribe_odom_info and publish_tf to true in order to get odometry from rtabmap itself.

This example of rtabmap also helps you to implement rtabmap with 3D lidar.

$\endgroup$
3
  • $\begingroup$ It might be worth adding the code from the examples to your answer, should the repos disappear in the future. $\endgroup$ Apr 5 at 9:52
  • $\begingroup$ @Greenonline Sorry I'm new to community, you mean adding the whole code? Is it okay to have that long answer or should I just add a little sample of the example? $\endgroup$
    – fatemeh_p
    Apr 6 at 6:24
  • $\begingroup$ The examples aren't all that that long, so it probably wouldn't make your answer excessively long (try it and see in the edit window, you can always cancel the edit). As the examples are on Github, then they are probably relatively safe. However, I have seen repositories disappear in the past, which then tend to make answers less useful. It is up to you: If you think that your answer will still be useful if the repo goes down, then leave it as it is. Maybe see Should posts be self-contained? $\endgroup$ Apr 7 at 8:22
0
$\begingroup$

I would use a GNSS/RTK receiver to have an absolute localization of the surface vehicle. With the robot_localization package an odom topic can be generated out of the GNSS position. With the addition of a IMU sensor the odom calculation can even be better. With this odom topic you still can use the SLAM package.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.