栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
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.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

 

 例程完成

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号