【ROS学习】移动机器人建模仿真(1)

最近实验室的项目中用到了ROS,所以就学了一些。前期先将ROS官网中的基本教程了解了一遍,对于它大体有了一些基本的认识。本文主要是实现一个移动机器人3D URDF建模,其中添加了相机信息和2D雷达信息采集装置,在Gazebo中做仿真实验。

3D URDF建模

移动机器人包括主体,两个轮子、一个万向轮、相机模块和2D雷达模块。

接下来我们先要建立ROS工作空间mycar_ws,

cd 
mkdir mycar_ws
cd mybcar_ws
catkin init
mkdir src
catkin_make
echo "source ~/mycar_ws/devel/setup.bash" >> ~/.bashrc

在工作空间中建立mycar_description功能包,命令如下: 

cd src
catkin_create_pkg mycar_description roscpp rospy #加入这两个依赖项便于后期用Python或C++写相应的代码

在所建立的mycar_description功能包中,创建urdf文件夹,并在其中分别创建mycar.xacro、mycar.gazebo、mycar_materials.xacro这三个文本。

  • mycar.xacro:是这三者中主要部分,将来负责读取其他两个文本中的内容,并在这个文本中用URDF描述这个移动机器人。
  • mycar.gazebo:这个文件运用特定的gazebo标签对移动机器人模型进行包装,使其可以在Gazebo中进行仿真。
  • mycar_materials.xacro:这个文件夹负责对移动机器人外观进行修饰。

这三个文件具体内容如下:

mycar.xacro





	
  

  
  

  
    0 0 0.1 0 0 0

    
      
      
      
    

    
      
        
      
    

    
      
      
        
      
    


    
      
      
        
      
      
        
          
            0
            0
            1.0
            1.0
          
        
      
    

    
      
      
        
      
    
  


  
    
    
      
      
        
      
    
    
      
      
        
      
    
    
      
      
      
      
    
  

  
    
    
      
      
        
      
    
    
      
      
        
      
    
    
      
      
      
      
    
  


  
    
    
    
    
    
    
  

  
    
    
    
    
    
    
  

	
    
      
      
        
      
    

    
      
      
        
      
      
    

    
      
      
      
      
    
  

  
    
    
    
    
  


  
    
    
    
    
  

  
  
    
      
      
    
      
    

    
      
      
        
      
    

    
      
      
      
    
  


mycar.gazebo





  
    
      false
      true
      20
      left_wheel_hinge
      right_wheel_hinge
      0.4
      0.1
      20
      mycar/cmd_vel
      odom
      odom
      chassis
    
  

  
      Gazebo/Orange
    
	
	
    Gazebo/Blue
  

  
    Gazebo/Blue
  


  
    Gazebo/Green
    
      30.0
      
        1.3962634
        
          800
          800
          R8G8B8
        
        
          0.02
          300
        
      
      
        true
        0.0
        mycar/camera1
        image_raw
        camera_info
        camera
        0.07
        0.0
        0.0
        0.0
        0.0
        0.0
      
    
  

  
  
    
      
      0 0 0 0 0 0
      true
      40
      
        
          
            720
            1
            -1.570796
            1.570796
          
        
        
          0.1
          30.0
          0.01
        
        
          gaussian
          0.0
          0.01
        
      
      
	
        /mycar/laser/scan
        hokuyo
      
    
  
	

mycar_materials.xacro




  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

  
    
  

接着在这个功能包中创建launch文件夹,在其中创建mycar.launch。这个文件是用于启动Gazebo仿真器并将创建好的移动机器人模型载入其中。

mycar.launch




   
  
  
  
  
  
  
  
    
    
    
    
    
    
  

  
  

  
  
  

这一句代码的意思是去mycar_description包的worlds文件夹中找mycar.world文件。所以在这里我们需要在mycar_description功能包中创建worlds文件夹,并在其中创建mycar.world文件。

mycar.world



  

  

    
      model://ground_plane
    

    
      model://sun
    

    
      
        4.927360 -4.376610 3.740080 0.000000 0.275643 2.356190
        orbit
      
    

  

建立完这些文件之后,对工作空间进行编译,具体操作如下:

cd ~/mycar_ws
catkin_make
source devel/setup.bash
roslaunch mycar_descripition mycar.launch

 【ROS学习】移动机器人建模仿真(1)_第1张图片

未完待续。。。

你可能感兴趣的:(ROS)