Ros学习笔记(一)Ros中HelloWorld实现(C++/Python)

例程实现流程

声明:整个学习是我跟着奥特学园进行的,不是原创,只是记录自己的学习过程

1、准备事项

        1)先创建一个工作空间

        2)再创建一个功能包

        3)编辑源文件

        4)编辑配置文件

        5)编译并执行

C++和Python只有再3、4步时有所差异,其余流程基本一致。

2、C++实现HelloWorld

(1)创建工作空间并初始化

打开终端后输入命令

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

cd 自定义空间名称

catkin_make

 命令行操作演示:

mkdir -p demo01_ws/src
cd demo01_ws
catkin_make

命令执行结果:

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

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

cd src

catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs

 命令行操作:

catkin_create_pkg helloworld roscpp rospy std_msgs

执行结果:

 (3)进入ros功能包(helloworld)中的src目录编辑源文件

//进入功能包
cd helloworld
//新建C++文件
touch helloworld_c.cpp

(4)编辑helloworld_c.cpp文件

//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("helloworld");
	return 0;
}

 (5)编辑ros包(helloworld)下的Cmakelist.txt文件

1)找到 add_executable,将其前面的#删除,并更改其中的参数信息

        add_executable(需要进行编译的源文件名   src/需要进行编译的源文件名.cpp)

add_executable(helloword src/helloworld_c.cpp)

2)找到target_link_libraries,将这个函数的注释取消(删除#)

        target_link_libraries(需要进行编译的源文件名(注意要与上述函数中第一个参数的名称保持相同!) ${catkin_LIBRARIES}

)

target_link_libraries(helloword
 ${catkin_LIBRARIES}
)

(6)进入工作空间目录并编译

        首先要进入工作空间中:cd demo01_ws

        接着catkin_make

 (7)执行

1)先启动命令行1(新建一个终端)

roscre       //启动ros核心

 2)再启动命令行2

cd 工作空间名

source ./devel/setup.bash

rosrun 功能包名 C++节点

cd demo01_ws
source ./devel/setup.bash
rosrun helloworld helloword

终端运行结果:

 

 Notes:使用source ./devel/setup.bash有一些局限性,当我们再次新建一个终端时,想要运行helloworld包就会出错”找不到helloworld“,所以我们可以优化一下命令。

PS:截图来自"奥特学园" 

(8)优化

1)打开主目录

        使用快捷键"ctrl+h"显示隐藏文件,找到.bashrc文件,打开该文件,在文件的最底下添加source ~/demo01_ws/devel/setup.bash。

可以看到第一行是我们安装ros时添加的。 

保存并退出 

2)重新加载.bashrc

在主文件夹中打开终端,并输入命令行

3)新建终端测试

 rosrun helloworld helloworld

这里我之前自己做的时候为helloworld功能包映射的名称是haha,不用担心,这个名称不影响程序运行。 

3、Python实现HelloWorld

(1)进入ros包(helloworld)添加scripts目录并编辑python文件

1)新建一个终端

2)编辑python文件

#! /usr/bin/env python
##指定解释器

#1.导包
import rospy
#2.编写主入口
if __name__=="__mian__":
	#3.初始化ROS节点
	rospy.init_node("hello_p")
	#4.输出日志
	rospy.loginfo("hello world! by python")

 3)为helloworld_p.py文件设置权限

(2)编辑配置文件(和C++中的步骤类似,也是更改Cmakelist.txt文件)

        在Cmakelist.txt中找到catkin_install_python函数并更改

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

         实际操作:

catkin_install_python(PROGRAMS scripts/helloworld_p.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

(3)编译Python文件

1)进入工作空间并编译:

2)新建一个终端:

 启动ros核心:

 3)重新加载环境变量(回到之前我们进行编译的终端)

source ./devel/setup.bash

4)运行helloworld_p.py

 

 例程完成

奥特学园课程链接:奥特学园

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值