三 打造自己的机器人(在模拟器上面)

在这里我们将用到第二章安装的ROS,以及机器人仿真软件Gazebo来打造自己的机器人小狗,在这里先给出效果图~~比较先看到结果比较能提起读者兴趣~~ 至于如果有读者想做真正的机器人可以自行百度"ROS 制作 机器人"等关键词。不过实体机器人说白了还是那堆东西(几根铁加电机),比较花功夫的在写嵌入式那边,如果读者碰巧是大一二学生,或者有大把大把的时间(零基础的话半年到一年)不妨试着自己做一个实体机器人,会有很大收益哦。

第三四章的代码在这里 https://github.com/himlen1990/mytoy.git

 

三 打造自己的机器人(在模拟器上面)_第1张图片

 

 

这就是我们将要做的小狗机器人~~~是不是看起来很像一张椅子(笑),但是它可以动喔。

三 打造自己的机器人(在模拟器上面)_第2张图片

是不是已经迫不及待了呢?不用急,下面的步骤会让你崩溃的~~

-------------------------------------------------------分界线-----------------------------------------------------------------------------

首先我们需要创建一个ros package (在这里默认你已经看完第二章,知道如何去创建一个ROS包)

为了方便管理,我们创建一个urdf文件夹 (urdf是用来描述机器人的文件) ros的教程在这里:http://wiki.ros.org/urdf/Tutorials

在文件夹下面创建一个xxx.urdf文件 xxx是任意名字,比如说toydog.urdf

首先我们制造一个长方形





    
  
  
    
  
  
    
  

  
   
    
     
    

     
     
    
   

在这里:robot name是我们的机器人名字,material是我们定义颜色的地方,可以看到我们定义了蓝色黑色和白色。

接下来要做一个base_link,base_link可以看作是机器人的原点,或者说是树根节点,整个机器人关节间的关系可以用一个树状图表示,如下图:

三 打造自己的机器人(在模拟器上面)_第3张图片

 

在这里Link1就是相当于那个根节点,这样做是为了方便我们之后的动力学计算。到此我们可以运行下面命令看一下效果

roslaunch urdf_tutorial display.launch model:=你的路径/urdf/xxx.urdf

比如说在我电脑下的话那就是roslaunch urdf_tutorial display.launch model:=/home/himlen/mytoy_ros/src/mytoy/urdf/toydog1.urdf

如无意外我们会看到一个长方形

三 打造自己的机器人(在模拟器上面)_第4张图片

接下来我们把腿加上


  
   
     
     
    
     
    
    
   

  
    
    
    
    
    
  
  
   
    
     
    
     
     
    
   

  
    
    
    
    
    
  

咋一看很长,但实际上大部分内容是重复的。只需要粘贴复制就可以了,需要定义的地方是link的位置,还有joint的位置和转动轴,还有一些限制。对于没学过机械的同学在这里简单科普一下,link,顾名思义就是连杆,说白了就是一根硬的东西,或者叫做刚体,而joint是可以转动的,一般用电机驱动。因此我们的joint会连接两个link,在这底下还有一个axis属性,这个属性定义了joint绕哪个轴旋转,limit定义的是可以转的最大角度,还有扭矩和角速度等。 

需要注意的是每个link和joint必须定一个独有的名字,如果名字重复的话会报错

完整的描述文件(加上baselink的)如下:





    
  
  
    
  
  
    
  



  
   
    
     
    

     
     
    
   


  
   
     
     
    
     
    
    
   


  
    
    
    
    
    
  

  
   
    
     
    
     
     
    
   

  
    
    
    
    
    
  

 

 

运行一下,如无意外的话应该是这样子的:

 

三 打造自己的机器人(在模拟器上面)_第5张图片

接下来的工作就是简单重复劳动了,我们只需要在对称的位置上继续定义其他腿就OK了。

 

为了能让这个模型在gazebo上面运行,我们还需要加上其他属性,但基本都是粘贴复制的东西

比如说为每个link加上collision和inertial属性

每个joint加上transmission属性(加上以后才能控制这些关节转动)

在最后我们还需要加上gazebo 的plugin

 

完整的文件可以在我的github里面找到:

https://github.com/himlen1990/mytoy/tree/master/urdf/toydog.urdf

想在gazebo上面看效果的话可以把我github上面的文件拷贝下来编译以后执行

roslaunch mytoy test_urdf.launch

应该就能看到第一个图的效果了

你可能感兴趣的:(机器人从零开始)