ROS中话题消息新建的问题及解决

问题1

Base path: /home/ubuntu/catkin_ws
Source space: /home/ubuntu/catkin_ws/src
Build space: /home/ubuntu/catkin_ws/build
Devel space: /home/ubuntu/catkin_ws/devel
Install space: /home/ubuntu/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/ubuntu/catkin_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/ubuntu/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/ubuntu/catkin_ws/devel;/opt/ros/melodic
-- This workspace overlays: /home/ubuntu/catkin_ws/devel;/opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/ubuntu/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17") 
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.29
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 2 packages in topological order:
-- ~~  - learning_topic
-- ~~  - py_learning_topic
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'learning_topic'
-- ==> add_subdirectory(learning_topic)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- learning_topic: 1 messages, 0 services
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:108 (message):
  catkin_package() called with unused arguments: message_runtime
Call Stack (most recent call first):
  /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)
  learning_topic/CMakeLists.txt:119 (catkin_package)


-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:936: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
  • 问题:说明缺少消息依赖包在生成消息时使用了Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
  • 解决办法:需要在CMakeLists.txt:119 (catkin_package)进行增加将他注释的CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs turtlesim进行打开在进行编译就行。

问题2

learning_topic/CMakeLists.txt:119 (catkin_package)

  • 一直显示generate_messages有问题,结果检查发现msg文件有问题,无法对其数据类型进行解析导致
  • 修改正确的数据类型,作者犯得错误将string写成了strng,导致无法编译常规
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS,可以通过使用串口通信库和ROS串口通信库将串口消息发布到ROS话题。以下是一些简单的步骤: 1. 安装ROS串口通信库:可以通过以下命令进行安装: ``` sudo apt-get install ros-<distro>-serial ``` 其,`<distro>`需要替换为你正在使用的ROS版本,例如`melodic`。 2. 编写ROS节点来读取串口消息并将其发布到ROS话题。 ```python #!/usr/bin/env python import rospy from serial import Serial from std_msgs.msg import String ser = Serial('/dev/ttyUSB0', 9600) # 串口配置 pub = rospy.Publisher('serial_data', String, queue_size=10) # 发布话题 rospy.init_node('serial_node', anonymous=True) # 初始化ROS节点 while not rospy.is_shutdown(): data = ser.readline().strip() # 读取串口数据 pub.publish(data) # 将数据发布到ROS话题 ``` 在上面的代码,我们首先使用`Serial()`函数配置了串口的端口和波特率。然后,我们定义了一个发布者对象`pub`,用于将串口数据发布到名为`serial_data`的ROS话题。最后,我们使用一个无限循环来读取串口数据并将其发布到ROS话题。 3. 启动ROS节点并订阅ROS话题。 在终端,使用以下命令启动ROS节点: ``` rosrun <package_name> <node_name>.py ``` 其,`<package_name>`和`<node_name>`需要替换为你的ROS节点的包名和节点名。例如: ``` rosrun my_package serial_node.py ``` 然后,可以使用以下命令订阅ROS话题并查看发布的串口数据: ``` rostopic echo serial_data ``` 这将显示所有从串口接收到的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值