ROS笔记

本文详细介绍了如何在ROS(RobotOperatingSystem)环境中创建工作空间,设置文件结构,创建功能包和节点,以及涉及的CMakeLists配置、topic通信、服务节点和服务调用的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建工作空间

新建一个文件夹My_v1_ws,作为存放工作空间的位置;

mkdir My_v1_ws

然后在这个目录下,执行catkin_make,这样会生成两个文件夹build 和 devel;

而且src文件夹下会生成CMakelist文件;

再在src目录下新建文件夹,比如应用层使用的mkdir applications,同样,也可以新建其他的文件夹;

创建功能包

cd到applications文件夹下,创建功能包basic_com ,依赖是std_msgs:

catkin_create_pkg basic_com roscpp std_msgs 

这样就创建了功能包;

修改功能包名称 mv basic_com a01_basic_com_cpp,application 第一个功能包,名称+使用的语言;

可以回到My_v1_ws下,使用catkin_make,空包编译一下,看看有没有问题;

创建节点

在a01_basic_com_cpp/src文件夹下,创建CPP源文件basic_com_node.cpp,在a01_basic_com_cpp/include/basic_com文件夹下,创建头文件;

修改CMakeList

1.因为是按照catkin生成的位置放置的头文件,所以,iclude_derectories中可以包含include文件夹了;

2.在添加可执行文件:默认生成的可执行文件后面是添加了一个_node

3.生成链接库

编译节点

先启动roscore

在工作空间下再新开一个终端,source ./devel/setup.bash,然后再catkin_make;

运行节点

在工作空间下source ./devel/setup.bash,然后再rosrun basic_com,也就是包名;

ros命令

rosnode -help可以查看node相关的命令;

rostopic -help可以查看topic相关的命令

参数服务器:

服务节点;

话题topic通信

使用的是ros::Publisher和ros::Subscriber;

句柄使用的函数是advertise和subscribe;

包含的头文件

ros::init(argc,argv,"basic_com_node");basic_com_node是节点的名称;

init.h是init函数用到的,还有创建句柄,创建发布者publisher、接受者等用到的。

使用node节点创建的一个发布对象,返回值传递给定义的Pub,advertise函数中有几个参数,包括消息类型,队列长度,还要一个latch参数,不常用;

订阅者的参数中有一个是回调函数;

服务server通信

消息内容不易丢失,比较稳定;

类型ros::ServiceServer

句柄使用的函数是advertiseService和serviceClient;

服务-参数-值;

自定义服务类型

        在节点所在文件夹a01_basic_com_cpp下新建srv文件夹,在srv文件夹下新建以.srv结尾的文件,按照请求和返回的参数来编写内容,中间以三个短横线---隔开;

        下面一共修改了5处;

修改CMakeList

修改文件夹a01_basic_com_cpp下的,在find_package中添加message_generation;

再取消注释add_service_files,然后添加自己的srv文件:

再取消注释generate_messages:

修改xml文件

添加编译时候的依赖和执行时候的依赖;

编译完使用的时候,还是先创建句柄,然后使用advertiseService函数发布服务,使用serviceClient订阅服务;

可以使用rosserveice call 发布服务消息的请求;

### 使用 Conda 安装和配置 ROS 和 CMake #### 创建环境并安装依赖项 为了确保最佳兼容性和隔离性,建议创建一个新的 conda 环境来管理 ROS 及其相关工具。这可以通过以下命令实现: ```bash conda create -n ros_env python=3.8 conda activate ros_env ``` 接着,在新环境中安装必要的编译工具和其他依赖项[^1]。 #### 安装 CMake CMake 是构建现代软件项目的重要工具之一。通过 Mamba 或者 Conda 来快速高效地获取最新版本的 CMake 是一种理想的方式。执行如下指令完成安装: ```bash mamba install cmake -c conda-forge ``` 此操作会从 `conda-forge` 渠道下载并安装适合当前平台架构的最佳匹配版次的 CMake 应用程序。 #### 安装 ROS 对于 ROS 的安装,则推荐采用官方支持的方法或者是社区维护良好的渠道来进行。这里展示了一种基于 Conda 的方法来简化这一过程的一部分工作负载: ```bash mamba install compilers pkg-config make ninja colcon-common-extensions catkin_tools rosdep -c conda-forge ``` 上述命令不仅涵盖了基础开发套件还包括了一些辅助性的包如 `colcon-common-extensions` 和 `catkin_tools` 用于增强用户体验以及提高工作效率;而 `rosdep` 则是用来解析和满足 ROS 软件包所声明的各种外部依赖关系的关键组件。 需要注意的是,尽管这种方法可以极大地减少设置时间,但对于某些特定发行版或是功能模块来说可能仍需参照官方文档进行额外的手动配置才能正常使用全部特性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值