ROS之初学URDF

初学ROS(一)之URDF

首先在下小白刚开始学ROS,写此是为了记录和帮助有可能遇到和我一样问题的人,大佬有问题请指出  0.0

可能大部分人都像我这样穷学生没钱买ROS支持的机器人,不过ROS还是很Nice的考虑到了这一群体,提供了模拟器支持。(明明是为了更快速的软件开发,喂!)

本想从ROS网站的培训教程开始http://wiki.ros.org/urdf/Tutorials开始的,不过本着实践为本的目的,我们还是以《Learning ROS for Robostic Programming》为基础吧。

参考文献

1.ROS学习之URDF

2.ROS urdf教程

2. 《Learning ROS for Robostic Programming》

3.urdf 学习笔记一     一篇不错的教程(小车):

软件环境

ubuntu 16.04 lts

ros kinetic full package

准备工作

安装urdf_tutorial包

$sudo apt-get install ros-kinetic-urdf-tutorial
$roscore
$rosrun rviz rviz
新建工作区和包
$mkdir -p ~/catkin_ws/src                                  #创建catkin工作环境
$cd ~/catkin_ws/src                                        #来到src目录
$cd  ..                                                    #来到catkin_ws目录下
$catkin_init_workspace
$catkin_make
更新环境配置
$source devel/setup.bash
创建Rospackage命名为smartcar:在src目录下面执行以下操作
$catkin_create_pkg smartcar std_msgs rospy roscpp urdf    #创建这些格式的目录
在smartcar文件夹中创建launch和urdf分别来存放.launch文件和.urdf文件

当然,没有运行roscore你的rviz也无法启动。不过如果错误显示你的rviz找不到执行文件的话

学习写urdf有几个地方需要注意

  • 一定要记住它使用的是右手坐标系。x正方向朝左, y 正方向向内, z轴正方向朝上
  • 构建树结构, 即写link和joint
  • 每个link的参考坐标系都在它的底部,并与关节的参考坐标系正交,为了添加尺寸,需要指定偏移从一个link到它的关节的子link, 这通过添加origin到每个节点解决。
  • 这么说origin表示的是关节相对于父关节的距离和旋转, xyz和rpy

建模使用参数

  1. tag描述各个部件;

eg: 

  1. tag描述各个关节;

eg:

  

      

      

    

  1. >和描述关节连接的部件;
  2. tag 定义一个link的外观,大小,颜色和材质纹理贴图;用来描述模块的视觉效果;
  3. 定义: 定义了几何形状为一个立方体,三个参数分别为长宽高,单位是米(m). 这里我们指定下层小车板子的板的尺寸。可以有好几个选项: 立方体  圆柱体  球体

  

      

        

          

        

        

      

    

  1.  定义惯性;
  2. tag 用来描述模块的形状和大小;
  3. <origin>tag用来描述模块的位置;
  4. 使用<material> tag并且设置<color> tag     上色
  5. <material> 指定颜色rgb和透明度a.  它们取值范围都是[0,1] 区间。

代码示例:第一个部件必须是base_link非常重要

  
    
      
         
           
         
         
         
           
         
      
    
  
    
      
        
          
        
        
        
          
        
      
    
  
    
      
        
          
        
        
        
      
    
  
    
      
        
          
        
        
        
      
    
  
    
      
        
          
        
        
        
      
    
  
    
      
      
    
  
    
      
      
    
  
    
      
      
    
  
    
      
      
    
 

我们可以用如下命令来检查urdf文件是否有语法问题。 

check_urdf 01_skeleton.urdf  

只要得到如下结果就表明语法没问题。 

robot name is: test_robot  
---------- Successfully Parsed XML ---------------  
root Link: base_link has 4 child(ren)  
    child(1):  wheel_1  
    child(2):  wheel_2  
    child(3):  wheel_3  
    child(4):  wheel_4  

现在通过如下命令,你就通过rviz查看你的小车模型啦。

roslaunch  smartcar_description  base.urdf.rviz.launch  gui:=true

 

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