ROS案例:使用C++输出helloword

步骤:

1.创建一个工作空间(整相当于个项目存在的一个文件夹)

2.在工作空间内创建一个功能包(存储你想要这个项目实现的功能的代码以及其他一些配置文件)

3.编辑cpp源文件(编写cpp程序来实现功能)

4.编辑配置文件(其实就是指定要运行的cpp程序文件)

5.编译并执行。

具体步骤:

1.创建一个工作空间(整相当于个项目存在的一个文件夹)

新建一个文件夹,并且命名,用来存放实现功能所需要的文件,即工作空间。

在命令行输入指令,这样创建了一个demo1_ws的工作空间,并且在它的下面创建了一个src文件夹,并且编译所有:

mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make

catkin 是ROS中的一个构建和编译工具。它用于管理ROS软件包的依赖关系、编译源代码、生成可执行文件等。具体来说,catkin 是一个基于CMake的工具,它简化了ROS软件包的构建过程。使用 catkin,你可以轻松地编译和安装ROS软件包,同时自动处理软件包之间的依赖关系。这使得在ROS环境中开发和部署复杂的机器人应用程序变得更加方便。

2.在工作空间内创建一个功能包(存储你想要这个项目实现的功能的代码以及其他一些配置文件)

在src内创建一个ros功能包(注意这里的ros包并不是单纯的建立一个文件夹,而是用catkin来创建一个新的ros包),并且为这个ros功能包添加依赖

cd src
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs

上述命令,会在工作空间下生成一个功能包,该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。

3.编辑cpp源文件(编写cpp程序来实现功能)

进入创建的ros包的目录下的src文件夹(不是刚开始创立的src文件夹),新建一个cpp文件,打开编辑

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    //执行 ros 节点初始化
    ros::init(argc,argv,"hello");
    //创建 ros 节点句柄(非必须)
    ros::NodeHandle n;
    //控制台输出 hello world
    ROS_INFO("hello world!");

    return 0;
}

4.编辑配置文件(其实就是指定要运行的cpp程序文件)

打开 ros 包下的 Cmakelist.txt文件,取消下面几行的注释符号,并且修改为:

add_executable(hahaha
  src/hello.cpp
)
target_link_libraries(hahaha
  ${catkin_LIBRARIES}
)

这是将hello.cpp文件映射为hahaha这个名字,名字可以自定义

并且为ros包提供所有库的使用连接

5.编译与执行

进入工作空间目录

执行catkin_make来编译

为了让该工作空间下的程序在任何窗口下都能执行,需要将该功能包添加进系统的环境变量:

打开.bashrc文件(这是一个系统文件),将我们的ros功能包添加至系统的环境变量:在最后一行输入:

source ~/demo1_ws/devel/setup.bash

新打开一个命令行输入roscore

新建一个命令行,进入工作空间,输入以下指令来使新添加系统的环境变量生效:

source ~/.bashrc

然后运行cpp程序:

rosrun ros包名 在配置文件中为cpp文件映射的名

控制台输出hello world

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值