ROS机器人入门系列(二)实现HelloWorld(c++/python)

3 篇文章 0 订阅
2 篇文章 0 订阅

一、实现流程

1、创建工作空间

2、创建功能包

3、编辑源文件

4、编辑配置文件

5、编译并执行

其中,c++和python的差异仅体现在3,4两部,其他流程基本一致。

二、创建工作空间和创建功能包的实现

2.1  创建工作空间并初始化

(1)创建工作空间

mkdir -p 自定义工作空间名称/src

这里我创建的工作空间名称是demo1

(2)工作空间初始化

我们首先要将当前工作目录切换到我们创建的工作空间,然后再进行初始化

cd demo1
catkin_make

 运行结果如下:

 打开文件,我们可以看到工作空间里有如下三个文件夹

2.2  创建功能包

cd src
catkin_create_pkg 自定义包名 roscpp rospy std_msgs

 运行结果如下:

这里我定义的包名是helloworld,代码中的roscpp和rospy分别是C++和python实现的库,std_msgs是标准信息库,创建ros功能包时,一般都会依赖这三个库实现。打开文件进入我创建的helloworld我们可以看到里面有如下内容:

 三、编辑源文件、编辑配置文件以及编译并执行的实现

3.1  C++相关内容实现

3.1.1  编辑源文件

在创建的功能包下面的src文件夹里创建一个C++源文件,创建文件命令如下:

touch 自定义文件名.cpp

 这里我创建的文件名是helloworld_c

 接下来打开创建好的文件,编辑源文件,具体内容如下:

 3.1.2  编辑配置文件

打开创建的功能包下的CMakeLists.txt文件

首先将第136行和第149行的add_executable和target_link_libraries的井号去掉。

对于add_executable(${PROJECT_NAME}_node  src/helloworld_node.cpp)

第二个参数src/helloworld_node.cpp是我们刚刚编写的源文件,我编写的源文件是在src文件夹下的helloworld_c.cpp文件,因此将第二个参数修改为src/hellloworld_c.cpp;第一个参数是给执行文件命名(自定义),这里我命名为hello_c,也就是把第一个参数改为hello_c,当执行hello时就会映射到我编写的helloworld_c.cpp文件。

 改写结果如下,保存关闭。

 3.1.3  编译

返回工作空间输入如下命令:

catkin_make

 运行结果如下:

 3.1.4  执行

 (1)启动ROS核心

Ctrl+Alt+t打开一个新的终端输入如下命令:

roscore

 运行结果如下:

 (2)配置环境变量

source ./devel/setup.bash

(3)最后一步执行

rosrun 包名 C++节点
rosrun helloworld hello_c

 这里的helloworld是我的功能包的包名,hello_c是我刚刚命名的执行文件,运行结果如下:

可以看到成功地打印了hello world

3.2  Python相关内容实现

3.2.1  编辑源文件

(1)打开功能包新建scripts文件夹

(2)创建python 源文件

这里我命名为helloworld_p

touch helloworld_p.py

创建结果如下:

 (3)编辑源文件

保存关闭,在scripts文件夹里右键,在终端打开输入ll

可以看到,没有执行权限,输入如下命令:

chmod +x hello_p.py

 运行之后再次输入ll,可以看到已经有了执行权限

3.2.2  编辑配置文件

打开功能包下的CMakeLists.txt文件

 

找到第162行的catkin_install_python,我们需要更改的是scripts/my_python_script, my_python_script处应该改为我们刚刚编辑的python源文件,更改后如下:

保存关闭, catkin_install_python是为python文件选择一个恰当的解释器

3.2.3  编译

打开工作空间,右键在终端打开,输入如下命令:

catkin_make

运行结果如下:

 3.2.4  执行

(1)启动ROS核心

Ctrl+Alt+t打开一个新的终端,输入如下命令:

roscore

运行结果如下:

(2)配置环境变量

source ./devel/setup.bash

(3)最后一步执行

rosrun 包名 自定义文件名.py
rosrun helloworld helloworld_p.py

 这里的helloworld是我的功能包的包名,helloworld_p是我刚刚编写的python文件,运行结果如下:

 

可以看到成功地打印了hello world 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值