ROS
ROS学习————学会修改package包代码&将工作空间导入vscode
如何修改package包源码
在ROS学习中,ROS的绝大部分包的源码都是开源的,我们可以将某个包下载到自己的工作空间后,对其进行修改,来达成我们想要的效果
-
进入终端输入
roscore
启动ROS节点 -
新建一个终端,输入
rosrun turtlesim turtlesim_node
如果运行成功则出现以下界面
- 请在输入前确保是否已经下载该节点,可以通过指令
rospack find 包名
检查工作空间内是否存在该package,如存在则会显示文件路径,如不存在可以查看“ROS学习第一步———创建工作空间&下载package包”里下载包的详细过程进行下载(需要采用git clone方式下载)-
注意,git clone 和 sudo apt install 两种下载包的方式存在区别
- 安装内容
-
git clone
仅下载项目的源代码到本地,不会自动安装。
需要用户手动编译和安装(如使用make 或 catkin_make 等工具)。 -
sudo apt install
自动安装预编译的软件包及其所有依赖。
配置和安装过程由 APT 自动完成,用户无需额外操作。
- 使用场景
-
git clone
用于获取项目的最新代码(如开发分支)。
适合开发者需要修改、调试或查看源码。
适用于官方仓库没有提供的包或功能。 -
sudo apt install
用于安装已经打包好的软件,快速、简单。
适合普通用户或需要稳定版本的场景。
适用于大多数用户无需源码的日常需求。
-
- 请在输入前确保是否已经下载该节点,可以通过指令
图片左上角可以查看该包是否含有对应版本,关于版本可以查看“ROS学习第一步———创建工作空间&下载package包”中的介绍,可以通过git clone -b <版本> <链接网址>
进行下载
- git clone 完成后可以通过路径在catkin_ws下的终端
catkin_make
进行编译
- 在工作空间内找到该package包,找到需要修改的源码(当前路径的turtlesim_frame.cpp文件)
- 自行修改以实现自己想要的效果
- 该文件下第47行和第53行的第一个参数代表宽,第二个参数代表长,可自行修改(我将宽改成了1000)
- 该文件下第54行的名称为标题名称
- 该代码64行至66行修改方式详情可见apt中turtlesim包详情页中提供的参数
- 保存后退出该界面
- 进入终端转移到~/catkin_ws目录下输入
catkin_make
重新编译 - 编译成功后输入
roscore
启动ros节点 - 新建一个终端输入
rosrun turtlesim turtlesim_node
重新启动乌龟节点
可以看到,此时的 “乌龟” 已经不同于未修改时的状态,此时的界面由修改后的代码决定
将工作空间导入vscode
- 打开vscode,点击左上角文件,选择“将文件夹添加到工作区”
选择~/catkin_ws/src文件夹作为工作区文件夹 - 设置编译工作空间快捷键
- 按下ctrl + shift + B,选择catkin_make:build选项,vscode底部自动弹出终端编译工作空间
- 再次按下ctrl + shift + B,点击右侧齿轮图标
-
对tasks.json文件进行修改
将第13代码修改为"group": {"kind": "build","isDefault": true},
表示此选项为编译快捷键的默认操作 -
保存并重新输入ctrl + shift + B,如果直接编译不需要选择即设置成功