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



  
  
  
  

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!即可。

 

你可能感兴趣的:(c++,python,ros,Webots)