自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

gezongbo的博客

喜欢写写博客,记录自己的学习笔记,遇到的bug及踩过的坑。

  • 博客(297)
  • 资源 (28)
  • 问答 (1)
  • 收藏
  • 关注

原创 ROS JsonCPP 安装配置教程

根据您提供的错误信息,看起来您的代码中使用了Jsoncpp库,但是没有正确链接到该库。你可以在你的ROS程序中使用JsonCPP来处理JSON数据。在您的代码中,确保包含了正确的Jsoncpp头文件。在编译您的代码时,确保链接到Jsoncpp库。请注意,根据您的操作系统和构建工具,上述步骤可能会有所不同。如果您仍然遇到问题,请提供更多详细信息,以便我们能够帮助您进一步调试。这会告诉CMake将Jsoncpp库链接到您的目标可执行文件中。重新编译和运行您的代码,确保动态链接库已正确链接并且没有错误。

2023-08-25 14:58:32 1132

原创 C++17 clamp函数

函数是C++17中引入的一个函数,用于将给定的值限制在指定的范围内。以下是一个示例代码,展示如何使用。在上述示例代码中,我们使用。函数之前,已经包含了。

2023-08-25 14:48:37 5054

原创 C++保留有效位数

请注意,这种方法仅适用于改变变量的输出值,而不会直接修改变量本身的存储值。如果你需要改变变量本身的有效位数,可能需要使用其他库或自定义数据类型来实现。对于改变变量本身的有效位数,C++标准库中没有直接提供内置函数。函数对结果进行四舍五入,并将结果除以因子,从而限制了浮点数的有效位数为指定的精度。这些方法都是通过控制输出的方式来实现保留有效位数,而不是直接修改变量本身。来将浮点数转换为字符串,并通过控制字符串的精度来实现保留有效位数。如果你需要限制变量的有效位数,可以使用一些数学函数来实现。

2023-08-25 14:47:11 1648

原创 C++ try crash 代码示例

块中,我们计算a除以b的结果,并将其打印到控制台。如果b为零,则不会执行该语句,而是直接跳转到。块,我们可以在程序出现异常时捕获并处理它,而不是让程序崩溃。这有助于提高程序的稳定性和可靠性。在上面的代码中,我们首先定义了两个整数变量a和b,然后检查b是否为零。块中,我们捕获到异常并将其打印到标准错误流中。然后,程序继续执行并返回0。语句抛出一个字符串异常。块来捕获并处理该异常。

2023-08-25 14:45:20 276

原创 C++ socket通信遇到的问题

具体来说,它通过调用fcntl函数,使用F_GETFL命令获取socket的当前标志位,然后将O_NONBLOCK标志位加入到标志位中,再次调用fcntl函数,使用F_SETFL命令将新的标志位设置回socket。在ThreadHandler函数中,我们将socket_fd_设置为非阻塞模式,并使用recv函数接收数据。最后,在循环结束后,我们关闭socket_fd_并将其置为-1,同时将thread_is_running_和service_is_running_标志置为false,表示线程已停止。

2023-08-25 14:41:12 498

原创 C++ 两个类通过智能指针进行访问操作

如果您需要在不同的类之间共享和传递函数,并允许动态更改函数,那么将函数作为回调函数传递可能更适合。如果您只需要在一个类中调用另一个类的函数,并且需要访问该类的成员变量,那么将类的指针传递给另一个类可能更合适。在C++中,有多种方法可以实现将一个函数传递给另一个类,并在该类中调用该函数。您可以选择将函数作为回调函数或通过类的成员函数来实现。函数中,我们通过调用成员函数指针来调用传递的回调函数。类型,用于表示回调函数的类型。类的回调函数类型,并将其作为参数传递给。类中定义回调函数,并将其传递给。

2023-08-25 14:38:37 320

原创 C++ 智能指针

记住,在使用智能指针时,你不需要手动释放内存,它们会在适当的时候自动释放所管理的对象。是C++14引入的函数模板,用于创建智能指针并自动分配和初始化所管理的对象。每种智能指针都有不同的所有权和内存管理方式,适用于不同的场景。根据你的需求和所有权关系,选择适合的智能指针可以提高代码的安全性和可维护性。是一种弱引用,它不会增加对象的引用计数,也不能直接访问对象的成员函数或成员变量。是否仍然有效(即是否指向一个有效的对象),如果有效,则返回一个指向该对象的。来访问由智能指针管理的对象,就像访问原始指针一样。

