- 博客(638)
- 收藏
- 关注
原创 python--sys
sys是 Python 的标准库模块,提供了与 Python 解释器及其环境交互的函数和变量。它让你能够访问 Python 运行时系统的参数和功能。sys.path。
2026-03-11 13:52:22
21
原创 c++--c++和python
层面C++Python编译/执行编译为机器码解释字节码类型检查编译时(零运行时开销)运行时(每次操作都检查)内存访问直接、连续间接、通过PyObject函数调用直接跳转/内联字典查找+动态解析硬件交互直接内存操作必须通过C扩展优化时机编译时深度优化运行时有限优化确定性执行时间可预测GC等导致非确定性延迟。
2026-01-09 10:44:16
389
原创 机器人--dh参数
机器人由多个连杆通过关节(转动或移动)串联而成。要描述末端执行器的tcp/空间中的一个点相对于基座的位置和姿态,需要知道所有相邻连杆之间的变换关系,并将这些变换串联起来,有了某个点相对于flange的pose,再有相邻关节之间的变换关系,即变换矩阵,才能将这个点的pose转换到基坐标系下。如何为每个连杆建立坐标系,并定义它们之间的变换?Denavit和Hartenberg于1955年提出了一种标准方法(D-H参数法)。该方法仅通过,就能完全描述相邻两个连杆坐标系之间的相对位姿(包括平移和旋转)。
2026-01-07 15:26:19
535
原创 机器人--欧拉角--旋转矩阵
旋转矩阵就是交接确认绕各个轴旋转所得的旋转矩阵相乘之后得到的 的一个3*3的矩阵而已,所以得到这个矩阵之后,只需要逆运算就可以算的三个欧拉角。旋转矩阵就是交接确认绕各个轴旋转所得的旋转矩阵相乘之后得到的 的一个3*3的矩阵而已。同时考虑了正弦和余弦,给出了正确的象限。有两个解(ry 和 π-ry)。现在我们从矩阵元素反向求解。让我们一步步计算这个乘积。但是仅凭这个无法唯一确定。旋转顺序:先绕Z轴转。
2026-01-05 13:30:18
432
原创 ros2--launch--urdf
注意,robot_description参数的值必须是urdf中文件内容,也就是我们必须从urdf文件中获取文件内容,才能把这些文件内容传递给robot_description参数,不能把文件路径传递给文件robot_description参数,否则解析错误。
2025-12-10 16:30:31
61
原创 c++17--std::owner_less
:C++17 引入了特化版本,具有透明性(transparent comparator)。这意味着它可以接受任意类型的智能指针作为参数(如和),而无需显式指定模板参数,类型会自动推导。这提高了代码的灵活性,尤其适用于异构容器。。
2025-12-10 11:53:15
392
原创 c++--websocket
在C++环境下使用websocket,比较常用的有2个库:websocket++ 和 libwebsockets。前者是用C++写的,依赖C++11和boost, 后者是用C语言写的,依赖openssl,这里不做过多介绍。参考网址:http://www.oschina.net/project/tag/321/websocket?
2025-12-09 18:29:16
1445
1
原创 ros2--urdf--rviz
可以看到在程序启动的时候,我们用户指定了节点robot_state_publisher需要使用到的urdf文件路径。发布tf,tf_static,urdf的功能包。,计算机器人各连杆(link)之间的位姿关系。依赖话题输入,发布tf数据(用于 RViz、导航、运动规划等)。。订阅话题,获取关节状态。根据 URDF 中的运动学模型,计算每个连杆的坐标系变换。发布到/tf和/tf_static(固定关节)。
2025-12-09 16:38:20
61
原创 ros2--zenoh
下载好之后,如果需要在下载的终端启动哦你那个zenoh,需要先source一下ros2脚本文件:1.设置ros2中间件为zenoh:为了确保每次打开终端时该设置都能自动生效,你可以将上述命令添加到 ~/.bashrc 文件中。这样,每次新开一个终端窗口,Zenoh都会被自动设置为RMW的实现。2.启动zenoh启动成功的画面:Zenoh路由,类似于ROS1中的roscore,承担着节点间发现与消息传递的重任。以上教程来自小鱼。
2025-12-08 11:38:35
373
原创 ros2--ROS 2主机与ROS 2网络通信
我在一台主机A上使用ros2,在另一台主机B上我需要主机进行通信,也就是通过底层fastDDS通信,但是因为ros2太大,我不想安装和使用ros2,有哪些方式可以使用?:无需手动处理IDL映射,直接使用ROS 2的C/C++/Python API,与ROS 2生态无缝兼容。:需要手动定义与ROS 2消息完全一致的数据类型(IDL文件),并处理序列化/反序列化。:极致的轻量级,无ROS 2任何开销,完全控制数据流,性能最佳。:主机B完全无需ROS 2或DDS库,使用通用协议。,而不安装整个ROS 2桌面版。
2025-12-08 10:54:14
270
原创 c++--随机数/rand
如果没有设置种子,每次程序运行都会生成完全相同的随机数序列。用不同的种子初始化,就会得到不同的随机数序列。确保每次程序运行时生成的随机数序列都不同。返回从1970年1月1日到现在的秒数。每次程序运行时,这个时间值都不同。rand()函数实际上生成的是。
2025-10-22 12:46:55
230
原创 c++--线程休眠/sleep
当你调用像这样的函数时,当前线程会从转变为。:操作系统内核的调度器会将该线程标记为“正在休眠”,并将其从中移除。:CPU调度器从此不再考虑这个线程,因为它不可运行。调度器会转而选择其他处于“可运行”状态的线程来执行。:操作系统内核维护着一个计时器,当指定的休眠时间到期后,内核会将线程重新放回“可运行队列”,等待被调度器选中并在CPU上执行。上面的休眠接口,主要用于的确需要让线程休眠等待指定时间的场景。
2025-08-30 17:08:22
295
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