gmapping

gmapping

拜拜、爱过 提交于 2020-03-20 14:01:26
gmapping 源码:git搜索 gmapping 下面两个即是: gmapping 原理很简单,通过“ l粒子滤波 "实现定位。具体通过粒子与已经产生的地图进行scanMatch,矫正里程计误差实现。 在定位的同时,每次经过map_update_interval_时间,进行地图更新 updateMap(*scan)。相对cartographer,缺少闭环,所以计算量很小,实测,局部地图比carto清晰,质量较好。下面对代码进行梳理(梳理导航相关代码跟着laser走,会比较清晰) ### 代码梳理 1> ros 部分 (代码为简化版,方便梳理 ... 表示有省略代码) gmapping/src/main.cpp int main(int argc, char** argv) { ros::init(argc, argv, "slam_gmapping"); SlamGMapping gn; gn.startLiveSlam(); ros::spin(); return(0); } gmapping/src/slam_gmapping.cpp void SlamGMapping::startLiveSlam() { ... // 订阅激光数据 scan_filter_->registerCallback(boost::bind(&SlamGMapping:

ROS 导航——用Gmapping构建一张地图

人盡茶涼 提交于 2020-02-03 21:14:31
用Gmapping构建一张地图 Gmapping功能包介绍 使用Gmapping功能包的一些准备 /tf 雷达和机器人基座标 里程计 /scan 使用Gmmaping功能包 得到的地图 Gmapping功能包介绍 参见wiki官网 Gmapping功能包 .其中包括了Gmapping功能包订阅发布的话题,参数等。 使用Gmapping功能包的一些准备 根据官网介绍,Gmapping订阅了两个话题: /tf 和 /scan /tf tf指的是坐标变换,就是将机器人各组件的相对位置关系表示出来,对于Gmapping而言,它需要三个tf: 雷达 , 机器人基坐标 和 里程计 雷达和机器人基座标 对于 雷达 和 机器人基座标 ,我们可以有两种发布的方法。 第一种:通过urdf建立机器人模型,然后写一个launch文件将模型文件载入并发布机器人的状态信息给tf。urdf是一种机器人建模的一种方法,具体参见 urdf wiki官网 launch文件示例如下: < ? xml version="1.0" ? > <launch > < !--param name="/use_sim_time" value="true"/ - - > <arg name="model" /> <!-- 加载机器人模型参数 --> <param name="robot_description" command="$

机器人ROS系统学习随笔->5《ROS机器人系统设之机器人slam导航》

半城伤御伤魂 提交于 2020-01-27 00:38:54
软件源:一个是Ubuntu系统的软件元,在软件更新系统界面服务器的选择。 ROS包安装源:第一步配置的就是ros包安装源。功能包安装不畅可以改软件源,可以加国内的,EXbox的安装源。 在4中如果有找不到库的错误的话,需要我们讲拷贝科大讯飞编译生成的库文件开呗到libs中再试试。因为ros在找库文件时实在几个默认库之中搜索的。 准备工作---硬件要求 机器人必备条件---深度信息 横向切面,每个面可以看作是激光雷达数据。激光雷达精度更高。 机器人必备条件---激光雷达 jiqi人必备条件---仿真环境 ROS SLAM功能包的使用方法---gmapping 深度和里程计信息是最重要的。网站中有很多开源的算法。 gmapping安装(黑盒,只知道输入输出) gmaping原理(栅格地图) 配置给mapping节点 5秒更新一次,如果很小对电脑要求就很高了。 功能包的应用搜索 在百度货谷歌搜索关键词ros gmapping查看wiki上功能包的使用方法。用谷歌浏览器可以翻译成中文。还包括源码在哪儿都会有说明。 功能包启动(下载编译后) 给mapping地图的保存 turtlebot机器人可以用kinect摄像头mapping建图(没有激光雷达准确) 真实机器人gmapping建图 ROS SLAM功能包---hector_slam 激光雷达进度得高。 hector_slam功能包的安装

gmapping(fast_slam)

