【机械臂】解决在Rviz、gazebo仿真中模型显示不出的问题

一、urdf导出后如何在工作空间中运行

  sw导出urdf文件之后,将urdf文件夹复制到Ros工作空间中(home/catkin_ws/src/),然后运行。roslaunch gluon display.launch是具体的运行命令,里面的gluon需要替换成你自己SW导出urdf的文件夹名称。具体操作如下:

# 进入工作空间
cd catkin_ws
# 编译一遍
catkin_make
# 配置运行环境,工作空间加入新的工程之后都需要配置一遍环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
#运行的urdf,具体是运行lunch文件夹里display.lunch文件,里面的gluon需要替换成你SW导出urdf的文件夹名字
roslaunch gluon display.launch

工作空间中加入新的工程之后最好都配置一遍环境,不然在conda环境下会报错,或者直接退出conda环境来运行也可以,终端输入conda deactivate退出conda环境就好。

conda deactivate

否则,终端会出现如下报错:

[gluon-5] process has died [pid 3148, exit code 255, cmd /home/colonzyx/catkin_ws/devel/lib/gluon/gluon_node __name:=gluon __log:=/home/colonzyx/.ros/log/f5dbebbe-b434-11ee-8fca-bc0ff3604723/gluon-5.log].
log file: /home/colonzyx/.ros/log/f5dbebbe-b434-11ee-8fca-bc0ff3604723/gluon-5*.log

运行urdf之后,Rviz中没有模型,显示Fixed Frame [map] does not exist,解决方案如下:

二、Fixed Frame [map] does not exist问题解决方案

1、“Fixed Frame [map] does not exist”:看Global Options 当中的Fixed Frame ,是map。这时候世界坐标定义成map,单独运行sensor 节点不会生成世界坐标,机械臂定位不了自身的位置从而报错。

修改方案:点击Global Options的Fixed Frame里的选项,选成base_link就好了。

参考链接:【rviz】出现“For frame [laser]: Fixed Frame [map] does not exist”错误-CSDN博客

2、Fixed Frame里的选项没有base_link,这个时候的原因可能是:

(1)在conda环境里运行的。我是在miniconda的base环境下运行出现这个错误,我输入conda deactivate退出conda环境就可以正常加载出来;

(2)没有配置好环境。工作空间加入新的工程之后都需要配置一遍环境,source ~/.bashrc命令运行完之后会自动跳转回base环境哦,意思就是环境配置好后conda环境下也可以正常加载

# 配置运行环境,工作空间加入新的工程之后都需要配置一遍环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

正常加载完之后效果如下:此时终端有黄色[WARN]

三、[ WARN] [1705381171.053750954]: 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.解决方案

 这个警告的意思是:根关节的base_link在urdf中具有惯性参数,但是KDL不支持。此时在URDF中增加一个额外的dummy link就可以解决。

打开URDF文件夹中的xxxx.urdf,在<linkname="base_link">的前一行添加以下信息:

<link name="dummy">
  </link>
  <joint name="dummy_joint" type="fixed">
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
     <parent link="dummy"/>
     <child link="base_link"/>
   </joint>

再次运行roslaunch xxxx display.launch之后,没有报错也没有警告:

参考链接:Gazebo仿真WARN-The root link base_link has an inertia specified in the URDF, but KDL does not support-CSDN博客

但是出现了新的问题,Rviz中没有机械臂模型

四、没有报错和警告但Rviz中模型是空的问题解决方案

这个时候不要紧张,查看Rviz左侧框里是否缺了一个robotmodel,没有的话点开左下角Add,

然后把RobotModel勾上就好啦。

这是正常的效果哦。

如果没有RobotModel的话估计就是SW模型的问题或者URDF导出的问题了。

五、URDF导出和转为xacro的操作推荐链接:

从零开始的机械臂yolov5抓取gazebo仿真(二)_realsense_ros_gazebo 相机-CSDN博客

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值