Coppeliasim仿真日记(二): Coppeliasim与python的联动——The legacy remote API, 以及进行多机器人仿真

本文介绍了如何使用Python连接Coppeliasim进行多机器人仿真。首先,讲解了ThelegacyremoteAPI的基本用法,包括在Python脚本中引入必要的库和设置端口连接。接着,针对多机器人仿真问题,提出了通过不同端口实现每台机器人独立控制的方法,并给出了启动控制脚本的示例。最后,建议在多机器人仿真时使用ROS接口以获得更好的协同效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇:Coppeliasim仿真日记(一): 简介、下载和API的查询

本文主要讲python与Coppeliasim的连接,实现入门的第一步。

关于The legacy remote API

查阅官方的用户手册可知,它是remote API的第一个版本,相比于新版,有很多不足,但是对于刚用这款软件的人来说,还是比较容易上手的,所以先讲该API在python上的使用。


具体步骤:

查看官方的用户手册,我们可以得知:

也就是说,要在仿真软件的安装目录上找到这几个文件加到自己的python文件目录上。这里是Python端连接coppeliasim的相关代码:

import sim # sim文件在仿真软件安装目录上,要将其移到python脚本的主目录中
sim.simFiniish(-1) # 关掉上一个进程
clientId = sim.simxStart("127.0.0.1", 19991, True, True, 5000, 5)  # 建立和服务器的连接
if clientId != -1:  # 连接成功
    print('Scene connect successfully')
    break

然后在机器人的coppeliasim下的脚本文件添加相应端口连接代码,如下图所示

注意端口号(这里是19991)要一致,否则连不上。


如何进行多机器人仿真:

作者我是做群体机器人相关的工作,所以会用到多机器人的仿真,但在网上相关的教程很难找到,为此把我知道的分享给大家。

最初我们进行多机器人并行控制仿真时,采用多线程或多进程方法时,但是仿真效果不理想。

具体表现为:多机不能实现协同控制,传感器读取容易出错。

因此,我们采用类似实机的方法:主要通过建立每台机器人的端口连接,具体如下图所示。

首先在每台机器人加入以下Python控制代码:

clientId = sim.simxStart("127.0.0.1", 19991, True, True, 5000, 5)  # 每台机器人端口号要不一样

每台机器人的端口号不一样,范围是19901-19999。

然后在每台机器人的coppeliasim下的脚本文件添加相应端口连接代码,本文前面所示。

最后编写一个最上层的python文件,用来启动控制每台机器人的python文件:

import os
import threading
import sim
def uav_start(Index):
    os.system('python uav_' + str(Index) + '.py')
if __name__ == '__main__':
    while True:
        clientId = sim.simxStart("127.0.0.1", 19997, True, True, 5000, 5)  # 建立和服务器的连接
        if clientId != -1:  # 连接成功
            print('Scene connect successfully')
            break
    for i in range(1, 6):  # 5架无人机
        uav = threading.Thread(target=uav_start, args=(i,))
        uav.setDaemon(True)
        uav.start()

注意,该段代码中的无人机的py文件要自己编写,内容包含python与coppeliasim的连接以及机器人的控制程序,这里我只提供一种多机器人仿真的思路。

最后

这个系列是我很久之前用coppeliasim做群体仿真时做的一些笔记,当时还不会ROS,这边建议要用coppeliasim进行多机器人仿真的话还是用ROS接口。而且做单个机器人或者数量不是很多的机器人的话还是参考我后面的The B0-based remote API的使用。

下篇:Coppeliasim仿真日记(三): Coppeliasim与python的联动——The B0-based remote API

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向南而行灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值