邮差的信 提交于 2020-01-25 09:00:10
gmapping获取激光数据及处理 如果是第一束激光数据,则初始化粒子。 Particle的信息有: 每个粒子维护一幅地图map,机器人的位姿pose,上个时刻的位姿previousPose,权重weight,权重总和weightSum。 地图包括的信息有: m_center:地图中心点(x, y)、m_worldSizeX:地图长度、m_worldSizeY:地图宽度、 m_delta:网格边长代表的长度。单位[ m/cell ] m_xmin、m_xmax、m_ymin、m_ymax,分别对应地图横坐标最小值和最大值、纵坐标最小值和最大值。 Point m_center ; double m_worldSizeX , m_worldSizeY , m_delta ; Storage m_storage ; int m_mapSizeX , m_mapSizeY ; int m_sizeX2 , m_sizeY2 ; 粒子初始化,初始信息都相同 TNode * node = new TNode ( initialPose , 0 , 0 , 0 ) ; ScanMatcherMap lmap ( Point ( xmin + xmax , ymin + ymax ) * .5 , xmax - xmin , ymax - ymin , delta ) ; for (

gmapping编译安装出错Unknown CMake command "check_symbol_exists"

╄→尐↘猪︶ㄣ 提交于 2020-01-20 01:30:41
在源码编译安装gmapping的时候,报错 CMake Error at gmapping/navigation/amcl/CMakeLists.txt:58 (check_symbol_exists): Unknown CMake command "check_symbol_exists". -- Configuring incomplete, errors occurred! See also "/home/lucky/catkin_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/lucky/catkin_ws/build/CMakeFiles/CMakeError.log". Makefile:1692: recipe for target 'cmake_check_build_system' failed make: *** [cmake_check_build_system] Error 1 Invoking "make cmake_check_build_system" failed 解决办法: 在出错的CMakeLists文件里加一行 include(CheckSymbolExists) 来源: CSDN 作者: 樱桃木 链接: https://blog.csdn.net/qq_24624539

turtlebot+gazebo仿真

ε祈祈猫儿з 提交于 2019-12-22 18:27:46
gazebo rviz安装: sudo apt - get install ros - kinetic - rviz Gazebo安装: sudo apt - get install ros - kinetic - gazebo - ros - pkgs ros - kinetic - gazebo - ros - control 安装turtlebot相关包 sudo apt - get install ros - kinetic - turtlebot - * 可能出现的错误: 错误:1 http://mirrors.aliyun.com/ubuntu xenial-security/main amd64 linux-headers-generic amd64 4.4.0.169.177 404 Not Found [IP: 121.194.7.5 80] 错误:1 http://mirrors.aliyun.com/ubuntu xenial-security/main amd64 linux-headers-generic amd64 4.4.0.169.177 404 Not Found [IP: 121.194.7.5 80] E: 下载 http://mirrors.aliyun.com/ubuntu/pool/main/l/linux-meta/linux

SLAM:gmapping

匿名 (未验证) 提交于 2019-12-03 00:34:01
Package Summary Released Documented This package contains a ROS wrapper for OpenSlam's Gmapping. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot. Maintainer status: maintained Maintainer: Vincent Rabaud <vincent.rabaud AT gmail DOT com> Author: Brian Gerkey License: CreativeCommons-by-nc-sa-2.0 Source: git https://github.com/ros-perception/slam_gmapping.git (branch: hydro-devel)

初始ROS之学习汇总

丶灬走出姿态 提交于 2019-11-28 08:15:06
准研一,暑假在北京一家公司实习,初步学习ROS,在公司里测试了许多机器人,在这里汇总分享一下,实习了俩月虽然学到了满多东西,但觉得自己也不算完全入门,只是对ROS有了初步的了解,实习到现在我掌握的最重要的一个技能应该就是自主学习能力了,Github ros.wiki等网站的学习以及资料查询能力;认识到自己最严重的不足是编程能力,ROS中大多使用c++和python,在初步入门之后尝试开发以及创新时编程能力成了我最大的障碍。 下面是一些自己接触的机器人,大都只是测试了其功能,基础中的基础… KINOVA 在公司里使用的是KINOVA JACO2系列的机械手臂,JACO系列总共有三种类型:按自由度分为4DOF, 6DOF, 7DOF三种;夹抓分为2指和3指;手腕有类型有球型和非球型等等。在功能包中的表示方式为:例j2n7s300表示JACO二代腕部非球型的7自由度3指机械臂。 KINOVA控制方式: 手柄控制 , GUI界面控制(与手柄相似) ROS功能包控制,MoveIt!(功能包地址 https://github.com/Kinovarobotics/kinova-ros)功能包内容较多,需要更加深入研究 机械臂通用:moveit_setup_assistant配置机械臂,控制真实机械臂时需要ros_control功能包(参考http://www.guyuehome.com/890