从零开始的仿真之旅——在Ubuntu下配置V-Rep仿真平台下的搭载ROS系统的机器人仿真

来源:互联网 发布:php实现网络爬虫 编辑:程序博客网 时间:2024/05/18 18:55

目录

    • 目录
    • 第一步 在Windows下完成下列步骤
    • 第二步 安装并配置Ubuntu1604LTS
    • 第三步 安装仿真软件V-rep V-REP 340
    • 第四步 安装ROS
    • 第五步配置RosInterface
    • 第六步配置vrep_ros_bridge可选
    • 第七步运行仿真
    • 其他遇到的问题
      • E1 ros中图像上下颠倒的问题
      • E2 激光传感器穿墙问题
      • E3 3d地图在vrep中拖动是会闪线条很粗糙成锯齿形
      • E4 生成3d地图后地图能明显地看出由一个个三角形组成
      • E5 机器人和场景mesh不能相撞而是直接穿过
      • E6 用vrep自带的2D激光雷仿真特别卡
    • 附录

第一步 在Windows下完成下列步骤

  1. 分区。将需要分给Linux系统的空间单独划分出来(100G+)**
  2. 下载并制作Ubuntu16.04的U盘启动盘

第二步 安装并配置Ubuntu16.04LTS

  1. 安装双系统。先重启电脑,启动时按F12进入U盘启动。选择刚才分出来的磁盘进行分区创建等后续操作。分区的可行方案如:
分区 空间分配 / ext4 Pri- 总空间的1/3 /boot ext4 Logi- 200M swap swap Logi- 4G /home ext4 Logi- 剩余空间

2. 修改更新源。可搜索“ubuntu16.04源”,根据指引更改 sources.list内容,并联网更新。

可参考:http://www.genshuixue.com/i-cxy/p/15379828

关于联网: 在Ubuntu系统下难以连接有线网的情况下(如公司环境),可外接 USB无线网卡解决问题。

第三步 安装仿真软件V-rep (V-REP 3.4.0+)

  1. 将(下载 / 拷贝)来的V-REP_PRO_EDU_V3_4_0_Linux.tar.gz文件解压到home
  2. 修改文件夹名字(建议简短,方便呼叫。如 vrep)
可以启动试试:$ cd vrep/$ ./vrep.sh
 3.  现在可以参考手册学习啦!

该软件的详细手册可见:http://www.coppeliarobotics.com/helpFiles/
建议多看Shortcuts、Command line、Tutorials

第四步 安装ROS

  • 我们选择的是ROS Kinetic Kame ,点开链接按照指示即可安装。
  • 继续学习:http://wiki.ros.org/ROS/Tutorials
    • 需要至少完成beginner level。
    • 关于这点,在V-REP User Manual中的ROS tutorial 有提到

第五步:配置RosInterface

  • RosInterface是V-rep官方推荐的用来跟ROS通信的插件
  • 将 /VREP/compiledRosPlugins 中的libv_repExtRosInterface.so库复制到/VREP下,再启动。
    • 若遇到下面问题,需要重新编译该库:

Plugin ‘RosInterface’: loading… /home/bamboohuang/vrep/vrep: symbol
lookup error: /home/bamboohuang/vrep/libv_repExtRosInterface.so:
undefined symbol: _ZN3ros4initERiPPcRKSsj

  • 重新编译该库的流程:

    • 首先需要安装一些相关的软件包:
      sudo apt install git cmake python-tempita python-catkin-tools python-lxml default-jre xsltproc
    • 参考V-REP User Manual 中的ROS tutorial – Indigo。

      FYI:生成的文件主要在/devel/lib和 /src//bin中

    • 参考V-REP User Manual → writing code in and around V-REP → V-REP API framework → ROS interface

  • 若遇到问题:

    Plugin ‘RosInterface’: loading… ROS master is not running. Cannot
    start ‘ROS’ plugin.

    请先启动ROS,再启动V-REP (即应先执行 roscore命令,再执行vrep.sh)

  • 若遇到问题

    Plugin ‘RosInterface’: loading… this plugin requires at least V-REP
    3.4.0 rev9

    你使用的应该是github上最新的版本,这对V-REP的版本要求较高。建议参考上面提到的ROS tutorial–Indigo,直接用自带的vrep/programming/ros_packages中的文件复制到catkin_ws/src/下进行编译;
    当然也可以下载最新版本V-REP:www.coppeliarobotics.com/files/tmp

  • 若遇到下面问题,原因可能是没有正确安装interface:

    Lua runtime error: [string “SCRIPT **“]:32: attempt
    to call global ‘simExtRosInterface_publish’ (a nil value) stack
    traceback: [string “SCRIPT **“]:32: in main chunk

  • 打开vrep 时若显示下面方框内的内容,则说明RosInterface 安装成功:
    这里写图片描述

第六步:配置vrep_ros_bridge(可选)

  • vrep_ros_bridge是ROS官方推荐的用来跟V-rep通信的插件,所有需要的文件与相关指引都可以查看github:https://github.com/lagadic/vrep_ros_bridge
  • 安装步骤按照上面网址中的InstallationPlugin部分进行即可。如果不知道如何建立catkin workspace,可以回到第四步复习。
  • 打开vrep 时若显示下面方框内的内容,则说明RosInterface 安装成功:
    这里写图片描述
    根据需求可做安装上的调整,可能会有细微差别。
    安装后可对照历例程测试:http://wiki.ros.org/vrep_ros_bridge#Installation_test

