1.ROS工作空间创建
创建一个工作空间,在该工作空间中完成代码和任务代码的编写。
(1)创建工作空间并初始化
首先会创建一个工作空间以及一个src子目录,然后再进入工作空间执行catkin_make命令进行编译。
mkdir -p learn/src //其中learn就是工作空间名称
cd leran
catkin_make
注意这里是进入learn目录即可,不要进入learn/src目录,会报错。
(2)进入src创建ros包添加依赖
cd src
//catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
catkin_create_pkg learn roscpp rospy std_msgs //我这里的ros包名为learn
执行完命令后确实在src下新增加了一个learn的目录,这就是ros包吧!
该功能包依赖于roscpp rospy std_msgs 三个库,其中分别是C++实现库、python实现库和标准消息库,创建ROS功能包时,基本上一般都会依赖这几个库。
2.Hello World测试(Python)
ROS既可以使用Python来实现,也可以使用C++来实现业务逻辑代码的编写。
以Python为例。
(1)进入Ros包添加scripts目录并创建python文件
cd learn //learn 为包名
mkdir scripts
touch test.py
vim test.py
test.py文件如下
#! /usr/bin/env python
import rospy
if __name__ == "__main__":
rospy.init_node("Hello")
rospy.loginfo("Hello World!!!!")
(2)为py文件添加可执行的权限
chmod +x test.py
(3)编辑ros包的CamkeList.txt文件
其中scripts/test.py 中的test.py要和自己创建的py文件要一致。
catkin_install_python(PROGRAMS scripts/test.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
(4)进入工作空间目录并编译
cd 工作空间
catkin_make
(5)运行程序
先启动命令行1,在工作空间目录下,执行roscore命令。
再启动命令行2,
source ./devel/setup.bash
rosrun learn test.py
3.Hello World测试(C++)
(1)进入ROS包的src目录下新建源文件
touch test.cpp
源码
#include "ros/ros.h"
int main(int argc, char *argv[])
{
//执行 ros 节点初始化
ros::init(argc,argv,"hello");
//创建 ros 节点句柄(非必须)
ros::NodeHandle n;
//控制台输出 hello world
ROS_INFO("hello world!");
return 0;
}
(2)编辑ROS包下的CMakeLists.txt文件
add_executable( test.cpp
src/ test.cpp
)
target_link_libraries( test.cpp
${catkin_LIBRARIES}
)
CMakeLists.txt文件中原本是注释的内容,先把注释打开再修改~
(3)工作空间目录下编译
cd 自定义空间名称
catkin_make
(4)执行代码
在工作空间目录下启动命令行1
执行roscore
在工作空间目录下启动命令行2
cd 工作空间
source ./devel/setup.bash
rosrun 包名 C++节点(C++源文件)
直接写入当前用户的环境变量文件中使用更方便, echo “source ~/工作空间/devel/setup.bash” >> ~/.bashrc