将solidworks装配体模型导入webots并进行控制

参考文章:
https://blog.csdn.net/qq_33816775/article/details/106208612

需要使用两个工具:
一个是SolidWorks的插件solidworks_urdf_exporter
另一个是webots官方提供的URDF2WEBOTS

solidworks_urdf_exporter之前使用过,在Solidworks中建模 ,导出URDF文件,并在ros中使用
1:导出urdf文件
首先建模,做出装配体。
将solidworks装配体模型导入webots并进行控制_第1张图片
然后在工具→File→Export as URDF中打开导出对话框
base_link选择,其有一个子节点
将solidworks装配体模型导入webots并进行控制_第2张图片
点击Empty_Link设置子节点,将其命名为Link1,JointName设置为 joint1,这个名字就是之后在webots中的电机名字
将solidworks装配体模型导入webots并进行控制_第3张图片
再设置其子节点
将solidworks装配体模型导入webots并进行控制_第4张图片
然后点击Preview and Export,打开设置面板,
将solidworks装配体模型导入webots并进行控制_第5张图片
在Joint界面要确定Axis栏都赋值了,然后Next
将solidworks装配体模型导入webots并进行控制_第6张图片
在Link界面中 Material name一栏必填,随便写个名字,空着的话在webots无法显示模型。
然后点击Export URDF and Meshes ,则导出了urdf文件。导出时文件名不能以数字开头。

在导出设置中有个问题,如是导出的原点不在模型上,则在webots中使用该模型时会有问题,一般在solidworks中装配体插入零部件时第一个零件会默认与原点相关,但如果最后原点不在模型上
,可以让装配体base_link上一点与导出后生成的origin_global重合配合,再重新走一遍导出设置。将solidworks装配体模型导入webots并进行控制_第7张图片

2:URDF文件导入 webots环境

其中urdf文件夹目录下是生成的URDF文件。

导入webots环境需要使用的是webots官方提供的URDF2WEBOTS工具。 工具需要python环境。

安装方法

pip install urdf2webots

使用方法

from urdf2webots.importer import convert2urdf
convert2urdf('G:\\模型\\link_mesh\\urdf\\link_mesh.urdf')

运行该命令会在运行目录下生成对应的proto文件。
打开webots,新建一个项目,将proto文件放入该项目的protos文件夹
然后在webots中点击新增,在 PROTO nodes中将模型加入webots环境。
将solidworks装配体模型导入webots并进行控制_第8张图片
将solidworks装配体模型导入webots并进行控制_第9张图片
3:代码控制模型
之前设置的JointName就是motor的名字。

#include 

// Added a new include file
#include 

#define TIME_STEP 64
#define MAX_SPEED 6.28
// All the webots classes are defined in the "webots" namespace
using namespace webots;


int main(int argc, char **argv) {
 Robot *robot = new Robot();
 
  Motor *motor_1 = robot->getMotor("joint1");
  motor_1->setPosition(INFINITY);
  motor_1->setVelocity(1);
   
  Motor *motor_2 = robot->getMotor("joint2");
  motor_2->setPosition(INFINITY);
  motor_2->setVelocity(1);
   

 while (robot->step(TIME_STEP) != -1)
 {
 
 }

 delete robot;

 return 0;
}

将控制器放到模型的controller上,运行,就可以控制了。
将solidworks装配体模型导入webots并进行控制_第10张图片

你可能感兴趣的:(webots)