【ROS学习笔记1】ROS快速体验输出Hello World
【ROS学习笔记1】ROS快速体验输出Hello World
文章目录
- 【ROS学习笔记1】ROS快速体验输出Hello World
- 1.1 ROS快速体验
-
- 1.1.1 Hello World快速实现简介
- 1.1.2 Hello World的C++实现
- 1.1.3 Hello World的Python实现
写在前面,本系列笔记参考的是AutoLabor的教程,具体项目地址在
这里
1.1 ROS快速体验
1.1.1 Hello World快速实现简介
本节使用ROS编写一个程序实现打印Hello World
字符串的功能,分别用C++
和Python
实现。
无论使用那种语言,使用ROS的大致流程都是一样的,分别是:
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功能包时,一般都会依赖这三个库实现。
1.1.2 Hello World的C++实现
1、进入ros包的src目录编辑源文件
cd 自定义的包
写入以下源码文件(文件名可以自定义)
#include "ros/ros.h"int main(int argc, char *argv[])
{//执行 ros 节点初始化ros::init(argc,argv,"hello_node");//创建 ros 节点句柄(非必须)ros::NodeHandle n;//控制台输出 hello worldROS_INFO("hello world!");return 0;
}
2、编辑ros包下的Cmakelist.txt
文件
在CmakeList.txt文件中找到
###########
## Build ##
###########
add_executable(步骤3的源文件名src/步骤3的源文件名.cpp
)
target_link_libraries(步骤3的源文件名${catkin_LIBRARIES}
)
3、进入工作空间目录并编译
cd 自定义空间名称
catkin_make
4、执行
先启动命令行1:
roscore
再启动命令行2:
cd 工作空间
source ./devel/setup.bash
rosrun 包名 C++节点
注:source ~/工作空间/devel/setup.bash
可以添加进.bashrc
文件,在使用时更加方便。
添加方式1:直接使用gedit
编辑.bashrc
文件,在文件的末尾添加改内容
添加方式2:echo "source ~/工作空间/devel/setup.bash" >> ~/.bashrc
采用Cpp实现时:
1.1.3 Hello World的Python实现
1、进入ros包添加scripts目录并编辑python文件
需要特别注意,应该进入ros的包再创建文件夹scripts
给出一个示例的路径
~/demo1_ws/src/功能包名/srcipts
cd ros包
mkdir scripts
新建python文件(文件名可以自定)
#! /usr/bin/env python
## 指定解释器"""Python 版 HelloWorld"""
import rospyif __name__ == "__main__":rospy.init_node("Hello")rospy.loginfo("Hello World!!!!")
2、为python文件添加可执行权限
chmod +x 自定义文件名.py
3、编辑ros包下的CmakeList.txt文件
在CmakeList.txt文件中找到
#############
## Install ##
#############
开头的部分
catkin_install_python(PROGRAMS scripts/自定义文件名.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
4、进入工作空间目录并编译
cd 自定义空间名称
catkin_make
5、进入工作空间目录并执行
先启动命令行1:
roscore
再启动命令行2:
cd 工作空间
source ./devel/setup.bash
rosrun 包名 自定义文件名.py
采用Python实现时