在ROS上创建第一个helloworld程序

在ROS上创建第一个helloworld程序

1.创建工作空间

1)返回主目录

cd ~

2)创建工作空间文件夹

mkdir catkin_ws

3)在catkin_ws目录下新建scr文件夹

cd catkin_ws/
mkdir src

4)初始化scr目录,生成CMakeLists.txt为功能包编译配置

cd scr
catkin_init_workspace

5)返回catkin_ws目录,对该工作空间进行一次编译

cd ~/catkin_ws
catkin_make

6)配置环境变量,使新建的catkin_ws工作空间可用

source devel/setup.bash

此时已经创建好了一个ROS的工作空间了,接下来就是在catkin_ws工作空间下的src目录下新建功能包并进行功能包程序编写了

2.创建功能包

1)在catkin_ws/scr下创建名称为hello_word的功能包(ROS功能包的命名规范:只允许使用小写字母、数字和下划线,且首字符必须为一个小写字母)

cd scr
catkin_create_pkg hello_world

此时在~/catkin_ws/src/目录下能看到一个叫hello_world的文件夹,文件夹名称就是功能包的名称以及功能包的唯一标识符,这个说明功能包创建成功

3. 编写代码

在hello_word目录下创建一个hello_world_node.cpp文件

cd hello_world
touch hello_world_node.cpp

用文本编辑器gedit打开hello_world_node.cpp文件

gedit hello_world_node.cpp

并输入以下内容

#include “ros/ros.h” //包含ROS/ROS.h头文件,这是ROS提供的客户端库,是必须包含的头文件,在后面的编译配置中要添加相应的roscpp依赖库

int main()
{
	ros::init(argc, argv, "hello_node"); //这是初始化ros节点并指明节点名称,这里给节点取名为hello_node,一旦程序运行后就可以在ros计算图中被注册为hello_node名称标识的节点
	ros::NodeHandle nh; //这是一个声明ros节点的语句,用来初始化ros节点,是必须得
	ROS_INFO_STREAM("hello world"); //调用了roscpp库提供的ROS_INFO_STREAM来打印信息
}

4.编译配置

为功能包添加roscpp依赖库
1)首先打开功能包目录下的CMakeLists.txt(注意是功能包目录下的CMakeLists.txt不是src目录下的CMakeLists.txt)
在这里插入图片描述在CMakeLists.txt中找到fin_package(catkin …)在括号中加入roscpp
在这里插入图片描述2)找到include_directories(…)字段,将括号中${catkin_INCLUDE_DIRS}前面的#删除
在这里插入图片描述
3)在文件最后添加以下代码

add_executable(hello_world_node ~/catkin_ws/src/hello_world/hello_world_node.cpp)
target_link_libraries(hello_world_node ${catkin_LIBRARIES})

在这里插入图片描述
4)打开功能包目录下的package.xml文件,找到<buildtool_depend>catkin</buildtool_depend>字段
在这里插入图片描述在黄色字段下添加以下代码

<build_depend>roscpp</build_depend>
<build_export_depend>roscpp</build_export_depend>
<exec_depend>roscpp</exec_depend>

5)编译

cd ~/catkin_ws/
catkin_make

6.运行

1)启动ROS节点管理器,ROS节点管理器是所有节点运行的基础
打开命令终端输入:

roscore

2)重新再打开一个终端,用source devel/setup.bash激活catkin_ws工作空间

cd catkin_ws
source devel/setup.bash

3)用ros <package_name><node_name>启动功能包中的节点

rosrun hello_world hello_world_node

输出成功
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值