• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

NaokiAkai/mcl_ros: A ROS package for mobile robot localization with 2D LiDAR

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

NaokiAkai/mcl_ros

开源软件地址(OpenSource Url):

https://github.com/NaokiAkai/mcl_ros

开源编程语言(OpenSource Language):

C++ 99.0%

开源软件介绍(OpenSource Introduction):

Caution

als_ros that is upper compatible of mcl_ros is available now.

mcl_ros

About mcl_ros

mcl_ros is a ROS package for mobile robot localization with 2D LiDAR. Monte Carlo localization (MCL) is used as a localization algorithm.

I confirmed that mcl_ros works on Ubuntu 18.04 and 20.04.

How to install

You need to install ROS environment first. Then, install mcl_ros as

$ git clone https://github.com/NaokiAkai/mcl_ros.git
$ cd mcl_ros
$ catkin_make

If you do not want to make a new workspace for mcl_ros, please copy the mcl_ros package to your workspace.

How to run

You need to publish sensor_msgs::LaserScan, nav_msgs::Odometry, and nav_msgs::OccupancyGrid messages. Default topic names are "/scan", "/odom", and "/map".

In addition, you need to set static transform publisher between the base link to laser sensor frames. Default frame names are "base_link" and "laser".

Then, run mcl_ros as

$ cd mcl_ros
$ source devel/setup.bash
$ roslaunch mcl_ros mcl.launch

Parameter descriptions

There is a launch file under mcl_ros/src/mcl_ros/launch/ directory, named mcl.launch. The parameter descriptions can be seen in the launch file.

Characteristics

Robust localization

mcl_ros contains the localization method presented in [1]. The localization method simultaneously estimates the robot pose and sensor measurement classes. Here, two sensor measurements classes are considered; known and unknown, that is, mapped and unmapped obstacles. Because the method can simultaneously estimate the unknown measurement while localization, the localization robustness to unknown obstacles can be increased.

To use the localization method, measurement_model_type is needed to be set to 2.

$ roslaunch mcl_ros mcl.launch measurement_model_type:=2

Adding random particles in resampling

Adding random particles in resampling is a simple method to improve localization robustness. mcl_ros uses this method.

To use the method, use_augmented_mcl or add_random_particles_in_resampling is needed to be set to true.

$ roslaunch mcl_ros mcl.launch use_augmented_mcl:=true

or

$ roslaunch mcl_ros mcl.launch add_random_particles_in_resampling:=true

If use_augmented_mcl is true, mcl_ros works as augmented MCL [2]. In my experience, I really recommend to set add_random_particles_in_resampling to true, instead of use_augmented_mcl.

Rejecting unknown scan

In [2], a method to reject scans that might measure unknown obstacles is presented. To reject the unknown scan, the beam model [2] is utilized. The unknown scan rejection method is implemented in mcl_ros.

To use the unknown scan rejection, reject_unknown_scan is needed to be set to true.

$ roslaunch mcl_ros mcl.launch reject_unknown_scan:=true

Note that the unknown scans are automatically detected if the method presented in [1] is used since it simultaneously estimates the unknown class measurements.

Reference

[1] Naoki Akai, Luis Yoichi Morales, and Hiroshi Murase. "Mobile robot localization considering class of sensor observations," In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 3159-3166, 2018.

[2] Sebastian Thrun, Wolfram Burgard, and Dieter Fox. "Probabilistic robotics," MIT Press, 2005.

License

Mozilla Public License Version 2.0




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap