v-rep学习笔记(初学一)

本次学习过程基本按照 https://www.jianshu.com/p/b349e5c557c0  进行

V-rep简单介绍(整理)

1、

Vrep是一款动力学仿真软件,主要定位于机器人仿真建模领域,可以利用内嵌脚本、ROS节点、远程API客户端等实现分布式的控制结构,是非常理想的机器人仿真建模的工具。控制器可以采用C/C++, Python, Java, Lua, Matlab, Octave or Urbi等语言实现。目前大家可能更熟知的是Adams这款建模软件,的确Adams有很多的参考资料,而且国内推广的比较好,但是如果你稍微了解一下Vrep的话,就会深深地被他的亲和的画面和灵活的结构所吸引,再也不想回首学习adams的痛苦经历了。在这里隆重的向大家介绍Vrep这款软件,后续我将将我的一些学习心得逐渐整理出来,让大家能够快速入门。(from monkey61)

2、

 V-REP(Virtual Robot Experimentation Platform),是全球领先的机器人及模拟自动化软件平台。V-REP让使用者可以模拟整个机器人系统或其子系统(如感测器或机械结构),通过详尽的应用程序接口(API),可以轻易的整合机器人的各项功能。V-REP可以被使用在远程监控、硬件控制、快速原型验证、控制算法开发与参数调整、安全性检查、机器人教学、工厂自动化模拟及产品展示等各种领域。

  之前用过多体动力学仿真软件ADAMS,现在再来学V-rep感觉很不习惯,界面和操作方式都有很大的差异,毕竟ADAMS是一个成熟的商业软件而V-rep只是一个开源软件。但V-rep好在编程很方便,支持多种编程语言(lua,python,C/C++,MATLAB,java等),还可以和ROS连接。国内的V-rep用户应该不是很多,网上关于V-rep的中文资料也几乎为零,而官方的教程对我这种菜鸟来说又太过高级。所以先自己慢慢摸索吧,下面将自己的学习过程记录下来,以免以后忘记...(xxxx已失联:http://home.cnblogs.com/u/21207-iHome

3、。V-REP是机器人仿真界的“瑞士军刀”,其功能之丰富可以满足绝大多数仿真需求。https://zhuanlan.zhihu.com/p/32788790   有较为详细的背景介绍

 



 

  1. 模型搭建-一个简单的移动小车

       小车的万向轮即通过添add一个球体sphere,两个驱动后轮add两个cylinder,注意动力学参数!!

     2、贴纸通过三维建模软件导入,依附于实体(操作方法见链接)

     3、车体、万向轮、后驱动轮的刚性连接其实也是一种“依附”,将他们作为车体的子部分就行--即实现了刚性连接

     4、用脚本控制小车运动,Vrep中是Lua语言

          下面是一个简单设置后轮速度驱动小车的子脚本,包含GUI设置运动参数,基本方式是

下面是代码,理解下吧:

xml = [[
<ui closeable="true" onclose="closeEventHandler" resizable="true">
    <label text="Car control pan" wordwrap="true" />
    <group>
        <label text="Right wheel speed:"  wordwrap="true" />
        <spinbox minimum="-30" maximum="30" onchange = "Right_speed_set" />
        <label text="Left wheel speed:0" wordwrap="true" />
        <spinbox minimum="-30" maximum="30" onchange = "Left_speed_set" />
        <stretch />
    </group>
    
    <group>
        <button text="Start move" onclick = "Start_move" />
        <button text="Stop move" onclick = "Stop_move" />
        <stretch />
    </group>
    
</ui>
]]

function Start_move(h)
    Start_flag = true
    
end
function Stop_move(h)
    Start_flag = false
    
end
function Right_speed_set(ui,id,newVal)
    Right_vel = newVal
end
function Left_speed_set(ui,id,newVal)
    Left_vel = newVal
end

function closeEventHandler(h)
    simAddStatusbarMessage('Window '..h..' is closing...')
    simExtCustomUI_hide(h)
end

if (sim_call_type==sim_childscriptcall_initialization) then
    MotorHandle_Left=simGetObjectHandle('left_motor')
    MotorHandle_Right=simGetObjectHandle('right_motor')
    
    ui=simExtCustomUI_create(xml)
    Left_vel = 0
    Right_vel = 0
    Start_flag = false
end

if (sim_call_type==sim_childscriptcall_actuation) then
    if Start_flag then
        simSetJointTargetVelocity(MotorHandle_Left,Left_vel)
        simSetJointTargetVelocity(MotorHandle_Right,Right_vel)
    else
        simSetJointTargetVelocity(MotorHandle_Left,0)
        simSetJointTargetVelocity(MotorHandle_Right,0)
    end
end

if (sim_call_type==sim_childscriptcall_sensing) then
    
end

if (sim_call_type==sim_childscriptcall_cleanup) then
    simExtCustomUI_destroy(ui)
end

还有一些显示曲线的方法gragh的

自学状态机可以学习Matlab下的Stateflow

 

  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值