Coppeliasim倒立摆demo

首先需要将使用Python远程控制的文件导入到文件夹,核心是深蓝色的三个文件。

image.png

本版本为4.70,其文件所在位置如下图所示,需要注意的是,目前不支持Ubuntu22的远程api:

image.png

image.png

双击Sphere这一行的灰色文件,可以看到远程 simRemoteApi 的串口号为19998,当在Coppeliasim运行后,后台会发布该串口,可以利用Python进行远程控制。

image.png

import time  
import numpy as np  
import sys  
sys.path.append('./VREP_RemoteAPIs/')  
import sim as vrep_sim  # 连接Coppeliasim  
vrep_sim.simxFinish(-1) # 关闭掉其他的连接  
while True:  
# simxStart()函数的第一个参数是连接的IP地址,第二个参数是端口号,第三个参数是是否等待连接,第四个参数是是否检查连接,第五个参数是连接超时时间,第六个参数是重连次数  
# 返回的clientID是建立连接的ID,可以理解为指向你的scene  
client_ID = vrep_sim.simxStart('127.0.0.1', 19998, True, False, 5000, 5)  
# 根据返回的值,来判断是否连接成功  
if client_ID > -1:  
print('Connect to remote API server.')  
break  
else:  
print('Failed connecting to remote API server! Try it again ...')  # 打开同步模式  
synchronous_enable = True  
# simxSynchronous()函数的第一个参数是连接的ID,第二个参数是是否开启同步模式  
vrep_sim.simxSynchronous(client_ID, synchronous_enable)  
vrep_sim.simxStartSimulation(client_ID, vrep_sim.simx_opmode_oneshot)  # ------------------------------- Initialization -------------------------------  
# vrep_sim.simx_opmode_blocking为阻塞模式。命令被发送,函数将等待实际的应答并返回它(如果函数没有超时)  
# vrep_sim.simxGetObjectHandle即获取在client_ID下的名字为'joint'的对象的句柄  
return_code, joint_handle = vrep_sim.simxGetObjectHandle(client_ID, 'joint', vrep_sim.simx_opmode_blocking)  
if (return_code == vrep_sim.simx_return_ok):  
print('get object joint ok.')  # 获取'joint'的位置  
_, q = vrep_sim.simxGetJointPosition(client_ID, joint_handle, vrep_sim.simx_opmode_streaming)  
vrep_sim.simxSetJointTargetPosition(client_ID, joint_handle, 0, vrep_sim.simx_opmode_streaming)  # ------------------------------- Simulation -------------------------------  
t = 0  
# 时步,多少秒更新一次  
delta_t = 0.005 # simulation time step  
for _ in range(5000):  
t = t + delta_t  
_, q = vrep_sim.simxGetJointPosition(client_ID, joint_handle, vrep_sim.simx_opmode_buffer)  
print('q=', q)  
q_new = np.sin(t)  
vrep_sim.simxSetJointTargetPosition(client_ID, joint_handle, q_new, vrep_sim.simx_opmode_streaming)  if synchronous_enable == True:  
vrep_sim.simxSynchronousTrigger(client_ID)  
# 检索将命令发送到服务器,执行和发回所需的时间。 那个时间取决于各种因素,如客户端设置,网络负载,仿真是否正在运行,仿真是否是实时,模拟时间步骤等。功能是阻塞。  
_, ping_time = vrep_sim.simxGetPingTime(client_ID)  
# 静止时步的时间  
time.sleep(delta_t)  
# 停止仿真  
vrep_sim.simxStopSimulation(client_ID, vrep_sim.simx_opmode_blocking)  
# 结束此场景  
vrep_sim.simxFinish(client_ID)  
print('Program terminated')

代码运行后,如图所示,可以驱动倒立摆末端转动。

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/249005.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】理论基础 - 概览

文章目录 1. 定义2. 主要特性1)内存存储2)数据结构多样性3)持久化4)主从复制5)事务支持 3. 使用场景1)缓存2)消息队列3)实时统计与计数4)分布式锁 总结 Redis&#xff08…

探索设计模式的魅力:精准解读桥接模式-用桥接模式构建可扩展的软件系统

设计模式专栏:http://t.csdnimg.cn/nolNS 目录 一、了解桥接模式:探索抽象和实现的分离 1.1 开-闭原则 1.2 组合/聚合复用原则 1.3 定义 1.4 用意 1.5 基本思想 1.6 组成部分 1.7 桥梁模式的示意性系统的结构图 二、桥接模式的优势&#xff1a…

android远程投屏应用

客户端app地址:https://gitee.com/youzilzk/blue1.git 服务端地址:https://gitee.com/youzilzk/blue-server1.git 一。服务端部署 1.安装postgres 2.导入项目下blue.sql文件 3.修改配置application.properties和config.properties,其中applic…

Qt 基础之QDataTime

Qt 基础之QDataTime 引言一、获取(设定)日期和时间二、时间戳三、时间计算 (重载运算符) 引言 QDataTime是Qt框架中用于处理日期和时间的类。它提供了操作和格式化日期、时间和日期时间组合的功能。QDataTime可以用于存储和检索日期和时间、比较日期和时间、对日期和时间执行算…

