自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 升级cmake版本

      在安装rtabmap的过程中,发现其对cmake的最低版本有需求。查询资料后,记录下升级cmake的流程。      1、到https://cmake.org/files中下载需要的版本,我选择的版本为cmake-3.10.2.tar.gz;           (也可以按网上在终端中下载:wget https://cmake.org/files/v3.10/cmake-3.10.2....

2018-04-28 16:01:41 8612

原创 给cartographer_ros的NodeOptions新增属性项

      在使用cartographer进行slam相关工作时遇到希望从外部传递自定义的新数据,即在cartographer_ros中设置能通过lua配置文件从外部进行配置的新的属性。      以实际处理的问题为例:希望设置一个flag,表明此次任务是建图还是pure_localization,以便在建图模式时进行地图的处理及保存。      在此种方法便是在此次任务的NodeOptions中...

2018-04-28 15:34:36 1257 1

原创 cartographer输出机器人相对地图位姿

     cartographer(0.3.0版本)中机器人位姿是以tf的格式发布的。cartographer在关于位姿的tf_tree为:map->odom->base_footprint。其中odom->base_footprint理解为激光模拟的里程计信息,map->odom理解为对里程计数据的补偿,如消除累积误差等。在应用中推荐把provide_odom_frame...

2018-04-28 14:53:56 8010 14

原创 利用json文件实现不同设备间的交互(四)

      在有(一)、(二)、(三)的基础后,只需要一个全局的shell脚本按需求执行各项命令即可。shell脚本循环监听json文件,根据内容的改变依次执行指令。      选取jq作为shell对json文件的处理工具。ubuntu下使用sudo apt-get install jq安装即可。      脚本remote_communication.sh如下:#! /bin/bashcou...

2018-04-27 16:53:44 315 2

原创 利用json文件实现不同设备间的交互(三)

      利用python脚本监听json文件,当map_builder_exit的值为1时,结束与cartographer建图有关的node,释放节点。python脚本较为简单,仅涉及python对json的处理,和利用python执行shell命令。       脚本map_save.py如下:# coding=utf-8 //设置文本格式import os,time,sysfrom...

2018-04-27 15:28:28 254

原创 利用json文件实现不同设备间的交互(二)

      cartographer建图过程中,当json文件中map_builder_save属性的value置1,即接收到地图保存信号时,应实现结束建图且保存地图,同时将map_builder_save置0。保存地图完成后,将map_builder_exit置1,即发出结束建图进程的信号。对cartographer_ros源码做修改,新建监听json文件的线程,当json文件内容发生改变时,做...

2018-04-27 15:13:45 364

原创 利用json文件实现不同设备间的交互(一)

      在做工程时,遇到如下需求:当移动端按下按键,机器人底盘实现相应功能,即树莓派上启动相应服务。鉴于涉及不同设备以及各项服务涉及不同语言,需要设计一种交互方式相互协调。      实际实现借鉴了Client/Server结构。首先在Server端(即树莓派,各项功能对应的程序实现均于此)新建一个json文件,文件中的key值对应各项功能,value值为1或0,分别对应是否启动功能。接下来在...

2018-04-27 12:22:54 661

原创 c++多线程的使用

      做工程时遇到需要使用多线程的情况,但没有类似经验。学习一段时间后在此记录供今后参考。      以如下问题为例:cartographer建图时,当在键盘按下按键,则结束建图并保存地图。      在node_main.cc中进行处理。      1、监听键盘事件#include <thread>...namespace {char generate_map_flag ...

2018-04-27 11:16:49 490

原创 range_sonar_layer在navigation中的使用

此方法仅适用于采用源码安装的navigation包。一、下载sonar_layer的代码:https://github.com/DLu/navigation_layers        实际只需要其中的range_sensor_layer        放到工作空间catkin_make需要的地方。二、将plugin插入ros系统。可以参考:http://www.cnblogs.com/W-cho...

2018-04-26 17:43:18 2233 4

原创 cartographer生成ros格式地图

     cartographer建图时保存的地图格式默认为.pbstream。而机器人的navigation需要标准的ROS格式地图(.pgm+.yaml)。在此采用一种讨巧的方法,在保存.pbstream格式的地图后同时将其另存为标准的ROS格式地图。cartographer_ros中已有离线.pbstream格式地图转ros标准格式地图接口,据此写了个函数供建图时cartographer节点...

2018-04-26 10:57:47 5699 3

原创 利用python修改json文件的value

    做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形。为此写了修改json文件的python脚本供工程后续调用。    代码如下:# coding=utf-8 //设置文本格式import os,sysimport jsondef get_new_json(filepath,key,value): key_ = key.split("."...

2018-04-25 17:11:32 21210 3

原创 cartographer的localization模式设置初始位姿

    cartographer的localization模式机器人的初始位姿默认为建图时的起点位姿。理论上机器人运动一段时间后通过新局部子图与全局地图相匹配能获取较为理想的位姿,故无需考虑机器人启动位姿。如果能知道机器人启动时的初始位姿,对机器人的导航还是有所帮助。故在此还是提供一个设置初始位姿的方法。    主要调用了github上作者们提供的initial_pose的接口。个人的理解可能不够...

2018-04-25 16:20:26 10442 6

原创 Cartographer_ros-0.3.0安装

     参照cartographer官方安装流程:http://google-cartographer-ros.readthedocs.io/en/latest/index.html 。流程会依次安装proto3、ceres-solver、cartographer和cartographer_ros。安装过程需要根据实际情况(针对无法翻墙的环境)做少许修改,流程如下:     一、安装wstool...

2018-04-25 14:27:31 709

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除