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

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


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

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')
代码运行后,如图所示,可以驱动倒立摆末端转动。

相关文章:
Coppeliasim倒立摆demo
首先需要将使用Python远程控制的文件导入到文件夹,核心是深蓝色的三个文件。 本版本为4.70,其文件所在位置如下图所示,需要注意的是,目前不支持Ubuntu22的远程api: 双击Sphere这一行的灰色文件,可以看到远程…...
汽车燃油泵数据分析:全球市场的年复合增长率将达到10%左右
燃油泵是汽车配件行业的专业术语。是电喷汽车燃油喷射系统的基本组成之一,位于车辆油箱内部,燃油泵在启动和发动机运转时工作,如果发动机停止而点火开关仍处于ON时,HFM-SFI控制模块关闭燃油泵的电源,以避免意外点火。 …...
DC-磁盘管理(23国赛真题)
2023全国职业院校技能大赛网络系统管理赛项–模块B:服务部署(WindowServer2022) 文章目录 题目配置步骤组成RAID 5,磁盘分区命名为卷标H盘:Raid5。手动测试破坏一块磁盘,做RAID磁盘修复,确认RAID 5配置完毕。验证查看Raid5(打开磁盘管理器,查看raid信息)Raid5磁盘修复…...
216961-98-7,BODIPY 493/503 NHS 活化酯,可以应用于分子生物学等领域中
您好,欢迎来到新研之家 文章关键词:216961-98-7,BODIPY 493/503 NHS 活化酯,BODIPY 493/503 NHS ester,BODIPY 493/503 SE 一、基本信息 产品简介:BODIPY 493/503 NHS ester是一种特殊的染料,…...
Python采集学习笔记-读取excel数据
表格格式 方法一:使用xlrd import xlrd 1.读取Excel文件 workbook xlrd.open_workbook(plc.xlsx) 2.读取第一个表 sheet workbook.sheet_by_index(0) 3.获取表格总行数 total_rows sheet.nrows 4.创建列表,存储表格一行中每一列信息 plc_info [] for row in range(1…...
幻兽帕鲁服务器游戏怎么升级版本?
幻兽帕鲁服务器游戏怎么升级版本?自建幻兽帕鲁服务器进入Palworld游戏提示“您正尝试加入的比赛正在运行不兼容的游戏版本,请尝试升级游戏版本”什么原因?这是由于你的客户端和幻兽帕鲁服务器版本不匹配,如何解决?更新…...
【ASP.NET Core 基础知识】--身份验证和授权--授权和策略
一、授权和策略的概念及应用 在ASP.NET Core中,授权和策略是重要的安全概念,用于确定用户是否有权限执行特定的操作或访问特定的资源。以下是关于ASP.NET Core中授权和策略的概念及其应用的一些重要信息: 1.1 授权(Authorizatio…...
20240130在ubuntu20.04.6下卸载NVIDIA显卡的驱动
20240130在ubuntu20.04.6下卸载NVIDIA显卡的驱动 2024/1/30 12:58 缘起,为了在ubuntu20.4.6下使用whisper,以前用的是GTX1080M,装了535的驱动。 现在在PDD拼多多上了入手了一张二手的GTX1080,需要将安装最新的545的驱动程序&#…...
汽车标定技术(十七)--Bypass的前世今生
目录 1.Bypass的诞生 2.Bypass的发扬光大 2.1 基于XCP的Bypassing 2.2 基于Debug的Bypass 2.3 小结 3.Bypass的实际应用 1.Bypass的诞生 下图我相信只要用过INCA的朋友都非常熟悉。 这是远古时期(2000年左右?我猜)ETAS针对发动机控制参数标定设计的一种并行数据…...
【开源精选导航】GitHub-Chinese-Top-Charts:一榜在手,优质中文项目轻松找寻
各位热爱开源技术的朋友们,你们是否有过这样的困扰:面对浩瀚的GitHub海洋,想找寻那些具有高质量中文文档的优秀开源项目却无从下手?今天,我们就为大家揭晓一个宝藏般的开源项目——GitHub 中文项目集合(访问…...
C++ 11新特性之语法甜点1
概述 C 11中引入了许多简化编程工作的语法上的新特性,我们暂且美其名曰:“语法甜点”。下面,我们将对这些“语法甜点”一一进行介绍。 语法甜点1:序列for循环 序列for循环是一种简化的for循环,可用于遍历一组序列&…...
【智能家居】6、语音控制及网络控制代码实现
一、语音控制 1、指令结构体编写 这个结构体定义了一个命令输入的模型。在这个模型中,包含以下几个部分: cmdName:一个长度为128的字符串,用于存储命令名称。dvicesName:一个长度为128的字符串,用于存储设…...
Windows断开映射磁盘提示“此网络连接不存在”,并且该磁盘直在资源管理器中
1、打开注册表编辑器 快捷键winR 打开“运行”, 输入 regedit 2、 删除下列注册表中和无法移除的磁盘相关的选项 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\ 3、打开“任务管理器”,重新启动“Windows资源…...
Java项目要不要部署在Docker里?
部署Java项目有很多种方式,传统的方式是直接在物理机或虚拟机上部署应用,但为什么现在容器化部署变得越来越流行, 个人觉得原因有以下几个: 1、 环境一致性:使用Docker可以确保开发、测试和生产环境的一致性ÿ…...
Linux 入门基础知识(一)—— Linux的基本使用
Linux 入门基础知识 一、Linux的基本使用和配置1.1、终端1.2、消耗内存1.3、运行级别1.6、登录前欢迎语1.5、登录后欢迎语1.6、shell1.7、ps aux1.8、设置主机名1.9、whoami和who am i1.10、命令提示符 二、Linux执行命令的过程详解和命令类型2.1、命令执行2.2、hash缓存表2.3、…...
纯静态微信小程序水果商城
首页代码 <view class"container"><!-- 轮播图 --><view class"swiper-container"><swiper class"screen-swiper" indicator-dots"true" circular"true" autoplay"true" interval"300…...
操作系统-线程的实现方式和多线程模型(用户级线程 内核级线程 多线程模型的情况)和线程的状态,转换,组织,控制
文章目录 线程的实现方式和多线程模型总览线程的实现方式用户级线程内核级线程多线程模型一对一多对一多对多 小结 线程的状态,转换,组织,控制总览 线程的状态与转换线程的组织与控制 线程的实现方式和多线程模型 总览 线程的实现方式 用户级线程 程序自己通过自己设计的线程…...
计算机网络 应用层
文章目录 应用层域名系统 DNS域名系统概述互联网的域名结构域名服务器 文件传送协议FTP 概述FTP 的基本工作原理简单文件传送协议 TFTP 远程终端协议 TELNET万维网 WWW统一资源定位符 URL超文本传送协议 HTTP万维网的信息检索系统 电子邮件电子邮件概述简单邮件传送协议 SMTP邮…...
拥有你的微调大模型,零代码定制+算力免费送
2023年,ChatGPT的横空出世掀起了人工智能领域的新一轮革命。 很快大模型的潮水就越过广袤的太平洋,席卷国内科技圈和投资圈,几乎所有科技公司都在押注大模型。根据工信部赛迪研究院数据,预计2023年我国语言大模型市场规模将达到1…...
《Docker技术革命:从虚拟机到容器化,全面解析Docker的原理与应用-上篇》
文章目录 Docker为什么会出现总结 Docker的思想Docker历史总结 Docker能干嘛虚拟机技术虚拟机技术的缺点 容器化技术Docker和虚拟机技术的区别 Docker概念Docker的基本组成镜像(image)容器(container)仓科(repository)…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
