精华内容
下载资源
问答
  • 分享SLAM地图构建与定位算法,含有卡尔曼滤波和粒子滤波器的程序,有需要的可以看看
  • 基于ROS的slam 地图构建与navigation 自主导航 一、slam 地图构建 一、实验原理 1.1 slam算法安装 ros-indigo-slam-gmapping是 ros平台激光 slam算法之一,在使用LIAOKE机器人做地图构建事先要安装该算法。终端输入...

    基于ROS的slam 地图构建与navigation 自主导航

    一、slam 地图构建

    一、实验原理
    1.1 slam算法安装
    ros-indigo-slam-gmapping是 ros平台激光 slam算法之一,在使用LIAOKE机器人做地图构建事先要安装该算法。终端输入命令:
    $ sudo apt-get install ros-indigo-slam-gmapping 进行slam算法安装;

    1.2 程序包
    程序包位置:/LIAOKE_ws/src/LIAOKE_map。

    1.3 节点通信图
    1.3	节点通信图

    二、实验步骤
    2.1 硬件检查
    插入手柄usb接口,终端输入:
    $ ls /dev/input/
    显示有js0则说明系统识别到手柄,如图;
    输入信息组
    输入:$ sudo jstest /dev/input/js0
    检查手柄是否运行正常,如下则手柄运行正常;
    在这里插入图片描述

    2.2启动gmapping节点
    新终端输入:$ roslaunch LIAOKE_map LIAOKE_gmapping.launch
    窗口显示 rviz界面,用手柄控制 LIAOKE在室内环境中移动,得到如图的二维地图。界面上有LIAOKE车体模型,以及雷达扫描到的相关信息;

    在这里插入图片描述
    2.3 保存地图
    打开一个新终端输入以下命令:首先切换到保存地图的目录中:
    cd ~/LIAOKE/LIAOKE_map/maps

    然后运行以下命令保存地图:
    rosrun map_server map_saver –f map

    二、navigation 自主导航

    一、实验原理
    1.1 程序包
    LIAOKE 机器人导航算法实现的程序包是 LIAOKE_nav,程序包位置:
    /LIAOKE_ws/src/LIAOKE_nav。

    1.2 导航包格局图
    在进行实验前,需要确保系统已经安装导航包集,终端输入:sudo apt-get install ros-indigo-navigation进行导航包安装。导航包格局如图。
    在这里插入图片描述
    配置机器人,导航功能包集将使其可以运动,上图概述了这种配置方式。
    白色的部分是必须且已实现的组件,灰色的部分是可选且已实现的组件,蓝色的部分是必须为每一个机器人平台创建的组件。以下内容将介绍使用导航功能包集的先决条件:

    (1)TF变换配置(其他变换)
    导航功能包集需要机器人不断使用tf发布有关坐标系之间的关系的信息。

    (2)传感器信息(sensor source)
    导航功能包集使用来自传感器的信息避开现实环境中的障碍物,它假定这些传感器 在ROS上不断发布 sensor_msgs/LaserScan 消息或者sensor_msgs/PointCloud消息。

    (3)里程信息(odometry source)
    导航功能包集需要使用tf和nav_msgs/Odometry消息发布的里程信息。

    (4)基座控制器(base controller)
    导航功能包集假定它可以通过话题"cmd_vel"发布 geometry_msgs/Twist 类型的消息,这个消息基于机器人的基座坐标系,它传递的是运动命令。这意味着必须有一个节点订阅"cmd_vel"话题, 将该话题上的速度命令(vx, vy, vtheta转换为电机命令(cmd_vel.linear.x, cmd_vel.linear.y, cmd_vel.angular.z)发送给移动基座。

    (5)地图服务器(map_server)
    将代价地图作为 ROS Service发布,提供了 map_saver节点,可以通过命令行存储地图。

    1.3 节点通信图
    在这里插入图片描述
    1.4 amcl节点分析
    蒙特卡洛定位节点 amcl:amcl 节点输入激光地图,激光扫描,和 tf 转换信息,输出位姿估计。amcl在启动时候依据提供的参数完成粒子滤波器初始化。

    (1)订阅话题:
    坐标转换信息/tf(tf/tfMessage)
    导航地图信息/map(nav_msgs/OccupancyGrid)
    初始姿态/initialpose(geometry_msgs/PoseWithCovarianceStamped)
    激光扫描/scan(sensor_msgs/LaserScan)

    (2)发布话题:
    位姿估计/amcl_pose(geometry_msgs/PoseWithCovarianceStamped)粒子滤波器维护的位姿估计集合/particlecloud(geometry_msgs/PoseArray) 坐标转换息/tf(tf/tfMessage)

    (3)服务:global_localization(std_srvs/Empty),用于启动全局定位,其中所有粒子随机分散通过地图中的自由空间。

    二、 测试步骤
    终端输入命令:$ roscore 运行一个master;
    终端输入:$ roslaunch LIAOKE_nav LIAOKE_nav.launch 弹出的 rviz 上出现gmapping包里的地图,如图;
    在这里插入图片描述
    要准确的导航,首先要给出机器人的初始位置,使用菜单栏中的”2D Pose Estimate”在地图中给出机器人实际在地图中的位置。

    然后点击上排的2D Nav Goal ,在图中任意位置标注箭头,给出机器人的目标位置,机器人将自动规划路径移动到箭头位置。
    在这里插入图片描述
    通过如图所示路径规划算法即可实现navigation 自主导航。

    展开全文
  • TurtleBot的SLAM地图构建

    千次阅读 2017-04-22 12:35:23
    此博文介绍了如何用TurtleBot进行SLAM地图构建

    NOTE:我们使用的是TurtleBot2.TurtleBot2所使用的控制基座是Cokubi,它不需要进行额外的里程计和陀螺仪标定。

    预设置

    TurtleBot端和PC端

    • 都需要安装ROS,安装过程自行查看相关教程。

    • 都需要安装相关功能包,执行一下命令:

    sudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon ros-indigo-rocon-qt-library ros-indigo-ar-track-alvar-msgs
    • TurtleBot和PC需要连接在同一个局域网内。

    PC端

    除了上面的操作之外,PC端还需要做必要的网络配置和环境配置。

    • 时间同步,通过安装chrony来实现:
    sudo apt-get install chrony
    • 设置ROS_MASTER_URI,ROS_HOSTNAME,ROS_IP环境变量

    添加以下命令到~/.bashrc底部:

    export ROS_MASTER_URI=http://<robot_name>.local:11311
    export ROS_HOSTNAME=<pc_name>
    export ROS_IP=<pc_ip_address>
    

    请将上述命令中的<robot_name>,<pc_name>,<pc_ip_address>分别替换成你的机器人上位机的名字,你电脑的名字,你电脑的ip地址。

    • 设置TURTLEBOT_3D_SENSOR环境变量

    将以下命令添加到~/.bashrc底部:

    export TURTLEBOT_3D_SENSOR=astra

    NOTE:第3步需要根据具体情况来设置。安装1.1中的相关软件之后,会自动设置一系列的以TURTLEBOT开头的环境变量,TURTLEBOT_3D_SENSOR就是其中一个,而且其默认值为:asus_xtion_pro。由于我们使用的3D摄像头是astra,所以需要将其改成astra。

    启动gmapping程序

    在TurtleBot端

    • 启动TurtleBot
    roslaunch turtlebot_bringup minimal.launch

    NOTE:启动之前确保Kobuki控制基座已经开启。

    • 运行gmapping程序
    roslaunch turtlebot_navigation gmapping_demo.launch

    在PC端

    • 启动rviz
    # Pre-Groovy
    rosrun rviz rviz -d `rospack find turtlebot_navigation`/nav_rviz.vcg
    # Groovy or later
    roslaunch turtlebot_rviz_launchers view_navigation.launch

    在TurtleBot端

    驱动机器人运动:

    • 远程控制TurtleBot运动:
    roslaunch turtlebot_teleop keyboard_teleop.launch --screen

    然后根据命令行产生的提示指令对TurtleBot进行控制。

    • 保存地图成文件:
    rosrun map_server map_saver -f ~/tmp/my_map

    上述命令中的地图保存路径可自行设定。

    NOTE:不要关闭gmapping直到地图已经保存。在地图构建过程中遇到问题,可参考问题

    参考网站:

    原网站:http://wiki.ros.org/turtlebot_navigation/Tutorials/Build%20a%20map%20with%20SLAM
    TurtleBot启动教程:http://wiki.ros.org/turtlebot_bringup/Tutorials
    远程控制教程:http://wiki.ros.org/turtlebot_teleop/Tutorials
    PC端网络配置:http://wiki.ros.org/turtlebot/Tutorials
    工作站(PC)安装:http://wiki.ros.org/turtlebot/Tutorials

    展开全文
  • 使用RGBD深度摄像头进行slam地图构建 Rikirobot小车在工控机版本提供了RGBD深度摄像头的地图构建与导航功能,树莓派版本没有此项功能,不是我们做差异化,而是树莓派带不动RGBD深度摄像头,而且Rikirobot小车出去...

    使用RGBD深度摄像头进行slam地图构建

    Rikirobot小车在工控机版本提供了RGBD深度摄像头的地图构建与导航功能,树莓派版本没有此项功能,不是我们做差异化,而是树莓派带不动RGBD深度摄像头,而且Rikirobot小车出去提供的是乐视的RGBD深度摄像头(也就是奥比中光的深度摄像头),也就是插上去就可以直接用,但我们也支持Kinect1与图漾的,但前提需要自己装好驱动。
    1、上电开机启动小车,主控端执行启动小车命令:

    roslaunch rikirobot bringup.launch

    2、启动深度摄像头构建slam地图的命令,等待系统加载完成,出现下图界面,就已经加载完成了:

    roslaunch rikirobot astra_xtion_gmapping.launch
    这里写图片描述

    3、后面的怎么打开rviz与怎么控制小车构建地图及怎么保存地图,请参考ROS Rikirobot基础-使用系列 第三章节

    使用RGBD深度摄像头进行自动导航

    1、上电开机启动小车,主控端执行启动小车命令:

    roslaunch rikirobot bringup.launch

    2、启动深度摄像头导航命令,等待系统加载完成,出现下图界面,就已经加载完成了:

    roslaunch rikirobot astra_navigate.launch
    这里写图片描述

    3、怎么导航及导航注意事项,请参考ROS Rikirobot基础-使用系列 第四章节

    最后的最后

    Rikirobot提供两驱动、四驱动、麦克纳姆轮、Omni全向三轮、Omni全向四轮、履带、阿克曼(舵机转向)、大型负载的各种ROS车,有配套指导、及完善售后。
    QQ交流群:130486387
    RIKIROBOT店铺连接
    下面是店铺的二维码与Rikirobot的交流群,有兴趣的可以扫一扫。
    店铺二维码QQ交流群
    这里写图片描述

    展开全文
  • 激光雷达的slam地图构建 这里演示常用的是gmapping算法来构建地图,当然Rikirobot的功能很强大,集成了多种slam算法,像谷歌的Cartographer,hector,kartgo等构图算法都已经支持,按我们的使用视频操作就行,后面...

    激光雷达的slam地图构建

    这里演示常用的是gmapping算法来构建地图,当然Rikirobot的功能很强大,集成了多种slam算法,像谷歌的Cartographer,hector,kartgo等构图算法都已经支持,按我们的使用视频操作就行,后面也会出文章说明。
    1、首先我们上电启动小车,然后接上雷达(tips:rpliadr A1雷达上电就会转, A2雷达上电后需要执行建图命令后才转),然后在主控端执行启动小车的命令:

    roslaunch rikirobot bringup.launch

    2、重新开打开一个终端窗口,在主控端执行slam构建命令,等待雷达加载完成,如现下图:

    roslaunch rikirobot lidar_slam.launch
    这里写图片描述

    3、在远程端打开可视频工具rviz,在远程端运行下面命令,然后把出现的窗口最大化,然后左上角,有一个File->OpenConfig,然后到catkin_ws/src/rikirobot_project/rikirobot/rviz这个路径下面打开slam.rviz,等待窗口把数据加载完成:

    rosrun rviz rviz
    这里写图片描述

    4、到目前为止小车已经开始进行slam算法构建地图了,接下来我们需要控制小车在我们需要构建的区域行走一次,把构建区域扫成地图文件,远程端运行键盘控制命令,控制小车行走就可以了:

    rosrun teleop_twist_keyboard teleop_twist_keyboard.py

    5、如果构建的地图,边界轮廓清晰,与场地环境基本一样,这时可以保存地图,进入到主控端,请注意一定是主控端,不是远程端,很多用户都搞错了,看清楚,到地图目录下面,执行地图保存命令:

    roscd rikirobot
    cd maps
    ./map.sh

    构建出现的问题

    1、构建的地图非常乱,是什么情况?
    我们在构建地图前,一定要校正IMU、线速度、角速度,没有校正的请看上面的校准IMU、线速度、角速度一章节,gmapping构建地图是依赖于里程计的,而里程计是通过线速度与角速度计算得来的,如果里程数据不准确,那会导致建的非常乱,就像菊花图一样
    2、线速度与角速度这些都校正过了,但我建图时还是有点乱
    请检查你的雷达安装,每种雷达是有方向的,不是随便安装就可以的,一定要注意,安装可以参考我们资料里面的组装视频

    最后的最后

    Rikirobot提供两驱动、四驱动、麦克纳姆轮、Omni全向三轮、Omni全向四轮、履带、阿克曼(舵机转向)、大型负载的各种ROS车,有配套指导、及完善售后。
    QQ交流群:130486387
    RIKIROBOT店铺连接
    下面是店铺的二维码与Rikirobot的交流群,有兴趣的可以扫一扫。
    店铺二维码QQ交流群
    这里写图片描述

    展开全文
  • 激光雷达SLAM算法构建地图

    千次阅读 2018-10-15 11:45:03
    ssh rikirobot@robot.local 1启动roslaunch ...2启动雷达roslaunch rikirobot lidar_slam.launch 3ubuntu下运行rviz,在左上角打开catkin_ws/src/rikirobot_project/rikirobot/rviz目录下的slam.rviz  R...
  • 以相机作为输入的视觉同时定位与建图(SLAM)系统在地图构建过程中虽然可以保留点云的空间几何信息,但是并没有完全利用环境中物体的语义信息。针对这个问题,对当前主流视觉SLAM系统和基于Faster R-CNN、YOLO等神经网络...
  • 针对目前视觉SLAM(同时定位与地图构建)系统只能输出相机的运动轨迹图而不能生成用于路径规划和导航地图的缺点,提出了一种基于ORB-SLAM2的网格地图实时构建算法。首先,建立了一个适用于视觉SLAM的逆传感器模型...
  • 基于ORB-SLAM2的语义地图构建

    千次阅读 热门讨论 2021-01-26 11:50:17
    在ORB-SLAM2的基础上进行语义地图构建
  • UST-10LX使用hector_slam构建地图

    千次阅读 2017-11-27 11:22:10
    本文讲述的是hokuyo UST-10LX在Ubuntu 14.04.5 ROS Indigo下进行实验,然后通过hector_slam构建地图slam(Simultaneous Localization andMapping,同步定位与建图)。 ros 中常用的 2d slam 算法主要有 ...
  • 15篇文献(英文4篇,中文11篇),其中中文文献全部来自知网。涵盖了许多方法,如FASTSLAM,粒子滤波,EIFT,EKF,RBPFSLAM,UKF自适应SLAM等,及其改进算法。
  • 一张地图的好坏,直接决定了机器人后续的定位导航能力...SLAM系统特点及建图技巧视频: https://v.qq.com/x/page/v0828t458qn.html 建图前“清空地图” 每次新建地图之前,请在RoboStudio软件里点击【清空地图】...
  • 针对变电站等复杂环境地图构建问题,分析对比了目前几种主流激光SLAM算法,以Cartographer SLAM作为研究基础,在此基础上提出了一种优化后的SLAM建图方案,该方法基于双2D激光雷达互相垂直的方法实现三维建图的新系统,...
  • ORB-SLAM2 在线构建稠密点云(一)

    万次阅读 多人点赞 2020-02-08 11:11:54
    由于ORB-SLAM在构建的时候只在地图中保留了特征点,对于使用RGB-D相机的小伙伴而言,更希望得到一个点云地图,因此我们单独添加一个线程用于维护点云地图,将ORB-SLAM生成的关键帧传入点云地图构建线程,利用关键帧...
  • ORB-SLAM2系统的实时点云地图构建

    千次阅读 2020-06-18 22:52:34
    ORB-SLAM2系统地图构建环节的优化这篇博客构建方式地图效果结尾 这篇博客 构建方式 地图效果 结尾
  • 基于ORBSLAM2系统构建语义地图。图像语义分割作为服务端,由python实现;语义建图作为客户端,由ImageSeg类实现与服务端数据交互,PointCloudMappingClient类实现语义地图构建,C++实现。
  • 早期的SLAM假设真实的世界可以被理所应当的建模成一个由简单离散的路标构成的集合,这些路标通过一些几何特征,例如点、线或者圆圈来表示。在更加复杂且没有结构的环境里,室外的,地下的,海里的,这一假设通常不...
  • 机器人编程趣味实践16-同步定位与地图构建SLAM

    千次阅读 热门讨论 2021-06-07 16:04:03
    360度激光用于避障,那怎么可以,完全是大材小用啊…… ... 除了准备模拟环境而不是启动机器人之外,SLAM 模拟与 SLAM 与实际的 TurtleBot3 非常相似。 以下说明需要前面部分的先决条件,因此请先查看模拟部分。 ...
  • Hector slam利用高斯牛顿方法解决scan-matching问题,对传感器要求较高。 缺点:需要雷达(LRS)的更新频率较高,测量噪声小。所以在制图过程中,需要robot速度控制在比较低的情况下,建图效果才会比较理想,这也是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,367
精华内容 2,146
关键字:

slam地图构建