在gazebo中加载多台机器人

8月25号从杭州回到学校了,前一天晚上喝多了,夜里果然吐了。早上实在是不想动,索性改签到了下午。到学校已经7点1刻了。真是艰难的一天 = =
最近一直在做仿真,做的有点腻了。赶紧弄完做视觉吧,我想早点深入到算法

工作时间: 2019.08.26-2019.08.29
工作内容

一. urdf模型
之前建立的URDF一直会有漂移的毛病,周一重新建立了一遍,有所改善,但是问题仍然存在。猜测与各个link的质量以及转动惯量相关,但是苦于找不到一个刚刚好合适的值,不知道该怎么弄了。
待解决!!!

二. 地图搭建
在gazebo中如何建立一个有特殊图案的地面?
之前尝试用model edit这个选项卡自己画,但是总是遇到无法改变颜色的BUG,好在网上有大佬给出了教程:
如何用一张特定的图片搭建world?
这里总结如下:

  1. 建立文件夹
mkdir ~/.gazebo/models/my_ground_plane 
mdkir -p ~/.gazebo/models/my_ground_plane/materials/textures
mdkir -p ~/.gazebo/models/my_ground_plane/materials/scripts
  1. 建立material文件
gedit ~/.gazebo/models/my_ground_plane/materials/scripts/my_ground_plane.material 

内容:


    material MyGroundPlane/Image
            {
              technique
              {
                pass
                {
                  ambient 1 1 1 1.000000
                  diffuse 1 1 1 1.000000
                  specular 0.03 0.03 0.03 1.000000 

                  texture_unit
                  {
                    texture MyImage.png
                  }
                }
              }
            }
  1. 复制图片至~/.gazebo/models/my_ground_plane/materials/textures/MyImage.png
    也可以是其他格式,例如 .jepg
  2. Create a
    ~/.gazebo/models/my_ground_plane/model.sdf
    file with the following contents
    注意: 图片的大小可以由下面的size属性修改,单位为m


   
      true
      
         
            
               
                  0 0 1
                  100 100
               
            
            
               
                  
                     100
                     50
                  
               
            
         
         
            false
            
               
                  0 0 1
                  100 100
               
            
            
               
            
         
      
   

  1. Create a
    ~/.gazebo/models/my_ground_plane/model.config
    file with the following contents


   My Ground Plane
   1.0
   model.sdf
   My textured ground plane.

  1. 打开gazebo将my_ground_plane加上去。如果发现一直晃动,将原来的ground_plane delete即可

我做出来的效果如图所示,是一个棋盘:
在gazebo中加载多台机器人_第1张图片
这么做出后每次都需要加载一次,并且无法指定位置,有点麻烦。我们将它加进launch中:
先保存为world文件,然后在launch 文件中添加:

  
    
    
    
  

三. 在gazebo中加入多个机器人模型
好困~先睡了,明天再弄
并且思考一个问题: 每台机器人都要打开一个slam节点吗?(例如gamapping cartographer等)

步骤如下:

  1. 将urdf改写为xacro。加上xacro声明即可。如:

  1. 改写launch文件

    
    
    
    

被group标签包围的节点,话题,参数,服务,都会在前面加入<命名空间>的前缀
如: /shuai/joint_state_publisher

我的launch最终如下,可以在一个棋盘地面上加载两个机器人:




  
  
  
  
  
  
  
  
  

  
  
    
  

  
    
    
    
  






 



    
   
    
    
    



    
    
    
    



你可能感兴趣的:(SLAM学习)