使用Vscode编写第一个ROS代码,实现输出helloworld(浅显易懂,无废话,一篇入门ROS)

目录

软件安装要求

代码实现

创建ROS工作空间

创建ROS功能包

编写C++代码实现

catkin_make编译代码并运行

问题及感悟

参考链接 


软件安装要求

        我本人使用的是ubuntu20.04,与其对应的ROS版本为noetic,同时需要在Linux下安装vscode软件。

        ROS安装自行百度。

        VScode安装参考我前面的文章。正确安装了VScode以及ROS后需要在VScode中下载相关扩展,以便于后续编程。

代码实现

创建ROS工作空间

mkdir -p wt_learn_demo/src

        递归创建目录wt_learn_demo并且在此目录下创建src目录,src目录的创建是必要的,之后创建的ROS工作包均需要放到src目录下。此时我的文件目录结构如下:

         在src目录下执行catkin_make命令,创建ROS工作空间,执行后在wt_learn_demo文件夹下出现3个同级目录,src、devel、build。

        此时会在src目录下生成一个CMakeLists.txt文件,这个文件是catkin_make主动生成的,无需理会。

       此时会在工作空间wt_learn_demo目录下生成.vscode文件夹,里面包含两个文件,一个名为c_cpp_properties.json,另一个为settings.json。如果你此时工作文件下没有这两个文件(必须要解决c_cpp_properties.json文件的问题,否则无需无法引用ros包),也有解决方法。

        将鼠标放到VScode任意位置,并按下ctrl+shift+p按钮,在VScode上方出现的搜索框中输入C/C++:Edit Configurations(JSON)

        并点击,随后在工作空间中即会出现.vscode文件夹,里面包含c_cpp_properties.json文件,另外一个文件settings.json如果没有出现,此时也无需理会。

        为何c_cpp_properties.json文件如此重要,此文件里面包含一个"inludePath"后续编写C++代码的头文件会根据这里包含的文件位置进行查找。

        由于后面需要使用到ROS,我上面已经将ros对应安装目录下的include文件夹中的所有文件添加到上面了,如果你此时这个文件里面没有出现”opt/ros/noetic/include/**"这个代码片段,需要手动添加一下,需要将ros对应版本改为自己的ros版本,我的ubuntu20.04对应的是noetic。

创建ROS功能包

         ROS功能包的创建必须位于src目录下,使用下述命令进入src目录并创建ROS功能包:

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

        与上面相对应,这里的hellowolrd就是包名,后面输出时会使用到。留意一下。

        创建成功后,在工作空间wt_learn_demo目录下的src文件夹会创建helloworld文件夹。

        上面创建工作空间helloworld时,后面添加的roscpp、rospy、std_msgs能都删除呢?可以,如果在创建工作空间时没有添加依赖参数,后续只需要在wt_learn_demp/src/CMakeLists.txt文件中添加依赖包即可。(具体路径参考上图)

编写C++代码实现

        在ros工作包helloworld文件夹对应的src目录下创建helloworld.cpp文件,里面就是要编写的ROS代码。

        将下述代码复制到helloworld.cpp文件里面:

#include "ros/ros"

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

    return 0;
}

        并将下述代码添加到工作包helloworld里面的CMakeLists.txt文件里。

aux_source_directory(./src SRCS)
add_executable(helloworld ${SRCS})
target_link_libraries(helloworld ${catkin_LIBRARIES})

catkin_make编译代码并运行

        通过终端回到工作空间wt_learn_demo里,进入自己创建的工作空间中。我创建的目录结构如下。

        在次目录下执行catkin_make命令即会在build工作空间对应的build文件夹下生成二进制文件。

 

 

        至此,代码已经编写并编译成功,之后需要运行ros代码,分为三步。

  • 启动ros:随意带来一个终端,输入roscore命令。
    • wt@wt:/usr/share/applications$ roscore
      
  • 在刚才执行catkin_make的文件目录执行source devel setup.bash命令。
  • 启动ros节点:rosrun helloworld helloworld。
wt@wt:~/Lab/experiments/wt_learn_demo$ source devel/setup.bash 
wt@wt:~/Lab/experiments/wt_learn_demo$ rosrun helloworld helloworld

`        终端输出helloworld,代码执行成功。

问题及感悟

        暂时累了,找时间补上。

参考链接 

【ROS】VSCODE + ROS 配置方法(保姆级教程,总结了多篇)_vscode ros-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值