基础内容参考: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++)实现简单的关节转动的更多相关文章

  1. Docker remote API简单配置使用

    1.启动docker remote API的方式如下: docker -d -H uninx:///var/run/docker.sock -H tcp://0.0.0.0:5678 2.但是为了伴随 ...

  2. 【转+自己研究】新姿势之Docker Remote API未授权访问漏洞分析和利用

    0x00 概述 最近提交了一些关于 docker remote api 未授权访问导致代码泄露.获取服务器root权限的漏洞,造成的影响都比较严重,比如 新姿势之获取果壳全站代码和多台机器root权限 ...

  3. Docker Remote API v1.24

    1. Brief introduction The Remote API has replaced rcli. The daemon listens on unix:///var/run/docker ...

  4. Docker开启Remote API 访问 2375端口

    Docker常见端口 我看到的常见docker端口包括: 2375:未加密的docker socket,远程root无密码访问主机2376:tls加密套接字,很可能这是您的CI服务器4243端口作为h ...

  5. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  6. [angularjs] MVC + Web API + AngularJs 搭建简单的 CURD 框架

    MVC + Web API + AngularJs 搭建简单的 CURD 框架 GitHub 地址:https://github.com/liqingwen2015/Wen.MvcSinglePage ...

  7. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...

  8. 阿里云api调用做简单的cmdb

    阿里云api调用做简单的cmdb 1 步骤 事实上就是调用阿里api.获取可用区,比方cn-hangzhou啊等等.然后在每一个区调用api 取ecs的状态信息,最好写到一个excel里面去.方便排序 ...

  9. 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 ...

随机推荐

  1. 台式机安装Linux操作系统无法识别网卡

    在公司一台台式机上安装centos7系统,发现安装好之后,发现没有自动生成eth0网卡. 查看网卡相关信息: lspci|grep Eth 获取到网卡型号后,可以去官网下载对应的安装包进行编译安装即可 ...

  2. JAVA结对编程--阶段总结

    一.需求分析 1.基本需求 随机生成n道题目 支持整数.分数,支持多运算符 能判断正误,错误时给出正确答案 能计算出正确率 2.扩展需求 处理生成题目并输出到文件 完成题目后从文件读入并判题 支持多语 ...

  3. day 45 BOM和DOM

    一.BOM BOM(Browser Object Model)是指浏览器对象模型, 它使 JavaScript 有能力与浏览器进行“对话”. 1. window 对象 一些常用的Window方法: ( ...

  4. Java高级特性 第9节 Socket机制

    一.Socket简介 1.Socket概述 Java最初是作为网络编程语言出现的,它对网络的高度支持,使得客户端和服务器流畅的沟通变成现实.而在网络编程中,使用最多的就是Socket,每一个实用的网络 ...

  5. nginx添加ssl证书

    ssl的证书是通过docker nginx letsencrypt 这篇随笔生成的,下面介绍如何在nginx中添加ssl 这个为全部配置, 需要替换你自己的域名,配置中强制https了 server ...

  6. c# 执行javascript 脚本

    /// <summary> /// 执行JS /// this.ExecuteScript("get('{0}')".FormatWith(token0), File. ...

  7. 【配置阿里云 I】申请配置阿里云服务器,并部署IIS和开发环境,项目上线经验

    https://blog.csdn.net/vapaad1/article/details/78769520 最近一年在实验室做web后端开发,涉及到一些和服务器搭建及部署上线项目的相关经验,写个帖子 ...

  8. vivado源文件和仿真文件的建立

    目的:做一个3输入,1输出模块:其中只要有2个输入为1则输出为1: 1.打开vivado创建一个工程 2.选择保存路径和名称 3.选择创建rtl文件且勾选下面的选项 4.选择芯片如xc7a35tift ...

  9. java.util.concurrent包下集合类的特点与适用场景

    java.util.concurrent包,此包下的集合都不允许添加null元素 序号 接口 类 特性 适用场景 1 Queue.Collection ArrayBlockingQueue 有界.阻塞 ...

  10. vue 用正则保护路由参数的合法性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...