【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、创建一个工作空间;
- 2、创建一个功能包;
- 3、编辑源文件;
- 4、编辑配置文件;
- 5、编译文件并执行。
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 world
ROS_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 rospy
if __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/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
4、进入工作空间目录并编译
cd 自定义空间名称
catkin_make
5、进入工作空间目录并执行
先启动命令行1:
roscore
再启动命令行2:
cd 工作空间
source ./devel/setup.bash
rosrun 包名 自定义文件名.py
采用Python实现时