笔者检索网络上 ROS 创建 workspace 的教程,发现很多并不完整,对于像我一样完全不懂 ROS 和 Ubuntu 系统的初学者来说总会在一些地方卡壳,遂自己动手写一篇基础教程。文章主要参考 ROS Tutorial。
通过以下命令创建 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
我们在已经建立好的 workspace 的 src 文件夹中使用以下命令创建 package:
cd ~/catkin/src
catkin_create_pkg test rospy
其中catkin_create_pkg
命令后就跟着你要创建的 package 名称,此处为 test。
我们同样可以使用roscpp
,std_msgs
等命令指定我们要创建的 package 支持的语言,如:
catkin_create_pkg test rospy roscpp std_msgs
rospy 对应 python,roscpp 对应 C++。
这时候 package 已经成功创建,接下来就要写我们的代码文件了,不过在此之前我们要做一些准备工作。
通过以下命令安装 VS 作为编辑器:
cd ~/catkin_ws/src
sudo snap install code --classic
安装成功后通过如下指令进入 VS:
code .
在左侧的目录栏我们可以看到文件夹中只有初始的几个文件可供编辑
在开始我们的代码编写之前需要我们安装一些扩展工具,它们分别是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 .
图中文件夹名稍有出入,但可以从中看到我们新建的 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 保存后退出。
先进入 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