V-REP Remote API(C++)实现简单的关节转动
基础内容参考:https://www.cnblogs.com/eternalmoonbeam/p/10753149.html
V-REP客户端设置:
在V-REP场景文件中需要添加三个实体,包括两个形状和一个关节。

关于实体的知识在User Manual - Entities - Scenes objects。
关节用的是旋转型Revolute_joint,注意三个实体间的继承关系,直接用鼠标在左侧实体列表拖动就可以添加为子对象了。

在添加之后要设置一下旋转关节的一些属性,双击它的图标:

点击下方的“Show dynamic properties dialog”:

这里重点是设置“Maximum torque”,这个属性决定了旋转加速度;
最后不要忘记添加脚本并设置端口号。
C++代码:
#include<iostream>
#include"extApi.h" void main()
{ using namespace std; int Port = 20172;
int clientID = simxStart("127.0.0.1", Port, 1, 1, 1000, 5);
cout << "client ID: " << clientID << endl; if (clientID != -1)
{
cout << "V-rep connected." << endl;
simxInt Revolute_joint;//设置一个变量存储关节句柄
if (simxGetObjectHandle(clientID, "Revolute_joint", &Revolute_joint, simx_opmode_blocking) == simx_return_ok)//获得关节句柄,若成功
{
// here we have the joint handle in variable jointHandle!
cout << "Successfully got joint handle." << endl; simxFloat tar_velo = 0.5;//设置一个变量存储关节目标转速
if (simxSetJointTargetVelocity(clientID, Revolute_joint, tar_velo, simx_opmode_blocking) == simx_return_ok)//设置关节目标转速
cout << "target velocity: " << tar_velo << endl;
else
cout << "angle set failed." << endl;
}
else
cout << "Geting object handle failed." << endl;
}
else
{
cout << "V-rep can't be connected." << endl;
} simxFinish(clientID);
cin.get();
return;
}
代码说明:
这种判断语句的风格来自手册中的Writing code in and around V-REP - V-REP API framework - Remote API - Remote API modus operandi。
首先需要获得关节的句柄,然后是设定关节转速,注意默认是弧度制。
在Remote API function list (by category)中可以查找各种功能函数,找到Joint object functionality:

所有关节控制的功能函数都在这里。这次只是实现了简单的加速转动,操作方法仍然是,先运行场景仿真然后启动C++控制台程序。
效果:
长方体开始匀加速转动,一段时间后匀速转动。即使退出C++程序,其也将继续转动。事实上,C++程序所起到的作用就是修改了实体参数。
V-REP Remote API(C++)实现简单的关节转动的更多相关文章
- Docker remote API简单配置使用
1.启动docker remote API的方式如下: docker -d -H uninx:///var/run/docker.sock -H tcp://0.0.0.0:5678 2.但是为了伴随 ...
- 【转+自己研究】新姿势之Docker Remote API未授权访问漏洞分析和利用
0x00 概述 最近提交了一些关于 docker remote api 未授权访问导致代码泄露.获取服务器root权限的漏洞,造成的影响都比较严重,比如 新姿势之获取果壳全站代码和多台机器root权限 ...
- Docker Remote API v1.24
1. Brief introduction The Remote API has replaced rcli. The daemon listens on unix:///var/run/docker ...
- Docker开启Remote API 访问 2375端口
Docker常见端口 我看到的常见docker端口包括: 2375:未加密的docker socket,远程root无密码访问主机2376:tls加密套接字,很可能这是您的CI服务器4243端口作为h ...
- Docker入门教程(八)Docker Remote API
Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...
- [angularjs] MVC + Web API + AngularJs 搭建简单的 CURD 框架
MVC + Web API + AngularJs 搭建简单的 CURD 框架 GitHub 地址:https://github.com/liqingwen2015/Wen.MvcSinglePage ...
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...
- 阿里云api调用做简单的cmdb
阿里云api调用做简单的cmdb 1 步骤 事实上就是调用阿里api.获取可用区,比方cn-hangzhou啊等等.然后在每一个区调用api 取ecs的状态信息,最好写到一个excel里面去.方便排序 ...
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
随机推荐
- Centos7 + Python3.6 + Django + virtualenv + gunicorn + supervisor 环境配置详解
跟着网上的教程走发现行不通阿!好多都是写个大概,而且每人的环境都是有些许差异的,比如说权限问题阿,等等都会造成安装的失败 说明:本教程在你已经拥有Centos7系统,已经安装好nginx服务器,已经安 ...
- 使用nginx mirror 制作nexus 的简单ha
主要是运行两台nexus 机器,通过nexus 的host 以及proxy 以及public 模型,结合nginx 的mirror 将对于host 的get 请求 mirror 到另一台机器pro ...
- 研究大华3G设备接入自主视频开发平台
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/fengshuiyue/article/details/24311977 近期项目上须要接入3G摄像头 ...
- 使用Python matplotlib做动态曲线
今天看到“Python实时监控CPU使用率”的教程: https://www.w3cschool.cn/python3/python3-ja3d2z2g.html 自己也学习如何使用Python ma ...
- 【DevExpress】GridView的RowClick事件禁用Checkbox选择的解决办法
添加GridView的RowCellClick事件,代码如下 private void gvBoxMails_RowCellClick(object sender, DevExpress.XtraGr ...
- update20181214 - uGetHttpData.pas
function DecodePJItem(sText: string): TList<TDataItem>; var reg: TRegEx; mc: TMatchCollection; ...
- 64位Win7系统nbtstat 问题
64位Win7系统nbtstat 问题 姜糖水 2015-02-02 195 阅读http://ju.outofmemory.cn/entry/114353 在32位系统写:"cmd / ...
- node-js:文摘
ES6相关 1.module.exports与exports,export与export default之间的关系和区别 nodejs基础 1.NodeJs安装与全局配置(不建议修改包的全局安装路径, ...
- [UE4]VR手柄按键参考
一.VR手柄按键 二.Gamepad菜单往下拉 三.Shouder Button,在一般游戏当中是用作菜单键,按一下Shouder Button会出现游戏菜单. 四.Face Buttons:可以触摸 ...
- Python基础之re模块
什么是模块? 为了编写可维护的代码,我们把很多的函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,在Python中,一个.py文件就称为一个模块 ...