matlab 未识别报文类型Simulink RoS报文

2admgd59  于 2022-11-15  发布在  Matlab
关注(0)|答案(2)|浏览(255)

我正在尝试使用自定义消息构建一个ROS控制器。我能够毫无问题地运行该模型。然而,当我尝试构建和运行模型时,它抛出了一个错误。

Top model targets built:

Model                Action  Rebuild Reason                                    
===============================================================================
sliding_controller2  Failed  Code generation information file does not exist.  

0 of 1 models built (0 models already up to date)
Build duration: 0h 0m 26.061s
Unrecognized message type rbdl_server/RBDLInverseDynamics. Use rosmsg list to see available types.

当我运行rosmsg list
我得到了以下信息

.
rbdl_server/RBDLInverseDynamicsRequest                         
rbdl_server/RBDLInverseDynamicsResponse
.

我不确定发生了什么。我想这和数学作坊的事有关

自定义消息代码生成自定义消息和服务类型可以与ROS Simulink块配合使用,为独立的ROS节点生成C++代码。生成的代码(.tgz存档)将包括定制消息的Simulink定义,但不包括ROS定制消息包。当在目标Linux系统中构建生成的代码时,它希望定制消息包在Catkin工作区或Ros_Package_Path上可用。在构建生成的代码之前,确保将定制消息包安装或复制到您的Linux系统。

有谁知道如何解决这个问题?
当我运行rossrv list时,我能够让消息定义出现,而matlab看到了它们,所以我不知道发生了什么。

ux6nzvsh

ux6nzvsh1#

解决方案相当复杂。我添加使用一个拥有我的catkin_ws副本的VM,然后在ROS选项卡中将我的模型设置为编译为该VM。

xghobddn

xghobddn2#

在创建过程中引发错误的消息类型rbdl_server/RBDLInverseDynamics不等于:
rbdl_server/RBDLInverseDynamicsRequest
rbdl_server/RBDLInverseDynamicsResponse
也许这会导致您的问题,因为您正在创建的消息类型应该是您定义的请求或响应类型。

相关问题