2023-08-25 14:29:17 207

原创 C++ 定义结构体

在上述代码中,我们定义了一个名为PID_gain_vel的结构体,包含了六个成员变量:p、i、d、power_vel_pid、last_error_vel和last_d_error_vel。在PID_gain_vel.cpp文件中,我们定义了两个函数:initPID_gain_vel用于初始化结构体,modifyPID_gain_vel用于修改结构体成员。这段代码首先初始化了一个名为pid1的PID_gain_vel结构体,然后通过调用usePID_gain_vel函数使用了该结构体的成员变量。

2023-08-25 14:23:52 1503

原创 Python的logging.config模块

在上面的配置文件中,我们使用了handlers.TimedRotatingFileHandler类来实现按时间滚动日志文件。args参数中的’midnight’表示每天午夜滚动日志文件,1表示保留最近一天的日志文件,30表示最多保留30个日志文件。创建一个配置文件,例如logging.ini,用于配置日志记录器的设置。运行你的程序,日志将被记录到指定的日志文件中。每天午夜,日志文件将滚动并创建一个新的文件,最多保留30个日志文件。是一个用于配置日志记录的配置文件,它使用了Python的标准库。

2023-08-25 14:20:09 379

原创 ROS2 C++语法教程

在这个例子中,我们创建了一个发布者和一个订阅者,并使用create_publisher和create_subscription方法创建它们。我们还定义了一个回调函数来处理接收到的消息。在这个例子中,我们使用declare_parameter方法声明了一个名为my_param的参数,并使用get_parameter方法获取参数的值。在这个例子中,我们使用rclcpp::Node::make_shared创建了一个ROS2节点,并使用rclcpp::spin使节点保持运行状态。

2023-08-25 14:15:05 344

原创 lib//libPath2AppNodelet.so: undefined symbol: _ZN4Json5ValueC1ENS_9ValueTypeE

.so: undefined symbol: _ZN4Json5ValueC1ENS_9ValueTypeE

2023-08-04 16:27:03 434

原创 ROS 中定义自己的消息类型

类型的数据,你需要使用 ROS 中的消息发布器(Publisher)来将数据发送给其他节点。首先,你需要在 ROS 中定义自己的消息类型。确保在编译时包含生成的消息文件,并在运行时启动发布节点和订阅节点,以便它们可以相互通信。接下来,在订阅节点中,你需要订阅相同的消息类型。现在,当发布节点发送数据时,订阅节点的回调函数。将被调用,并传递接收到的消息作为参数。

2023-08-03 15:45:35 348

原创 C++ MQTT客户端

请注意,此示例使用了Paho MQTT C++库,因此您需要在CMakeLists.txt中添加正确的依赖项。下面是一个简单的ROS节点的C++ MQTT客户端的示例,包括.h和.cpp文件。很抱歉,我之前提供的代码中似乎有一些错误。下面是更新后的代码,修复了。希望这可以帮助您开始使用ROS节点的C++ MQTT客户端。

2023-08-03 15:27:18 801

原创 ros::spin()、ros::MultiThreadedSpinner::spin()和ros::Rate()

如果你使用了ros::spin()语句,那么后续的代码不会被执行,因为ros::spin()会一直阻塞在那里等待消息。所以,在你的例子中,如果你想使用ros::MultiThreadedSpinner::spin()来利用多线程处理消息,那么你应该将ros::spin()语句删除。在ROS中,有两种主要的方式来处理ROS节点的消息和回调:ros::spin()和ros::MultiThreadedSpinner::spin()。在上面的示例中,节点将以每秒4次的频率发布消息,直到节点被关闭。

2023-08-03 15:20:56 886

原创 ROS C++ nodelet

函数中,你可以完成你的nodelet的配置。一个常见的方法是使用ROS参数服务器来加载配置值。以上是编写一个ROS C++ nodelet并使用配置文件的基本步骤。你可以根据你的需求扩展和修改这些步骤。在这里,你可以进行ROS节点的初始化和其他必要的设置。在你的nodelet类中,你可以使用ROS参数服务器来加载配置值。上面的代码将从ROS参数服务器中加载名为。的文件,其中包含你的配置。的文件夹,并在其中创建一个名为。文件中定义你的配置文件。在上面的示例中,配置文件。的参数的值,并将其存储在。

2023-08-03 15:08:06 343

原创 jsoncpp库和nlohmann-json库实现JSON与字符串类型转换

