将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文件
首先建模,做出装配体。
在这里插入图片描述
然后在工具→File→Export as URDF中打开导出对话框
base_link选择,其有一个子节点
在这里插入图片描述
点击Empty_Link设置子节点,将其命名为Link1,JointName设置为 joint1,这个名字就是之后在webots中的电机名字
在这里插入图片描述
再设置其子节点
在这里插入图片描述
然后点击Preview and Export,打开设置面板,
在这里插入图片描述
在Joint界面要确定Axis栏都赋值了,然后Next
在这里插入图片描述
在Link界面中 Material name一栏必填,随便写个名字,空着的话在webots无法显示模型。
然后点击Export URDF and Meshes ,则导出了urdf文件。导出时文件名不能以数字开头。

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

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环境。
在这里插入图片描述
在这里插入图片描述
3:代码控制模型
之前设置的JointName就是motor的名字。

#include <webots/Robot.hpp>

// Added a new include file
#include <webots/Motor.hpp>

#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上,运行,就可以控制了。
在这里插入图片描述

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值