zoukankan      html  css  js  c++  java
  • ROS快速体验HelloWord c++和python实现

    参考视频:https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=17&spm_id_from=pageDriver

    参考文档:http://www.autolabor.com.cn/book/ROSTutorials/

    任务:编写 ROS 程序,在控制台输出文本: Hello World,分别使用 C++ 和 Python 实现。

    ROS中的程序即便使用不同的编程语言,实现流程也大致类似,以当前HelloWorld程序为例,实现流程大致如下:

    1. 先创建一个工作空间;
    2. 再创建一个功能包;
    3. 编辑源文件;
    4. 编辑配置文件;
    5. 编译并执行。

    1.创建工作空间并初始化

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

    上述命令,首先会创建一个工作空间以及一个 src 子目录,然后再进入工作空间调用 catkin_make命令编译。

    2.进入 src 创建 ros 包并添加依赖

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

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

    3.HelloWorld(C++版)

    进入 ros 包的 src 目录编辑源文件

    cd 自定义的包

    C++源码实现(文件名自定义)

    //1.包含ros的头文件
    #include "ros/ros.h"
    
    //2.编写main函数
    int main(int argc, char *argv[]){
      //3.初始化ros节点
      ros::init(argc,argv,"hello_node");
      //4.输出日志
      ROS_INFO("hello world!"); 
      return 0;
    }

    4.编辑 ros 包下的 Cmakelist.txt文件

    add_executable(步骤3的源文件名
      src/步骤3的源文件名.cpp
    )
    target_link_libraries(步骤3的源文件名
      ${catkin_LIBRARIES}
    )

    进入工作空间目录并编译

    cd 自定义空间名称
    catkin_make

    生成 build devel ....

    5.执行

    先启动命令行1:

    roscore

    再启动命令行2:

    cd 工作空间
    source ./devel/setup.bash
    rosrun 包名 C++节点

    命令行输出: HelloWorld!

    PS:source ~/工作空间/devel/setup.bash可以添加进.bashrc文件,使用上更方便

    添加方式1: 直接使用 gedit 或 vi 编辑 .bashrc 文件,最后添加该内容

    在home目录下 ctrl+h调出隐藏文件。bashrc

    运行.bashrc以后,在任意一个终端运行,就都能运行了

    添加方式2:

    echo "source ~/工作空间/devel/setup.bash" >> ~/.bashrc

    3.HelloWorld(python版)

    进入 ros 包添加 scripts 目录并编辑 python 文件

    cd ros包
    mkdir scripts

    新建 python 文件: (文件名自定义)

    #! /usr/bin/env python
    ##指定解释器
    
    #1.导包
    import rospy
    
    #2.编写主入口
    if __name__=="__main__":
        #3. 初始化ROS节点
        rospy.init_node("hello_p");
        #4.输出日志
        rospy.loginfo("hello world!!!");

    为 python 文件添加可执行权限

    chmod +x 自定义文件名.py

    4.编辑 ros 包下的 CamkeList.txt 文件

    catkin_install_python(PROGRAMS scripts/自定义文件名.py
      DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    )

    进入工作空间目录并编译

    cd 自定义空间名称
    catkin_make

    5.进入工作空间目录并执行

    先启动命令行1:

    roscore

    再启动命令行2:

    cd 工作空间
    source ./devel/setup.bash
    rosrun 包名 自定义文件名.py

    输出结果:Hello World!!!!

  • 相关阅读:
    leetcode643.滑动窗口例题
    BZOJ4195 离散化+并查集
    luogu线性表刷题
    2021-5-29 周报博客
    2021-5-28 日报博客
    2021-5-27 日报博客
    2021-5-26 日报博客
    2021-5-25 日报博客
    2021-5-24 日报博客
    梦断代码阅读笔记之二
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/14994059.html
Copyright © 2011-2022 走看看