Ch0. 如何在ROS中创建一个自己的package

0. 开始

笔者检索网络上 ROS 创建 workspace 的教程,发现很多并不完整,对于像我一样完全不懂 ROS 和 Ubuntu 系统的初学者来说总会在一些地方卡壳,遂自己动手写一篇基础教程。文章主要参考 ROS Tutorial。

1. 建立 workspace

通过以下命令创建 workspace 所需的文件夹:

cd
mkdir catkin_ws
cd ~/catkin_ws
mkdir src

值得注意两点是:

1. 在使用catkin_make或者catkin build命令创建 workspace 时一定要保证所创建空间的文件夹中有 src 文件夹

2. 在同一 workspace 中最好一直使用catkin_make或是catkin build命令中的一种

在 ~/catkin 中使用 catkin build 创建 workspace

cd ~/catkin
catkin build

2. 创建 package

我们在已经建立好的 workspace 的 src 文件夹中使用以下命令创建 package:

cd ~/catkin/src
catkin_create_pkg test rospy

其中catkin_create_pkg命令后就跟着你要创建的 package 名称,此处为 test。

我们同样可以使用roscppstd_msgs等命令指定我们要创建的 package 支持的语言,如:

catkin_create_pkg test rospy roscpp std_msgs

rospy 对应 python,roscpp 对应 C++。

3. 编写 node

这时候 package 已经成功创建,接下来就要写我们的代码文件了,不过在此之前我们要做一些准备工作。

通过以下命令安装 VS 作为编辑器:

cd ~/catkin_ws/src
sudo snap install code --classic

安装成功后通过如下指令进入 VS:

code .

在左侧的目录栏我们可以看到文件夹中只有初始的几个文件可供编辑
Ch0. 如何在ROS中创建一个自己的package_第1张图片
在开始我们的代码编写之前需要我们安装一些扩展工具,它们分别是C/C++, Python, CMake, 和 ROS(只是为了更好的编写程序,与本文中配置 package 流程无关)

回到 test 文件夹下继续我们的流程,在 test 文件夹的 src 中新建一个 scripts 文件夹方便管理代码:

cd test/src
mkdir scripts

使用touch命令创建代码文件

cd scripts/
touch my_first_node.py

赋予执行权限:

chmod +x my_first_node.py

回到 catkin_ws 的 src 文件夹中用code .看看多了什么吧:

cd ~/catkin_ws/src
code .

Ch0. 如何在ROS中创建一个自己的package_第2张图片
图中文件夹名稍有出入,但可以从中看到我们新建的 py 文件已经被添加到目录下了

敲入我们的代码:

#! /usr/bin/env python3
import rospy  #需要之前安装的扩展包

if __name__ == '__main__':
    rospy.init_node("test_node")

    rospy.loginfo("Hello from test node")  #输出信息
    rospy.logwarn("This is a warning")     #输出警告
    rospy.logerr("This is a error")        #输出错误

    rospy.sleep(1.0)                       #延迟一秒

    rospy.loginfo("End of program")

ctrl+s 保存后退出。

4. 运行程序

先进入 scripts 文件夹下用 python 运行试试看吧:

cd ~/catkin_ws/src/test/src/scripts
python3 my_first_node.py

代码报错,因为我们这里没有运行roscore
在这里插入图片描述
在一个新的Terminal运行roscore后,再试一下:

新建一个Terminal,输入:

roscore

回到原来的窗口在根 src 文件夹下重新catkin build(相当于编译),再将新的 source 路径赋上:

cd ~/catkin_ws
catkin build
source devel/setup.bash 

再次尝试下运行:

cd
rosrun test my_first_node.py

结果如下:
在这里插入图片描述
运行成功,我们下期再见!

你可能感兴趣的:(learning,python,linux,ubuntu)