自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 Reconstructing Directed Routes Using Minimal Stamp Information

【代码】Reconstructing Directed Routes Using Minimal Stamp Information。

2025-01-09 01:19:58 792

原创 Optimizing Traffic Flow Under Variable Signal Constraints

where:

2025-01-09 01:09:36 1045

原创 Analysis and Solution for the “Number With The Given Amount of Divisors“ Problem

AnalysisandSolutionforthe"NumberWithTheGivenAmountofDivisors"Problem。

2025-01-08 00:10:54 916

原创 Analysis and Solution for the “Unordered Subsequence“ Problem

AnalysisandSolutionforthe"UnorderedSubsequence"Problem。

2025-01-08 00:07:50 1479

原创 Maximizing the Perimeter of a Negotiation Table: A Computational Approach

This paper explores the problem of finding the maximum perimeter of a rectangular negotiation table that can fit inside an office space without intersecting any occupied regions. Given a binary matrix representation of the office space, where '0' represent

2025-01-06 00:14:53 553

原创 Second Order Statistics: An Analytical Solution in Python

This paper addresses the computational problem of identifying the second smallest unique value in a numerical sequence, a task defined as the "Second Order Statistics" problem. The problem arises in mathematical analysis and computer science, with applicat

2025-01-06 00:09:05 861

原创 Efficient Implementation of Bellman-Ford Algorithm for Single-Source Shortest Path Problem in Weight

This paper explores the single-source shortest path problem in weighted graphs with potentially negative weights, leveraging the Bellman-Ford algorithm. Unlike Dijkstra's algorithm, Bellman-Ford is well-suited for graphs with negative weights and cycles. T

2025-01-05 00:15:55 646

原创 Efficient Implementation of Dijkstra‘s Algorithm for Single-Source Shortest Path Problem in Weighted

This paper addresses the single-source shortest path problem for weighted undirected graphs using Dijkstra's algorithm. The task is to compute the shortest path between vertex 1 and vertex nn. The problem allows for loops and multiple edges between pairs o

2025-01-05 00:09:02 1081

原创 Understanding Endianness: Little-Endian and Big-Endian in System Memory and Data Processing

Endianness, which determines the byte order in memory storage, is a critical concept in computer systems. It affects how data is stored, retrieved, and interpreted across different systems and architectures. This paper explores the concepts of little-endia

2025-01-04 19:33:02 1098

原创 Design and Implementation of a 2:1 Multiplexer Using Verilog HDL and Python Simulation

The multiplexer is a fundamental building block in digital circuits, widely used in data selection and signal routing applications. This paper focuses on the design and implementation of a 2:1 multiplexer using Verilog HDL, detailing its logic gate-level s

2025-01-04 19:28:37 1256

原创 Binary Search Tree (BST): Python Implementation and Performance Analysis

Binary Search Tree (BST): Python Implementation and Performance Analysis。

2025-01-03 09:26:41 708

原创 Hash Table Lookup: Python Implementation and Performance Analysis

Hash Table Lookup: Python Implementation and Performance Analysis。

2025-01-03 09:21:27 1013

原创 1.1 Beginner Level学习之“检查 Simple Service 和 Client”(第十六节)

首先,我们将运行一个简单的服务。服务的功能是接收两个整数并返回它们的和。服务由 add_two_ints_server 节点实现,既有 C++ 实现,也有 Python 实现。因为我的 ROS 位置是 /opt/ros/noetic/share/ros,因此我会使用下面的命令来运行这个服务。客户端发送两个整数(如 1 和 3),服务端收到请求后计算出它们的和(4),并将结果返回给客户端。成功运行后,终端会显示类似以下的输出:Ready to add two ints.客户端将发送两个整数并接收返回的结果。

2024-12-13 14:04:48 417

原创 1.1 Beginner Level学习之“编写简单的服务和客户端 (Python)”(第十五节)

