自学ROS(四)----修改功能包源码,turtlesim为例

目的
在ROS中学习智能车的路径规划时用到很多种导航算法,随着论文进行,需要对ROS中的路径规划算法源码进行修改从而实现算法优化。
本文将详细介绍算法包的获取,覆盖,修改,运行。以最开始的ROS提供官方教程turtlesim为例。本文将用到ROS的overlaying机制。
参考链接:https://heyijia.blog.csdn.net/article/details/45841317
https://blog.csdn.net/weixin_42099082/article/details/102717905
感谢两位博主。

一、overlaying机制

根据ROS官方文档解释,overlaying能够将ROS自带的算法包保存的情况下,创建新的package供你修改和使用,通过source不同的路径调用。
官方教程如下:
http://wiki.ros.org/catkin/Tutorials/workspace_overlaying

一、安装ros-tutorials官方教程

我用的melodic版本,根据自己的ROS版本进行修改

sudo apt-get install ros-melodic-ros-tutorials

安装完成后查看该教程的路径

roscd rospy_tutorials

pwd

显示路径如下

/opt/ros/melodic/share/rospy_tutorials

注:如果roscd命令"not found",可能是一开始安装ROS时你没有source 环境,输入该命令或进入.bashrc添加路径即可

source /opt/ros/melodic/setup.bash

二、创建工作空间用于overlaying

mkdir -p ~/overlay_ros_tutorials/src

cd ~/overlay_ros_tutorials

将ros_tutorial的package添加到src文件夹下

cd ~/overlay_ros_tutorials/src

git clone https://github.com/ros/ros_tutorials.git

如果clone失败,将https改成git即可
官方推荐使用rosinstall_generator 和vcstool管理工作空间,后续学习后会考虑发一篇如何使用的文章

三、source环境

按照正常步骤,此时应进行工作空间编译,但为了覆盖(overlaying)原来的ros_tutorials的功能包,需要source原始功能包的路径。

source /opt/ros/melodic/setup.bash

此步骤非必要,因为在安装ROS时已经source该路径

注:如果你想覆盖的不是该路径下的package,那应该source该package所在的路径再进行修改和编译

编译

cd ~/overlay_ros_tutorials/

catkin_make

编译完成后source,查看路径

source ~/overlay_ros_tutorials/devel/setup.bash

roscd rospy_tutorials

pwd

rospy_tutorial教程在该文件夹下
请添加图片描述
如果没有source 你的覆盖package路径,就会如下图
请添加图片描述四、运行测试

在overlaying_ros_tutorials打开新的终端
请添加图片描述
source路径后打开roscore
Ctrl+shift+T另开终端,记得再次source
如果新终端不进行source会打开原始的功能包内节点
通过如下对比进行验证

新终端未source
请添加图片描述此时是蓝色背景,以及500*500的框架

source新终端
首先在工作空间搜索 turtle_frame.cpp文件,打开
修改其图框尺寸为长方形500*600,背景颜色DEFAULT_BG_R/G/B
请添加图片描述此处修改数字可改变背景颜色
请添加图片描述
修改完保存,关闭所有终端,再次进入工作空间,重新编译,不然修改不生效

打开roscore,另开终端source路径,运行turtlesim_node
请添加图片描述修改后的如下,说明source该路径则使用该修改过的package,否则使用原始的package

总结

1、建立新的工作空间,克隆源代码
2、source环境调用PACKAGE
3、修改代码后再编译

注:一定要先source才能使用

下一步:如何默认使用修改后的package,不用source
在导航算法中直接调用该功能包?

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值