TurtleBot基于已知地图的自主导航

Note:我们使用的是TurtleBot2.

预设置

TurtleBot端和PC端

  • 都需要安装ROS,安装过程自行查看相关教程。

  • 都需要安装相关功能包,执行以下命令:

sudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon ros-indigo-rocon-qt-library ros-indigo-ar-track-alvar-msgs
  • TurtleBot和PC需要连接在同一个局域网内。

PC端

除了上面的操作之外,PC端还需要做必要的网络配置和环境配置。

  • 时间同步,通过安装chrony来实现:
sudo apt-get install chrony
  • 设置ROS_MASTER_URI,ROS_HOSTNAME,ROS_IP环境变量

添加以下命令到~/.bashrc底部:

export ROS_MASTER_URI=http://<robot_name>.local:11311
export ROS_HOSTNAME=<pc_name>
export ROS_IP=<pc_ip_address>

请将上述命令中的<robot_name>,<pc_name>,<pc_ip_address>分别替换成你的机器人上位机的名字,你电脑的名字,你电脑的ip地址。

  • 设置TURTLEBOT_3D_SENSOR环境变量

将以下命令添加到~/.bashrc底部:

export TURTLEBOT_3D_SENSOR=astra

NOTE:第3步需要根据具体情况来设置。安装1.1中的相关软件之后,会自动设置一系列的以TURTLEBOT开头的环境变量,TURTLEBOT_3D_SENSOR就是其中一个,而且其默认值为:asus_xtion_pro。由于我们使用的3D摄像头是astra,所以需要将其改成astra。

地图

需要准备一张已知的地图,这个地图可以从TurtleBot的SLAM地图构建中得到。

启动TurtleBot

在TurtleBot端启动,执行:

roslaunch turtlebot_bringup minimal.launch

启动amcl程序

在TurtleBot端

启动导航程序,将生成的地图作为参数传递给导航程序:

roslaunch turtlebot_navigation amcl_demo.launch map_file:=~/tmp/my_map.yaml

或者通过设置环境变量来实现:

export TURTLEBOT_MAP_FILE=~/tmp/my_map.yaml
roslaunch turtlebot_navigation amcl_demo.launch

NOTE:第一种方法很容易打开地图失败,如果遇到这种情况,就尝试第二种方法。

在PC端

启动rviz:

# Pre-Groovy
rosrun rviz rviz -d `rospack find turtlebot_navigation`/nav_rviz.vcg
# Groovy or later
roslaunch turtlebot_rviz_launchers view_navigation.launch --screen

在RVIZ中

定位TurtleBot

当启动之后,TurtleBot并不知道自己在哪个位置。需要给它提供它在地图上的近似位置:

1.点击rviz中的”2D Pose Estimate”按钮。

2.在地图上标出TurtleBot的近似位置,并指出TurtleBot的朝向(TurtleBot的正运动方向)。

之后你将会看见一组箭头,它们是TurtleBot位置的假设(前面标出的是一个近似位置)。如果这个过程不是很理想,可重复实施。

远程控制

远程控制可以和导航栈同时运行。当远程发送控制信号后,远程信号会将自主行为进行覆盖。远程控制能够协助机器人收敛于一个准确的位姿估计。

发送一个导航目标

TurtleBot定位之后,它可以自动对当前环境进行路径规划:

1.点击rviz上的”2D Nav Goal”按钮。

2.在地图上标出TurtleBot的导航目标,并且指出其在导航终点的朝向。

如果路径受阻,此过程会失败。

参考网站

原网站1:http://wiki.ros.org/turtlebot_navigation/Tutorials/indigo/Autonomously%20navigate%20in%20a%20known%20map
原网站2:http://wiki.ros.org/turtlebot_navigation/Tutorials/Autonomously%20navigate%20in%20a%20known%20map
TurtleBot启动教程:http://wiki.ros.org/turtlebot_bringup/Tutorials
远程控制教程:http://wiki.ros.org/turtlebot_teleop/Tutorials
PC端网络配置:http://wiki.ros.org/turtlebot/Tutorials
工作站(PC)安装:http://wiki.ros.org/turtlebot/Tutorials

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值