Silan A2 running cartographer

Silan A2+cartographer

Because I have completed the related content, I am learning the cartographer, this time I will try the Silan A2 to run the cartographer.
record the process

First make sure that your cartographer is running successfully.
There are a lot of installation tutorials online (many are useless), and it took me a whole day to install it correctly, which is ridiculous.

After Cartographer is installed, install the driver of Silan A2

Learn from the article Silan Technology A1, A2 radar driver installation

cd ~/catkin_ws/src
git clone https://github.com/Slamtec/rplidar_ros.git
cd ..
catkin_make_isolated --install --use-ninja

add environment variable

sudo gedit ~/.bashrc
#在最后面添加     source ~/catkin_ws/devel_isolated/setup.bash   (注意一下devel_isolated这个文件夹的名称可能不一样)
#保存退出
source ~/.bashrc

Check Radar Operation

 roslaunch rplidar_ros view_rplidar.launch

Basically this step is an error, because the usb port number of the radar plugged in is inconsistent with the port number in the file.
The default radar is connected to /dev/ttyUSB0.

Perform fixed name mapping for the mounted device (there are other ways, please check online, I am an effective one and there is no need to toss)

cd catkin_ws/src/rplidar_ros/scripts
./create_udev_rules.sh

Re-plug the radar to make it effective

cd catkin_ws/src/rplidar_ros/launch
sudo gedit rplidar.launch

Modify the device parameter /dev/ttyUSB0 to /dev/rplidar

retry radar

cd
roslaunch rplidar_ros view_rplidar.launch

The radar should be functioning normally here.
insert image description here

Silan A2+cartographer

Modify revo_lds.lua

sudo gedit ~/catkin_ws/src/cartographer_ros/cartographer_ros/configuration_files/revo_lds.lua

document content:

include "map_builder.lua"
include "trajectory_builder.lua"

options = {
  map_builder = MAP_BUILDER,
  trajectory_builder = TRAJECTORY_BUILDER,
  map_frame = "map",
  tracking_frame = "laser",
  published_frame = "laser",
  odom_frame = "odom",
  provide_odom_frame = true,
  publish_frame_projected_to_2d = false,
  use_pose_extrapolator = true,
  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 = 1,
  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 = true

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 = false
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_weight = 10.
TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.rotation_delta_cost_weight = 1e-1


POSE_GRAPH.optimization_problem.huber_scale = 1e2
POSE_GRAPH.optimize_every_n_nodes = 35
POSE_GRAPH.constraint_builder.min_score = 0.65

return options

Modified content :
horizontal_laser_linkModified tolaser

Modify demo_revo_lds.launch

sudo gedit ~/catkin_ws/src/cartographer_ros/cartographer_ros/launch/demo_revo_lds.launch

document content:

<launch>
  <param name="/use_sim_time" value="true" />

  <node name="cartographer_node" pkg="cartographer_ros"
      type="cartographer_node" args="
          -configuration_directory $(find cartographer_ros)/configuration_files
          -configuration_basename revo_lds.lua"
      output="screen">
    <remap from="scan" to="horizontal_laser_2d" />
  </node>

  <node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"
      type="cartographer_occupancy_grid_node" args="-resolution 0.05" />

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

change into:

<launch>
  <param name="/use_sim_time" value="true" />

  <node name="cartographer_node" pkg="cartographer_ros"
      type="cartographer_node" args="
          -configuration_directory $(find cartographer_ros)/configuration_files
          -configuration_basename revo_lds.lua"
      output="screen">
    <remap from="scan" to="scan" />
  </node>

  <node name="rviz" pkg="rviz" type="rviz" required="true"
      args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" />
</launch>

recompile

catkin_make_isolated --install --use-ninja

test

Running lidar

roslaunch rplidar_ros rplidar.launch

run the cartographer framework

roslaunch cartographer_ros demo_revo_lds.launch

That's roughly the case, it's just that the dormitory raised his hand twice. Continue to do it later.
insert image description here

Guess you like

Origin blog.csdn.net/qq_41746268/article/details/115758954