当前位置:网站首页>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 options

The 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>

 

原网站

版权声明
本文为[Lift the cement together]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202130605394521.html