Coppeliasim中自定义ROS消息的方法整理

Coppeliasim中自定义ROS消息的方法整理

有时Coppeliasim中已有的消息不能满足我们的需求,这时我们可以自定义消息,本文整理自定义消息的全过程。

同理可自定义服务

自定义消息的原理分析

前文讲到,我们是通过加载ROS插件才具备了与ROS进行通信的能力

img

这个插件的位置在:

image-20240123174011959

因此,为了对它进行扩展,我们下载它的源码重新制作插件:CoppeliaRobotics/simROS at melodic (github.com)

该插件默认支持的消息类型在meta/messages.txt文件中

在上一节中我们可以直接使用消息类型geometry_msgs::Point32,就是因为插件中包含了这一选项

image-20240123191724306

自定义消息的操作总结

为了使用自定义的消息类型,我们需要修改文件meta/messages.txtCMakeLists.txtpackage.xml

由于我暂无需求,具体修改内容可参考下述博客:

CoppeliaSim添加ROS自定义消息类型

修改完成后,我们使用catkin built -j4进行编译:

但此时报错:

image-20240123192316828

根据实践,pip install rospkg等不能解决问题,搜索知道:

这是因为Coppeliasim V4.1.0依赖python3,但是ROS Melodic依赖于python2

要解决这一问题,一个办法是将python升级为python3,但据UP主所说,升级后可能将已有的ROS编译和运行环境破坏,这时需要根据报错进行调整,直到ROS能够正常运行。

参考哔哩哔哩UP主:每一天应不同

另一个办法是将sim_ros_interface软件包切换到Coppeliasim V4.0.0的版本,使用指令git checkout coppeliasim-v4.0.0

本文所用方法

重新编译,报错:

image-20240123193525827

为此,重新安装这个软件包:sudo apt-get install ros-melodic-tf2-sensor-msgs

再编译,又报错:

image-20240123193900381

根据提示执行:sudo apt install xsltproc

再编译:

image-20240123194009241

大功告成。

找到我们需要的插件~/sim_ws/devel/lib/libsimExtROSInterface.so,将它替换Coppeliasim安装目录下的同名插件,至此理论上即可正常使用我们所需要的自定义消息。

附录

上文是后期整理的,暂未验证。以下给两个文中未提到的点:

  • 我的cmake版本

    image-20240123194800902

  • COPPELIASIM_ROOT_DIR设置

    export COPPELIASIM_ROOT_DIR=/home/zsj/sim_ws/src/CoppeliaSim_Edu_V4_1_0_Ubuntu18_04

参考博客:

CoppeliaSim添加ROS自定义消息类型

CoppeliaSim学习笔记之CoppeliaSim Edu V4.1.0 + Ubuntu 16.04 + ROS Kinetic环境搭建与基础测试

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值