Note:我们使用的是TurtleBot2.
都需要安装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
除了上面的操作之外,PC端还需要做必要的网络配置和环境配置。
sudo apt-get install chrony
添加以下命令到~/.bashrc底部:
export ROS_MASTER_URI=http://.local:11311
export ROS_HOSTNAME=
export ROS_IP=
请将上述命令中的
,
,
分别替换成你的机器人上位机的名字,你电脑的名字,你电脑的ip地址。
将以下命令添加到~/.bashrc底部:
export TURTLEBOT_3D_SENSOR=astra
NOTE:第3步需要根据具体情况来设置。安装1.1中的相关软件之后,会自动设置一系列的以TURTLEBOT开头的环境变量,TURTLEBOT_3D_SENSOR就是其中一个,而且其默认值为:asus_xtion_pro。由于我们使用的3D摄像头是astra,所以需要将其改成astra。
需要准备一张已知的地图,这个地图可以从TurtleBot的SLAM地图构建中得到。
在TurtleBot端启动,执行:
roslaunch turtlebot_bringup minimal.launch
启动导航程序,将生成的地图作为参数传递给导航程序:
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:第一种方法很容易打开地图失败,如果遇到这种情况,就尝试第二种方法。
启动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
当启动之后,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