------------👆👆👆其他章节点开专栏查看👆👆👆------------
本节内容
1. 在 ubuntu 上安装 ROS noetic ,并通过海龟运动的例子测试 ROS 是否安装完成;
2. 创建 ROS 工作空间以及功能包,使用 Python 编写 ROS 节点程序,使用 ROS 相关命令在终端输出文本 Hello World;
3. 安装并配置 VScode,在 VScode 中实现实验内容 2;
4. 使用 launch 文件启动海龟运动;
5. 使用 rqt_graph 工具显示海龟运动时的计算图。
实验步骤
1.安装ROS noetic
打开终端,将下面的命令逐行输入终端即可。此处参考:https://blog.csdn.net/a894943069/article/details/119111471
#添加ros软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
#添加秘钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
#更新软件源
sudo apt update
#开始安装
sudo apt install ros-noetic-desktop-full
# 每次打开终端都要加载 ROS 环境变量,这里将其加入 .bashrc 实现自动加载
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 安装构建 ROS 工作空间所需的工具:rosinstall、wstool 等
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y
输入到终端里:
安装完成后在终端输入:
roscore
如果结果像我这样,恭喜你安装成功啦!😊😊(提示:停止程序是ctrl+c)
如果结果和我的不一样,可能是安装过程出现问题。可以再次输入之前的安装指令~
完成安装后我们来运行小海龟程序。首先新建一个终端输入roscore(如果你刚刚运行了roscore不用关闭),再新建一个终端输入:
rosrun turtlesim turtlesim_node #启动海龟窗口
再新建一个终端输入:
rosrun turtlesim turtle_teleop_key #键盘控制海龟移动
一共有三个终端。作用分别是:roscore启动ros控制核心、启动海龟窗口、键盘控制海龟移动。 具体操作如下图所示:
启动后在键盘窗口可以通过方向键控制海龟移动o(* ̄▽ ̄*)ブ
2.创建 ROS 工作空间以及功能包,输出Helloworld
首先创建工作空间,打开终端输入以下代码:
mkdir -p ~/catkin_ws/src # 创建工作空间和 src 源码目录
cd ~/catkin_ws/ # 进入工作空间根目录
catkin_make # 初始化工作空间,生成 build/ 和 devel/
输入后可以看到我们成功创建了名为catkin_ws的工作空间,工作空间内有三个文件夹,我们将来实现不同功能的功能包将会放在src文件夹中。
下一步创建功能包,在终端输入以下代码:
cd ~/catkin_ws/src
catkin_create_pkg hello_world_pkg std_msgs rospy
#hello_world_pkg是功能包的名字可以自己修改,后面的是依赖项不能改
添加功能包后编译工作空间:
cd ~/catkin_ws
catkin_make
编译完成后在刚刚创建好的hello_world_pkg功能包中编写python程序,用于发布节点。首先创建存放脚本文件(待会儿要写的python程序)的文件夹。
cd ~/catkin_ws/src/hello_world_pkg #进入功能包
mkdir scripts # 创建存放脚本的文件夹
cd scripts
然后创建python文件:
gedit hello_node.py
创建后把下文python代码复制粘贴到文件里, 保存后退出
#!/usr/bin/env python3
import rospy
if __name__ == '__main__':
rospy.init_node('hello_node') # 初始化节点,名称为 hello_node
rospy.loginfo("Hello World !!!") # 在终端打印 Hello World
像这样:
保存后在刚刚的终端输入这段代码,给这个文件添加可执行权限:
chmod +x hello_node.py
然后输入roscore:
roscore
最后在新的终端输入以下代码执行刚刚写的python文件:
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
rosrun hello_world_pkg hello_node.py
如果你和我的运行结果一样,恭喜你成功了!!😊😊
3.安装VScode
直接在应用商店中搜索并安装VScode:
下载后打开VScode,安装扩展包,扩展包的安装方法如下(先搜索language并选择中文):
需要安装的所有扩展包如下,在搜索框内直接搜索下载:
我们打开一个新终端,输入以下代码:
cd catkin_ws #进入之前创建的工作空间
code . #在vscode中打开工作空间
可以在VScode中看到之前创建的工作空间,并且可以很方便地在VScode中创建修改文件。VScode的更多功能将在后续文章提及。
4.使用launch文件启动海龟运动
我们首先在VScode中创建turtle_move功能包,右键点击src,选择最下面的创建功能包选项。
创建后在最上面输入功能包的名字:
然后输入依赖。依赖我已经列举出来,跟着我输入就好。
rospy std_msgs geometry_msgs turtlesim
创建完成后右键功能包新建文件夹,分别新建launch文件夹和scripts文件夹。
在scripts文件夹中创建move.py文件,在move.py中添加以下内容控制小车运动:
#!/usr/bin/env python3
import rospy
from geometry_msgs.msg import Twist
rospy.init_node('move_turtle')
pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
rate = rospy.Rate(10)
while not rospy.is_shutdown():
msg = Twist()
msg.linear.x = 1.0 # 向前移动
msg.angular.z = 0.5 # 转弯
pub.publish(msg)
rate.sleep()
在launch文件夹中创建move_turtle.launch文件,在move_turtle.launch中添加以下内容:
<launch>
<!-- 启动 turtlesim_node -->
<node name="turtlesim" pkg="turtlesim" type="turtlesim_node" />
<!-- 启动自定义控制节点 -->
<node name="move_turtle" pkg="turtle_move" type="move_turtle.py" output="screen" />
</launch>
完成上述工作后你的VScode应该是这样👇
最后我们打开一个终端,依次输入以下指令:
cd catkin_ws #进入工作空间
chmod +x ~/catkin_ws/src/turtle_move/scripts/move_turtle.py
#给python文件添加可执行权限
catkin_make #编译程序
source devel/setup.bash #生成环境配置文件
roslaunch turtle_move move.launch #用launch文件一次性启动节点
运行后如果你能看到这个界面,恭喜你成功了!
5.使用 rqt_graph 工具
让小海龟继续运行,打开一个新终端,输入:
rqt_graph
如果你能看到这样的结果,恭喜你掌握了本节所有内容!😊😊