闭门造车日记 第七篇


造车日记 模拟器的SLAM初试

本来挺简单的过程,但是因为各种版本的问题,折腾了很久。

dashing自带的程序似乎有问题。。

下面使用的是ROS2 foxy版本。


准备好必要的软件包。

1
2
3
4
5
6
7
8
9
mkdir -p turtlebot3_ws/src

$ cd turtlebot3_ws

$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/ros2/turtlebot3.repos

$ vcs import src < turtlebot3.repos

$ colcon build --symlink-install

编译成功。


导入包

1
source ~/turtlebot3_ws/install/setup.zsh

然后将 turtlebot3_ws/install/turtlebot3_gazebo/share/turtlebot3_gazebo/models 里的所有目录全部软链接到 ~/.gazebo/models/里,或者每次使用前 申明一下环境变量$GAZEBO_MODEL_PATH

最后,申明环境变量TURTLEBOT3_MODEL

1
export TURTLEBOT3_MODEL=waffle

这样就完成了环境准备。

注意下面的操作,每新开一个terminal,都需要执行上述操作。


打开gazebo 模拟环境

1
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

这时应该能看到gazebo环境被启动

一个3x3的迷宫?


打开 slam建图

1
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True

这时能看到rviz和gazebo同窗

一个是SLAM数据可视化,一个物理环境模拟,


操作 机器人

1
ros2 run turtlebot3_teleop teleop_keyboard

键盘操作计算机

通过按键让机器人在环境中走动,机器人的深度传感器就同时会对环境进行扫描和建图。


存图

当机器人走了一段路程,传感器已经覆盖全部环境时,停下机器人。保存地图

1
ros2 run nav2_map_server map_saver_cli -f ~/map

正确运行的话, 在指定目录就会出现两个地图文件。

这时关闭cartographer 和 teleop_keyboard。


使用地图导航

1
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=/home/marco/map.yaml

注意地图文件的路径一定要用 绝对路径 。。。不要问我是怎么知道的。。。。

RVIZ和Gazebo再度同窗。

但是此时,机器人尚不知道自己的初始位置,需要人工标定出来。

使用RVIZ界面里的 “2D Pose Estimate” 按钮, 对比Gazebo中的实际位置,在RVIZ里点出初始位置。

只要误差不要太大就可以。

之后ROS2 的NAV2系统就进入工作状态。

人工指明初始位置


再次使用RVIZ里的“Navigation2 Goal” 在地图上选择目的地, 这时nav2就会规划出路线,并自动驱动机器人在路线上行走到目标位置。


to be continued…


文章作者: chopin1998@gmail.com
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 chopin1998@gmail.com !
评论
 上一篇
关于ToF 番五 关于ToF 番五
一些照片和效果展示 字越少,事儿越大。 接下来还要捣鼓捣鼓,跑到ROS2上。 然后呢, 正式做adapter板。 结束了吗? 如今ToF步入主流技术三分天下的局面,好玩儿的事儿还在后面呢。 拭目以待 .end
2020-09-30
下一篇 
闭门造车日记 第六篇 闭门造车日记 第六篇
造车日记 第六篇第二阶段alpha 下面准备整合毫米波雷达。 不过在这之前,需要先把ROS搞定,因为我已经快要受不了“裸奔”的状态了。 然而在整合ROS之前,我又看了一眼仿真器。 机器人仿真软件维基百科中有一篇对目前主流的机器人仿真软件进
  目录