0. 前言 在C++编程中,我们经常会发现段错误这类问题,而这类问题经常是指访问的内存超出了系统所给这个程序的内存空间。一般是随意使用野指针或者数组、数组越界等原因造成的。段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。此前我们也在博客中讲述了通过GDB对ROS的调试,而段错误也会通过这样类似的形式运行
0. 简介 最近在收到了很多读者的消息后,我觉得有必要开这个坑,来给大家阐述下如何对激光雷达点云以及图像点云去做栅格化以及体素化的操作.这部分需要各位读者拥有PCL,octomap,ROS2,C++的一些基础.好了废话不多说,我们第二章主要介绍点云的体素化. 1. octomap octomap是一种基于八叉树的三维地图创建工具, 可以显示包含无障碍区域及未映射区域的完整3D图形, 而且基于
0. 简介 最近在收到了很多读者的消息后,我觉得有必要开这个坑,来给大家阐述下如何对激光雷达点云以及图像点云去做栅格化以及体素化的操作.这部分需要各位读者拥有PCL,octomap,ROS2,C++的一些基础.好了废话不多说,我们第一章主要介绍点云的栅格化. 1. 栅格化 点云地图存储的是传感器对环境的原始扫描点云,优点是保留信息完整,缺点是计算量大、但是不能直接用于导航避障;特征地图存储的是环境
0. 简介 最近一直苦于自己写的代码的开发的质量不高,急需要一种可以适用于C++代码的代码质量检测工具,这里发现SonarQube可以很好的适用于Ubuntu环境,并能够很好的与Gitlab兼容,从而保证代码的敏捷式开发。 1. SonarQube安装 ubuntu中安装jdk详细过程可参考:https://blog.csdn.net/qq_26709459/article/details/80
0. 前言 最近群里有些老哥在问cartographer配置的相关问题,将我以前自己记录的文件测试后发现竟然已经失效,其原因在于cartographer官网对程序又进行了一次升级,以前的部分操作已经无法适用,这里在此记录一下。 1. 环境配置(melodic) 安装依赖包 sudo apt-get update sudo apt-get install -y google-mock libboo
0. 简介 最近群里有些老哥在问cartographer纯定位相关问题,网上已有的方法均已失效,这里作者研究了下cartographer相关的流程以及源码,给出了一种简单的解决策略。 1. 旧版cartographer_ros launch文件的修改 在启动cartographer_occupancy_grid_node节点时,增加pure_localization参数。 <node nam
0.前言 之前作者整理了一份ROS1中常用的GUI测试工具,最近作者在完善ROS2部分时觉得有必要写一篇关于ROS2常用命令行工具的文章来作为ROS2第一部分的一个小结。 1. 通信层面 ROS_DOMAIN_ID标记一个 ROS 域,不同的 ROS 域之间不能通信。这部分可以参照作者ROS2 DDS通信漫谈这篇文章,主要是因为ROS2本身的通讯是基于DDS的,所以存在域这个概念。 colcon_
0. 简介 本文档用于记录现ROS1与ROS2之间的区别,以及如何向ROS2移植。整体架构基于该文章 ROS2的教程参见:https://docs.ros.org/en/ros2_packages/rolling/api/ 1 工程构建 1.1 CMakeList的编写 ROS2采用ament cmake系统,最主要的区别是原先的catkin Cmake宏被取代 find_package(cat
0. 前言 我们都知道ROS1与ROS2的通信是不一样的,而ROS2也因为DDS的通讯带来了一些问题,其中最严重的就属于在存储大数据包的时候会出现的丢帧问题。而如何解决这样的问题目前官方没有给出非常好的解决方案,所以我们只有曲线救国,通过保存图片的方式来实现bag包的完整录制。操作系统:Ubuntu 20.04版本:foxyDDS实现:Fast-RTPS客户端库(如适用):rclcpp/rclpy
0. 前言 目前是ROS1到ROS2的过度阶段,由于ROS2内部的机制大幅变动,导致我们ROS1录制的bag包和ROS2的bag包并不能通用。网上基本上均是如何将ros2录制的bag包转换为ros1格式的bag包的方案,这里做出归纳,并给出全套的解决方案。测试环境:ubuntu 20.04ROS 1 noeticROS 2 foxy两个版本的ROS 均需要按照官网教程进行安装,这里可以参照作者之前
0. 前言 我们都知道ROS2比ROS1好很多,就比如说: 去中心化master,ROS和ROS2中间件不同之处在于,ROS2取消了master节点。在去中心化后,各个节点之间可以通过DDS的节点相互发现,各个节点都是平等的,且可以1对1、1对n、n对n进行互相通信。 不造通信的轮子,通信直接更换为DDS进行实现。通信采用采用DDS通信,使得ROS2的是实行、可靠性和连续性上都有了增强。
0. 前言 在使用ROS时候,我们常常感叹ROS的好用,但是在ROS开发方面,从前的我常常会拘泥于教程上的POP的开发方式,这样让我在开发相对大型的机器人程序时就倍感不适。而在19年开始我尝试着在ROS1中使用OOP的形式编程。但是我们知道ROS2和ROS1存在着差异性,所以我们不能直接套用ROS1的编程习惯去实现ROS2的编程。为此本文针对ROS2去给出一套POP和OOP编程以供各位对比。这里也
0. 前言 随着ROS在机器人行业的越来越普及,机器人领域已经和ROS密不可分,无论是单体机器人还是群体机器人。而最近大热的自动驾驶行业也是以ROS为基础进行改动和开发的,但是由于ROS1自身的不足,越来越多的企业开始转投ROS2的怀抱(当然ROS1和ROS2的编程思想类似,所以转起来还是挺方便的)。最近本人也开始转ROS2,而如何科学有效地对ROS2代码的debug调试,看了全网发现都没有合适的
0. 前言 系统要求:Ubuntu20.04 ROS安装版本: Noetic 清华源配置 sudo gedit /etc/apt/sources.list #清华源 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna
0. 前言 对于我们这些搞机器人的工程师来说,当前嵌入式开发板需要安装一些外网才能安装的软件包时,总需要我们从电脑下载相应的软件包然后remote到嵌入式开发板中,这导致我们配置非常繁琐,为此本文提供一套小米4C刷openwrt并配置的文章,来方便各位工程师配置嵌入式环境 1. 认识刷机 上面的图片是小米4C的配置,虽然4C没有usb口,但是搞一搞环境搭建还是ok的。 开启Telnet 和 FTP
Valgrind查找内存泄露利器 Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的malloc和free或者 C++中的new和 delete。使用Valgrind的工具包,你可以自动的检测许多内存管理和线程的bug,避免花费太多的时间在bug寻找上,
Epuck2机器人是一款最新的科研教学实践使用的多功能移动机器人。由EPFL和GCtronic两个机构合作研发生产。这款机器人的全貌如上图所示,主控芯片是STM32F4,具备蓝牙、WIFI等通信功能。详情请参见官网:Epuck2科研教学机器人详细资料官网 由于这款机器人是从国外进口,价格比较贵(10000RMB/台),因此需要开发使用的代价成本较高。而且开发IDE采用的是基于C语言的Eclipse
0 前言 最近没啥可以写博客的好点子,为此一直咕咕咕了。端午节没啥事,左右苦思冥想,发现网上针对ROS的bash启动脚本几乎还是处于0的状态。为此针对性的给ROS开一个bash脚本的教程是非常有必要的。也希望各位大佬能提点意见,如果后续合适,我会继续根据各位的意见来继续开坑的。 1 bash 脚本简介 1.1 bash 脚本基础介绍 首先我们知道常见的bash脚本是基于shell文件的。因为bas
1. 问题描述 在ROS编译过程中经常会遇到找不到ROS包的情况,如下所示 CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package ): Could not find a package configuration file provided by "gazebo_plugin
ROS 常用GUI测试工具 作为一个成熟的ros开发工程师,我们常常会需要用到GUI工具方便我们进行调试,为此rqt工具是我们日常使用时必不可少的工具。 rqt_plot 这个命令常常是我们需要长时间观察topic数据变化所需要用的。在我们需要观看某个topic的动态参数时候会非常有用。 rosrun rqt_plot rqt_plot #画出发布在topic上的数据变化图 rqt_plo
自己所学所看所写的分享
博客
泡泡
积分
勋章
ROS/c++常见段错误以及排查
基于ROS2开发的点云体素化
基于ROS2开发的点云栅格化
如何使用SonarQube来优化你的代码
cartographer环境最新配置(2021.11.11)
cartographer 纯定位---pure_localization
ROS2常用命令行工具
ROS2与ROS1比较及移植指南
ROS2中bag包录制出现丢帧问题及解决方案
ROS1与ROS2的bag包互换(包含自定义消息)
ROS2 DDS通信漫谈
基于ROS2的POP和OOP编程
ROS2 搭建vscode的debug调试环境
Ubuntu20.04 ROS1和ROS2同时安装及使用
基于小米4C路由器无障碍搭建机器人嵌入式环境(2021.08.17)
Valgrind对ROS程序的可视化分析
E-puck2利用pi-puck实现ros操控知识点汇集
基于Bash脚本自己开发ROS的一键启动
ROS问题及解决方案——依赖包安装以及无法修正错误
ROS 常用GUI测试工具
Anaconda虚拟环境中,让Python3使用ROS的cv_bridge
Ubuntu环境下ROS安装自己OPENCV版本
QT ros环境搭建以及打包发布
基于docker一键安装ros环境(含gazebo&rviz)
ROS i2c 通信(c++版本)
ROS 多机器人建图与导航
Ubuntu安装ROS2并编写自己的程序
ROS在线调试(使用GDB)
搭建ros交叉编译环境(从x86到nvidia arm)
ROS与Python3
ROSBridge简介以及理解使用
ROS人机交互软件
ROS 之 KUKA iiwa编程
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信