ROS代码实现及基本操作

ROS代码实现及基本操作

1.环境搭建

1.1创建工作空间并初始化

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

上述命令,首先会创建一个工作空间以及一个 src 子目录,然后再进入工作空间调用 catkin_make 命令编译。
命令执行如上
执行之后,主目录下出现如下三个文件在这里插入图片描述

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

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

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

我在这里自定义包名为 helloworld
在这里插入图片描述
代码执行后在这里插入图片描述

2.Hello world实现

ROS 中,虽然实现同一功能时,C++ 和 Python 可以互换,但是具体选择哪种语言,视需求而定,因为两种语言相较而言:C++ 运行效率高但编码效率低,Python 则反之,基于两者互补的特点,ROS设计者分别设计了 roscpp 与rospy 库,前者旨在成为 ROS 高性能库,而后者一般用于对性能无要求的场景,旨在提高开发效率。以下是两种语言的执行代码体验版。

2.1C++版

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

$ cd 自定义的包

在定义包 helloworld 下的 src 文件夹中,右键选择新建文档,文档命名为 helloworld_c.cpp 如下图所示:

如果说没法新建文档,去主目录的模板文件夹空白处打开终端,输入指令:sudo gedit 文本文件 ,然后出现文件管理器保存,再次去scripts文件夹里右击就可以看到新建文档了。
在这里插入图片描述
C++源码实现如下:

#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;
}

退出之前别忘记保存啦!!!

2.1.2编辑 ros 包下的 CMakeList.txt 文件

在这里插入图片描述
在 CMakeList.txt 文件中拼命寻找以下代码并取消它们前面的注释

add_executable(步骤3的源文件名
src/步骤3的源文件名.cpp
)
target_link_libraries(步骤3的源文件名
${catkin_LIBRARIES}
)
我在这里定义源文件名为 hello 如下图所示:在这里插入图片描述

2.1.3进入工作空间目录并编译

$ cd 自定义空间名称
$ catkin_make

从而生成 build devel …在这里插入图片描述

2.1.4执行

先启动命令行1:需要ctrl+alt+t新打开一个终端窗口

$ roscore

在启动命令行2:

$ cd 工作空间
$ source ./devel/setup.bash
$ rosrun 自定义的包名 C++节点

执行结果如下图所示:在这里插入图片描述
到这里我们就把C++体验版拿下了!

2.2Python版

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

$ cd ros包
$ mkdir scripts

执行得到:
在这里插入图片描述
在 scripts 文件下右键新建文档,命名为 helloworld_p.py
Python源码实现如下:

#! /usr/bin/env python

"""
    Python 版 HelloWorld

"""
import rospy

if __name__ == "__main__":
    rospy.init_node("Hello")
    rospy.loginfo("Hello World!!!!")

2.2.2为 Python 文件添加可执行权限

$ chmod +x 自定义文件名.py

执行如下:
在这里插入图片描述

2.2.3编辑 ros 包下的 CMakeList.txt 文件

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

执行如下:
在这里插入图片描述

2.2.4进入工作空间目录并编译

$ cd 自定义空间名称
$ catkin_make

2.2.5进入工作空间目录并执行

先启动命令行1:需要ctrl+alt+t打开新的终端

$ roscore

再启动命令行2:

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

执行结果如下图所示:
在这里插入图片描述
到这里拿下Python体验版了。

主笔:Kyuno_wh
修正:dym踏雪寻梅,@famgke

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值