我的Linux与ROS的不眠不休:从入门到入土(三)——hellow,ROS
一、ROS回顾
没啥好回顾的。
ros操作简单又功能强大(百度这么说的),但学起来也没那么容易。
二、Hellow,ROS
上一篇说过,ROS程序员需要写的程序,其实就是创造节点。那么,怎么样写,写在哪里?需要先了解一些概念。
1、工作空间
ros的工作空间基本可以看作是工程项目了。工作空间下,装载着这个项目需要的依赖包,头文件,执行文件,代码等等文件。可以通过一个树状分级了解一下。
想要通过ROS建立一个机器人,首先建立一个机器人项目文件,也就是工作空间。工作空间下,又3个文件,分别是build,装着依赖包,库文件等杂七杂八的底层依赖的地方,devel,装着环境配置文件的地方,src,装功能包的地方。除了src,其余两个很少打交道。
当一个机器人项目被创建,就要开始构思机器人的功能了,ROS提供了功能包这一个概念,意思是,完成这一个功能的代码,都放在这个文件下就好了。
当一个功能包被创建,在其下方也存在一个src文件夹,代码就放在这个src文件夹下。
2、在ROS中,输出hellow_word
首先,创建一个机器人项目,也就是工作空间 //在~下
mkdir -p wsp_hellow_ros/src
在工作空间下,与src文件夹同级的目录,使用命令//在wsp_hellow_ros下
catkin_make
这时候,cmake工具会自动创建需要的环境与依赖,生成build和devel文件。同时src下也有一个.txt文件,是用来负责编译环境配置,库连接等等工作的。
创建一个功能包 //在src下
catkin_create_pkg hellow_ros cpp
参数1为功能包名,参数二为功能包所需依赖。 创建完后,src下应有一个文件夹hellow_ros,同时该文件夹下存在2个文件夹,2个txt文件。
来到功能包下的src,创建一个节点Node,实际上就是开始写程序了。创建一个cpp文件,建议文件名与希望生成的节点名相同。
程序如下:
#include<ros/ros.h>
#include<iostream>using namespace std;int main(int argc,char*argv[] )
{ros::init(argc,argv,"printf_hellow"); //创建一个节点,名为printf_hellowwhile(ros::ok()){ROS_INFO("hellow,ROS!");sleep(1);//等待1s} }
c++程序是需要编译才能运行的,通过cmake工具编译,要将编译的文件目标导入功能包下src里的CMake....txt下,不是工程下的src哦。
编辑CMake.txt文件添加这两句。
add_executable(exe1 src/printf_hellow_ros.cpp)
target_link_libraries(exe1 ${catkin_LIBRARIES})
这两句实际上在文件里是有原型的,他们的意思也简单易懂。
add_executable就是为目标文件生成 .exe的执行文件,第一个参数是,生成执行文件的名字。第二个参数是,想要编译的文件的路径。
target_link_libraries则为生成的 .exe文件提供库的支持。二者必不可少。
最终回到工作空间目录。catkin_make一下。
打开终端,运行roscore
打开另一个终端,rosrun功能包下的执行文件,就能看见输出的hellow_ros
我的Linux与ROS的不眠不休:从入门到入土(三)——hellow,ROS相关推荐
- 我的Linux与ROS的不眠不休:从入门到入土(六)——自定义话题消息类型。
ROS中,除了使用rosmsg list 列表中所展示的消息类型外,还可以通过在功能包下创建msg文件夹,添加msg文件,达成自定义消息类型的操作. ROS自定义数据类型需要一个依赖包的支持 me ...
- ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包
ROS Noetic入门笔记(一)在ubuntu20.04中安装ROS Noetic并简单测试 ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包 ROS Noetic入门笔记 ...
- ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模
ROS系统MoveIt玩转双臂机器人系列(一)--ROS机器人建模 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译. 2. ...
- python机器人编程教程入门_机器人操作系统(ROS)入门必备:机器人编程一学就会...
原标题:机器人操作系统(ROS)入门必备:机器人编程一学就会 ROS经过十几年的发展,已经得到了极大的推广和应用,尤其是在学术界.卡耐基梅隆大学机器人研究所的大部分实验室都是基于ROS编程的,现在所在 ...
- 如何选择ROS机器人平台进行SLAM导航入门:SLAM与ROS的关系
1.SLAM与ROS的关系 1.1.关于SLAM 在了解SLAM之前,需要先对机器人有一个整体的认识.机器人是一个复杂的装置,涉及到执行机构.感知.决策等主要环节.机器人上的配备的常用执行机构有轮式运 ...
- hualinux ros 1.1:RouterOS如何入门及推荐资料
目录 一.背就相当于作死 二.需要的技术 2.1 如何学好网络:曲线更美 2.2 拿下ros脚本:学一门编程基础 2.3 linux基础:进阶的好帮手 搞网络的,多多少少都会听说过软件路由,如海蜘蛛. ...
- linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...
- ROS学习(二):在ubuntu 16.04安装ROS Kinetic
机器人操作系统 ROS 一般可以采用 apt-get的方式进行安装,可以根据自己的Ubuntu的具体版本下载相应的ROS版本进行安装. 安装前 1.配置软件库: Ubuntu repositories ...
- automake linux,Linux下automake软件编译与发布快速入门
Linux下automake软件编译与发布快速入门 2008-04-22 eNet&Ciweek 进入编辑界面,输入内容如下: AUTOMAKE_OPTIONS=foreign bin_PRO ...
最新文章
- 兹介绍我校计算机科学与技术,清华大学计算机科学与技术系
- linux tomcat端口冲突解决
- 单元测试:基于Groovy的Spock框架
- 用python爬取i春秋的课程名
- 关于将一个数输出为原码、反码和补码的解惑
- NYOJ 17 单调递增最长公共子序列
- O(N) 求 1~N 逆元 模板及证明
- CSS border-image属性
- c++ 读文件_第十六节:读文件,文件的创建,写文件,文件的读写以及鼠标键盘事件和图形绘制...
- ServerBootstrap
- j计算机一级考试题,2017全国计算机一级考试试题与答案
- Unity URP一分钟实现遮挡透视
- 关于 IIS7.0下文件写入无权限的解决办法
- 【渝粤教育】国家开放大学2019年春季 3818-22T燃气工程施工 参考试题
- MacOS新版本,不能装老版本Xcode
- python mooc-课程资源 | Python语言系列专题MOOC
- 将python(py文件)转换成.exe方法
- Android 如何测试你的Base64是否正确展示
- hibernate四种状态
- 金融财务英译汉常用词怎样翻译
热门文章
- Adobe 安装失败[安装遇到错误]-information not found in Media_db
- 江苏省计算机二级vb百度网盘,江苏省计算机二级vb基本知识点总结
- htc m8 wp android,表现优秀 WP版HTC M8电池续航能力测试结果出炉
- 前端小风车 HTML,CSS,Javascript
- 理光Aficio MP C2800 打印机配置扫描到samba共享文件夹中
- 乐斗至尊 -- 成长记录
- htc sync for all htc android phones,HTC Sync 手机电脑同步软件
- 海天蚝油《挑战不可能》最强记忆大师夫妻迎战31200种可能
- 360网盘440.5G免费送
- 萧乾升:4.12今日财经风险提示