ROS机器人入门-HelloWorld
在ROS中的编程语言主要为C++和Python,ROS中的大部分程序二者都可以实现。不同的语言的实现流程也类似,主要有以下几点:
1、创建工作空间
2、创建功能包
3、配置源文件
4、编辑配置文件
5、编译执行
接下来通过一个HelloWorld项目简单熟悉一下具体流程。
创建工作空间并初始化
1 | mkdir -p 自定义空间名称/src |
上述命令,首先会创建一个工作空间以及一个 src 子目录,然后再进入工作空间调用 catkin_make命令编译。
创建 ros 包并添加依赖
1 | cd src |
上述命令,会在工作空间下生成一个功能包,该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
在ROS中,虽然使用python和c++都可以实现大部分功能,但具体实现还要根据开发实际而定。根据语言特性,C++运行效率高但编码效率低,而Python则反之,基于二者互补的特点,ROS设计者分别设计了roscpp与rospy库,前者旨在成为ROS的高性能库,而后者则一般用于对性能无要求的场景,旨在提高开发效率。
C++ 实现HelloWorld
编辑源文件
进入之前建立的ros包的src目录下后新建cpp文件编写代码
编辑配置文件
编辑 ros 包下的 Cmakelist.txt文件,取消add_executable和target_link_libraries的注释,并修改项目名以及源代码名。
编译
返回工作空间目录,执行catkin_make
进行编译。
执行
首先执行roscore
启动ros
启动成功后,在工作空间目录下执行source ./devel/setup.bash
刷新环境变量
执行源代码文件rosrun 功能包名 项目名(Cmakelist.txt中定义)
Python 实现HelloWorld
添加scripts目录
1 | cd ros包 |
编辑python源文件
scripts目录内新建python文件,编辑源码
源码编辑好后保存,执行chmod +x 文件名.py
,赋予执行权限。
编辑配置文件
编辑 ros 包下的 Cmakelist.txt文件,取消catkin_install_python注释并修改文件名。
编译
返回工作空间目录,执行catkin_make
进行编译。
执行
整个执行过程与c++类似
1、首先执行roscore
启动ros
2、启动成功后,在工作空间目录下执行source ./devel/setup.bash
3、执行源代码文件```rosrun 功能包名 python文件
环境变量配置
在之前的示例中,执行源代码之前需要先执行source ./devel/setup.bash
才能在当前终端中找到功能包。
为了方便运行,可以将source ~/工作空间/devel/setup.bash
添加进.bashrc
文件。
- 方式一:直接使用gedit或vi编辑.bashrc文件,添加该条内容
- 方式二:
echo "source ~/工作空间/devel/setup.bash" >> ~/.bashrc