Introduction of ROS2 当前ROS2已经成为了应用最为广泛的机器人应用程序开发SDK之一,它拥有先进的分布式架构、更好的可靠性、实时性以及嵌入式设备支持。ROS2的诞生主要源于以下三个方面: ROS1的历史遗留问题 机器人技术经过多年的发展产生了新的需求 在ROS发展的时间里产生了很多新的技术 History from ROS to ROS2 ROS最初的设计是为了给使用Willow Garage PR2机器人进行研 2023-02-08 技术 > Robotics > System #colcon #ROS2
ROS package发布工作流 对于API相对稳定的ROS package通常会采用二进制发布的方式向社区项目提供支持,这里的二进制发布有许多可选的流程,最终的包形态也不尽相同,不同的包发布方式也各有优劣。当前较为主流的包发布方式还是以ROS社区的bloom+ros_buildfarm为主,但是很多特定场景下开发者们也可能通过snapshot/bundle或者container的形式进行发布。最近为了解决上述发布形式的 2022-12-15 技术 > Robotics > System #robotic #drone #ROS #catkin #colcon
将ros package从ros1迁移至ros2 总体来说从ros1迁移至ros2的过程还是比较简单的,基本上是在ros1的package基础上针对ros2的差异进行一些改动和适配。 catkin package与colcon package的差异主要体现在以下几个方面: 构建系统:catkin->colcon ros组件:roscpp->rclcpp 源码:部分模块命名空间有区别 迁移步骤以vins-fusion中的loop_f 2022-12-12 技术 > Robotics > System #robotic #drone #ROS #catkin #colcon
Jetpack(L4T) Perf性能分析工具安装及测试 不同于普通AMD64的PC,安装perf相关工具一行apt命令即可sudo apt install linux-tools-common linux-tools-"$(uname -r)" linux-cloud-tools-"$(uname -r)", L4T版本的perf由于不在arm64的apt源中需要从源码编译。 获取源码 可以通过jtop直接查 2022-12-07 技术 > Linux > Usage #ubuntu #jetson #l4t #perf
C/C++通用构建加速方法 C/C++编译基本原理对于C/C++代码通常来说整个构建过程分为以下几个主要部分: 预处理 在此阶段主要完成的工作是将头文件展开、替换宏指令、条件编译展开、消除注释。 编译 在此阶段主要将预编译好的文件转换成汇编语言(高级语言->LLVM平台无关语言->平台汇编语言)。 汇编 在此阶段将汇编语言转换为二进制机器语言。 链接 将编译产物和预编译制品(.o、.a 2022-06-03 技术 > Linux > Basic #c/c++ #compile #link
Linux进程管理-随笔记录 进程的描述PCB 描述一个进程的结构。 组织方式 进程链表:用于遍历 进程树:体现父子关系 进程哈希表:用于pid检索 进程生命周期 僵尸僵尸进程:PCB还没消失,等到父进程wait(),父进程可以得知子进程退出原因。 内存泄漏:随时间增加内存消耗震荡发散。 停止用STOP信号暂停,保存中间结果,用CONTINUE信号继续。 1Ctrl+z` 和`bg`、`fg 睡眠深睡眠:只有当资源都满足才唤 2021-10-11 技术 > Linux > Basic #linux #os
VScode C/C++编译及调试环境配置 博客原文:VScode C/C++编译及调试环境配置 默认已安装了VScode MinGW安装(Windows)Mingw-w64下载地址 下载该文件(需要科学上网) 国内COS服务器(作者按流量付费的,大伙省着点用):MinGW.zip 下载后解压到一个可以记住的路径,如下图: 添加环境变量根据自己刚解压的路径配置环境变量。 如下图所示 打开cmd检查是否配置成功 1gcc -v 2021-09-17 生活 > IT小技巧 #vscode #c/c++
概率生成问题 作者:imageslr链接:https://leetcode-cn.com/problems/implement-rand10-using-rand7/solution/cong-pao-ying-bi-kai-shi-xun-xu-jian-jin-ba-zhe-da/来源:力扣(LeetCode) 引言概率生成问题是一种比较常见的面试题,常见题型举例: 有一枚不均匀的硬币,要求产生均匀的概率 2021-09-05 技术 > Algorithm > Basic #algorithm #possibilities
CUDA on Arm - 存储单元 🎉感谢来自NVIDIA企业级开发者社区的何琨(Ken)老师提供的资料和细致耐心的讲解 本篇不涉及存储单元的加速优化,重点演示最基础的内存申请释放、数据拷贝传输 存储单元(这块并没有完全学完,Constant memory和Texture memory存储介绍内容来源于搜索引擎) Register寄存器是GPU最快的memory,寄存器变量是每个线程私有的,一旦thread执行结束,寄存器变量就 2021-08-24 技术 > Course > CUDA #ubuntu #jetson #cuda #GPU #ARM
CUDA on Arm - 线程层次 🎉感谢来自NVIDIA企业级开发者社区的何琨(Ken)老师提供的资料和细致耐心的讲解 线程层次Thread: sequential execution unit 所有线程执行相同的核函数 并行执行 Thread Block: a group of threads 执行在一个Streaming Multiprocessor [SM] 同一个Block中的线程可以协作 Thread Grid 2021-08-22 技术 > Course > CUDA #ubuntu #jetson #cuda #GPU #ARM