【ROS源码阅读】

ROS2源码下载&编译 网站https://ghproxy.com/支持github的资源代理,可以用此代理加速rosdep对Github的访问,进而解决rosdep update失败问题。RCL库是ROS2中的C语言实现,它提供了一组API来访问ROS2节点的底层实现;RCL的主要功能包括:节点管理、时钟管理、参数管理和发布与订阅管理。RCLCPP库是ROS2中的C++实现,它基于RCL库,提供了易用的C++ API,方便开发者使用。RCL和RCLCPP是ROS2中两个重要的库,分别对应于ROS中的roscpp和roslib。 阅读详情

项目需要研读ROS源码,这其中碰到的一些问题记录一下:

源码编译过程

(1) 在ubuntu 18.04 上安装ROS melodic的版本。
(2) 下载源码,
ROS源码链接:

https://github.com/ros/ros_comm/tree/melodic-devel/ros_comm

(3) 编译
例如想要编译 ros_comm/tools/rosbag 下的源文件,
新建 ros_comm/tools/rosbag/build 文件夹,之后

mdkir builld 
cd build 
cmake ..
make

就可以编译源码了。
但是此时要注意, ros_comm/tools/rosbag/CMakeLists.txt 包含的头文件和库文件大多数是

/opt/ros/melodic/include/

路径下的头文件以及路径

/opt/ros/melodic/lib/

下的库文件
所以,阅读ROS源码时,有时需要加一些打印,发现运行程序后,加的打印没有显示。
原因就是这个,因为此时rosbag产生的程序引用的不是源码生成的头文件和库文件,而是本地的头文件和库文件。
例如,ros_comm/tools/rosbag/CMakeLists.txt 中会引用 rosbag_storage.so 文件,
源码中 ros_comm/tools/rosbag_storage下,进行如下操作

mdkir builld 
cd build 
cmake ..
make

就会产生 librosbag_storage.so 库文件,自己修改的库文件没有被 ros_comm/tools/rosbag/CMakeLists.txt 引用,所以,加的打印无法显示。

使用源码中头文件和库文件的方法

(1) 将路径

/opt/ros/melodic/include/
/opt/ros/melodic/lib/

下的部分头文件和库文件进行改名,例如

mv librosbag_storage.so  librosbag_storage_back.so
mv bag.h bag_back.h

之后编译,如果报错, 就在相应的地方改下载的ROS源码路径和自己生成的库路径即可。

参考链接:
https://www.linmao.dev/joy/914/
https://www.linmao.dev/
https://zhuanlan.zhihu.com/p/494474804
https://blog.youkuaiyun.com/lxj362343/article/details/126088735
https://blog.youkuaiyun.com/uestcyms/article/details/119959523

ROS源代码阅读(1) ros源码阅读 阅读详情

相关推荐

ROS camera_calibration 源码阅读笔记

一直在使用ROS的camera_calibration进行単目和双目的相机标定,但是从来没有关心过具体实现,我所知到的仅限于camera_calibration后端也是使用的OpenCV进行的标定运算。今日直接使用OpenCV进行相机标定时,发生了一些奇怪的现象,但是这些现象在使用camera_calibration时从未遇见过,看来其鲁棒性是不错的,所以今天打算阅读一下源码学习一下。 以下是我个人的笔记,并不最求全面,而是针对我个人的经验而记录的。主要记录源码中和我平时的用法不同或者我个人感觉源码处理恰当

风海流的豪赌 1071

下载ROS源码

step1 安装依赖项 sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential step2 选择内容并下载 1.可选1: Desktop-Full Install: ROS, rqt, rviz, robot-...

Keep Learning, Keep Growing, Keep Succeeding! 1567

ROS源码阅读日记——nav_test.py

#这段代码的作用是实现在地图中随机导航。在ros下需要先加载机器人和相关配置,详请参阅古-月的博客http://blog.youkuaiyun.com/hcx25909/article/details/12110959 #这里主要是用于自己来理解这段代码 #!/usr/bin/env python import rospy import actionlib from actionlib_msgs.msg

kevin的专栏 2361

ros源码下载及编译

Ros1 源码下载及编译 准备工作 Setup your sources.list Setup your computer to accept software from packages.ros.org. sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' Set up your keys sudo a

Sunrise的专栏 3023

rosdistro完整源码

解决github目前无法下载 rosdep init失败问题

ros-melodic-desktop-full 源码

ros-melodic-desktop-full 源码

ROS源码阅读(2)——roscore

