#catkin学习第一章:整体框架与ROS环境设置

ROS工程结构

catkin工作空间

catkin wprkspace
|--build							
|--devel             //开发空间,
|--src							//由src文件夹递归向下查找功能表
|	|--package1					//功能包,最基本的功能包只要有下面两个文件,其他根据需要添加
|	|	|--CMakeLists.txt		//规定catkin的编译规则
|	|	|--package.xml			//定义package的属性
|	|--package2
|	|--folder
|	|	|--package3
|	|	|--package4

#catkin_make 建立工作空间,在spacename文件夹下,必须要有src文件夹
$ mkdir -p ~/<spacename>/src
$ cd ~/<spacename>
$ catkin_make
#编译
$ cd ~/<spacename>     #回到工作空间
$ catkin_make
$ source ~/<spacename>/devel/setup.bash 	#编译完后要source刷新环境

配置ROS环境

一般而言都会遇见一种ROS环境问题,即VScode无法识别ros.h头文件、无法实现Tab键补全、跳转等问题。我用以下方法解决问题。参考原文章1参考原文章2

1. 官网安装deb版VScode

大家一般都会在ubuntu的软件商店下载VScode,但是用这种方法下载的VScode会出现无法输入中文等问题,建议大家去官网安装deb文件,可以解决这个问题,我就是用官网的deb版。
在这里插入图片描述安装下载好的deb文件包

$ sudo dpkg -i <deb文件名>

在这里插入图片描述

2.安装VScode插件

在VScode 的插件栏安装以下插件
Code Runner;
ROS(Software);
ROS(Develop);
XML Tools。
在这里插入图片描述在这里插入图片描述

3.生成compile_commands.json文件

在build文件夹下生成compile_commands.json

1)用catkin_make编译方式
$ catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=1
2)用catkin build编译方式
$ catkin config --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
$ catkin build

现在可以在VScode内识别ros.h文件并自动补全了。如果你的还不可以就参考那两篇文章,那两篇文章都需要配置json文件,比较麻烦。


ros指令

1、 rospack

查找某个pkg的地址
$ rospack find package_name

列出本地所有pkg

$ rospack list

2、 roscd

跳转到某个pkg路径下

$ roscd package_name

3、 rosls

列举某个pkg下的文件夹信息

$ rosls package_name

4、 rosed

编辑pkg中的 文件

$ rosed package_name file_name

5、catkin_create_pkg

创建一个pkg

$ catkin_create_pkg <pkg_name> [deps]

6、rosdep

安装某个pkg所需的依赖,当你从别处下载pkg时用这条命令来安装这个pkg所需的依赖包

$ rosdep install [pkg_name]

7、rosnode

查看节点信息
list;查看当前运行的节点

#显示当前正在运行的ROS节点
$ rosnode list

info;命令返回的是某个指定节点的信息

#查看rosout节点的详细信息
$ rosnode info /rosout

ping;测试节点是否正常

#测试rosout节点是否正常工作
$ rosnode ping rosout

8、rosrun

rosrun可以在不需要知道包的路径,而直接运行软件功能包的节点。用法如下

$ rosrun [package_name] [node_name]

rosrun可以重映射节点名词

#将节点名turtlesim_node改变为my_turtle
$ rosrun turtlesim turtlesim_node __name:=my_turtle

rqt_graph图形化界面观看当前运行的所有ros节点之间的关系,使用前必须先安装rqt_graph。
使用方法

#安装rqt_graph
#将<distro>替换成你安装的ROS发行版简称(比如kinetic或noetic等)
$ sudo apt-get install ros-<distro>-rqt
$ sudo apt-get install ros-<distro>-rqt-common-plugins
#运行rqt_graph查看节点关系
$ rosrun rqt_graph rqt_graph

9、roslaunch

$ roslaunch <pack_name> <*.launch>

10、rosbag record

记录当前发布的话题的内容

#-a 参数表明所有的话题都积累在同一个bag文件中
$ rosbag record -a
#记录指定话题数据到特定的bag文件中。将 topic1和topic2的数据记录到<bagfile name>文件中
$ rosbag record -o <bagfile name> <topic1 name> <topic2 name>
# 用info命令检测<bagfile name>的文件内容
$ rosbag info <bagfile name>
# 回放<bagfile name>中话题的运行过程
$ rosbag play <bagfile name>
# 从第20s开始回放<bagfile name>
$ rosbag play -20 <bagfile name>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值