关于机器人在Gazebo中不报错,且不能移动问题

项目场景:

关于机器人在Gazebo中不报错,且不能移动问题


问题描述

  1. 设置好Gazebo端控制器及其配置,并且在Moveit端设置好对应配置
  2. 使用launch文件打开Gazebo和Moveit,所有控制器启动成功
  3. 使用Moveit设置target,在rviz中可以看到机器人顺利plan,并且terminal log中显示execution succeed.
  4. 但是Gazebo中的机器人模型却不移动,并且Moveit端和Gazebo端都没有报错。

原因分析:

这种情况是urdf的模型参数问题。我的问题在于urdf中link标签下inertia中的数值太小,所以机器人几乎不移动。或许有及其微小的移动,但是很难察觉到,这也是Gazebo端不报错的原因。


解决方案:

将inertia中的ixx,iyy,izz调大,发送命令后机器人关节成功驱动。


更新

后面又遇到了这个问题,但这次我希望不改变关节的质量和惯性参数以达到真实仿真的目的。这次我重新分析了模型,根本原因在于模型质量过大,而urdf中的effort limit设置过于小。比如我自己的整个机器几十公斤,一个部件就有几公斤,但是此时我的effort limit设置还是1,肯定是无法把机器人带起来了,具体代码如下:

         //urdf中的关节limit设置过于小,输出力上限就是1

当我把limit的值设定大一些,机器人就能够动起来了,我觉得这才是比较好的解决方法。
另外,当机器人的质量过大时,我们还得调节控制器中的pid参数,才能够让机器人达到良好的运行效果。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部