文章目录

  • 1. 创建工作空间和功能包
  • 2.新建cpp文件
  • 3.修改CMakeLists.txt
  • 4.编译问题
    • 4.1 Could NOT find rospy (missing: rospy_DIR)
  • 5. 运行可执行文件
    • 5.1 运行roscore的Resource not found: roslaunch的解决方法
    • 5.2 Command 'rosrun' not found问题
    • 5.3 执行可执行文件

1. 创建工作空间和功能包

参考添加链接描述

2.新建cpp文件

在创建的功能包helloworld/src下创建helloworld.cpp文件,内容如下:

//1.包含ros的头文件
#include "ros/ros.h"//2.编写main函数
int main(int argc, char * argv[]){//3.初始化ros节点ros::init(argc,argv,"hello_node");//4.输出日志ROS_INFO("hello wordld!");return 0;
}

3.修改CMakeLists.txt


修改helloworld/CMakeLists.txt文件,修改前后的对比图如下

总结修改有几点,在build部分
(1) 找到add_executable()去掉前面的注释,并把此函数第1个参数(节点名)改为hw(可根据需要修改),第2个参数改为新建的cpp文件,比如helloworld.cpp。

(2) 找到target_link_libraries(),并去掉注释,并把此函数第1个参数改为hw,和add_executable()第1个参数名字保持一样。

下面就开始编译

4.编译问题

在catkin_ws下用catkin_make命令编译

4.1 Could NOT find rospy (missing: rospy_DIR)


解决方案:find_package()函数注释掉第3个参数rospy的引用

5. 运行可执行文件

5.1 运行roscore的Resource not found: roslaunch的解决方法

具体信息:

... logging to /home/kandi/.ros/log/8e9b6ac4-b602-11ec-96b9-7fb5732bd610/roslaunch-ubuntu-2120.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.Resource not found: roslaunch
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/kandi/catkin_ws/src
ROS path [2]=/opt/ros/noetic/share
The traceback for the exception was written to the log file

根据回忆,之前运行roscore是没问题的,中间在处理编译问题的时候按照了下面的软件:sudo apt-get install python3-roslaunch

解决方法:
sudo apt-get install ros-noetic-roslaunch
换成noetic对应的版本即可。

5.2 Command ‘rosrun’ not found问题

具体报错信息:

Command 'rosrun' not found, but can be installed with:sudo apt install rosbash

解决方法:重新安装ros版本
sudo apt install ros-noetic-desktop-full

5.3 执行可执行文件

命令行终端先运行roscore启动master阶段,再在另一个终端执行可执行文件,生成的可执行文件在~/catkin_ws/devel/lib/helloworld目录下

有两种运行方法,到可行性文件所在目录:
(1) rosrun命令:rosrun helloworld hw,其中helloworld是功能包名,hw是节点名(也就是可执行文件名)
(2) 直接执行:./hw。

ros创建功能包和编译过程问题处理相关推荐

  1. 相机标定原理 用ROS camera_calibration 功能包 在gazebo中进行 相机校准

    在gazebo中进行相机标定 相机标定原理 相机标定意义 相机标定原理 相机标定参数 相关坐标系 世界坐标系 相机坐标系 像素坐标系.图像坐标系 相机坐标系转换为世界坐标系 像素坐标系转换为图像坐标系 ...

  2. ROS rviz_satellite功能包可视化GNSS轨迹,卫星地图的使用

    安装步骤 mkdir -p catkin_ws/src cd catkin_ws/src git clone https://github.com/nobleo/rviz_satellite # cl ...

  3. ROS机器人操作系统——创建工作空间与功能包(四)

    ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一.工作空间 1.创建工作空间 2.编译工作空间 3.设置环境变量 4.检查环境变量 二.功能包 1.创建功能包 2.编译功能包 总结 前言 ...

  4. ROS知识【11-1】:建立用户自己的工作空间、功能包

    一.关于功能包 的操作指令 围绕功能包的操作指令,这些指令存在的必要性,就是直接对某个包进行操作,尤其是如果有上百个功能包,直接从linux进行操作是低效的: 二.乌龟案例分析 当ros安装好后,用下 ...

  5. ROS2入门教程—创建ROS2功能包(C++版)

    ROS2入门教程-创建ROS2功能包(C++版) 1 ROS2中的功能包 2 创建功能包 3 编译功能包 4 设置环境变量 5 运行功能包 6 功能包中的内容 7 修改package.xml文件    ...

  6. ROS2——功能包(六)

    ROS2机器人操作系统 文章目录 ROS2机器人操作系统 前言 一.功能包是什么 二.功能包的具体使用 1.创建功能包 2.编译功能包 3.功能包的结构 C++功能包 Python功能包 前言 每个机 ...

  7. ROS: catkin和rosmake创建和编译功能包、执行节点

    ROS: catkin和rosmake创建和编译功能包 1.编译功能包 在工作空间的根目录下执行编译才行,比如我工作空间根目录是/home/kandi/catkin_ws 2.编译生成目标文件 这里以 ...

  8. ROS(1)创建工作空间和功能包过程

    1.创建工作空间 (1)创建 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace (2)编译 cd ~/catkin_w ...

  9. ROS入门-7.创建工作空间与功能包

    一.工作空间 概述:是一个存放工程开发相关文件的文件夹 包括四个主要文件夹 src(代码空间):用来放置功能包,功能包的代码,配置文件,launch文件等 build(编译空间):放置编译过程当中产生 ...

最新文章

  1. XP,2003下使用route命令增加永久路由(静态路由)
  2. 磁盘被占满   系统出现 no space left on 报错(block被占满/inode被占满)
  3. owc_绘图区(PlotArea)背景显示多种颜色
  4. 关于Debug和Release之本质区别的讨论
  5. 静态方法+工厂方法(静态方法用途)
  6. 云+X案例展 | 传播类:南方报业数据中台建设,助力“智媒”飞跃发展
  7. 5G 是安全漏洞的“救世主”吗?
  8. fatal error LNK _X
  9. 数据分析师的前世今生
  10. atitit.DD dragdrop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结
  11. c语言怎样设计程序界面,「分享」C语言如何编写图形界面
  12. 软件供应链安全威胁:从“奥创纪元”到“无限战争”
  13. superview透明问题
  14. StringRedisTemplate、opsForValue、setIfAbsent、setIfPresent、getAndSet、increment、decrement用法
  15. ps3能装linux上网,上百度聊QQ 装Linux让你的PS3无所不能
  16. Linux线程同步与Windows线程同步
  17. flutter的Toast
  18. Android端实现多人音视频聊天应用(二):多人视频通话
  19. VM虚拟机故障安装不了虚拟网卡解决办法
  20. 云中数据_免费备份和共享云中数据的最佳网站

热门文章

  1. java groovy jar包_如何将jar包包含在groovy脚本中?
  2. android html 换行_Android中Strings资源加空格,换行符,@等方法示例
  3. linux杀dmol3进程,linux下运行Gaussian09进程被killed - 量子化学 - 小木虫 - 学术 科研 互动社区...
  4. 拖链电缆 机器人电缆_尼龙拖链在机器中起着电缆的作用
  5. jvm中有哪些内存区域会发生内存溢出
  6. python3.5.3下载安装教程_在Python3.5下安装和测试
  7. php cms 插件开发,phpcms编辑器插件最新版——ckeditor4.5
  8. Java高并发编程:使用JDK5中同步技术的3个面试题
  9. abap 给用户分配事物代码权限_【第五篇】SAP ABAP7.50 之用户接口
  10. 相机内参_鱼眼相机标定模型