@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增

qzyj99的博客 832

Android应用之【巧妙隐藏桌面图标的进阶方案】

本文详细探讨了Android应用中隐藏桌面图标的进阶方案,解决了传统方法在Android 10及以上版本中出现的黑色图标残留问题。通过Intent-Filter配置和厂商适配技巧,实现子应用真正隐身,同时确保主应用正常启动。适用于企业工具套件、模块化系统等场景,提升用户体验和安全性。

weixin_28363123的博客 504

ROS学习笔记——ROS核心功能与如何阅读大型项目源码

ROS学习笔记——ROS核心功能与如何阅读大型项目源码(一) ROS核心代码1. ROS所要解决的问题2. 解决问题的思路3.ROS的核心功能(二)如何阅读大型项目代码1. 明确目的2. 敢于掠过非关键代码,现寻找和突破关键部分,不要过早陷入细节3. 四门功课(三)Publisher 与 Subscriber 相连过程 (一) ROS核心代码 1. ROS所要解决的问题 1) 装备多种传感器的复杂机器人的出现导致单个程序完成任务已经不可能。 2) 多研究所合作,避免重复造轮子。 2. 解决问题的思路 1

atticus00的博客 1418

RYU+mininet——RYU

1. 使用RYU做mininet的控制器 1.1 RYU介绍与安装 RYU是一款基于python的控制器,你可用Ryu实现各种想要实现的网络功能,它可以下发或接收流表进行各种路由运算。 建议使用高版本的Ubuntu系统安装ryu,否则会有各种错误,安装过程比较简单,如下: apt install gcc libffi-dev libssl-dev libxml2-dev libxslt1-...

qq_34415266的博客 1万+

NLP实践——利用自己的语料进行Mask Language Model预训练

#!/usr/bin/env python # coding: utf-8 # In[1]: import os import json import copy from tqdm.notebook import tqdm import torch from torch.optim import AdamW from torch.utils.data import DataLoader, Dataset from transformers import BertForMaskedLM, BertTo

weixin_44826203的博客 1万+

ROS源码分析-week8

