第一节:ROS的一些基本操作
注意事项:
在乌班图里面安装好ros之后,需要搭建ros集成开发环境,方便我们进行相关的操作,下载VScode和Terminator软件。
Terminator安装命令:“sudo apt install terminator”
VScode下载地址:“https://code.visualstudio.com/docs?start=true”下载后双击即可安装。
VScode安装后需要配置tasks.json才能编译ROS,在创建功能包后,快捷键 ctrl + shift + B 调用编译,选择:“catkin_make:build”,点击右边的齿轮,修改.vscode/tasks.json文件如下:
{ // 有关 tasks.json 格式的文档,请参见 // https://go.microsoft.com/fwlink/?LinkId=733558 "version": "2.0.0", "tasks": [ { "label": "catkin_make:debug", //代表提示的描述性信息 "type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行 "command": "catkin_make",//这个是我们需要运行的命令 "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2” "group": {"kind":"build","isDefault":true}, "presentation": { "reveal": "always"//可选always或者silence,代表是否输出信息 }, "problemMatcher": "$msCompile" } ] }
注:如果不能实现乌班图内外相互复制,可以执行以下两个命令:
sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools-desktop
一、创建工作空间
(一)、创建工作空间,并在工作空间下面生成src文件夹
mkdir -p 工作空间名/src
(二)、进入工作空间
cd 工作空间名
(三)、编译工作空间
catkin_make
二、在工作空间下创建功能包
注:这一步骤也可在vscode中直接创建功能包,只需进入右键工作空间下的src目录,选择最后一项“Create Catkin Package”,输入功能包名,回车,输入依赖包名,回车,即可。
(一)、进入功能包
cd src
(二)、导入功能包的依赖
catkin_create_pkg 功能包名 roscpp rospy std_msgs
三、在功能包下面编写代码
(一)、cpp版
1、在功能包的src目录下创建cpp文件并进行编写
直接在vscode中右键创建即可
最简单的cpp源文件:
#include "ros/ros.h" //导入ros的包,任何ros的cpp文件都要导入这个头文件 int main(int argc, char *argv[]) //定义主函数,注意第二个参数中的const一定删 { //执行 ros 节点初始化 ros::init(argc,argv,"hello"); //这是在初始化ros结点,“hello”为节点名 //创建 ros 节点句柄(非必须) ros::NodeHandle n; //这是在初始化节点句柄,节点句柄可以用来调用各种函数 //控制台输出 hello world ROS_INFO("hello world!"); //这是在进行日志输出,即在我们的终端中输出内容 return 0; }
注:(1)、当日志输出中包含中文时会出现乱码,解决方法为:在函数开头加入下面任意一句代码
setlocale(LC_CTYPE, "zh_CN.utf8"); setlocale(LC_ALL, "");
(2)、如果没有代码提示,解决方法为:修改 .vscode/c_cpp_properties.json文件,设置 "cppStandard": "c++17"
2、编辑功能包的Cmakelist.txt文件
这个文件只需改两个地方:
add_executable(cpp文件的映射名称 src/xxx.cpp ) target_link_libraries(cpp文件的映射名称 ${catkin_LIBRARIES} )
注:cpp的映射名称可以随便起,在执行时我们会调用映射名称,但一般我们要求其与cpp文件名一致;xxx.cpp即改功能包src目录下的cpp文件名带后缀。另外这两个命令分别在Cmakelist.txt文件的136、149行附近。
3、进入工作空间目录并编译
注:这一步骤也可以在vscode中直接使用,使用ctrl+shift+B直接编译即可。
cd 自定义空间名称
catkin_make
4、执行代码
首先在第一个终端下运行:
roscore
启动ros核心,使用ros之前必须执行这一步
接着创建第二个终端,在该终端下:
cd 工作空间名
source ./devel/setup.bash
rosrun 功能包名 映射名称
注:source ./devel/setup.bash是在修改环境变量,每创建一个终端都需要运行这句话;也可以直接在.bashrc文件中进行设置,.bashrc文件隐藏在我们乌班图的主目录下,使用ctrl+H即可取消隐藏,在文件最后追加“source home/ros/工作空间名/devel/setup.bash”,然后新建终端,运行一次.bashrc文件,输入“source .bashrc”即可。设置完之后就无需每个终端都修改环境变量。
(二)、python版
1、进入 ros 包添加 scripts 目录并编辑 python 文件
先创建scripts文件:
cd ros包 mkdir scripts
进入scripts后,右键创建.py文件,文件名可以任意定义
最简单的.py源文件:
#! /usr/bin/env python # 选择一个python解释器 import rospy if __name__ == "__main__": rospy.init_node("Hello") # 这是在初始化ros结点,“hello”为节点名 rospy.loginfo("Hello World!!!!") # 这是在进行日志输出
2、为 python 文件添加可执行权限
先进入scripts目录,在终端下输入ll可查看可执行权限,接着输入下列语句:
chmod +x文件名.py
再输入ll查看权限是否有变化,若无变化,可尝试下列语句:
sudo chmod 777 文件名.py
3、编辑 ros 包下的 CamkeList.txt 文件
catkin_install_python(PROGRAMS scripts/文件名.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
注:这个命令在Cmakelist.txt文件的162行附近。
4、进入工作空间目录并编译
注:这一步骤也可以在vscode中直接使用,使用ctrl+shift+B直接编译即可。
cd 自定义空间名称
catkin_make
5、执行代码
首先在第一个终端下运行:
roscore
接着创建第二个终端,在该终端下:
cd 工作空间名 source ./devel/setup.bash rosrun 功能包名 文件名.py标签:文件,ROS,catkin,创建,笔记,空间,cpp,ros,史上 From: https://www.cnblogs.com/godxumyblog/p/17058630.html