当前位置:网站首页>Cataloger integrates lidar and IMU for 2D mapping
Cataloger integrates lidar and IMU for 2D mapping
2022-07-07 22:26:00 【Lift the cement together】
1. Add robot's urdf file
I chose to create a new one urdf file ( Name it my_robot.urdf)
imu Of link name choice ah100b released imu Data frame_id
<!--
Copyright 2016 The Cartographer Authors
Licensed 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 at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed 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 and
limitations under the License.
-->
<robot name="zeus_x3">
<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.0 0.0" />
<geometry>
<box size="0.06 0.04 0.02" />
</geometry>
<material name="orange" />
</visual>
</link>
<link name="laser_link">
<visual>
<origin xyz="0.0 0.0 0.0" />
<geometry>
<cylinder length="0.07" radius="0.05" />
</geometry>
<material name="gray" />
</visual>
</link>
<link name="base_footprint" />
<joint name="imu_link_joint" type="fixed">
<parent link="base_footprint" />
<child link="imu" />
<origin xyz="-0.2 0 0.2" rpy="3.1416 0 0" />
</joint>
<joint name="laser_link_joint" type="fixed">
<parent link="base_footprint" />
<child link="laser_link" />
<origin xyz="-0.405 0 0.73626" rpy="0. 0. 3.1416" />
</joint>
</robot>2. modify install_isolated/share/cartographer_ros/configuration_files and src/cartographer_ros/cartographer_ros/configuration_files The next path lua file
You also choose to create a new lua file ( Name it my_robot.lua)
-- Copyright 2016 The Cartographer Authors
--
-- Licensed 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 at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed 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 and
-- limitations under the License.
include "map_builder.lua"
include "trajectory_builder.lua"
--include "revo_lds.lua"
options = {
map_builder = MAP_BUILDER,
trajectory_builder = TRAJECTORY_BUILDER,
map_frame = "map",
--tracking_frame = "base_link", Conduct SLAM The coordinate system of , If there is IMU In other words IMU Coordinate system , If not, it is base_link perhaps base_footprint
--published_frame = "base_link", cato Published coordinate system
tracking_frame = "imu",
published_frame = "base_footprint",
odom_frame = "odom", -- Name of coordinate system of odometer data
provide_odom_frame = true, -- External use /odom, So it doesn't need to be provided internally ( Whether to release odometer coordinate system )
publish_frame_projected_to_2d = false,
use_pose_extrapolator = true,
--use_odometry = false,
use_odometry = false, -- Whether to use odom data
use_nav_sat = false, -- Whether to use gps data
use_landmarks = false,
--num_laser_scans = 0, by weiyang
--num_multi_echo_laser_scans = 1, by weiyang
num_laser_scans = 1, -- If a single line radar is used , Here is the number of radars
num_multi_echo_laser_scans = 0,
--num_subdivisions_per_laser_scan = 10,
num_subdivisions_per_laser_scan = 1, -- Divide the data of a frame of radar into several times , For ordinary radar driver package , This should be 1
num_point_clouds = 0, -- Number of multiline radars
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., -- The following five parameters are 5 The weight ratio of each observation
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 -- send 2d still 3d Of SLAM
--TRAJECTORY_BUILDER_2D.submaps.num_range_data = 35
--TRAJECTORY_BUILDER_2D.min_range = 0.3
--TRAJECTORY_BUILDER_2D.max_range = 8.
--TRAJECTORY_BUILDER_2D.missing_data_ray_length = 1.
--TRAJECTORY_BUILDER_2D.use_imu_data = true -- Use IMU data
--TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching = true
--TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.linear_search_window = 0.1
--TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.translation_delta_cost_we--ight = 10.
--TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.rotation_delta_cost_weight = 1e-1
--TRAJECTORY_BUILDER.collate_landmarks = true
--POSE_GRAPH.optimization_problem.huber_scale = 1e2
--POSE_GRAPH.optimize_every_n_nodes = 35
--POSE_GRAPH.constraint_builder.min_score = 0.65
return optionsThe part commented out is because when I tested on the robot , Are there any sentences that can be used ( For the time being, it can only be used , But these parameters may be related to the optimization part , To be studied in the next step )
3. modify install_isolated/share/cartographer_ros//launch and src/cartographer_ros/cartographer_ros/launch Under the launch file
newly build my_robot.launch and demo_my_robot.launch file
my_robot.launch:
<!--
Copyright 2016 The Cartographer Authors
Licensed 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 at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed 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 and
limitations under the License.
-->
<launch>
<param name="robot_description"
textfile="$(find zeus_x3_description)/urdf/my_robot.urdf" />
<!--"$(find cartographer_ros)/urdf/backpack_2d.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 my_robot.lua"
output="screen">
<remap from="scan" to="/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>demo_my_robot.launch:
<!--
Copyright 2016 The Cartographer Authors
Licensed 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 at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed 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 and
limitations under the License.
-->
<launch>
<param name="/use_sim_time" value="false" />
<include file="$(find ah100b)/launch/imu.launch" />
<include file="$(find bunker_bringup)/launch/lslidar.launch" />
<include file="$(find cartographer_ros)/launch/my_robot.launch" />
<node name="rviz" pkg="rviz" type="rviz" required="true"
args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" />
</launch>边栏推荐
- Node:504 error reporting
- The whole network "chases" Zhong Xuegao
- Record layoutrebuild Forcerebuildlayoutimmediate does not take effect
- Firefox browser installation impression notes clipping
- OpenGL homework - Hello, triangle
- npm uninstall和rm直接删除的区别
- Aspose. Words merge cells
- php 获取图片信息的方法
- php 记录完整对接腾讯云直播以及im直播群聊 所遇到的坑
- 客户案例|华律网,通过观测云大幅缩短故障定位时间
猜你喜欢

IP网络主动测评系统——X-Vision

Win11如何解禁键盘?Win11解禁键盘的方法

Customer case | China law network, through observing the cloud, greatly shortens the time of fault location

Embedded development: how to choose the right RTOS for the project?

Matplotlib drawing interface settings

What does it mean to prefix a string with F?

【Azure微服务 Service Fabric 】因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)

Remember aximp once Use of exe tool

用语雀写文章了,功能真心强大!

Win11游戏模式怎么开启?Win11开启游戏模式的方法
随机推荐
Display optimization when the resolution of easycvr configuration center video recording plan page is adjusted
SAR影像质量评估
Customer case | China law network, through observing the cloud, greatly shortens the time of fault location
Px4 autonomous flight
Two kinds of updates lost and Solutions
Remember that a development is encountered in the pit of origin string sorting
[JDBC Part 1] overview, get connection, CRUD
The latest Android interview collection, Android video extraction audio
100million single men and women "online dating", supporting 13billion IPOs
[colmap] sparse reconstruction is converted to mvsnet format input
微服务架构开源框架详情介绍
Tsconfig of typescript TS basics JSON configuration options
php 记录完整对接腾讯云直播以及im直播群聊 所遇到的坑
Programming mode - table driven programming
Unity development --- the mouse controls the camera to move, rotate and zoom
php 获取图片信息的方法
戴森官方直营店免费造型服务现已开放预约 先锋科技诠释护发造型理念,助力消费者解锁多元闪耀造型
Jerry's about TWS pairing mode configuration [chapter]
UWA问答精选
大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?