Mac删除自带的ABC输入法,简单快捷

一、下载PlistEdit Pro软件 二、终端执行 sudo open ~/Library/Preferences/com.apple.HIToolbox.plist 三、其中有一个数字下面的KeyboardLayout Name的value为“ABC”,这就是ABC输入法,点击上面的Delete按钮,删除整项ABC内容&#xff0c…

2023强网杯复现

强网先锋 SpeedUp 要求2的27次方的阶乘的逐位之和 在A244060 - OEIS 然后我们将4495662081进行sha256加密 就得到了flag flag{bbdee5c548fddfc76617c562952a3a3b03d423985c095521a8661d248fad3797} MISC easyfuzz 通过尝试输入字符串判断该程序对输入字符的验证规则为9…

01、全文检索 ------ 反向索引库 与 Lucene 的介绍

目录 全文检索 ------ 反向索引库 与 LuceneSQL模糊查询的问题反向索引库反向索引库的查询 Lucene(全文检索技术)Lucene能做什么Lucene存在的问题Solr 和 Elasticsearch 与 Lucene 的关系 全文检索 ------ 反向索引库 与 Lucene MySQL一些索引词汇解释 …

如何使用Docker部署JSON Crack

文章目录 1. 在Linux上使用Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 JSON Crack 是一款免费的开源数据可视化应用程序,能够将 JSON、YAML、XML、CSV 等数据格式可视化为交互…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷9

某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选…

【算法】Partitioning the Array(数论)

题目 Allen has an array a1,a2,…,an. For every positive integer k that is a divisor of n, Allen does the following: He partitions the array into n/k disjoint subarrays of length k. In other words, he partitions the array into the following subarrays: [a1,…

3 款最好的电脑硬盘数据迁移软件

您将从本页了解 3 款最好的 SSD硬盘数据迁移软件,磁盘供应商提供的软件和可靠的第三方软件。仔细阅读本文并做出您的选择。 什么是数据迁移? 数据迁移是将数据移动到其他计算机或存储设备的过程。在日常工作活动中,常见的数据迁移有三种&…

[Vue3] useRoute、useRouter

useRoute 返回当前路由地址。相当于在模板中使用 $route。必须在 setup() 中调用。用于在组件中获取当前路由的信息,返回一个包含路由信息的对象。这个函数适用于那些不需要监听路由变化的场景,只是获取当前路由信息的静态数据。 useRouter 返回 route…

[嵌入式系统-7]:龙芯1B 开发学习套件 -4- LoongIDE 集成开发工具的使用-创建应用程序工程、编译、下载、调试

目录 前言: 步骤1:设置工作工作空间 步骤2:设置工具链 步骤3:创建裸机应用程序 步骤4:创建带实时操作系统的应用程序 步骤5:编译 步骤6:下载调试 前言: LoongIDE集成开发环境…

ubuntu gedit主题更改

ubuntu16.04 gedit 编辑器又有首选项如何设置主题 这里下载主题 将主题XML复制到 /usr/share/gtksourceview-3.0/styles 文件夹内; 使用gsettings 命令设置喜欢的配色方案,使用方式如下:(实测不带.xml后缀哦) gsettings set org.gnome.gedi…

CleanMyMac X.4.14.6中文版新功能介绍,mac系统垃圾清理

近些年伴随着苹果生态的蓬勃发展,越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现,它的使用逻辑与Windows存在很多不同,而且随着使用时间的增加,一些奇奇怪怪的文件也会占据有限的磁盘空间,进而影响使用…

Docker本地部署Firefox浏览器并结合内网穿透公网访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

Windows Server 2025 Azure Arc 介绍

Azure Arc 是一个扩展 Azure 平台的桥梁,可帮助你构建可灵活地跨数据中心、边缘和多云环境运行的应用程序和服务。使用一致的开发、操作和安全模型来开发云原生应用程序。 Azure Arc 可在新的和现有的硬件、虚拟化和 Kubernetes 平台、物联网设备和集成系统上运行。…

数据可视化工具之选,三选一?

在数据可视化的世界中,选择一款合适的工具对于提升工作效率和洞察力至关重要。本文将对三款主流数据可视化工具进行详细比较,包括山海鲸可视化、Echarts和D3.js,以帮助您做出明智的选择。 山海鲸可视化 山海鲸可视化是一款免费且功能强大的…

如何监控两台android设备之间串口通讯的ADB日志?

如果你的目标是将设备通过 Wi-Fi 连接到计算机,可以执行以下步骤: 一.通过 USB 连接设备: adb devices 确保设备通过 USB 连接,并且可以通过 adb devices 命令正常识别。 二、将设备1和设备2都切换到 TCP/IP 模式:…

Mac网线上网绿联扩展坞连接网线直接上网-无脑操作

声明:博主使用的绿联扩展坞 以下为绿联扩展坞Mac网线使用方法 1.首先需要下载电脑对应版本的驱动 直接点击即可下载 2. 下载好以后 解压 点进去 对应版本 博主直接使用最新的12-14 3. 安装包好了以后 会提示重启电脑 此时拔掉扩展坞 再重启动 拔掉扩展坞 再重启…