google官方安装指导:installation跑数据集|天天播报
问题: 1、官方下载地址; 2、官方文档;
(资料图片)
安装
参考博文https://blog.csdn.net/weixin_39784658/article/details/99452960 官方安装指导https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html#building-installation
跑数据集
此部分参考博文 http://www.freesion.com/article/9794248452/
下载数据集
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-05-14-44-52.bagwget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-27-12-31-41.bag
跑数据集建图
roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=${HOME}/Downloads/b2-2016-04-05-14-44-52.bag
跑数据集纯定位测试
roslaunch cartographer_ros demo_backpack_2d_localization.launch \ load_state_filename:=${HOME}/Downloads/b2-2016-04-05-14-44-52.bag.pbstream \ bag_filename:=${HOME}/Downloads/b2-2016-04-27-12-31-41.bag
这里后面两个参数一个是上一步建好的地图,pbstream格式,另一个是数据集。也就是说,先用第一个数据集建图,建完图后用第二个数据集进行定位测试。
主要修改文件及参数
依据原有参考文件新建文件
文件对应关系
backpack_2d.launch -> my_robot_2d.launch demo_backpack_2d.launch -> demo_my_robot_2d.launch offline_backpack_2d.launch -> offline_my_robot_2d.launch demo_backpack_2d_localization.launch -> demo_my_robot_localization_2d.launch assets_writer_backpack_2d.launch -> assets_writer_my_robot_2d.launch
backpack_2d.lua -> my_robot_2d.lua backpack_2d_localization.lua -> my_robot_2d_localization.lua aasets_writer_backpack_2d.lua -> aasets_writer_my_robot_2d.lua
建图
参考博文https://blog.csdn.net/m0_37672916/article/details/77198261
建图操作流程
主要包含:激光雷达、移动机器人(轮椅)、cartographer。
1、启动激光雷达
roslaunch urg_node urg_lidar.launch
2、启动轮椅
rosrun wheel_chair wheel_driver
3、启动建图
roslaunch cartographer_ros demo_revo_lds.launch
备注:不需要里程信息,也可以建图;在建图过程中,轮椅编码器未转动。
可将如上流程写成launch文件:
主要注意:TF、Topic
TF-tree关系
map |----odom |----base_footprint(差动轮中心) |---- base_link(轮椅) |----base_scan(激光雷达)
坐标间关系建立
1、轮椅建立odom、base_footprint、base_link、base_scan三者之间的关系。 其中, base_footprint、base_link、base_scan,三者之间为固定关系,可在launch文件中建立为静态坐标系,固定周期发布; base_footprint相对于odom为里程关系,根据运动实时计算里程计推算的位姿,需要实时发布; 2、Cartographer查阅TF-tree上的base_scan相对于map的关系,根据激光点云定位base_scan,并根据base_link与base_scan的关系追踪base_link的位姿,最终推算odom相对于map的位姿关系并发布。简而言之,cartographer通过修整odom相对于map的关系,从而定位机器人base_link相对于map的关系。 在.lua配置文件中设定如下值:
map_frame = "map",tracking_frame = "base_link",published_frame = "odom",odom_frame = "odom",provide_odom_frame = false,use_odometry = true,
保存地图
不再接受进一步数据
rosservice call /finish_trajectory 0
序列化保存其当前状态
rosservice call /write_state "{filename: "${HOME}/Downloads/mymap_name.pbstream"}"
将pbstream转换为pgm和yaml
rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=${HOME}/Downloads/mymap_name -pbstream_filename=${HOME}/Downloads/mymap_name.pbstream -resolution=0.05
纯定位
启动文件:
导航
启动文件:
附件
主要更改的文件
my_robot_2d_localization.lua 文件功能:配置机器人纯定位的相关参数。保证定位过程中的低延时特性。
include "my_robot_2d.lua"-- TRAJECTORY_BUILDER.pure_localization_trimmer = {-- max_submaps_to_keep = 3, -- 最大保存子图数,存定位模式通过子图进行定位,但只需要当前和上一个子图即可,我这里设置的是2-- }TRAJECTORY_BUILDER.pure_localization = truePOSE_GRAPH.optimize_every_n_nodes = 20-- output map to base_link for evaluation-- options.provide_odom_frame = false-- POSE_GRAPH.optimization_problem.log_solver_summary = true-- fast localizationMAP_BUILDER.num_background_threads = 8POSE_GRAPH.constraint_builder.sampling_ratio = 0.5 * POSE_GRAPH.constraint_builder.sampling_ratioPOSE_GRAPH.global_sampling_ratio = 0.1 * POSE_GRAPH.global_sampling_ratioPOSE_GRAPH.max_num_final_iterations = 1return options
my_robot_2d.lua 文件功能:配置机器人相关参数,主要坐标系名称、是否有里程计/卫星/地标,传感器数量,传感器测量范围等。
include "map_builder.lua"include "trajectory_builder.lua"options = { map_builder = MAP_BUILDER, trajectory_builder = TRAJECTORY_BUILDER, map_frame = "map", tracking_frame = "base_link", published_frame = "base_link", odom_frame = "odom", provide_odom_frame = true, publish_frame_projected_to_2d = true, use_odometry = true, use_nav_sat = false, use_landmarks = false, num_laser_scans = 1, num_multi_echo_laser_scans = 0, num_subdivisions_per_laser_scan = 10, num_point_clouds = 0, lookup_transform_timeout_sec = 0.2, submap_publish_period_sec = 0.3, pose_publish_period_sec = 10e-3, trajectory_publish_period_sec = 30e-3, rangefinder_sampling_ratio = 1., odometry_sampling_ratio = 1., fixed_frame_pose_sampling_ratio = 1., imu_sampling_ratio = 1e-3, landmarks_sampling_ratio = 1.,}MAP_BUILDER.use_trajectory_builder_2d = trueTRAJECTORY_BUILDER_2D.num_accumulated_range_data = 10TRAJECTORY_BUILDER_2D.use_imu_data = falseTRAJECTORY_BUILDER_2D.min_range = 0.1,TRAJECTORY_BUILDER_2D.max_range = 8.0,TRAJECTORY_BUILDER_2D.min_z = -0.05,TRAJECTORY_BUILDER_2D.max_z = 0.5,TRAJECTORY_BUILDER_2D.missing_data_ray_length = 8.0POSE_GRAPH.optimization_problem.local_slam_pose_translation_weight = 1e5POSE_GRAPH.optimization_problem.local_slam_pose_rotation_weight = 1e5POSE_GRAPH.optimization_problem.odometry_translation_weight = 1e4POSE_GRAPH.optimization_problem.odometry_rotation_weight = 1e4return options
offline_my_robot_2d_localization.lua 主要功能:离线定位测试,仅用单激光雷达,无里程计。
include "offline_my_robot_2d.lua"-- TRAJECTORY_BUILDER.pure_localization_trimmer = {-- max_submaps_to_keep = 3, -- 最大保存子图数,存定位模式通过子图进行定位,但只需要当前和上一个子图即可,我这里设置的是2-- }TRAJECTORY_BUILDER.pure_localization = truePOSE_GRAPH.optimize_every_n_nodes = 20-- output map to base_link for evaluation-- options.provide_odom_frame = false-- POSE_GRAPH.optimization_problem.log_solver_summary = true-- fast localizationMAP_BUILDER.num_background_threads = 8POSE_GRAPH.constraint_builder.sampling_ratio = 0.5 * POSE_GRAPH.constraint_builder.sampling_ratioPOSE_GRAPH.global_sampling_ratio = 0.1 * POSE_GRAPH.global_sampling_ratioPOSE_GRAPH.max_num_final_iterations = 1return options
offline_my_robot_2d.lua 文件功能:离线机器人参数,仅有单线激光雷达。
include "map_builder.lua"include "trajectory_builder.lua"options = { map_builder = MAP_BUILDER, trajectory_builder = TRAJECTORY_BUILDER, map_frame = "map", tracking_frame = "laser_frame", published_frame = "laser_frame", odom_frame = "odom", provide_odom_frame = false, publish_frame_projected_to_2d = false, use_odometry = false, use_nav_sat = false, use_landmarks = false, num_laser_scans = 1, num_multi_echo_laser_scans = 0, num_subdivisions_per_laser_scan = 10, num_point_clouds = 0, lookup_transform_timeout_sec = 0.2, submap_publish_period_sec = 0.3, pose_publish_period_sec = 5e-3, trajectory_publish_period_sec = 30e-3, rangefinder_sampling_ratio = 1., odometry_sampling_ratio = 1., fixed_frame_pose_sampling_ratio = 1., imu_sampling_ratio = 1., landmarks_sampling_ratio = 1.,}MAP_BUILDER.use_trajectory_builder_2d = trueTRAJECTORY_BUILDER_2D.num_accumulated_range_data = 4TRAJECTORY_BUILDER_2D.use_imu_data = falsereturn options
my_robot_2d_localization.launch 作用:用实际机器人定位
my_robot_2d.launch 作用:用实际机器人建图
offline_my_robot_2d.launch 作用:用离线的rosbag数据包建图(仅有激光雷达数据) 参考启动方式:
roslaunch cartographer_ros offline_my_robot_2d.launch bag_filenames:=~/ws_ros/cartographer/bag_data/b2-2016-04-05-14-44-52.bag
标签:
相关推荐:
最新新闻:
- 【配置】TrinityCore魔兽世界私服11159完整配置
- VLD怎么安装使用?VLD的安装使用及其问题:环球观焦点
- 游戏环境下如何实现真正D3D的窗口?启动进程和取得进程的方法
- apk改之理简单教程 双击ApkIDE.exe启动程序详解|全球热文
- 【环球时快讯】函数的length是什么意思?javascript函数的length
- 最新:Gaia、Gecko和Gonk的区别在哪里?一文读懂网络操作系统WebOS
- google官方安装指导:installation跑数据集|天天播报
- 如何开通QQ聊天工具界面?如何取消QQ验证设置?:环球观点
- 【当前热闻】Mac电脑上怎么设置手写输入?Mac自带手写输入法
- 全球热点!后视镜和倒车影像哪个更好一点?新手司机一定要知道
- qq炫舞手游进不去怎么办?详细解决方案_天天热点评
- 如何防止ARP欺骗?防止ARP欺骗的方法
- Unix系统下的伯克利socket编程 如何监视文件描述符?
- 【数据更新】iPhone11系列数据升级至4.1版
- 化身鸡哥!《消光2》外观DLC“狂鸡捆绑包”上线 全球百事通
- 特斯拉一夜暴跌6%:市值蒸发401亿美元_环球快讯
- 杜兆才落网后!孙雯正式被提拔,49岁扛起足协重任 全球独家
- 性能对标RTX 3080!RTX 4070桌面显卡OpenCL跑分曝光
- 【环球热闻】QQ如何使用声卡?QQ检测不到声音的解决方法
- 会议电话由哪些设备组成?会议电话组成设备介绍
- dota2为什么一直显示连接至游戏协调服务器中?详情介绍:当前头条
- 2016年笔记本销量排行榜 你的笔记本上榜了吗?:世界即时看
- 苹果ipad3 ios6.1怎么越狱?苹果ipad3 ios6.1越狱教程介绍
- Win10怎么关闭自动更新?Win10正式版关闭自动更新解决方法分享 世界播报
- 联想笔记本dvd驱动安装及使用说明 光驱弹不出的解决方法
- 淘宝超级店长是什么?超级店长适用于所有淘宝网店
- 80072f78无法更新怎么办?80072F78无法更新解决教程
- skype不能登录了怎么办?解决skype不能登录的方法步骤
- hhukcert02.exe是什么?hhukcert02.exe注册表文件途径在哪?
- 如何在安全模式下打开Word文档/Office?安全模式下打开Word文档操作步骤
- 电脑知识:cmd命令提示符的使用方法
- Win10如何防止U盘中毒?防止U盘中毒的解决方法
- 天天速读:如何用ghost进行一键还原?六个步骤教你正确使用
- 龙之谷加点模拟器怎么洗点?龙之谷加点模拟器安装方法
- 世界观点:手机手绘密码忘记了怎么办?京崎手机和这款手机解锁教程来了
- 三星S5830i内存不足怎么办?刷机教程来了
- dnf怎么屏蔽其他玩家?dnf光环幻化栏怎么弄?
- 如何安装HTC更新实用程序?Android手机更新实用程序
- 泓能移动电源怎么样?泓能移动电源价格介绍:每日消息
- tslog是什么文件夹?tslog文件夹彻底删除办法
- 焦点滚动:电脑假死怎么办? 三种方法解决教程
- office2007注册码破解方法 office2007注册码表及使用说明
- 电脑dns错误怎么办?dns错误怎么解决?-天天信息
- 如何解决家中的无线信号覆盖问题?wifi无线覆盖解决方案 环球最资讯
- qq飞车s车有哪些?qq飞车s车大全QQ级赛车排行榜
- 世界微速讯:一台电脑多少瓦?关于电脑功耗的解答
- umd是什么格式?umd格式怎么打开?
- 世界快看:车载gps终端怎么样?车载gps终端介绍
- 简讯:顽皮狗:《最后生还者》先优化好PC版 才能登SteamDeck
- 经济学家向松祚:90%以上的经济学家会被ChatGPT取代
- 山高新能源集团(01250.HK)公告2022年度业绩,盈利喜迎向上拐点:头条焦点
- 小米米家智能晾衣机1S发布:35kg承重、一键隐形
- 世界热文:向全球精英发出邀请“奔向蓝海”,象山再次启动这场大赛
- 小米13 Ultra官方预热:雷军疯狂暗示:当前关注
- 世界实时:moto razr+ 2023曝光:新折叠屏要来了!
- 越骂越买 iPhone 13全球最畅销手机
- 重点聚焦!卡普空股价大涨创历史新高!《生化危机4:重制版》立大功
- 焦点信息:经典游戏系列《大笨猫》设计师迈克尔·博林去世 享年73岁
- 《Dark and Darker》开发者有意众筹50万美元 现已暂停:热资讯
- 《小美人鱼》真人电影新预告 美丽之鱼浮出水面-每日播报
- 宫颈癌疫苗预防疾病_宫颈癌疫苗如何使用 有效预防宫颈癌办法
- 潮流配色 简约时尚标杆之作 三星Galaxy A54 5G火热预约登记中|世界热点
- 快看点丨RTX 4060笔记本售价5899!将星游戏本性价比之王!
- 环球看热讯:Wi-Fi联盟报告:研究显示Wi-Fi有助于节能减排
- 苹果MR头显即将推出、库克称十年内用其取代iPhone
- 电脑每次开机都自检怎么解决?电脑每次开机都自检解决方法
- 诺基亚X发布时间是什么时候?诺基亚X上市价格是多少?
- 如何刻盘光盘?笔记本电脑刻录光盘教程
- 微信登录系统错误什么意思?微信登录密码忘记了怎么找回?
- 剑灵错误代码14001怎么解决?剑灵错误代码14001解决方法
- 怎么使用按键精灵制作游戏脚本?按键精灵制作游戏脚本步骤
- 雨滴桌面秀使用方法 rainmeter皮肤包怎么用?
- 什么是oa系统?一套oa系统大概需要多少钱?OA系统价格
- ipad闪退修复方法 ipad闪退app该如何解决?
- H264帧格式解析 详解H264Annexb与AVCC格式解析 天天观点
- qqpctray.exe是什么?qqpctray.exe程序占用率高怎么办?
- 如何获取xlsx的Excel文件行数?xlsx的Excel文件使用方法 即时
- 笔记本电脑当无线路由器怎么设置?设置流程|天天观热点
- 天天信息:如何使用视频剪辑软件将qsv格式视频转换为MP4格式?方法步骤
- 天天热门:中国大学MOOC网站资源点汇总(收藏)
- javascript首字母字符串开发教程 用于获取汉字的首字母拼音的开发方法|天天快资讯
- C语言基础知识入门 C语言的具体结构
- VEX为什么要用到中间表达式?为什么要用到VEX?|环球头条
- 中国“北斗”卫星导航系统——定位模块需求介绍
- DirectSound能帮我们做什么?DirectSound开发指南 天天观察