ROS入门学习笔记之创建功能包

ROS 创建功能包

ROS工作空间是一个用于组织和构建ROS软件项目的目录结构。它是一个包含多个功能包的顶级目录。工作空间允许同时管理多个功能包,使得软件开发更加方便和模块化。

在工作空间中,可以同时包含多个功能包,并通过交叉编译和共享依赖项来管理它们之间的关系。

ROS功能包是ROS软件项目的基本单元。它是一组相关节点、库、配置文件和资源的组织形式。功能包是对特定功能或任务的模块化实现。

功能包可以根据需要提供各种功能,例如ROS节点、传感器驱动程序、算法实现、模拟器、可视化工具等。

ROS工作空间的创建和编译

第一步 新建目录

打开终端命令窗口后,输入命令新建工作空间目录( ros_workspace )和子目录( src )

sudo mkdir -p ros_workspace/src

执行该命令后需要输入系统密码:dongguan

第二步 赋权工作空间

在终端中键入以下命令给工作空间赋权。

sudo chmod -R 777 ros_wokspace/

执行该命令后,ros_workspace目录以及其所有子目录和文件赋予了完全的读、写和执行权限(777),请注意,使用777权限可以让任何用户都能对该目录及其内容进行修改,这可能会导致安全风险。

第三步 编译工作空间

在终端命令窗口中,通过cd命令跳转到自己创建好的工作目录。

cd ros_workspace

Linux cd(英文全拼:change directory)命令用于改变当前工作目录的命令,切换到指定的路径。

若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, 则表示目前目录位置的上一层目录。

cd ..  //返回上级目录
cd ~   //切换到主目录
cd --help  //帮助文档

跳转到工作空间目录后,输入编译命令。编译将在工作空间创建builddevel子目录。

catkin_make

build 目录:包含编译过程中生成的临时文件和中间结果。

devel 目录:包含编译后的功能包二进制文件、库文件和脚本等。这些文件是可执行文件和库的最终构建结果。

编译完成后需要将工作空间路径添加到系统环境变量中。

echo " source ~/ ros_workspace_test /devel/setup.bash" >> ~/.bashrc

也就是在**.bashrc**文件中添加工作空间的路径

第四步 创建ROS功能包

创建功能包需要在工作空间中的src目录下新建功能包。首先进入src目录

cd ros_workspace/src/

创建功能包

catkin_create_pkg ros_pkg roscpp rospy std msgs

catkin_create_pkg 是一个 ROS 命令行工具,用于创建一个新的 ROS 功能包。

ros_pkg:这是要创建的功能包的名称。可以根据需要选择一个有意义的名称。

roscpp:这是一个所需的依赖项,表示该功能包将使用 roscpp 库,它是用于 C++ 开发的 ROS 客户端库。

rospy:这是一个所需的依赖项,表示该功能包将使用 rospy 库,它是用于 Python 开发的 ROS 客户端库。

std_msgs:这是一个所需的依赖项,表示该功能包将使用 std_msgs 包,它是 ROS 中的标准消息包,包含一些常用的消息类型。

第五步 编写C++/Python文件

工作空间/src/功能包/src 目录下输入下面命令创建并编辑.cpp/.py文件。

gedit ros_cpp.cpp   //创建.cpp文件
gedit ros_py.py     //创建.py文件

在.cpp文件下编写代码

#include "ros/ros.h"            //包含ros头文件

int main(int argc, char *argv[])   //编写ros的main函数
{
    ros::init(argc, argv, "node_name_demo1"); //初始化ros节点
    ROS_INFO("hello world!");             //输出日志
    return 0;
}

第六步 添加编译规则

返回到工作空间下功能包路径

cd /home/wheeltec-client/ros_workspace_test/src/ros_pkg/

打开CMakeLists.txt

gedit CMakeLists.txt

在CMakeLists.txt中添加编译规则

add_executable(ros_cpp_node/ros_cpp.cpp)

添加目标链接库

target_link_libraries(ros_cpp_node ${catkin_LIBRARIES})

请添加图片描述

第七步 编译功能包

返回到工作空间目录,编译文件

cd ros_workspace_test

进入工作空间后,执行编译命令

catkin_make

第八步 开启节点

启动ros master

roscore

启动后打开一个新终端,在工作空间目录下运行节点

cd ros_workspace
rosrun ros_pkg ros_cpp_node

请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值