ros系列—解决文件改名导致节点无法启动问题及ros::NodeHandle nh与nh(“~“)的理解
运行系统:Ubuntu18.04
运行环境:python2.7.17
ROS初学者 - 记录
问题描述:无意间改动了功能包名称及launch文件名称,无法启动节点,出现如下错误:
1)catkin_make编译失败
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_package_xml.cmake:54 (message):catkin_package_xml() package name 'pcl' in'/home/ryy/desktop/pc_segmentation/ray_ground_filter/src/ray_filter/package.xml'does not match current PROJECT_NAME 'ray_filter'. You must call project()with the same package name before.
Call Stack (most recent call first):/opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:99 (catkin_package_xml)ray_filter/CMakeLists.txt:9 (catkin_package)
问题分析: 上述错误为package.xml中的功能包名称与当前功能包名称不一致。
问题解决:找到package.xml文件,将其<name>改为当前功能包名称即可,重新编译,问题解决。
2)启动节点失败
在上述编译成功后,在另一终端启动launch文件出现如下错误:
问题分析:错误为在当前功能包中无法找到相应的可执行文件,可执行文件已在launch文件中写入。
查看launch文件:其中pkg为当前功能包名,type为当前节点的可执行文件名,name定义当前节点运行的名称,覆盖ros::init()中的名称。
<launch><node pkg="ray_filter" type="pcl_test_node" name="pcl_test" output="screen"/>
</launch>
问题解决:在CMakeLists.txt文件的add_executable()行查看当前节点的可执行文件名是否与launch文件中的type相同。若否,将launch文件中的type改为当前节点的可执行文件名,重新启动节点,问题解决。
问题描述:将句柄中的nh("~")改为nh,出现如下错误:
<arg name="ground_point_topic" default="/points_ground"/><node pkg="plane_fitting" type="plane_fitting_node" name="plane_fitting" output="screen"><param name="ground_point_topic" value="$(arg ground_point_topic)"/></node>
问题分析:上述问题在于实际发布的话题名为[/],而上图中的parameters中可以看出应发布的话题名为 当前节点名/话题名。
ros::NodeHandle nh;ros::NodeHandle nh(“~”);
两者的区别为:前者实际发布的话题名仅为定义的话题名,后者实际发布的话题名为 节点名/定义的话题名。
问题解决:
1)不采用<param>形式定义话题名,在创建publisher时直接赋名。
2)使用ros::NodeHandle nh("~")创建节点句柄。
但好像能用nh时用nh("~")也没问题,反过来就不行??
ros系列—解决文件改名导致节点无法启动问题及ros::NodeHandle nh与nh(“~“)的理解相关推荐
- ros系列-解决节点处理bag文件,输出无内容问题
运行系统:Ubuntu18.04 运行环境:python2.7.17 ROS初学者-记录 问题描述:初学ROS,用自己的激光雷达点云bag文件跑无人驾驶汽车系统入门(二十四)--激光雷达的地面-非地面 ...
- python缺少dll文件_python37.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“python37.dll找不到”的系统问题...
我该如何安装从金山毒霸下载的DLL文件? 一: 1.从金山毒霸下载压缩文件. 2.将DLL文件解压到电脑上的某个地方. 3.把该文件跟要求使用它的程序放在同一路径上.注意32位程序需要使用32位的DL ...
- mysql电脑缺少dll文件下载_mysql.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“mysql.dll找不到”的系统问题...
我该如何安装从金山毒霸下载的DLL文件? 一: 1.从金山毒霸下载压缩文件. 2.将DLL文件解压到电脑上的某个地方. 3.把该文件跟要求使用它的程序放在同一路径上.注意32位程序需要使用32位的DL ...
- python36.dll下载_python36.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“python36.dll找不到”的系统问题...
我该如何安装从金山毒霸下载的DLL文件? 一: 1.从金山毒霸下载压缩文件. 2.将DLL文件解压到电脑上的某个地方. 3.把该文件跟要求使用它的程序放在同一路径上.注意32位程序需要使用32位的DL ...
- python下载显示文件丢失连不上网_python39.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“python39.dll找不到”的系统问题...
我该如何安装从金山毒霸下载的DLL文件? 一: 1.从金山毒霸下载压缩文件. 2.将DLL文件解压到电脑上的某个地方. 3.把该文件跟要求使用它的程序放在同一路径上.注意32位程序需要使用32位的DL ...
- co01设置错误消息_pco01.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“pco01.dll找不到”的系统问题...
我该如何安装从金山毒霸下载的DLL文件? 一: 1.从金山毒霸下载压缩文件. 2.将DLL文件解压到电脑上的某个地方. 3.把该文件跟要求使用它的程序放在同一路径上.注意32位程序需要使用32位的DL ...
- php环境缺失msv文件_msvproc.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“msvproc.dll找不到”的系统问题...
我该如何安装从金山毒霸下载的DLL文件? 一: 1.从金山毒霸下载压缩文件. 2.将DLL文件解压到电脑上的某个地方. 3.把该文件跟要求使用它的程序放在同一路径上.注意32位程序需要使用32位的DL ...
- wxml报错原因_scewxmlw.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“scewxmlw.dll找不到”的系统问题...
我该如何安装从金山毒霸下载的DLL文件? 一: 1.从金山毒霸下载压缩文件. 2.将DLL文件解压到电脑上的某个地方. 3.把该文件跟要求使用它的程序放在同一路径上.注意32位程序需要使用32位的DL ...
- myid文件缺失导致zookeeper无法启动(myid file is missing)
myid文件缺失 现象 :zookeeper无法启动: 异常 :$dataDir/myid file is missing: 原因 :zk集群中的节点需要获取myid文件内容来标识该节点,缺失则无法启 ...
- linux下oracle数据库由于参数文件丢失导致的数据库服务启动失败,报“failure in processing system parameters“错误问题解决
ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/data/o ...
最新文章
- 网博士自助建站系统_自助建站的优缺点介绍
- c++ string 另类写法
- kafka for mac安装
- android jni 返回java类
- 用php实现一个简易的web表单生成器,网络编程PHP Web表单生成器案例分析
- 【今日CS 视觉论文速览】Mon, 14 Jan 2019
- 嘿,来打游戏!中国电竞人才缺口达50万
- [bzoj3668][Noi2014]起床困难综合症/[洛谷3613]睡觉困难综合症
- 中源幼儿园收费管理系统 pdf软件
- 如何修改电脑微信的提示音(亲测有效)
- python推荐系统-Python黑马头条推荐系统项目
- 三角函数积化和差公式
- css3实现尖角,css3如何做 尖角
- 什么软件可以测试网络的稳定性,手机怎么测试网络稳定性
- Flutter中StatefulWidget生命周期小记
- 【优化求解】基于未来搜索算法FSA求解最优目标matlab代码
- python股票预测_利用Keras长短期记忆(LSTM)模型预测股票价格
- Linux下使用md5sum计算和检验MD5码
- 梦幻手游服务器维护摆摊公示时间,梦幻西游手游摆摊攻略 卖家关注公示期最重要...
- 软件设计师——信息安全知识