B.创建服务句柄:add_two_ints = rospy.ServiceProxy('add_two_ints', AddTwoInts)在另一个终端中,向服务节点发送请求:rosrun beginner_tutorials add_two_ints_client.py 2 3。在新的终端中,运行服务节点:rosrun beginner_tutorials add_two_ints_server.py。A.等待服务启动:rospy.wait_for_service('add_two_ints')

2024-12-12 13:04:21 576

原创 1.1 Beginner Level学习之“编写简单服务和客户端 (C++)”(第十四节)

在第三个终端中,向服务节点发送请求:rosrun beginner_tutorials add_two_ints_client 13。服务节点介绍,我将创建一个名为 “add_two_ints_server” 的服务节点,该节点接收两个整数并返回它们的和。在另一个终端中,运行服务节点:rosrun beginner_tutorials add_two_ints_server。在 main() 函数中,初始化 ROS 节点,并创建一个服务端口 “add_two_ints”,等待客户端请求。

2024-12-11 17:43:18 1029

原创 1.1 Beginner Level学习之“检查简单发布服务器和订阅服务器“(第十三节)

在上一教程中,我们创建了一个名为 "listener" 的订阅者节点。在上一教程中,我创建了一个名为 "talker" 的发布者节点。终止节点,完成测试后,可以按下 Ctrl + C 终止 talker 和 listener 节点的运行。在使用 ROS 之前,需要启动 roscore,它是 ROS 的核心服务:$ roscore。$ cd ~/catkin_ws # 进入 catkin 工作区。发布者节点已成功运行,现在需要启动订阅者节点以接收发布的消息。

2024-12-10 08:17:32 577

原创 1.1 Beginner Level学习之“编写简单的发布服务器和订阅服务器”(第十二节)

在ROS中,**节点(Node)**是与ROS网络通信的基本单位。在这个部分,我们将创建一个简单的发布节点(talker),它会不断向话题(topic)广播消息。导入ROS模块:我们需要rospy模块来编写ROS节点,同时需要String消息类型来发布字符串消息。接下来,我会创建一个简单的**订阅节点(listener)**来接收发布节点发送的消息。这个节点订阅了chatter话题,并调用回调函数callback()来处理接收到的消息。该函数会保持节点运行,直到节点被手动关闭。

2024-12-09 09:14:26 1304

原创 1.1 Beginner Level学习之“编写简单的发布服务器和订阅服务器”(第十一节)

接下来,我编写了一个订阅者节点 listener,它会接收来自 chatter 主题的消息并显示出来。在一个终端中,启动 roscore: /opt/ros/noetic/bin/roscore。subscribe():订阅 chatter 主题,并将收到的消息传递给回调函数。ros::init():初始化 ROS 节点,并将节点命名为 talker。ros::NodeHandle:创建节点句柄,控制节点的初始化和关闭。ros::spin():进入回调循环,等待消息到达。

2024-12-08 11:37:59 871

原创 1.1 Beginner Level学习之“创建 ROS msg 和 srv”(第十节)

另外,ROS 中有一个特殊类型:Header,它通常包含时间戳和坐标框架信息。如创建消息时一样,需要更新 package.xml 和 CMakeLists.txt 文件。接下来,需要确保 msg 文件能够被编译为 C++、Python 等语言的源代码。ROS 提供了多种命令行工具,你可以随时通过 -h 参数查看命令的帮助。使用 rossrv:使用 rossrv show 查看服务定义。使用 然后可以使用 rosmsg show 命令查看消息定义。在此示例中,A 和 B 是请求字段,Sum 是响应字段。

2024-12-07 17:35:26 1106

原创 计算机组成原理:半加器设计实验(实验一)

在“输入”中添加“A”和”B”,在“输出”中添加“Co”和“S”,然后写真值表。在Logisim中的“组合逻辑分析”工具自动生成半加器电路(或手工绘制电路)

2024-12-06 16:44:24 486