函数将字符串转换为JSON对象。最后,我们从JSON对象中获取数据,并打印出来。是ROS自带的一个JSON库,它提供了一些函数来解析和生成JSON数据。对象,并向该对象中添加了一些数据。注意:在使用上述代码之前,需要确保已经安装了。库来实现JSON与字符串类型之间的转换。在上面的示例代码中,我们首先创建了一个。函数将JSON对象转换为字符串,并使用。可以使用以下命令在ROS中安装。在ROS中,可以使用。是ROS的发行版,如。

2023-08-03 15:06:25 1895

原创 C++ STL常用方法概述

C++ STL(标准模板库)提供了许多算法方法,这些方法被封装在头文件中。这些算法可以应用于各种容器,如vector、deque、list、set、map等。

2023-04-16 16:39:26 466

原创 C++ STL基础了解

STL容器是存储数据的对象,可以存储不同类型的数据。C++STL提供了多种容器,下面是一些常见的STL容器:- vector:动态数组,可以自动扩容。- list:双向链表。- queue:先进先出队列。- stack:后进先出堆栈。- map:关联容器,提供键值对的映射功能。- set:关联容器,提供自动排序和去重功能。

2023-04-15 20:48:16 561

原创 sensor_msgs/CompressedImage消息类型转换成sensor_msgs/Image消息类型

接下来,我们定义了一个名为“compressed_image_callback”的回调函数,它将接收到的压缩图像消息转换为OpenCV图像,并使用cv_bridge将其转换为sensor_msgs/Image消息类型。我们还创建了一个名为“image”的发布者,用于发布转换后的图像消息。然后,我们定义了一个名为“compressedImageCallback”的回调函数,它将接收到的压缩图像消息转换为OpenCV图像,并使用cv_bridge将其转换为sensor_msgs/Image消息类型。

2023-04-15 10:40:39 2227

原创 OpenMMLab 实战营打卡 - 第 7 课

• MMSegmentation 项目概述• MMSegmentation 的模块化设计 ➢ PSPNet 模型配置文件解读• 数据集与数据流水线配置解读• 常用优化器配置• 代码实践 ➢ 使用预训练模型对单张图像进行推理 ➢ 使用自定义数据集训练语义分割模型

2023-02-11 11:35:12 651

原创 OpenMMLab 实战营打卡 - 第 6 课

OpenMMLab 语义分割任务: 将图像按照物体的类别分割成不同的区域等价于: 对每个像素进行分类比较预测与真值基于交并集的评估指标。

2023-02-10 13:25:07 200

原创 OpenMMLab 实战营打卡 - 第 5 课

配置文件的修改可以通过继承的方式,不用把一整个配置文件贴过来再一条一条改原始配置文件和与训练权重可以用 MIM 工具下载。将数据整理成MMDetection的支持的格式,如COCO格式或者自定义格式。MMDetection 提供 400 余个性能优良的预训练模型,开箱即。选择一个基础模型,下载对应的配置文件和预训练模型的参数文件。工具,经过简单的配置文件改写和调参就可以训练自己的目标检。用,几行 Python API 即可调用强大的检测能力。• 修改配置文件中的数据路径。• 修改模型的分类头。

2023-02-08 12:00:46 447

原创 OpenMMLab 实战营打卡 - 第 4 课

OpenMMLab 目标检测与MMDetection

2023-02-07 16:56:38 310

原创 OpenMMLab MMClassification代码实战

根据 mmclassification 的环境要求,需要用 anaconda、cuda、gcc 等基础环境模块。在 N30 分区可以使用module avail 命令可以使用模块信息。

2023-02-05 18:16:37 397

原创 OpenMMLab 实战营打卡 - 第 3 课

OpenMMLab MMClassification 图像分类

2023-02-04 17:49:02 207

原创 OpenMMLab 实战营打卡 - 第 2 课

OpenMMLab 图像分类

2023-02-03 13:01:50 197

原创 OpenMMLab 实战营打卡 - 第 1 课

计算机视觉是一门让计算机学会“看”的学科,研究如何自动理解图像和视频中的内容。1 计算机视觉算法基础与OpenMMLab介绍

2023-02-02 15:44:02 223

原创 Scanner键盘录入

