当前位置:网站首页>基于turtlebot3实现SLAM建图及自主导航仿真
基于turtlebot3实现SLAM建图及自主导航仿真
2022-07-03 10:31:00 【3D视觉工坊】
来源丨古月居
turtlebot3简介
TurtleBot3是一个小型,低成本,完全可编程,基于ROS的移动机器人。它旨在用于教育,研究,产品原型和爱好应用的目的。
TurtleBot3的目标是大幅降低平台的尺寸和价格,而不会牺牲性能,功能和质量。由于提供了不同可选,如底盘,计算机和传感器,TurtleBot3可以通过各种方式进行定制。
安装turtlebot3
sudo apt-get install ros-melodic-turtlebot3-*
//安装gmapping建图算法依赖
apt-get install ros-melodic-gmapping
//安装dwa局部路径规划算法
apt-get install ros-melodic-dwa-local-planner
ROS版本不同对应修改melodic
键盘控制小车运动
首先在gazebo仿真环境中启动turtlebot3小车
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
安装键盘控制相关依赖
sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-teleop-twist-keyboard
运行键盘控制节点,根据输出提示控制小车
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
若安装出现[Err] [REST.cc:205] Error in REST request则需要进行如下配置:
sudo gedit ~/.ignition/fuel/config.yaml
将文件中https://api.ignitionfuel.org修改为https://api.ignitionrobotics.org
如果启动gazebo出现一直打不开的情况,原因是.gazebo下加载models库不正确导致,解决方法是直接下载所有模型到用户的根目录下的.gazebo/models/下
cd ~/.gazebo/
mkdir -p models
cd ~/.gazebo/models/
wget http://file.ncnynl.com/ros/gazebo_models.txt
wget -i gazebo_models.txt
ls model.tar.g* | xargs -n1 tar xzvf
SLAM构建地图
把上面的命令都关了,重新启动以下的命令
1、开启仿真环境
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_gazebo turtlebot3_house.launch
2、开启SLAM功能,建图算法选择gmapping
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
3、启动键盘控制节点,控制小车在环境内转一圈,尽可能扫出完整封闭的地图
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
4、保存地图
rosrun map_server map_saver -f ~/map
这是我跑了一圈小车扫出的地图
自主导航
实现的效果图:
1、先加载保存好的地图
rosrun map_server map_server map.yaml
2、打开仿真环境,用可视化工具rviz显示出来
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_gazebo turtlebot3_house.launch
3、打开自主导航功能
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=/home/kaijun/map.yaml
配置好rviz,使用2D Pose Estimate设定好小车起始地点,再使用2D Nav Goal设定小车目标地点,小车会规划好路径,自动运行到目标位置,实现自主导航功能。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉工坊精品课程官网:3dcver.com
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
边栏推荐
- How to clean up v$rman_ backup_ job_ Details view reports error ora-02030
- asyncio 警告 DeprecationWarning: There is no current event loop
- Balance between picture performance of unity mobile game performance optimization spectrum and GPU pressure
- Qt+VTK+OCCT读取IGES/STEP模型
- Encapsulate a koa distributed locking middleware to solve the problem of idempotent or repeated requests
- Matlab extracts numerical data from irregular txt files (simple and practical)
- Gut | 香港中文大学于君组揭示吸烟改变肠道菌群并促进结直肠癌(不要吸烟)
- Google Earth Engine(GEE)——当我们前后影像来弥补插值效果得时候,没有效果怎么办?
- 程序员的创业陷阱:接私活
- MATLAB extrait les données numériques d'un fichier txt irrégulier (simple et pratique)
猜你喜欢
Event preview | the live broadcast industry "rolled in" to drive new data growth points with product power
活动预告 | 直播行业“内卷”,以产品力拉动新的数据增长点
封装一个koa分布式锁中间件来解决幂等或重复请求的问题
2022 东北四省赛 VP记录/补题
一文搞懂Go语言Context
进程与线程
有赞CTO崔玉松:有赞Jarvis核心目标是使产品变得更加聪明和可靠
[OBS] configFile in ini format of OBS
如何清理v$rman_backup_job_details视图 报错ORA-02030
用了这么久线程池,你真的知道如何合理配置线程数吗?
随机推荐
Tablespace creation management and control file management
Spl06-007 air pressure sensor (example of barometer)
Struct function & function pointer
[vtk] source code interpretation of vtkpolydatatoimagestencil
MATLAB extrait les données numériques d'un fichier txt irrégulier (simple et pratique)
.\vmware-vdiskmanager.exe -k “c:\\xxxxx.vmdk”
如何成为一名高级数字 IC 设计工程师(1-4)Verilog 编码语法篇:表达式
Summary of interview questions (2) IO model, set, NiO principle, cache penetration, breakdown avalanche
Numpy np.max和np.maximum实现relu函数
Google Earth engine (GEE) -- when we use the front and back images to make up for the interpolation effect, what if there is no effect?
Illustrated network: what is virtual router redundancy protocol VRRP?
一些常用术语
Key switch: press FN when pressing F1-F12
phpcms 提示信息頁面跳轉showmessage
asyncio 警告 DeprecationWarning: There is no current event loop
Oracle 11g single machine cold standby database
CSRF
Numpy np. Max and np Maximum implements the relu function
Linear table sequence table comprehensive application problem p18
How to become a senior digital IC Design Engineer (1-4) Verilog coding syntax: expression