代理的问题(1)
使用一些网络代理程序的时候,可能默认只能影响浏览器等软件的网络代理,在cmd等环境下默认不会生效。 此时可以手动设置环境变量,使该cmd窗口适应对应网络代理。 此处用的是v2rayN代理工具(机场另找),v2rayN 的本地代理端口,通常 HTTP 端口是 10809,SOCKS 端口是 10808,可以在 v2rayN 界面底部或“参数设置”中查…
关于node.js的环境工具
Node 是运行环境,nvm 管 Node 的版本,npm 和 pnpm 管项目依赖包。nvm 和 npm/pnpm 不在同一层,不能互相替代。 名称含义作用层级Node.jsJavaScript 运行时让 JavaScript 能脱离浏览器,在电脑上运行运行环境nvmNode Version Manager安装、切换、删除多个 Node.js 版…
ROS2学习记录(15)-RQT:模块化可视化工具
在一定场合下,可能只需要一些简单的模块化的可视化操作,比如只显示一个摄像头的图像,使用Rviz的话,难免会觉得操作有点麻烦。这时就可以使用rqt这个简单的模块化的可视化工具。 在命令行窗口安装: sudo apt install ros-humble-rqt 启动: rqt 在rqt的主页,可以通过其顶部菜单栏选项,选择“plugins->logg…
ROS2学习记录(14)-Rviz:三维可视化显示平台
Rviz是一款机器人开发过程中的数据可视化软件,用于可视化机器人模型、传感器信息、环境信息等等。 Rviz的核心框架是基于Qt可视化工具打造的一个开放式平台,官方出厂就自带了很多机器人常用的可视化显示插件,只要我们按照ROS中的消息发布对应的话题,就可以看到图形化的效果了。如果我们对显示的效果不满意,或者想添加某些新的显示项,也可以在Rviz这个平…
ROS2学习记录(13)-Gazebo:三维物理仿真平台
Gazebo是ROS系统中最为常用的三维物理仿真平台,支持动力学引擎,可以实现高质量的图形渲染,不仅可以模拟机器人及周边环境,还可以加入摩擦力、弹性系数等物理属性。 类似Gazebo这样的仿真平台,可以帮助我们验证机器人算法、优化机器人设计、测试机器人场景应用,为机器人开发提供更多可能。 为了确保系统中已经完整安装了Gazebo相关的功能包,可以通…
ROS2学习记录(12)-URDF:机器人建模方法
机器人的组成:建模描述机器人的过程中,我们自己需要先熟悉机器人的组成和参数,比如机器人一般是由硬件结构、驱动系统、传感器系统、控制系统四大部分组成,市面上一些常见的机器人,无论是移动机器人还是机械臂,我们都可以按照这四大组成部分进行分解。 硬件结构就是底盘、外壳、电机等实打实可以看到的设备; 驱动系统就是可以驱使这些设备正常使用的装置,比如电机的驱…
ROS2学习记录(11)-TF:机器人坐标系管理
坐标系是我们非常熟悉的一个概念,也是机器人学中的重要基础,在一个完整的机器人系统中,会存在很多坐标系。 在机械臂形态的机器人中,机器人安装的位置叫做基坐标系Base Frame,机器人安装位置在外部环境下的参考系叫做世界坐标系World Frame,机器人末端夹爪的位置叫做工具坐标系,外部被操作物体的位置叫做工件坐标系,在机械臂抓取外部物体的过程中…
ROS2学习记录(10)-launch
Launch启动文件可以一次性启动多个节点文件,是ROS系统中多节点启动与配置的一种脚本。 ROS2中的Launch文件就是基于Python描述的,其核心目的是启动节点,我们在命令行中输入的各种参数,在Launch文件中,通过类似这样的很多代码模版,也可以进行配置,甚至还可以使用Python原有的编程功能,大大丰富了启动过程中的多样化配置。它就像粘…
ROS2学习记录(9)-DDS
DDS是ros2相对于ros1而言最大的变化,话题、服务、动作,他们底层通信的具体实现过程,都是靠DDS来完成的,它相当于是ROS机器人系统中的神经网络。 DDS本质上也是一种通信模型,常见的通信模型如下: 第一种,点对点模型,许多客户端连接到一个服务端,每次通信时,通信双方必须建立一条连接。当通信节点增多时,连接数也会增多。而且每个客户端都需要知…
ROS2学习记录(8)-分布式通信
在ROS系统中,机器人功能是由各种节点组成的,这些节点可能位于不同的计算机中,这种结构可以将原本资源消耗较多的任务,分配到不同的平台上,减轻计算压力,这就是分布式通信框架的典型应用之一。 只要两个计算机安装好ROS2,并且处于同一网络中,他们就可以实现之前讲过的话题、服务、动作等通信了,就像在一个电脑里一样。 如果使用虚拟机,需将虚拟机网络修改为桥…