(green!)目前在写Java程序的时候,数据都是写死和固定的,有时为了让程序更具有灵活性,就需要灵活的输入数据。Scanner的作用就是,灵活的从键盘接收数据输入。但实际开发中的数据,更多是自于前端页面(用户输入,上传等),所以总体而言Scanner对于Web开发并没有太大的实际作用,了解即可。但是在JavaSE的学习阶段,我们没有前端和各种界面的输入信息,在单机的情况下,使用Scanner键盘录入是很不错的选择,可以提高程序的灵活性。

2022-10-07 06:15:00 1358 4

原创 Java转义字符

(green!)什么是转义字符?所谓转义字符,就是用反斜杠(\)加上一个特殊的字符串用来表示一个全新的字符因为这个字符已经和原先字符串的意思大不相同,所以整体称之为转义字符转义字符的作用是什么?实际上转义字符可以表示任何一个普通字符,但是普通的字符直接书写给出即可,使用转义字符意义不大。转移字符最重要的用途是,表示那些无法用键盘直接输入的控制字符。比如在ASCII码表中,那些换行,翻页等等字符。

2022-10-06 04:00:00 514

原创 Java运算符

(green!)程序的世界里数据是无处不在的,计算机的最基本用途之一就是执行数学运算,程序员编程实际上也是围绕着数据的计算处理展开的。Java作为一门程序设计语言,也提供了丰富的运算符来操纵变量,本节我们来学习一下Java当中的运算符。运算符起着连接变量的作用,表示对变量的运算规则。其中:被运算符连接起来的变量称之为操作数,整个运算符和变量组成的式子称之为表达式,表达式通过运算符连接操作数。一元运算符:只需要一个操作数参与运算,得到一个结果二元运算符:需要两个操作数参与运算,得到一个结果。

2022-10-05 06:30:00 553

原创 Java变量概述与使用

(green!)「该节的内容都与Java变量有关,都非常重要。下面提供思维导图,为大致的知识网络」思维导图可以帮助组织知识体系,但是我给出的思维导图细节部分并没有给出,大家可以在复习时自行补全。>(green!)[-] 数据类型的定义什么是数据类型?数据类型可以看成是变量的分类,不同数据类型的变量不同类,我们可以从两个角度理解数据类型:数据最终是要存储在内存中的(从内存角度理解)数据类型可以看成是对内存空间的一个抽象表达方式,一种数据类型对应一种内存空间。

2022-10-04 07:00:00 658

原创 Java语法基本概念

(green!)「该节主要来讲述关于Java编程一些基本概念,偏向于概念性,基本不涉及什么代码。」从本节开始算是正式开始学习JavaSE的语法了。语法知识这个东西,首先是需要理解它的含义,其次需要记忆它的使用方式。最后需要在实践中练习并在练习中加深 理解 和 记忆!很多时候,同学们会发现听课、听老师讲也能听得懂,等到自己练习做题目的时候完全没有思路,做得很困难。这多是因为熟练度不够引起的,你只是理解了一个概念,但你还没有记住它,还不能将它运用到实践中。

2022-10-03 06:00:00 643

原创 Java开发环境基础配置

(green!)JDK的安装IDEA的安装提供给完全没有接触过Java的童鞋,在学习Java之前安装基础开发环境使用。如果你的环境已经搞得差不多了,也可以大致看一看,有些细节可能需要注意一下。//文件 HelloWorld.java中 public class HelloWorld {}注:public修饰class的含义,什么是public,它的作用是什么等相关问题,我们放在后面再讲。main方法是程序的入口方法,只有存在main方法的Java类可以启动,执行其中的代码。

2022-10-02 06:00:00 1198

原创 初识Java

该节主要了解一下Java的非代码层面的基本知识和概念,只需要留个印象就可以了!」本小节没有重点知识,但是作为Java程序员,对诸如Java历史之类的内容应该尽量了解一些!建议将该小节作为故事了解,读一读基本就可以了!

2022-10-01 06:00:00 498

原创 Spring Boot 使用Knife4j

完成后,启动项目,在浏览器中访问 http://localhost:8080/doc.html 即可查看当前项目的API文档。如果控制器处理请求的方法的参数是自定义的封装类型,可以在封装类型的属性上添加。另外,还可以配置参数类型等,但是,并不是必须配置,通常框架可以正常自动识别。当需要指定各业务在API文档中的显示顺序时,可以在处理请求的方法上添加。的实际值也需要添加说明,则在对应的类的属性上继续使用。属性可以是任意数据类型,必须声明为泛型,不可以是。另外,当添加在响应的类型的属性上时,还可以在。...

