Webots安装,及urdf转webots,通过3d模型获取Proto_indexedFaceset数据,MoveIt机械臂路径规划

Webots安装

Webots包含三种不同的软件包类型:.deb(Debian软件包),.tar.bz2(tarball软件包)和.snap(快照软件包)。我们在资料中提供了.deb安装包。如果需要其他版本的可以在网盘上下载,在Github下载大文件会很不稳定。

sudo dpkg -i webots_2020a-rev1_amd64.deb
sudo apt-get -f install

我们需要配置环境变量webots_home,指向到我们安装的应用目录。

sudo gedit ~/.bashrc

 

export WEBOTS_HOME=/usr/local/webots
export webots_home=/usr/local/webots

测试安装(执行命令)

webots

帮助文档

官方教程:https://cyberbotics.com/doc/guide/tutorials

本地帮助文档在应用的安装目录下,docs的文件夹中。目前的帮助文档无法直接打开,我们需要进行额外的配置。

  • 帮助文档资源

打开帮助文件文件夹。

  • 服务启动

    python -m http.server 8000

     

python2启动服务器

python -m SimpleHTTPServer 8000

python3启动服务器

python -m http.server 8000

文档访问路径

用户手册地址: http://localhost:8000/?url=&book=guide
API手册地址: http://localhost:8000/?url=&book=reference
汽车手册地址: http://localhost:8000/?url=&book=automobile

UR3机械臂Proto制作

当完成一个模型的建立工作后,为了方便后面的管理,我们可以将模型制作成Proto文件。在官方给出的案例中我们可以查看UR系列机械臂的Proto文件。projects\robots\universal_robots

问题:

机械臂头尾的处理方式?

  1. toolSlot属性,用于添加工具节点,新的工具节点将连接在机械臂的末端。

  2. staticBase属性,用于处理基座。

 

3d模型文件为:.dae.stl.step 生成Proto_IndexedFaceSet信息

dae和stl文件处理

使用Blender将模型(dae和stl)导出为.obj文件,然后使用view3dscene工具完成转化。模型文件可以在GitHub上获取。

工具安装

sudo apt-get update
sudo apt-get install view3dscene

转换

view3dscene --write your_model.obj > your_model.wrl

注意:

在导出为.obj文件时,需要观察Webots中坐标系的方向。

 

step文件处理

我们可以在C4D、3ds Max、SolidWorks等应用加载,然后转化为VRML文件。

 

 

 

这种直接导出的方式在C4D、3ds Max、SolidWorks中均可以实现。

提示:

如果使用的是Ubuntu18的话,C4D有可以的版本安装。

 

通过urdf生成的是*.proto文件

对于已有或只有urdf文件的情况下,我们可以通过urdf2webots功能包实现。在资料中提供给大urdf2webots工具,在urdf2webots目录下终端执行如下命令:

pip install -r requirements.txt

 requirements.txt

pycollada==0.6
Pillow

 

工具使用

python urdf2webots.py --input=your_robot_path.urdf

生成的是*.proto文件,文件在urdf2webots文件夹中,我们可以导入到自己项目中。

注意

生成的proto文件中robot配置没有设置boundingObject信息,我们需要单独配置。

 

MoveIt!机械臂路径规划

前的机械臂控制是我们自己已经写好的位置信息,如果想要进行路径规划,我们需要与其他的工具联合在一起。可以通过将Webots中的world改造为ROS中的一个节点(通过ros控制器,它是被预编译过的控制器,通常情况下能满足我们大多数需求,只有在特殊需求下我们才会去使用自定义的ros控制器),这样就可以通过ROS完成与多工具的联动。

 

webots_ros

Webots提供了 webots_ros 包,官方的文档中仅说明了在Linux下的ROS melodickinetic 两个版本测试。当前使用的是kinetic版本的Ros。

 

webots_ros包下载

sudo apt-get install ros-melodic-webots-ros

kinetic或melodic

案例运行

roslaunch webots_ros e_puck_line.launch

案例说明:

webots.launch

<?xml version="1.0"?>
<launch>
  <arg name="world" default="" doc="Path to the world to load"/>
  <arg name="mode" default="realtime," doc="Startup mode"/>
  <arg name="no-gui" default="false," doc="Start Webots with minimal GUI"/>
  <node name="webots" pkg="webots_ros" type="webots_launcher.py" args="--world=$(arg world) --mode=$(arg mode) --no-gui=$(arg no-gui)" required="true"/>
</launch>

webots_launcher.py

optParser = optparse.OptionParser()
optParser.add_option("--world", dest="world", default="", help="Path to the world to load.")
optParser.add_option("--mode", dest="mode", default="realtime", help="Startup mode.")
optParser.add_option("--no-gui", dest="noGui", default="false", help="Start Webots with minimal GUI.")
options, args = optParser.parse_args()

if 'WEBOTS_HOME' not in os.environ:
    sys.exit('WEBOTS_HOME environment variable not defined.')
command = [os.path.join(os.environ['WEBOTS_HOME'], 'webots'), '--mode=' + options.mode, options.world]
if options.noGui == 'true':
    command.append('--stdout')
    command.append('--stderr')
    command.append('--batch')
    command.append('--no-sandbox')
    command.append('--minimize')

subprocess.call(command)

 

MoveIt!使用

在官方文档中我们可以看到UR机械臂与MoveIt!的联动案例

除了官方文档中提到的需要复制的ur_e_webots外,还需要在https://github.com/ros-industrial/universal_robot下载ur5_e_moveit_configur_e_description

  • 启动Webots的ure.wbtworld,修改UR5e的控制器为universal_robots_ros。也可配置launch进行启动。

  • sudo apt-get isntall ros-kinetic-moveit

    加载ur机械臂的URDF文件

roslaunch ur_e_webots ur5e.launch
  • MoveIt!启动

roslaunch ur5_e_moveit_config ur5_e_moveit_planning_execution.launch

ERROR:cannot launch node of type [moveit_ros_move_group/move_group]: moveit_ros_move_group 

原因:没有安装moveit

解决方法:


首先照例更新源

sudo apt-get update

kinetic 版:

sudo apt-get install ros-kinetic-moveit

Melodic 版:


sudo apt-get install ros-melodic-moveit
  • Rviz启动

roslaunch ur5_e_moveit_config moveit_rviz.launch config:=true

 

如果控制其他机械臂下载对应的URDF和MoveIt!即可。

 

在使用Webots进行小车路径规划时,可以结合ROS来实现。首先,需要安装webots_ros软件包,只需在Ubuntu下安装额外的包webots_ros即可。然后,通过webots.launch运行脚本webots_launcher.py来启动Webots。 接下来,您可以使用ROS的topic接口来进行路径规划和SLAM。在ROS中,您可以创建一个callback函数来处理ROS消息,并在其中进行坐标系的矫正,以解决ROS默认坐标系和Webots不同的问题。在这个工程中,可以直接给小车一个速度向前行进,以演示路径规划的过程。 此外,在编译完成后,您需要先运行mob.launch(gmapping),然后再运行orb3.launch(orb3),以实现SLAM功能。请注意,工程中可能会包含一些以前没见过的消息格式(.msg)或ROS服务(.srv)文件,不要过于关注这些细节。 综上所述,使用Webots进行小车路径规划可以结合ROS来实现,通过安装必要的软件包、启动Webots和处理ROS消息,您可以实现路径规划和SLAM功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Webots小车与Gampping建图仿真与ORB3算法实践](https://blog.csdn.net/qq_37389133/article/details/118969537)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值