【踩坑记录】仿真环境使用小车进行Rtabmap 3D Slam(深度摄像头)

【运行背景】

ROS1 20.04 noetic

目录

【运行背景】

【安装步骤】

【安装Rtabmap】

【安装pointcloud-to-laserscan】

【Gazebo仿真】

【小车URDF模型】

【编写launch文件】

【配置Rtabmap】

【Rtabmap配置文件】

【点云转雷达信号】

【整合启动文件】

【运行Rtabmap仿真slam】

 

 


【安装步骤】

【安装Rtabmap】

sudo apt install ros-noetic-rtabmap-*

【安装pointcloud-to-laserscan】

sudo apt install ros-noetic-pointcloud-to-laserscan

【Gazebo仿真】

均在spark-slam-gazebo工作空间下

【小车URDF模型】

编写为spark1_description_rtabmap.urdf,Cartographer需要imu和pointcloud的数据,所以添加这两部分的传感器

a)添加深度摄像头

  
  
		
		
		
		
 
 
 
     
           true
           20.0
           
               ${60.0*3.14/180.0}
                   
                       R8G8B8
                       640
                       480
                   
                   
                         0.05
                         5.0
                   
           
                
                    camera
                    true
                    20.0
                    rgb/image_raw
                    depth/image_raw
                    depth/points
                    rgb/camera_info
                    depth/camera_info
                    upper_kinect_pointcloud_link
                    0.1
                    0.0
                    0.0
                    0.0
                    0.0
                    0.0
                    0.4
                    
                
            
          

b) 添加imu


    
      
      
        
      
    
  
   
    
    
    
    
  
 
 

        true
        
            true
            20
            true
            __default_topic__
              
                imu             
                imu_link
                20     
                0.0     
                0 0 0
                imu_link        
            
            0 0 0 0 0 0
        
    

c)确保rviz上点云显示正确,添加虚拟关节,关联到摄像机的link,调整rpy值(rqy分别对应着xyz轴,遵循右手定理),将点云调整到正确位置

  

    
    
    

将深度摄像头插件中的frameName设为新增加的link(这一部分和上述添加摄像头代码有重合部分)

 
                    camera
                    true
                    20.0
                    rgb/image_raw
                    depth/image_raw
                    depth/points
                    rgb/camera_info
                    depth/camera_info
                    upper_kinect_pointcloud_link
                    0.1
                    0.0
                    0.0
                    0.0
                    0.0
                    0.0
                    0.4
                    
                

【编写launch文件】

取名为spark_rtabmap_slam_gazebo_rviz.launch,内容如下:



  
    
    
    
    
    
    
 
   
    
    
        
        
        
        
        
    
 
      
      
 
       
     
            
        
 
     
     
     
 
	      
      	
  	  
 

【配置Rtabmap】

【Rtabmap配置文件】

编写spark_mapping_astrapro.launch文件启动Rtabmap


  
  
  
  
  
  
  
  

  
  
  
 
   

  
  
 
    
	  
	  
	  
	  
	  
	  
	  
           
	  
          
	
	  
	  
	  
  	  
  	  

          
          
          
          
  	  
  	  
  	  
	
	  
	     
	    
	  
	        
	  
	        
	      
	      
	      
	   
	  
	  
	  
	  

	  
	  
	  
	  
	   
    
   
    
    
      
      
      
      
      
      
      
      
    
    
    
    
  	  
      
      
      
    
      
      
      
      
    
    
  

    主要修改rgb/image,depth/image,rgb/camera_info和/scan的相关话题,由于采用仿真环境,摄像机相关话题名称由URDF文件中确定,详细可查看上文深度摄像头部分

【点云转雷达信号】

编写pointcloud2scan.launch



    
    
      
      
      
        target_frame: camera_link
        transform_tolerance: 0.01
        min_height: 0.0
        max_height: 1.0
        
        angle_min: -1.5708
        angle_max: 1.5708
        angle_increment: 0.0087
        scan_time: 0.3333
        range_min: 0.45
        range_max: 4.0
        use_inf: true
        
        #concurrency_level affects number of pc queued for processing and the number of threadsused
        # 0: Detect number of cores
        # 1: Single threaded
        # 2: inf : Parallelism level
        concurrency_level: 1
      
    

【整合启动文件】

将上面用到的节点编写到launch文件


		
	


  	
  	


	
	
	
	
  	
		
	

再将gazebo仿真和rtabmap结合一起,修改之前的spark_rtabmap_slam_gazebo_rviz.launch文件




    
    
    
    
    
    
    
    
   
    
    
        
        
        
        
        
        
    

        
        

        
        
            
        

    	
    	
    	
	
	
		
	


  	
  	


	
	
	
	
  	
		
	


  	
	
  	
  	
	
  	




【运行Rtabmap仿真slam】

终端输入

roslaunch spark1_description spark_rtab_slam_gazebo_rviz.launch 

启动后,添加简易围墙和障碍物

 在rviz上查看

【踩坑记录】仿真环境使用小车进行Rtabmap 3D Slam(深度摄像头)_第1张图片

 通过键盘控制完成建图

 

 将Rtabmap cloud设为不显示

【踩坑记录】仿真环境使用小车进行Rtabmap 3D Slam(深度摄像头)_第2张图片

 通过map_server保存地图

终端显示保存的位置

 

你可能感兴趣的:(踩坑记录,ROS,3d,自动驾驶,人工智能)