ROS下navigation的仿真

使用gazebo和turtlebot仿真

在没有机器人的情况下,可以使用gazebo进行仿真,这里记录一下在ros kinetic中,使用 gazebo进行仿真的步骤。

  • 首先安装ros,这就不必多说了。
  • sudo apt-get install ros-kinetic-gazebo-ros ros-kinetic-turtlebot3-simulations ros-kinetic-turtlebot3
  • 建图

    export TURTLEBOT3_MODEL=burger
    rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
    
    export TURTLEBOT3_MODEL=burger
    roslaunch turtlebot3_gazebo turtlebot3_world.launch
    
    export TURTLEBOT3_MODEL=burger
    roslaunch turtlebot3_slam turtlebot3_slam.launch
    
    export TURTLEBOT3_MODEL=burger
    roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
    
    export TURTLEBOT3_MODEL=burger
    rosrun map_server map_saver -f $PWD/map
    
  • 导航

    export TURTLEBOT3_MODEL=burger
    rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
    
    export TURTLEBOT3_MODEL=burger
    roslaunch turtlebot3_gazebo turtlebot3_world.launch
    
    export TURTLEBOT3_MODEL=burger
    roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$PWD/map.yaml
    

    校正位置: 点击2D Pose Estimation,画出机器人大致的位置和方位,程序会自动确定位 置。点击3D Nav Goal画出机器人的目标位置和方位。机器人就会到那个位置。

使用rbx1仿真

如果已经有地图的话,不需要启动gazebo,直接在rviz中对导航进行仿真。

  • git clone两个工程: arbotix_ros和rbx1,编译。

    https://github.com/vanadiumlabs/arbotix_ros.git
    https://github.com/pirobot/rbx1.git
    
  • 启动

    roslaunch rbx1_bringup fake_turtlebot.launch
    roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml
    rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz
    

    然后直接在rviz中点击目标点就可以导航了。

取消当前导航

move_base中可以通过发送消息到topic: /move_base/cancel 就可以取消当前的导航。

rostopic pub /move_base/cancel actionlib_msgs/GoalID -- {}

Comments

comments powered by Disqus