2022-08-14 08:00:00 2513 1

原创 Spring框架学习技术清单

你必须知道“环境变量”的作用,并将必须的命令的路径配置到环境变量的PATH中。示例–配置Java环境变量:http://doc.canglaoshi.org/doc/windows_jdk_eclipse.html注意:无论是CMD命令提示符窗口,还是IntelliJ IDEA中的Terminal窗口,都是在启动时就加载了环境变量的,如果你在其后修改过环境变量的配置,必须重新打开CMD命令提示符窗口,或重启IntelliJ IDEA,才可以应用新的配置。...

2022-08-13 00:15:00 265

原创 Spring框架注解大全

Spring框架注解大全。

2022-08-12 08:00:00 359

原创 Spring框架异常大全

Spring框架异常大全。

2022-08-11 08:00:00 252

原创 Spring Boot工程开发流程

Spring Boot是Spring官方的一个产品,其本质上是一个基于Maven的、以Spring框架作为基础的进阶框架,很好的支持了主流的其它框架,并默认完成了许多的配置,其核心思想是“约定大于配置”。

2022-08-10 12:37:15 515

原创 Racecar 基于ROS通信机制的多点导航实验

Ubuntu16.04+ROS 。发布者订阅者实现,发布者发出目标点,订阅者接受到后控制Turtlebo进行导航。打开gazebo roslaunch nav_sim myrobot_world.launchrosrun teleop_twist_keyboard teleop_twist_keyboard.py通过移动小车,设置目标点,记录左侧显示的位置坐标。x y z 和分别绕xyz轴旋转的角度:roll pitch yaw4.编写发布多个目标点的python或c脚本。在CMakeLists

2022-07-20 15:51:46 2245 3

bezier.docx

bezier.docx

2022-04-10

立方体透视投影.docx

立方体透视投影.docx

2022-04-10

Liang-Barsky直线段裁剪算法.docx

Liang-Barsky直线段裁剪算法.docx

2022-04-08

边缘填充算法说明.docx

边缘填充算法说明.docx

2022-04-07

bresenha画圆.docx

bresenha画圆.docx

2022-04-06

实验1-金刚石图案算法.docx

实验1-金刚石图案算法.docx

2022-04-05

用sklearn进行数据预处理:缺失值处理、数据标准化、归一化.pdf

用sklearn进行数据预处理:缺失值处理、数据标准化、归一化.pdf

2022-04-04

多元线性回归:如何分析销售量与三种不同广告投入之间的关系.pdf

多元线性回归:如何分析销售量与三种不同广告投入之间的关系.pdf

2022-04-04

一元线性回归:航班正点率和顾客投诉次数.pdf

一元线性回归:航班正点率和顾客投诉次数.pdf

2022-04-03

2.3-Python三剑客.pdf

2.3-Python三剑客.pdf

2022-04-02

Python pandas 中loc函数的意思及用法

Python pandas 中loc函数的意思及用法

2022-04-01

盘一盘 Python 系列 1 - 入门篇 (上).pdf

盘一盘 Python 系列 1 - 入门篇 (上).pdf

2022-03-30

Python安装与使用-v2021.11.pdf

Python安装与使用-v2021.11.pdf

2022-03-29

Python入门.pdf

Python入门.pdf

2022-03-28

wander_bot_readme.docx

Wander_bot 说明文档

2022-03-24

Wander_bots

Wander

2022-03-24

计组.pdf

计组.pdf

2022-02-15

计网.pdf

计网.pdf

2022-02-15

2D cartographer_paper_deutsches_museum.bag

2D cartographer_paper_deutsches_museum.bag

2022-02-14

cartographer

适用于Ubuntu16.04和Ubuntu18.04

2022-02-14

ROS cv_bridge适用于Ubuntu18.04

ROS+图像识别+图像类型转换+Python3+cv_brige+Ubuntu18.04

2022-01-26

ROS cv_bridge适用于Ubuntu16.04

ROS+图像识别+图像类型转换+Python3+cv_brige+Ubuntu16.04

2022-01-26

python_music.zip

python实验数据集 music

2021-09-27

iris_proc.data

数据挖掘数据集

2021-09-27

408 2021与2022大纲对比.pdf

408大纲对比.pdf

2021-09-16

2022 408大纲.pdf

2022 408大纲.pdf

2021-09-16

机器人操作系统.xmind

ros入门

2021-08-18

计算机必备的基础资料

408

2021-01-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除