上海硅步ROS连载系列46期 移动机器人导航
转载 2018-04-14 10:06 上海硅步 来源:上海硅步
移动机器人的自主定位导航过程如下:
1)采用激光扫描仪或深度相机创建地图;
2)定位:机器人根据传感器的信息并采用自适应蒙特卡罗定位算法计算机器人在地图中的当前位置。
3)全局路径规划:采用Dijkstra(迪杰斯特拉)算法规划出机器人从当前位置到目标位置的全局最优路径,该算法以起始点为中心向外层扩展,直到扩展到终点为止。
4)控制机器人运动:采用动态窗口法计算出控制命令并发送给移动平台,使其沿规划的路径前进,如图1所示。
图1移动机器人的导航定位
下面将以TurtleBot机器人为例,介绍实现自主定位导航的方法。
1导航仿真
为了简单,我们使用采用rbx1_nav/maps中的地图进行定位导航仿真实验。
在终端窗口中,分别运行下面的命令:
$ roslaunch rbx1_bringup fake_turtlebot.launch
$ roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml
$ rosrun rviz rviz -d `rospack find rbx1_nav`/amcl.rviz
其中fake_amcl.launch文件位于rbx1_nav/launch目录下,它的作用是加载地图、启动并配置move_base节点、运行fake_location节点。
运行结果如图2所示:
图2启动定位导航
使用rviz工具栏上的2DNav Goal,为机器人设置目标位姿(绿色箭头),运行效果如图3所示。
图3定位导航仿真
2导航实测
在实际中,控制TurtleBot需要两台PC,即TurtleBotPC与用户PC,其中TurtleBot PC主要用于控制TurtleBot机器人的运动,用户PC是人机交互端,可显示TurtleBotPC发送过来的图像信息以及向TurtleBot PC发送控制命令,两个PC之间通过无线网络并以主题的形式进行通信。
首先配置TurtleBotPC与用户PC的IP地址,使两者接入同一无线网络。
然后在TurtleBotPC上分别运行命令:
$ roslaunch turtlebot_bringup minimal.launch
$ roslaunch turtlebot_bringup 3dsensor.launch
其次在用户PC上运行如下命令,启动Rviz:
$ roslaunch turtlebot_rviz_launchers view_robot.launch
运行结果如图4所示
图4启动TurtleBot导航实验
在用户PC中启动Rviz之后,可在Rviz上看到TurtleBot周围有一簇绿色的小箭头,如图5所示。这些绿色的箭头是amcl反馈的机器人的位姿范围,箭头越分散说明位姿越不确定。因此,我们需要在地图中设置TurtleBot机器人的实际位置和方向,即TurtleBot在环境中的实际位姿与地图中的位姿相匹配,以保证准确的定位。首先点击Rviz工具栏上的2DPose Estimate,然后点击地图上TurtleBot实际所在的大概位置点,调整绿色箭头的方向,使其与TurtleBot的实际方向一致。如果激光扫描的结果与环境边界重合,则说明TurtleBot在地图上的位姿与实际相符,否则重新调整。
图5 TurtleBot初始状态
设置TurtleBot的初始位姿之后,可以使用2DNav Goal工具设置TurtleBot的目标位姿。TurtleBot机器人的导航定位结果如图6所示。
图6 TurtleBot导航实验结果
由图6可知,TurtleBot能够较准确的到达目标位姿,说明ROS的导航功能包集能够实现移动机器人的自主导航定位。
相关资讯
更多- 昊舜逐空·明者致远 | 攻坚克难——昊舜无人机机场的“破茧之路”
- 走进低空新赛道!湖南吉首高校人工智能班学子打卡异能无人机科普基地
- 世纪工程平陆运河!纵横昆仑无人值守系统护航
- 科技赋能 管养提“智”:诚安公司无人机自动巡检系统AI算法正式上线
- 翼飞鸿天无人机巡检护航重阳,低空科技助力城市平安管控
- 南昌·长沙·昆明·福州丨中科云图县域低空生态合作伙伴大会四城巡回即将启幕
- 深耕海洋低空应用|紫燕科技无人直升机亮相中国海博会
- 莲开澳门,御风致远|云圣智能亮相第31届澳门国际贸易投资展览会
- 慧明捷资讯|聚力石化应急通信建设,慧明捷受邀参加中石油集团应急通信和工业视频座谈交流会
- 校企携手育人才|惠州城市职业学院一行莅临异能无人机考察交流





