我们想修改ros的源码,比如说move里面的东西,但又不想改变里面本身安装的源码.
我以turtlesim为例
下载turtlesim的源码包
新建一个新的工作空间
然后修改turtle_frame里面的一点东西
setFixedSize(1000, 1000); //把图片由500*500变成1000*1000
setWindowTitle("FISH");
srand(time(NULL));
update_timer_ = new QTimer(this);
update_timer_->setInterval(16);
update_timer_->start();
connect(update_timer_, SIGNAL(timeout()), this, SLOT(onUpdate()));
nh_.setParam("background_r", 255);//把背景颜色改成黄色
nh_.setParam("background_g", 255);
nh_.setParam("background_b", 0);
这个改动这是为了验证我的代码生效了,具体改什么根据自己的需要
然后编译这个工作空间
修改./.bashrc文件
source /opt/ros/kinetic/setup.bash
source /home/whhc/overlay_ws/devel/setup.bash//添加你修改turtlrsim代码的工作空间
关掉终端
rosrun turtlesim turtlesim_node
修改后的生效了
综上,
我的理解,不一定对,
就是./.bashrc里面,最后source的优先级最高
对于所有source的工作空间,如果有重名的包.靠后的会起作用!
所以我们把所需要修改的源码包的那部分组成一个工作空间,然后将这个工作空间添加在./.bashrc文件中,就可以了!