Help us understand the problem. What is going on with this article?

『SLAM入門』の教材用プログラムLittleSLAMのROS2(ROS dashing)ラッパーを作った

はじめに

ROS2(ROS dashing)で『SLAM入門』のLittleSLAMを動かすラッパーを書きました。スキャンデータのみで動かせます。

ROS2とは

下記のスライドがわかりやすいです。
次世代ロボット フレームワーク ROS2の紹介 - SWEST
Getting Started with ROS 2 / DDS

ROS2のチュートリアルはこちらからどうぞ。
ROS Japan ユーザグループ 講習会 ~ ROS 2 の紹介 ~
Qiita ROS2導入&レクチャー

LittleSLAMとは

LittleSLAMは『SLAM入門』の教材として作られた2D-SLAMのプログラムです。
LittleSLAMはICP-スキャンマッチングによるLocal SLAMとグラフベースSLAMによるGlobal SLAMによって成り立っています。

スキャンマッチングに関しては以下のスライドを読めばわかると思います。
Scan Matching 自己位置推定手法
LiDAR-SLAM チュートリアル資料

SLAMに関しては以下の解説論文に詳しく書いてあります。
移動ロボットの環境認識 —地図構築と自己位置推定

LittleSLAMのプログラムの詳細はリンク先と『SLAM入門』を参照ください。

IO

subscriber
- sensor_msgs::msg::LaserScan ("scan")
- odom (tfの"base_link"->"odom")(optional,with use_odom:=true)
(コマンドからパラメーターuse_odomを渡すのがまだできてないので、そのうちします…。このリポジトリこのQ&Aを参考にすれば良いっぽい?)

publisher
- sensor_msgs::msg::PointCloud2 ("icp_map")
- nav_msgs::msg::Path ("path")
- nav_msgs::msg::PoseStamped ("current_pose")

結果

データはros.orgのIntroduction to Working With Laser Scanner Dataにある以下のデータros2用に変換して使いました。

白い点が点群で、緑の線がセンサが通った経路です。

littleslam.png

コード置き場

Githubにあります。

参考

友納 正裕,『SLAM入門』
LittleSLAM
little_slam
rosjp_ros2_basics
test_repo
How to set up tfbuffer clock in ROS 2 so it works with sim time?
lookupTransform - builtin_interfaces/Time to tf2::TimePoint?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした