ROS 学习系列 -- 执行turtlebot navigation的方法

我们讲一下如何使用现有的turtlebot launch文件来启动navigation,并在PC上使用rviz指挥。

1. 网络环境布置

turtlebot单片机我们使用的是firefly,rviz运行在PC上,它们使用wifi通讯。master ros运行在firefly上,PC需要指向firefly。在PC修改IP到firefly主机的映射,修改/etc/hosts 文件,如

sudo nano /etc/hosts

打开hosts后,我们从前面几行开始插入firefly单片机的ip地址和hostname,形式如下:

127.0.0.1       localhost
127.0.1.1       pc_hostname
192.168.1.16    firefly

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
完毕后保存并确认可以在PC上ping通firefly名字本身。


在firefly单片机上source下面的脚本内容,设定turtlebot为master ROS节点:

export TURTLEBOT_BASE=roomba
export TURTLEBOT_STACKS=circles
export TURTLEBOT_3D_SENSOR=asus_xtion_pro
export TURTLEBOT_SIMULATION=false
export TURTLEBOT_SERIAL_PORT=/dev/ttyUSB0
export ROS_IP=192.168.1.16
export TURTLEBOT_MAP_FILE=/home/firefly/room323.yaml

在PC上source下面的脚本内容,指向turtlebot为master ROS节点:

export ROS_MASTER_URI=http://firefly:11311
export ROS_HOSTNAME=pc_hostname

2. 安装必要软件包 

在firefly单片机上执行下面的脚本安装:

sudo apt-get install ros-indigo-turtlebot ros-indigo-rocon-app-platform ros-indigo-rocon-multimaster ros-indigo-rocon-msgs ros-indigo-rocon-qt-gui ros-indigo-rocon-tools ros-indigo-std-capabilities ros-indigo-rqt-capabilities ros-indigo-rocon-remocon ros-indigo-rocon-apps ros-indigo-turtlebot-rapps

在PC上 执行下面的脚本安装:

sudo apt-get install ros-indigo-turtlebot-rviz-launchers
当然RVIZ 是必须已经安装完了


3. 启动turtlebot和rviz 
在firefly单片机上打开一个终端执行下面脚本:

roslaunch turtlebot_bringup minimal.launch

在firefly单片机上打开第二个终端执行下面脚本:

roslaunch  turtlebot_app nav_map.launch

注意这里一定要设置环境变量 TURTLEBOT_MAP_FILE 注明地图yaml文件的位置。这个时候,turtlebot已经可以使用了,准备接受命令移动。


执行下面脚本在PC上执行脚本:

roslaunch turtlebot_rviz_launchers view_navigation.launch --screen
这时候就可以看到rviz上显示如下画面,点击按钮'2D Pose Estimate' '2D Nav Goal'就可以导航了:



4. 简化后的turtlebot启动脚本

在firefly单片机上只执行一个简化后的launch脚本也可以,脚本内容如下:


  
  

  
  
  
  
  
  
  
  

  

  
    
    
    
  
  
    
    
    
  
  
  
  
  
  
    
    
    
  

  
  
  
  
  
  
    
    
    

    
    
    
  

  
  
    
    
    
    
      - {source_frame: base_footprint, target_frame: map}
      - {source_frame: camera_depth_frame, target_frame: map}
    
  


  
  
    
  
  
    
  
  
  
  
  
    
  

  
  
  




  
  
  
    
    
   


你可能感兴趣的:(Roomba,turtlebot,ROS,机器人)