gazebo中仿真模型搭建相关总结

具体过程可参考:
从零开始的ROS机械臂,边学边做03-SW2URDF篇  https://www.jianshu.com/p/040635e4d8c8

Solidworks 2016中导出URDF文件 https://www.cnblogs.com/21207-iHome/p/7821269.html

Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学  https://blog.csdn.net/gpeng832/article/details/73917487

 

相关总结:

 



## SolidWorks中,仿真模型的相关设置
- 建立轴和坐标系需要在装配体环境下,零件环境下建立的轴和坐标系不能在导出时使用(坐标系之间的相对关系错乱);
- 其它软件生成的中性文件,也可在solidworks中组装后,用sw2urdf插件导出urdf文件;

- 1.子连杆必须指定,否则在previe and export时,会报错:“未将对象引用设置到对象的实例”;
- - 对于末端参考点,可建立一小物体,嵌入、固联于末端连杆;

- 关节类型为fixed,其轴线可以不指定,但关节名必须给定,否则previe and export时,会提示;


- 设置完所有link和joint,选择导出,如果关节是旋转关节,则需要设置限制参数;

- 默认生成的package.xml里的email是不合法的,要改成合法的,如;
- display.launch文件里的里的False改为True,否则无法打开Joint State Publish工具;

- 启动display.launch以后,在rviz的界面中将Global Options下的Fixed Frame 由map改为base_link(自己定义的基座的名字);
- Joint axis的方向定义在Joint frame中,而Joint frame(即子坐标系)则相对于其父坐标系Parent frame定义;



- 错误: (使用rviz中,使用motion plan选项时)
[ERROR] [1531378477.804970828]: Robot semantic description not found. Did you forget to define or remap '/robot_description_semantic'? 
原因:没有运行moveIt! 
请先运行MoveIt!


- gazebo.launch,打开时,各关节未定义驱动;直接在重力作用下自由晃动;
- - 需在urdf文件中,增加gazebo中的相关配置;

- _control package
- - 定义每个关节控制器,控制器种类、pid参数等
- - 仿着写!


[ WARN] [1572440451.309709717]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.
- - 注释掉URDF文件中 base_link的...属性部分;会报错,不行!
- - 以下是个解决方案:增加dummy link
- - 若不root link 不是dummy link,则KDL计算动力学时,也会将该root link包括在内,整体会晃动、未固定!

   

    
      
      
      
    
    
      
      
                   
      
    
    
      
      
      
      
    
  
  
     
     
   



- 末端参考点,如TCP和fingertip,也可通过增加虚拟连杆的形式增加;












 
- 此处 -z 0.2  是将仿真模型放置于环境中(0,0,200mm)处; -r 还不知具体含义?


先启动display.launch再启动gazebo.launch,Rviz中RobotModel项就会有如下报错:
突然报错:Status erro
- No transform from [link0_left] to [base_link]
sudo apt-get install unicode  后,也会出现该情况;未解决?

# 异常:
- 设置完各关节的控制器以后,gazebo中打开,零件飞起、散落
- - 不加控制器时,不会飞落;应该是控制器相关参数设置导致的;
- - 由于采用的是effort_controllers/JointPositionController,涉及到力控
- - - 调节PID参数和各连杆转动惯量;
- - -  转动惯量放大1.0E-04 到 1.0E-05倍
- - - 给定目标关节角,看是否有超调现象,调节PID参数;


control 依赖于 robot_description;





# 检查URDF语法:在urdf文件所在目录打开终端: check_urdf two_finger_module.urdf 
robot name is: two_finger_module
---------- Successfully Parsed XML ---------------
root Link: base_link has 2 child(ren)
    child(1):  link0_left
        child(1):  link1_left
            child(1):  link2_left
                child(1):  link3_left
                    child(1):  link4_left
                        child(1):  tip_left
    child(2):  link0_right
        child(1):  link1_right
            child(1):  link2_right
                child(1):  link3_right
                    child(1):  link4_right
                        child(1):  tip_right

 

你可能感兴趣的:(ROS)