关键词:
《ROS理论与实践》学习笔记(九)机器人自主导航
在学习《ROS理论与实践》课程时,记录了学习过程中的编程练习,课后作业以及发现的问题,后续会对尚未解决的问题继续分析并更新,纯小白,仅供参考。
本次学习笔记关于课程中的第八讲:机器人SLAM建图 。主要学习了ROS中的导航框架、导航框架中的关键功能包、机器人自主导航案例。
本章ROS Wiki参考链接:ROS wiki 导航
课程内容
ROS中的导航框架
ROS提供了基于move_base的导航框架,其中move_base中包括了全局规划global_planner,本地规划local_planner,恢复机制recovery_behaviors等。
导航框架中的关键功能包
move_base
具体内容Wiki链接:wiki move_base
- 全局路径规划(global planner)
包括了全局最优路径的规划,一般采用Dijkstra(距离)或者A*算法(时间) - 本地实时规划(local planner)
规划机器人每个周期内的线速度、角速度,使之尽量符合全局最优路径,实现实时避障功能,通常采用Trajectory Rollout和Dynamic Window Approaches算法 - 动作Action
是一种问答通信机制,C/S架构,基于ROS的消息机制实现,下面是move_base功能包中的话题和服务
amcl
具体内容Wiki链接:wiki amcl
基于蒙特卡洛定位方法,针对已有地图使用粒子滤波器跟踪一个机器人的姿态,相比于里程计定位,amcl定位还可以利用雷达等信息直接进行机器人的位姿估算,下面是amcl功能包中的话题和服务
机器人自主导航案例
导航仿真
本示例程序主要实现在Rviz中,使用2D Nav Goal工具绘制目标点,使得Gazebo中的机器人自动导航运动到目标点的功能
代码来自课程源码包,下面只给出启动代码,主要是启动了gazebo仿真环境、move_base和amcl节点
$ roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
$ roslaunch mbot_navigation nav_cloister_demo.launch
下图是仿真结果,可以看到机器人能够完成从起始点到目标点的运动
为了检测机器人导航的动态避障,在Gazebo中添加障碍物,可以在Rviz中看到导航路线的实时更新,因此该算法具有较好的避障效果。
程序接口
代码包提供了两个导航demo,通过在程序中直接设置目标点实现机器人的导航功能,设置目标点部分的代码如下:
# 设定目标点
target = Pose(Point(-5.543, -4.779, 0.000), Quaternion(0.000, 0.000, 0.645, 0.764))
goal = MoveBaseGoal()
goal.target_pose.pose = target
goal.target_pose.header.frame_id = 'map'
goal.target_pose.header.stamp = rospy.Time.now()
# 向目标进发
move_base.send_goal(goal)
move_base+gmapping
利用move_base和gmapping两个功能包的结合,实现机器人在未知环境下进行导航和实时的建图。
在Rviz中设置目标点实现机器人移动,启动代码如下:
$ roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
$ roslaunch mbot_navigation exploring_slam_demo.launch
也可以在程序中直接设置随机目标点,让机器人进行自动的导航和建图,启动代码如下:
$ roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
$ roslaunch mbot_navigation exploring_slam_demo.launch
$ rosrun mbot_navigation exploring_random.py
仿真结果如下
《ros理论与实践》学习笔记机器视觉处理(代码片段)
...过人脸识别方式,发布速度控制指令,控制仿真机器人运动2.使用杯子识别发布速度控制指令,控制仿真机器人的运动 查看详情
《ros理论与实践》学习笔记机器人slam建图(代码片段)
《ROS理论与实践》学习笔记(八)机器人SLAM建图课程内容常用SLAM功能包应用gmappinghectorcartographerrtabmap本讲作业1.在Gazebo中构建一个用于建图和导航的虚拟环境2.将自己构建的机器人模型放置到虚拟环境中,使用gmapping... 查看详情
slam+语音机器人diy系列:slam建图与自主避障导航——3.ros-navigation机器人自主避障导航(代码片段)
... 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习。在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命。本章将围绕机器人SLAM建图、导航避障、巡航... 查看详情
机器人工程专业实践镜像2021版-含现代控制理论机器人控制器ros2esp32webots和导航实践(tianbot_mini)
...简要说明(2020-2021-2)_zhangrelay的专栏-CSDN博客<机器人技术创新与实践& 查看详情
机器人工程专业实践镜像2021版-含现代控制理论机器人控制器ros2esp32webots和导航实践(tianbot_mini)
...简要说明(2020-2021-2)_zhangrelay的专栏-CSDN博客<机器人技术创新与实践& 查看详情
ros仿真笔记之——基于rrt_exploration的单个机器人自主探索建图(代码片段)
之前博文已经介绍过机器人exploration以及多机器人SLAMmapmerage《ROS学习笔记之——多机器人探索环境》《ROS仿真笔记之——基于gazebo的多机器人探索环境仿真》《ROS仿真笔记之——多移动机器人SLAM地图融合》《ROS仿真笔记之——... 查看详情
ros理论与实践:机器人系统设计
还有一些连接Kinect、激光雷达 查看详情
在ros中开始自主机器人仿真-3让turtlebot自主导航
我们已经在gazebo中实现了机器人的仿真,而且能够控制机器人的运动,查看机器人所感知到的信息,包括lasercan,图像信息,深度信息,点云,也包括没有提到的速度信息.这里,我们建立用ROSnavigationstack导航功能包ROSnavigationstack导航功能包&... 查看详情
ros仿真笔记之——基于frontier_exploration的机器人自主探索
最近在做机器人自主探索建图的相关topic。之前博客也尝试了不同的自主探索包,如rrt_exploration包《ROS仿真笔记之——基于rrt_exploration的单个机器人自主探索建图》与explore_lite包《ROS仿真笔记之——移动机器人自主探索式地... 查看详情
冰达ros机器人使用-实现slam建模自主导航避障(代码片段)
冰达ROS机器人使用—实现slam建模、自主导航、避障一、使用前准备工作1.在windows中下载好远程连接工具:xshell、puty12.机器人有两种模式:模式说明AP模式机器人自己创建一个热点,电脑端连接该热点,实现局域网... 查看详情
《分布式机器学习:算法理论与实践》——re
分布式机器学习:算法、理论与实践——【1】分布式机器学习:算法、理论与实践2)——【2】 《分布式机器学习:算法、理论与实践》——【RE】 查看详情
ros-slam-自主导航(代码片段)
...、手动探索使用rviz的“2Dnavgoal”手动选择目的地,机器人开始导航,同时使用mapping算法实时构建地图。效果如下;如果多次尝试无果,机器人最终会放弃,终端里将看到错误提示。四、自动slam导航rosrunmrobot_navigationrandom_nav... 查看详情
冰达ros机器人使用-实现slam建模自主导航避障(代码片段)
冰达ROS机器人使用—实现slam建模、自主导航、避障一、使用前准备工作1.在windows中下载好远程连接工具:xshell、puty12.机器人有两种模式:模式说明AP模式机器人自己创建一个热点,电脑端连接该热点,实现局域网... 查看详情
机器人编程实践-ros2基础与应用-第⑦版
...版如下: 摘要:LearnRightNow,PrepareForFuture课程围绕机器人操作系统(ROS2)的应用展开,包括机器人学的基础理论和常用工具。借助立体多样的示例,课程可以为使用ROS2进行机器人开发设计的学员提供一个... 查看详情
蓝桥ros机器人之现代c++学习笔记7.2互斥量与临界区(代码片段)
看如下三段代码://mutexexample#include<iostream>//std::cout#include<thread>//std::thread#include<mutex>//std::mutexstd::mutexmtx;//mutexforcriticalsectionvoidprint_block(intn,charc)// 查看详情
slam+语音机器人diy系列:slam建图与自主避障导航——2.google-cartographer机器人slam建图(代码片段)
... 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习。在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命。本章将围绕机器人SLAM建图、导航避障、巡航... 查看详情
机器人技术创新与实践旧版本大纲
具体参考:tianbot_mini机器人上手ROS/SLAM/Navigation究竟有多简单???2017-2018-2019-2020使用此版本(以ROS1为主)。2021-2022-依据具体情况,做了较多调整。课程编号学分2开课学期6学时2周课程类型集中实践课... 查看详情
《分布式机器学习:算法理论与实践》pdf+刘铁岩+资料学习
《分布式机器学习:算法、理论与实践》旨在全面介绍分布式机器学习的现状,深入分析其中的核心技术问题,并且讨论该领域未来的发展方向。下载:https://pan.baidu.com/s/1XeOGCQK5qWCba8VK0KU21w《分布式机器学习:算法、理论与实践... 查看详情