原创 1.1 Beginner Level学习之“使用 rosed 在 ROS 中编辑文件”(第九节)

这样可以方便地浏览并选择包中的文件,即使你不确定文件的确切名称,也能快速找到。如果文件名在包中并不唯一,rosed 会列出所有可能的文件供你选择。的一部分,它的目的是让你通过 ROS 包的名称快速编辑文件,而不用手动输入完整的路径,节省开发时间。可以通过进一步输入字符来精确定位要编辑的文件,比如 Logger.msg,再按回车以打开它。对于不熟悉 vim 的初学者,建议将默认编辑器更改为更简单的。注意:修改 ~/.bashrc 文件后,必须打开一个新的终端才能使更改生效。rosed 是 ROS 自带的。

2024-12-06 14:11:43 559

原创 1.1 Beginner Level学习之“使用rqt_console和roslaunc“(第八节)

由于我的 ROS 安装路径是 /opt/ros/noetic/share/ros,因此 替换为 noetic。如果不确定是否已经安装了这些包,再次安装不会产生问题。日志级别优先级越高,显示的日志信息越重要。设定某个日志级别后,等于显示该级别及以上的所有日志。ROS 中日志级别从高到低的顺序为:Fatal

2024-12-03 22:31:50 1013

原创 1.1 Beginner Level学习之“了解 ROS 服务和参数”(第七节)

由于我的 ROS 安装在 /opt/ros/noetic/share/ros 路径下,因此命令执行需要确保我的环境变量正确配置。通过 rosparam,我们可以设置、获取和删除参数,还可以将参数保存到文件中或从文件中加载参数。这个命令会列出所有在参数服务器上存储的参数,包括一些系统相关的参数和 turtlesim 节点的参数,例如背景颜色的 RGB 通道 /turtlesim/background_r、/turtlesim/background_g 和 /turtlesim/background_b。

2024-12-02 18:03:17 1120

原创 1.1 Beginner Level学习之“了解 ROS 主题”(第六节)

我在 rqt_plot 中输入 /turtle1/pose/x 和 /turtle1/pose/y,观察到了乌龟在 x 和 y 轴上的位置随时间变化的实时曲线。通过 rqt_graph,我可以清晰地看到 turtlesim_node 和 turtle_teleop_key 通过 /turtle1/cmd_vel 主题进行通信。接下来,我使用 turtlesim 来进行实验,turtlesim 是一个简易的乌龟仿真器,用于演示 ROS 中的主题通信机制。为了控制乌龟的运动,我启用了键盘遥控功能。

2024-12-01 21:48:27 1058

原创 数据结构之线性表实验(二)

这个函数只关注如何正确地创建链表,而不依赖于链表节点的具体存储方式,无论是用结构体数组模拟链表还是动态分配内存创建真正的链表节点,都可以在这个函数内部实现,只要最终返回符合要求的链表结构即可。对于环形链表的形成,通过仔细调试,确保每个节点的next指针都能正确地指向下一个节点,并且最后一个节点的next指针指向头结点(对于带附加头结点的情况)或第一个节点(对于不带附加头结点的情况)。在删除节点时,同样仔细检查指针的更新操作,确保前一个节点的next指针能跳过要删除的节点,指向正确的下一个节点。

2024-11-30 22:58:24 990

原创 1.1 Beginner Level学习报告之了解 ROS 节点(第五节)

节点是使用 ROS 与其他节点进行通信的可执行文件。每个节点在 ROS 系统中都有唯一的名称,并通过客户端库与其他节点进行消息、服务或动作的交换。roscore 是 ROS 系统的基础服务,它包含 ROS Master、rosout 以及参数服务器。rosout 是 ROS 中类似于标准输出(stdout/stderr)的日志系统,帮助开发者调试节点。rosrun 允许直接运行 ROS 包中的节点,无需指定包的完整路径。rosnode 是一个用于管理和查看当前运行中的 ROS 节点的命令行工具。

2024-11-30 18:09:57 691

