系列文章目录

【ROS基础】Linux 命令行
【ROS基础】.launch 文件语法记录
【ROS基础】CMakeLists.txt 文件语法记录
【ROS基础】Package.xml 文件语法记录
【ROS基础】ROS_c++ 语法记录



前言

很多 c++ 语法特性太多,自忖不可能完全记得住,本文用于记录练习 SLAM 过程中收获的 c++ 知识点。


1、main 函数入口参数 argc 、argv

int main(int argc, char** argv) //or
int main(int argc, char*  argv[]) //or
int main(int argc, char   argv[][])
  • argc :整数,用来统计你运行程序时,送给main函数的命令行参数的个数。
  • argv :指针数组,用来存放指向你的字符串参数的指针,每一个元素指向一个参数。
  • argv[0] :指向可执行文件的全路径名。
  • argv[1] :指向在命令行中执行程序名后的第 1 个字符串。
  • argv[2] :指向执行程序名后的第 2 个字符串。

注:数组名后加方括号,相当于 * 的一层解引用。


2、ros::NodeHandle::param()

官方参考页:http://docs.ros.org/en/kinetic/api/roscpp/html/classros_1_1NodeHandle.html
函数原型:

template<typename T >
bool ros::NodeHandle::param (const std::string & param_name,T & param_val,const T &     default_val) const

第1个为输入参数:param_name, 从服务器中查找名为param_name的参数;
第2个为输出参数:param_val,将从参数服务器中找到的、名为param_name的参数的参数值赋给param_val
第3个为输入参数:若在服务器中没有找到param_name,则将第3个默认参数default_val赋值给第2个参数param_val.
举例:

#define DEFAULT_TYPE "omni"
#define DEFAULT_TYPE_VERIFY truestring type;
bool type_verify;ros::init(argc, argv, "tianbot_core");
ros::NodeHandle nh("~");nh.param<std::string>("type", type, DEFAULT_TYPE);
nh.param<bool>("type_verify", type_verify, DEFAULT_TYPE_VERIFY);

3、ROS 节点命名空间在 C++ 中的如何实现

// launch 文件中 ns==“node_namespace”ros::init(argc, argv, “node_name”); // node nameros::NodeHandle n; //n 命名空间为/node_namespaceros::NodeHandle n1(“sub”); // n1命名空间为/node_namespace/subros::NodeHandle n2(n1,“sub2”);// n2命名空间为/node_namespace/sub/sub2ros::NodeHandle pn1(“~”); //pn1 命名空间为/node_namespace/node_nameros::NodeHandle pn2(“~sub”); //pn2 命名空间为/node_namespace/node_name/subros::NodeHandle pn3(“~/sub”); //pn3 命名空间为/node_namespace/node_name/subros::NodeHandle gn(“/global”); // gn 命名空间为/global

node_name 的含义:

node_name = node_namespace + nodename

3、ros::spin()

ros::spin()不会返回,直到节点被关闭,或者调用ros::shutdown(),或者按下Ctrl+C


总结

【ROS基础】ROS_c++ 语法记录相关推荐

  1. 【ROS基础】Linux命令行

    系列文章目录 [ROS基础]Linux 命令行 [ROS基础].launch 文件语法记录 [ROS基础]CMakeLists.txt 文件语法记录 [ROS基础]Package.xml 文件语法记录 ...

  2. MarkDown基础语法记录

    基础语法记录,其中有一些博客园暂不支持 <!--标题--># 一级标题 ### 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题 一级标题 二级标题 三 ...

  3. 【Python基础语法记录】

    Python基础语法记录 隔好长时间不用Python就什么都不记得了,记在这里方便下次找 文章目录 Python基础语法记录 一.循环语句 二.list相关 1.创建 2.增加 3.删除 4.两个li ...

  4. 一 ROS基础教程

    ROS教程 这是小弟的学习笔记,有错求请拍,多指教,谢谢 一 ROS基础知识 ROS文件系统介绍 1.功能包集stack ROS软件包集合,像Navigation Stack,属于导航软件包集合,包含 ...

  5. 【一学就会的ROS基础入门教程 】03-1 ROS基础编程:ROS工作空间的创建、话题topic的发布与接收、以及话题消息的自定义使用

    [一学就会的ROS基础入门教程 ]03-1 ROS基础编程:ROS工作空间的创建.话题topic的发布与接收.以及话题消息的自定义使用 文前白话 1.创建工作空间与功能包 关于工作空间的介绍 创建开发 ...

  6. 狂神Java面试题总结:基础及语法169道

    狂神Java面试题总结:基础及语法169道 收集整理:秦疆 联系方式QQ:24736743 微信:qinlvejiang 答案来源收集与互联网,部分内容经供参考,代码全部为手写验证通过. 1~20 1 ...

  7. 2022Java基础、语法最全面试题,为秋招做好准备

    Java基础.语法: 1.Java跨平台原理(字节码文件.虚拟机) C/C++语言都直接编译成针对特定平台机器码.如果要跨平台,需要使用相应的编译器重新编译. Java源程序(.java)要先编译成与 ...

  8. [ROS基础-4] ROS系统框架

    系列文章目录 [ROS基础-1] Linux系统介绍与ubuntu安装(virtualbox) [ROS基础-2] Ubuntu系统基本操作与基本命令讲解 [ROS基础-3] ROS系统安装与基本配置 ...

  9. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介...

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

最新文章

  1. oracle procedures批量删除带索引条件数据很慢_见微知著,数据库应用设计优化浅谈...
  2. web架构设计经验分享 (转)
  3. 云服务器Linux jdk安装详解(centos8)
  4. 深入理解java虚拟机一 JAVA运行时内存区域与class文件
  5. python去重且顺序不变_Python中list去重且保持原顺序不变的方法
  6. windows bat 批处理 !vm 合并快播文件
  7. spring cloud 实战项目搭建
  8. 三星关闭在华最后一家电脑厂 约850名员工受影响
  9. mac qt编译出现问题的解决方法
  10. mapgis10原创2019视频教程
  11. 串口调试工具和串口下载工具的区别
  12. 《21天学通C++(第五版)》 [美] Jesse Liberty Bradley Jones著——个人学习笔记
  13. matlab如何给页眉加图片,word页眉页脚修改(Word header footer modification).doc
  14. [云原生专题-41]:K8S - 核心概念 - Service业务的统一网关接口Ingress详解、安装、常见操作命令
  15. 聊聊IT外包公司(外包公司的运作模式和赚钱之道)
  16. CSS学习(一)——制作新年贺卡
  17. 携程后台开发笔试第二题
  18. 机器学习中的数学原理——过拟合、正则化与惩罚函数
  19. 移动设备管理软件优劣,南京烽火星空来判别
  20. 苹果乔布斯靠它爆红;IBM创始人靠它发家,这项技术是如何发展起来的?|科技拾遗...

热门文章

  1. poj--1625Censored!+AC自动机上的dp+大数
  2. 考研逻辑-逻辑4主讲人:王超-2020-08-15
  3. 学习-Python列表之列表应用之降序排列
  4. 代数表达式c语言表达式,[单选] 设floata=2,b=4,c=3;,以下C语言表达式与代数式(a+b)+c计算结果不一致的是()...
  5. Gartner 公布 2022 新兴技术成熟度曲线,这些技术趋势最值得关注
  6. 第五章:用Python分析商品退单数据并找出异常商品
  7. 报数——约瑟夫环问题
  8. 7-9 龟兔赛跑 (20分)
  9. 微信小程序基础功能解析
  10. 1919: 三个整数排序(指针专题)