ROS实验一 下(安装ROS Noetic 和VScode)

------------👆👆👆其他章节点开专栏查看👆👆👆------------


本节内容

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

如果你能看到这样的结果,恭喜你掌握了本节所有内容!😊😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值