2021SC@SDUSC 1. 本周工作目标 前面几周阅读了ros core部分的ros master和ros topic方面的源码,注重于一些核心、通用库的实现。本周开始,我们要进入另一部分的阅读,阅读导航库的源码,探究其实现。结合实际情况,本周的工作目标如下: 阅读ros wiki,了解导航库源码结构 结合文档和源码结构,搭建阅读环境 2. ros导航库结构 回到最开始的wiki(RecommendedRepositoryUsage/CommonGitHubOrganizati

seaofbits的博客 1592

淘特App x-sign参数逆向实战:从抓包到算法定位

本文详细解析了淘特App的x-sign参数逆向过程,从抓包分析到算法定位,涵盖了使用jadx-gui进行静态分析、Frida动态Hook验证以及Native层算法还原等关键技术。文章重点介绍了x-sign参数的生成机制及其在阿里系应用中的安全防护策略,为逆向工程师提供了实用的调试技巧和对抗策略。

5b6n7m8的博客 226

Cartographer源码阅读之Cartographer_ros

Cartographer源码阅读之Cartographer_ros 文章目录Cartographer源码阅读之Cartographer_ros前言一、结束轨迹1、 FinishAllTrajectories();结束所有处于活动状态的轨迹2 、 FinishTrajectory();结束指定id的轨迹3、FinishTrajectoryUnderLock();结束指定id的轨迹4、RunFinalOptimization();当所有的轨迹结束时, 执行一次全局优化二、处理传感器数据1、如何处理各个数据三、

Evanismlii的博客 477

企业网络架构设计:从内网到外网的无缝通信方案

本文详细解析了企业网络架构设计中的关键技术与实践方案,重点介绍了VLAN划分、OSPF路由优化、安全策略及无线网络集成等核心内容。通过OSPF多区域部署和链路聚合技术,实现内网到外网的无缝通信,提升企业网络性能与安全性。文章还提供了具体的配置示例和最佳实践,助力企业构建高效可靠的网络架构。

weixin_28331555的博客 623

SAP 小结

关于SAP 开发的实习就要告一段落了,从刚开始接触,到现在已经6个月了,想要很简要的把自己对SAP的理解写出来,便于以后查阅(不定期更新)。 1. 什么是SAP? 广义的SAP,可以指代SAP公司以及SAP的各种产品,它的意义要在特定语境下才能确定。一般我们所说的SAP特指SAP ERP。 SAP ERP(enterprise resource planning)是一个企业信息系统。通过这个系

Remy的博客 1950

ROS1源码阅读 -- 初始化

ROS1源码阅读记录

weixin_39427234的博客 628

【软碟通 | UltraISO】刻录光盘教程(制作U盘启动盘)

前言 今天老师说办公室的电脑有点卡,让我给重新安装一个 Windows 7 系统。于是就用软碟通(UltraISO)在 U 盘上刻录了一个 Windows 7 镜像,然后给老师重装了系统。顺便把制作 U 盘启动盘的教程也分享给大家。 软件 UltraISO v9.7.1.3519:点击跳转(密码:dd2k) 教程 将 U 盘插到电脑上,然后鼠标右击选择格式化(制作启动盘必须格式化) 点击文件-打开 选择下载好的系统镜像(如:Windows 7) 点击启动-写入硬盘映像 选择硬盘

XavierJ的博客 2万+

ros的源码阅读

测试代码,使用xmlrpc与roscore通信 ros的框架是使用rpc与server端通信,server维护topic的publisher,subscriber,param server,serviceServer import xmlrpclib server = xmlrpclib.ServerProxy("http://localhost:11311/",verbose=False) ...

weixin_30295091的博客 274

RT-DETR改进有效系列目录 | 包含卷积、主干、RepC3、注意力机制、Neck上百种创新机制

Hello,各位读者们好Hello,各位读者,距离第一天发RT-DETR的博客已经过去了接近两个月,这段时间里我深入的研究了一下RT-DETR在ultralytics仓库的使用,旨在为大家解决为什么用v8的仓库训练的时候模型不收敛,精度差的离谱的问题,我也是成功的找到了解决方案,对于ultralytics仓库进行多处改进从而让其还原RT-DETR官方的实验环境从而达到一比一的效果。同时本人一些讲解视频和包含我所有创新的RT-DETR文档。

Snu77的博客 3万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ROS1源码阅读 -- 建立连接

节点间进行数据传输的前提是建立连接,ROS中节点间创建连接主要通过XmlRpc向master节点注册节点信息和订阅者发布者信息;master节点会根据注册列表进行Publisher和Subcriber的匹配,并将匹配结果通过RPC client发送给对应节点。

weixin_39427234的博客 1446

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ROS源码阅读(4)——tutorials

2021SC@SDUSC ROS源码阅读(4) 接下来我们继续看ros的tutorials,这里一共包含几个大类,包含了ros的几大功能的演示

qzyj99的博客 423

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ROS源码分析-week2

2021SC@SDUSC 1. 本周工作目标 在上周完成了代码的下载、编译之后,这周要正式建立代码的阅读环境了。结合实际情况,本周的工作目标如下: 建立VSCode代码调试环境 通过调试初步阅读ROS Master的源码 2. 建立VSCode阅读环境 对于这种“相对小众又灵活”的调试需求,最适合的工具就是VSCode了。这里选用的调试解决方案是:在Windows宿主中启动VSCode,用SSH连接虚拟机进行调试。 网上有很多类似的配置教程,这里略过了详细的配置了。配置过程中遇.

seaofbits的博客 736

TEB源码ROS接口部分阅读记录

ROS接口指的是teb_local_planner_ros.hpp和teb_local_planner_ros.cpp两个文件首先看一下hpp文件中的函数声明,这里为了简洁,去除了注释,后面会一一介绍各函数的作用。

weixin_44824496的博客 326

2D激光SLAM::ROS-AMCL包源码阅读(三)从main()开始

2D激光SLAM::ROS-AMCL包源码阅读(三)从main()开始 一、初始化主体部分 int main(): 最主要的作用是创建了 AmclNode对象 int main(int argc, char** argv) { ros::init(argc, argv, "amcl"); ros::NodeHandle nh; // Override default si...

dieju8330的博客 2807

AMCL源码阅读(ros2版本)

阅读amcl_ros2版本源码 源码git地址:https://github.com/ros2/navigation.git 本人注释的git地址:https://github.com/adayimaxiga/cartographer_migrate_to_ros2/tree/master/amcl 这个amcl执行过程与ros1版本没啥区别 首先阅读amcl_node.cpp 主函数调...

adayimaxiga 2426
上一篇: 【Linux】diff 命令
下一篇: 【C++】类模板、模板类、函数模板、模板函数、重载、重写、赋值、转换
Fourier 青年
博客等级 码龄9年 36粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值