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.
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_link
Modified 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.