【应用背景】
根据工程要求,需要把一些试验设备具象化到 Rviz 界面中进行示意,通过调研发现,Rviz 有两种方式可以显示模型纹理:
1、通过 robot_description 发布URDF模型描述
2、通过 visualization_msgs::Marker 发布MESH模型描述
这里主要讲述第二种
【系统环境】
Ubuntu 18.04
ROS Melodic
Blender 2.78
【软件安装】
- 首先进入下面官网,找到 Blender 2.78 的linux版本并下载到本地
- 下载下来之后,只需要解压提取出来,并双击 blender 图标即可打开软件
【正式流程】
- 打开 blender
- 设置单位 --> 米
- 设置大小 --> 按 N 调出属性面板
- 选择需要贴纹理的模型面 --> 编辑模式、线框、面
- 进入UV贴图模式 --> 右键选中上表面,按 U ,展开;上方选择UV Editing模式
- 选择图片进行贴图 --> 左下选择“图像”——打开图像
- 导出dae文件 --> 左上“文件”,“导出”,“Collada”,“包括UV贴图”,“包括材质贴图”
- 编写c++代码,发送dae纹理到rviz中
visualization_msgs::Marker marker;
marker.scale.x = 0.7;
marker.scale.y = 0.7;
marker.scale.z = 1.0;
marker.lifetime.sec = 10000;
marker.type = visualization_msgs::Marker::MESH_RESOURCE;
marker5.mesh_resource = "file://" + pkg_path_ + "/rviz/mesh/mk.dae";
marker5.mesh_use_embedded_materials = true;
marker5.header.frame_id = "/map";
marker5.pose.position.x = 2;
marker5.pose.position.y = -3;
marker5.pose.orientation = tf::createQuaternionMsgFromYaw(-pi/2.0);
- 结果展示
【完结撒花】
点个关注不迷路哦!谢谢捧场