move_base

move_base
move_base 是导航功能里比较重要的一项,它获取传感器数据并负责路径规划、距离计算、成本计算等。

使用 move_base使机器人向前移动 2m

$roslaunch rbx1_bringup fake_turtlebot.launch //启动一个机器人 使用ArbotiX模拟器
$roslaunch rbx1_nav fake_move_base_blank_map.launch ///以空白地图启动move_base节点
$rosrun rviz rviz -d rospack find rbx1_nav/nav.rviz //启动Rviz
$rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped ‘{header: {frame_id: “map”},pose: {position: {x: 1.0,y: 0,z: 0},orientation: {x: 0,y: 0,z: 0,w: 2}}}’ //向前运动2m
$ rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped ‘{header: {frame_id: “map”},pose: {position: {x: 0.0,y: 0,z: 0},orientation: {x: 0,y: 0,z: 0,w: 2}}}’ //返回
$rosrun rbx1_nav move_base_square.py//让机器人走正方形

带障碍物的导航

$roslaunch rbx1_bringup fake_turtlebot.launch //加载一个模拟机器人
$roslaunch rbx1_nav fake_move_base_map_with_obstacles.launch //加载一张带障碍物的地图
$rosrun rviz rviz -d rospack find rbx1_nav/nav_obstacles.rviz //加载rviz 带障碍物的导航
$rosrun rbx1_nav move_base_square.py //使其自动走一个正方形

复杂地图导航与蒙特卡洛定位

复杂地图导航与蒙特卡洛定位

使用ROS导航包里现有的复杂地图结合 ACML-(Adaptive Monte Carlo Localization) 进行导航功能的测试。ACML 即自适应蒙特卡罗定位,关于它的原理回头再仔细分析。

$roscore
$roslaunch rbx1_bringup fake_turtlebot.launch //运行一个机器人
$roslaunch rbx1_nav fake_amcl.launch //运行fake_amcl.launch调用已有的测试地图
$rosrun rviz rviz -d rospack find rbx1_nav/amcl.rviz //启动rviz 并调用amcl配置文件
也可以手动指定要调用的地图:
$roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml