ROS学习(1)- HelloROS

本文详细介绍了ROS(RobotOperatingSystem)的安装过程,包括在Ubuntu20.04上安装ROSnoetic版。接着,创建ROS项目工作空间,使用catkin_make初始化,并编写测试代码实现topic发布功能。文章还涵盖了CMakeLists.txt的修改、程序编译以及节点运行、topic管理和消息查看等基本操作,是ROS初学者的实用指南。
摘要由CSDN通过智能技术生成

1-ROS简介和安装

ROS 是一个适用于机器人编程的框架,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。ROS 虽然叫做操作系统,但并非 Windows、Mac 那样通常意义的操作系统,它只是连接了操作系统和开发的 ROS 应用程序,所以它也算是一个中间件,基于 ROS 的应用程序之间建立起了沟通的桥梁,所以也是运行在 Linux 上的运行时环境,在这个环境上,机器人的感知、决策、控制算法可以更好的组织和运行。

————————————————

版权声明:本文为CSDN博主「感谢地心引力」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_43764974/article/details/115544825

安装:作者使用的Ubuntu 20.04 ROS版本为noetic,安装教程参考以下文章

ROS noetic版本安装在Ubuntu 20.04教程

2-创建ROS项目工作空间,初始化项目

# 递归创建目录
mkdir -p hello_ros_01_ws/src
# 进入工作空间目录
cd hello_ros_01_ws
# 使用catkin_make初始化项目
# 在src同级目录下生成build(存放编译后的文件)和devel(存放编译中使用的脚本文件)目录
catkin_make
# 将devel中的setup.bash脚本文件加入环境变量中
vim ~/.bashrc
# 文件最后一行加入
source xxx/devel/setup.bash
# 保存后运行生效命令
source ~/.bashrc
# 测试环境变量是否生效,若生效进入devel目录
roscd

3-编写测试代码

#切换到工作空间中的src目录
cd src
# 创建包命令 同时添加引用包,在src目录下生成hello_ros文件夹,并生成了CMakeLists.txt等初始文件
catkin_create_pkg hello_ros std_msgs roscpp

使用clion打开 hello_ros目录

在hello_ros/src目录中添加hello_ros_node.cpp源代码文件,并实现如下编码:


#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream>

int main(int argc,char* argv[])
{
    ros::init(argc, argv, "hello_ros_talker");
    ros::NodeHandle n;
    ros::Publisher hello_pub = n.advertise<std_msgs::String>("/hello_topic", 10);
    ros::Rate loop_rate(10);
    int count = 0;

    while (ros::ok())
    {
        std_msgs::String msg;
        std::stringstream ss;
        ss << "hello ros," << count;
        count++;
        msg.data = ss.str();
        hello_pub.publish(msg);
        loop_rate.sleep();
    }
    return 0;
}

代码实现的是topic发布功能,发布的消息为 hello ros,x 发布的频率为每秒钟10个

4-修改hello_ros/CMakeLists.txt文件,打开如下注释中的内容

catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES hello_ros
  CATKIN_DEPENDS roscpp std_msgs
#  DEPENDS system_lib
)

add_executable(${PROJECT_NAME}_node src/hello_ros_node.cpp)

add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

target_link_libraries(${PROJECT_NAME}_node
    ${catkin_LIBRARIES}
)

5-编译

切换到工作空间的根目录,运行编译命令

catkin_make

编译成功后如下图所示

6-运行

①先运行roscore启动ros master节点

roscore

成功执行后如下图所示

②运行编写的topic发布程序

rosrun hello_ros hello_ros_node

③查看所有在线节点

rosnode list

可以看到ros master节点和刚刚启动的topic发布节点

④查看所有的topic

rostopic list

可以看到系统自带的topic和刚刚启动发布的topuic

⑤订阅并打印/hello_topic话题

rostopic echo /hello_topic

可以看到不断打印收到的topic消息

到此,ROS环境的安装和HelloROS的(Topic发布)测试程序就完美结束啦!通过本次学习了解了ROS的安装和配置,ROS的工作空间,ROS的程序包创建,ROS的topic消息的发布和订阅机制,ROS编写代码初步(cpp版本),ROS节点初步了解,cmake的初步了解,ROS程序的编译(catkin_make工具),ROS自带工具命令的使用,如roscore,rosnode,rosrun,rostopic等,此篇前置知识较多,但介绍较少,需要具备一定伦理基础才能透彻路理解,所以需在理论学习后按此篇事件效果最佳,本文到这里就结束了,希望能和大家一起坚持学习下去。

千里之行始于足下!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

把我格子衫拿来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值