原创 1.1 Beginner Level学习报告之”ROS 包构建“

在构建 ROS 包之前,需要确保已经安装了所有的系统依赖项。可以看到,在 src 文件夹下有一个名为 beginner_tutorials 的文件夹,这是我们使用 catkin_create_pkg 命令创建的包。在 ROS 中,catkin_make 能够在一个工作空间中构建多个 catkin 项目。在执行 catkin_make 命令时遇到了一个 CMake 错误,提示缺少 rospyroscpp 组件。上述命令会构建工作空间中的所有 catkin 项目,并将构建输出文件放置在指定的目录中。

2024-11-27 23:28:51 457

原创 1.1 Beginner Level学习之“创建 ROS 包“(第三节)

可以使用 rospack 查看这些第一层依赖:$ rospack depends1 beginner_tutorials roscpp rospy std_msgs . 这些依赖被存储在 package.xml 文件中。间接依赖是指某个依赖包本身依赖于其他包,使用 rospack depends 可以递归列出所有依赖包:$ rospack depends beginner_tutorials cpp_common rostime roscpp_traits。package.xml 文件包含包的元数据信息。

2024-11-25 10:53:55 1064

原创 1.1 Beginner Level学习之“安装和配置 ROS 环境”(第二节)

roscd 工具只会在 $ROS_PACKAGE_PATH 路径中查找 ROS 包。ROS 提供了一系列工具来简化对文件系统的操作,这些工具可以避免在复杂目录结构中频繁使用传统命令行工具(如 ls 和 cd)。例如:$ roscd roscpp_tut>roscd 是 Rosbash 套件中的一部分,用于直接切换到指定的软件包或堆栈目录。:这是 ROS 文件系统中的最小组织单位,一个软件包可能包含库、可执行文件、工具等。

2024-11-21 16:55:51 439

原创 1.1 Beginner Level学习之工作空间配置

创建用于新包的沙盒目录:在创建好工作空间后,接下来需要创建一个用于存放新包的沙盒目录。根据ROS的惯例,新包必须放置在 ROS_PACKAGE_PATH 环境变量中定义的路径下。A.创建一个新工作空间:首先,通过以下命令在 /noetic_workspace 路径下创建一个新的工作空间,并且将其扩展至已安装在/opt/ros/noetic中的软件包集合。完成创建后,需要重新加载 ~/noetic_workspace/setup.bash 文件,使得更新后的ROS_PACKAGE_PATH生效。

2024-11-21 13:34:21 302

原创 ROS安装学习报告

学习到了ROS(机器人操作系统)安装的详细步骤,并熟悉了整个过程中的关键操作。本报告首先介绍了通过火狐浏览器访问ROS官方网站,选择适合的版本,如“Get ROS Noetic Ninjemys on Ubuntu Linux”,并在Ubuntu系统中添加软件源和密钥。随后,报告详细描述了通过终端运行相关指令来安装ROS主体,并在安装完成后对系统进行必要的环境配置。3、进入后,配置ubuntu系统软件源并添加ros源,点击“Mirror”可以选择中国地区的ros源,选择离我们最近的上交大ros源。

2024-11-21 11:16:03 578

原创 Ubuntu 20.04安装

Ubuntu系统下载官方。

2024-11-17 12:26:05 1684

原创 数据结构之线性表实验(一)

在绘制加法和减法函数的算法流程图时,发现流程图过于复杂,尤其是在处理进位和借位逻辑时,流程的分支较多,容易导致理解困难。时间复杂度:加法运算需要遍历两个超长整数的每一位进行逐位相加,遍历的次数取决于两个数的长度,时间复杂度为O(n),其中n为较大整数的位数。1. 附件程序201中,原程序只能显示1个汉字对应的五笔输入码,修改程序,实现命令行对输入的多个汉字,显示它们的五笔输入码。

2024-11-17 09:58:21 1001

空空如也

空空如也

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

TA关注的人

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