在Simulink中调用c++和/或Python自定义库万博1manbetx

3次浏览(过去30天)
马克西米利安•贝克
马克西米利安•贝克 2021年6月15日
大家好,
背景:
我目前正在用万能机器人公司的UR10e(机械臂)做一个项目。为了控制它,我想使用simulink套接字连接和机器人预定义的TCP/万博1manbetxIP接口RTDE(感兴趣的人: https://www.universal-robots.com/articles/ur/interface-communication/real-time-data-exchange-rtde-guide/ ).在这样做的时候,我发现了一个工作的c++库,它也带来了Python绑定(项目站点: https://sdurobotics.gitlab.io/ur_rtde/introduction/introduction.html Github: https://gitlab.com/sdurobotics/ur_rtde ),这似乎工作得很好,因为无论是c++的例子,甚至从Matlab到Python库的调用(参见: https://sdurobotics.gitlab.io/ur_rtde/guides/guides.html )似乎正在工作(当涉及到错误处理时,我注意到一些问题,但让我们暂时忽略它)。
设置:
我正在使用Matlab 2021a和MingW 9.0.0在64位Windows 10 Pro系统上工作
相关主题:
问题:
我正在尝试使用的c++ /Python库有许多内部函数。从向机器人发送初始文件开始,还有整个TCP/IP通信,这没有很好的文档,我仍然没有完全理解。编写c++/python/matlab代码来读取机器人的数据,并在使用库功能时发送回命令是非常容易的,即使对于像我这样不擅长c或c++的人来说也是如此。
因此,我想有一个具有固定的、离散步长求解器的Simulink项目,万博1manbetx该项目在每个时间步中运行一个程序/函数来将数据读入Simulink,这样我就可以使用它,然后使用另一个程序/函数将其发送回来。程序/函数应该调用Python/ c++库。
我了解到,当有c++或Python代码万博1manbetx以matlab函数块的形式存在时,Simulink不能简单地生成C代码,以及coder的使用。外在的东西在某种程度上是必要的,但我仍然好奇是否有某种方法可以实现我想要的东西。
我还通读了.mex文件线程,但不得不承认我不完全理解它们的用法。对于使用Python或c++库的主题,这可能也是正确的,但我不能肯定地说,因为所有使用ry.[function]和code .extrinsic('function')的尝试都在代码生成或绑定过程中失败了(特别是当我试图在Python中调用构造函数时)。我没有尝试过c++方法,因为我不知道如何做到这一点,也没有找到类似的方法。
这个库的问题可能是,这个库包含一个通信频率,而simulink有它自己的求解器和tcp/ip连接,这在某种程度上已经在simulink中实现了,但可能是另一种方式。万博1manbetx(该库为此使用boost库)。
问题:
是否有可能在Simulink中使用整个Python或c++库,或调用用这些语言编写的程序,并调用这些库,并生成在每个时间步骤万博1manbetx中执行的Simulink块,并且仍然适合代码生成?这还包括在这两种语言中调用构造函数。
注意:
我真的很想给你一些代码,但经过几次无用的尝试,我现在只是想知道我想做的事情是否可能。
感谢你阅读这篇文章,也提前感谢你提供的任何有用的提示。
1评论
马克西米利安•贝克
马克西米利安•贝克 2021年6月24日
我放弃了这种方法,现在正尝试直接在Simulink中实现这些库的功能。万博1manbetx
这包括用于TCP/IP通信和消息打包的桌面实时方法。欲知更多信息:
https://de.mathworks.com/matlabcentral/answers/864025-万博1manbetxsimulink-for-real-time-control-of-a-robot-via-tcp-ip?s_tid=prof_contriblnk

登录评论。

答案(0)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!