第七步:运行仿真

  • 首先运行roscore,然后打开vrep,确保所有上述插件安装并加载成功。
  • Open scene ,可以打开对应的 .ttt 文件。如果已经有现有工程,可以打开对应的ttt;没有的话,可以打开软件目录下的例程(参考Tutorial)

  • 此时可以尝试在ROS侧获取vrep场景中的传感器数据,可以尝试下面的语句:
    (注意将“/”后的topicname替换成自己的)

 rostopic list rostopic echo /laser_radar  rqt_image_view 或者 rosrun image_view image_view image:=/zed_depth_image(为什么看到的图像是颠倒的?解决方案见E1)
  • 控制量的输入
    rosrun rqt_publisher rqt_publisher 

其他遇到的问题:

E.1 ros中图像上下颠倒的问题

  • 问题原因:传输的data是字符串,ros收到后按照数组的方式转换为矩阵。
  • 解决方案:可以在传输前对要传输的数据进行预处理,“颠倒”了再发送给ROS。
    可以参考后面附录里的Lua参考手册。
    这里写图片描述

E.2 激光传感器穿墙问题

这里写图片描述
- 原因是范围参数设置不对。如下所示参数太大,改小到正常值就行。
这里写图片描述

E.3 3d地图在vrep中拖动是会闪,线条很粗糙,成锯齿形

  • 问题原因:vrep中显示使用opengl进行渲染的,opengl存储的数据为float型,如果使用的是double类型的,就会发生数据的截断。
  • 解决方案:将数据改用float类型存储

E.4 生成3d地图后,地图能明显地看出由一个个三角形组成

  • 问题原因:用两个三角形去表示一个四个点组成的面时,没有考虑面的方向问题,导致生成的三角形方向不一致
  • 解决方案:在生成.obj文件时,由f行代表的边使其顺时针或者逆时针保持一致,从而使得生成的三角形面方向一致

E.5 机器人和场景mesh不能相撞,而是直接穿过

  • 问题原因:相关属性没有设置正确
  • 解决方案:分别设置机器人和场景的如下属性:Shape->Show dynamic properties dialog,勾选Body is respondable,同时勾选Local responable mask,使两者有重合部分即可。

E.6 用vrep自带的2D激光雷,仿真特别卡

  • 问题原因:该激光雷达激光雷达是用一个joint和一个测距传感器然后转动扫描构成,扫描使得速度变慢。
  • 解决方案:可以换成Hokuyo URG 04LX UG01_fast.ttm模型。该激光雷达是由两个只有一行的深度摄像头组成,速度快很多。

附录

(一些或许对你有用的链接)

Ubuntu常用快捷键:

Ctrl+Alt+T
Alt+Tab
长按super可以看到快捷按键提示 : )

安装中文sogo输入法:
http://blog.csdn.net/u013894834/article/details/60357071
更新源
http://www.genshuixue.com/i-cxy/p/15379828
V-REP下载
http://www.v-rep.eu/downloads.html
V-rep手册
http://www.coppeliarobotics.com/helpFiles/
ROS安装
ROS Kinetic Kame:http://wiki.ros.org/kinetic/Installation
ROS Tutorials
http://wiki.ros.org/ROS/Tutorials
vrep_ros_bridge
https://github.com/lagadic/vrep_ros_bridge
Create a ROS Workspace (catkin)
http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment
roscore err: IOError: [Errno 13] Permission denied
http://blog.csdn.net/yngki/article/details/53098804
Lua 5.3 参考手册
http://cloudwu.github.io/lua53doc/contents.html
Lua的string和string库总结:
http://www.cnblogs.com/zrtqsk/p/4372889.html

特别感谢徐宽的支持与帮助~

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 摩拜单车手机号注销了怎么办 摩拜单车手机号码换了怎么办 摩拜单车换手机号码打不开怎么办 摩拜单车丢了怎么办 摩拜单车忘锁了怎么办 透明手机壳粘指纹怎么办 tpu手机壳变黄了怎么办 0pp0手机声音小怎么办 橡胶皮套晒坏了怎么办 宝宝晚上吹空调发烧怎么办 玩手机手指尖疼怎么办 手机型号不支持微信运动怎么办 手腕向下压会疼怎么办 手腕韧带拉伤怎么办恢复快 华为手机用车载充电慢怎么办 华为麦芒6充电慢怎么办 oppo手机压弯了怎么办 麦芒5电池不耐用怎么办 华为7x照相模糊怎么办 华为麦芒6照相虚怎么办 荣耀8gps信号弱怎么办 华为麦芒4手机卡顿怎么办 华为麦芒4玩游戏卡怎么办 sim卡换卡通讯录丢了怎么办 换sim卡通讯录怎么办 麦芒4开不了机怎么办 麦芒5开不了机怎么办 麦芒6针丢了怎么办 麦芒6扬声器坏了怎么办 华为手机2s太卡怎么办 华为麦芒6网速慢怎么办 华为麦芒5太卡怎么办 小米note3拍照反应慢怎么办 华为刷机后还要账号密码怎么办 刷机后忘记华为账号和密码怎么办 荣耀7x耗电快怎么办 小米2s死机后怎么办? 电信合约卡不想用了怎么办 vivo合约机掉了怎么办 华为合约机丢了怎么办 两年合约机掉了怎么办