Noetic-cartographer跑自己的数据包----记录(脑子不好容易忘记)

2024-01-30 20:50

本文主要是介绍Noetic-cartographer跑自己的数据包----记录(脑子不好容易忘记),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

根据官网的提示 和大佬:https://blog.csdn.net/qq_40216084/article/details/104599308?的文章
1.在/cartographer_ws/install_isolated/share/cartographer_ros/目录下
(1)在上面的目录下urdf中建立你自己的urdf文件my_robot_.urdf

<!--Copyright 2016 The Cartographer AuthorsLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
-->
<!--加上上面这个之后 你必须用gedit 这个文件的名字 进行修改-->
<robot name="mini"><material name="orange"><color rgba="1.0 0.5 0.2 1" /></material><material name="gray"><color rgba="0.2 0.2 0.2 1" /></material><link name="imu"><visual><origin xyz="0 0 0" /><geometry><box size="0.06 0.04 0.02" /></geometry><material name="orange" /></visual></link><link name="lidar_mid"><visual><origin xyz="0 0 0" /><geometry><cylinder length="0.05" radius="0.03" /></geometry><material name="gray" /></visual></link><link name="base_link" /> <joint name="imu2lidar" type="fixed"><parent link="lidar_mid" /><child link="imu" /><origin xyz="0 0 0" /></joint><joint name="base_link2lidar" type="fixed"><parent link="base_link" /><child link="imu" /><origin xyz="0 0 0" /></joint></robot>

主要是声明坐标系以及自己的车的轮廓
(2)在configuration_files文件中建立mg_robot_config.lua

include "map_builder.lua"
include "trajectory_builder.lua"options = {map_builder = MAP_BUILDER,trajectory_builder = TRAJECTORY_BUILDER,map_frame = "map",tracking_frame = "imu",  #这里用到了imu,所以跟踪的是imu,如果只用雷达,把这个写lidar_midpublished_frame = "lidar_mid",odom_frame = "odom",provide_odom_frame = false,#我不用里程计publish_frame_projected_to_2d = false,use_pose_extrapolator = false,use_odometry = false,use_nav_sat = false,#不用GPSuse_landmarks = false,num_laser_scans = 1,#雷达个数num_multi_echo_laser_scans = 0,num_subdivisions_per_laser_scan = 1,#这个参数必须要填,>=1,博主目前也没搞明白.num_point_clouds = 0,#3d的话这里要改,2d填0lookup_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 = true
TRAJECTORY_BUILDER_2D.num_accumulated_range_data = 1return options

注意:上面盖的注释删了 .lua脚本中的注释我不知道怎么写
(3)在launch文件夹中建立两个launch文件1)my_robot01.launch

<launch><param name="robot_description"textfile="$(find cartographer_ros)/urdf/my_robot_.urdf" />#这里是你第一步定义的urdf文件<node name="robot_state_publisher" pkg="robot_state_publisher"type="robot_state_publisher" /><node name="cartographer_node" pkg="cartographer_ros"type="cartographer_node" args="-configuration_directory $(find cartographer_ros)/configuration_files-configuration_basename mg_robot_config.lua"#这里是你刚才新建的lua文件(运行时删除)output="screen"><remap from="scan" to="/scan" /><!--这里是我的2d包里雷达话题/Scan到carto框架Scan的映射--><remap from="imu" to="/imu" /></node><node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"type="cartographer_occupancy_grid_node" args="-resolution 0.05" />
</launch>

2)my_robot02.launch

<launch><param name="/use_sim_time" value="true" /><include file="$(find cartographer_ros)/launch/my_robot01.launch" />#这里是你刚才建立的launch文件<node name="rviz" pkg="rviz" type="rviz" required="true"args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" /><node name="playbag" pkg="rosbag" type="play"args="--clock $(arg bag_filename)" />
</launch>

运行时要把这两个文件中的#的注释删除
2.刷新环境变量

cd ~/cartographer_ws
source install_isolated/setup.bash

下载2d数据我的自己的 网址提取码:6375
在w10中下载
拖到Ubuntu中的一个文件夹中
3.运行

roslaunch cartographer_ros my_robot02.launch bag_filename:=拖进数据的文件夹路径/2d.bag

4.差不多跑完之后保存地图
首先要安装map——server

sudo apt install ros-<ROS版本>-map-server

我是用的launch文件来接受地图的
F:

<launch><arg name="filename" value="$(find demo01)/map/nav" /><node name="map_save" pkg="map_server" type="map_saver" args="-f $(arg filename)" />
</launch>

读取save的地图

<launch><!-- 设置地图的配置文件 --><arg name="map" default="nav.yaml" /><!-- 运行地图服务器,并且加载设置的地图--><node name="map_server" pkg="map_server" type="map_server" args="$(find demo01)/map/$(arg map)"/>
</launch>

读出来的地图是
在这里插入图片描述

这篇关于Noetic-cartographer跑自己的数据包----记录(脑子不好容易忘记)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/661511

相关文章

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位 一、背景二、定位问题三、解决方法 一、背景 flume系列之:定位flume没有关闭某个时间点生成的tmp文件的原因,并制定解决方案在博主上面这篇文章的基础上,在机器内存、cpu资源、flume agent资源都足够的情况下,flume agent又出现了tmp文件无法关闭的情况 二、

Linux常用工具与命令日常记录(长期更新)

Linux常用工具与命令日常记录(长期更新) 目录 1.本地复制到远程2.Linux压缩拆包与解压3.生成随机密码4.ubuntu默认Python版本设置5.计算当前文件夹中文件数量6.windows中编写shell脚本,在Linux运行出错7.history 历史命令显示时间用户8.Ubuntu18.04设置源、网卡9.Ubuntu18.04设置网卡10.Ubuntu:自定义开

Excel和Word日常使用记录:

Excel使用总结 表格颜色填充: 合并单元格: 选中你要合并的单元格区域。按下快捷键 Alt + H,然后松开这些键。再按下 M,接着按 C。这个组合键执行的操作是:Alt + H:打开“主页”选项卡。M:选择“合并单元格”选项。C:执行“合并并居中”操作。 插入行: 在Excel中,插入一行的快捷键是:Windows:选择整行(可以点击行号)。按下 Ctrl + Sh

cartographer+turtlebot+hokuyo|安装配置

cartographer+turtlebot+hokuyo|安装配置 系统:ubuntu 14.04+ros indigo 或 ubuntu 16.04+ros kinetic 平台:turtlebot2 传感器:hokuyo UTM-30LX laser 本文假设已经成功安装ubuntu,ros,以及各种与turtlebot相关的ros package等。本文主要介绍,怎么安装配car

野火霸天虎V2学习记录

文章目录 嵌入式开发常识汇总1、嵌入式Linux和stm32之间的区别和联系2、stm32程序下载方式3、Keil5安装芯片包4、芯片封装种类5、STM32命名6、数据手册和参考手册7、什么是寄存器、寄存器映射和内存映射8、芯片引脚顺序9、stm32芯片里有什么10、存储器空间的划分11、如何理解寄存器说明12、如何操作寄存器的某一位 STM32F407芯片学习1、stm32单片机启动流程s