参考文献:Navigation using ROS 2 Mapping SLAM - Simultaneous Localization And Mapping 同步定位和建图 机器人仿真或实际运动环境的最简描述 地图类型 栅格地图 图形地图 特征地图 ROS2 SLAM工具箱 目前,ROS2 的 SLAM 还没有可靠唯一标准。 SLAM 工具箱 (2D) - Steve Macenski - 当前随 Navigation2 一起提供,需要支持。 此处简单用turtlebot3+cartographer+ros2foxy+webots2021b在win10下,跑一个效果: set TURTLEBOT3_MODEL=burger ros2 use_sim_time:=true ros2 run turtlebot3_teleop teleop_keyboard ros2 launch webots_ros2_turtlebot robot_launch.py
用于 ROS 2 的 MoveIt 运动规划框架。 The MoveIt Motion Planning Framework for ROS 2. 参考文献:MoveIt2 MoveIt2功能 运动规划 生成高自由度轨迹 可在杂乱的环境中运动并避免局部最小值 操纵 通过抓取生成分析环境并与环境交互 逆向运动学 求解给定姿势的关节位置 ROS2) vs MoveIt1(ROS1) 实时功能现已可用(ROS2) 专为生产而设计 - 同样支持研发 多平台:Linux、Windows、macOS 全部都支持! 里程碑 M1:直接端口到 ROS2 将现有包完全迁移到 ROS2 利用 ROS2 功能:编译(ament)、中间件、日志记录、参数 M2:实时支持 对传感器输入的反应式闭环控制 混合规划 (全局和局部) 与控制器的零内存复制集成 M3:充分利用ROS2 MoveIt 节点的生命周期管理 利用 ROS2 组件节点 实时功能(M2) 在线机器人操作需要实时安全: 通过力、扭矩与环境进行复杂的相互作用
参考文献:ROS2 EXTENDED CONCEPTS 在前2篇博文中总结了ROS2的基本概念,这些内容大致与ROS1类似或改进,属于ROS2/ROS1的核心概念。本节侧重ROS2扩展的新内容。 既然是极简,自然不会面面俱到,以2个例子为主吧。 ros2 lifecycle nodes - 列出所有 LC 节点 ros2 lifecycle get <node> - 列出指定节点或所有 LC 节点的当前状态。 ros2 lifecycle list <node> - 列出指定节点可能的下一个状态和相应的转换调用(名称和 ID)。 ros2 lifecycle set <node> <transition> - 在 LC 节点上触发转换(按名称或 ID)。
python set numberwidth=1 " 当行数为个位数时,只占用一个字符位显示行号 syntax on " 打开语法高亮 autocmd FileType markdown,md set ts=2 " markdown 文件, tab 键缩进2个字符 colorscheme two-firewatch "colorscheme solarized set background=dark set echohl ModeMsg echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW')) echohl None call search 另外在此基础上,能用 vim 自己解决的问题就不要用其他软件,如需要使用分屏功能,那就直接用 vim 的分屏,而不是用 Tmux 的分屏 2.
ROS2极简总结专题,其实主要是概念的讲解为主,不涉及程序等,之前没有更新完成,此时继续。 依据官方教程Nav2结构如下所示: BT如果展开又是厚厚一本书啊…… Nav2 - BT(行为树)导航服务器 使用行为树 XML 作为导航控制流 由 [nav2_bt_navigator] 提供 阅读行为树的 - nav2_spin_action_bt_node - nav2_wait_action_bt_node - nav2_clear_costmap_service_bt_node - nav2_recovery_node_bt_node - nav2_pipeline_sequence_bt_node - nav2_round_robin_node_bt_node - nav2_transform_available_condition_bt_node - nav2_time_expired_condition_bt_node - nav2
参考文献:ROS2 Filesystem 概述 什么是功能包? 工作空间结构如何? 如何新建工作空间和功能包? 功能包 ROS2 软件称为功能包。 ROS2 中最小的构建部件。 包可以分组到综合包(例如 navigation2) 引用一个或多个相关包 只包含执行依赖 有利于发布和版本控制 功能包安装选项 Debian Package 功能包 Source Repositories 允许代码调整 功能包安装 Debian: $ sudo apt install ros-<distro>-package-name 实例:$ sudo apt install ros-foxy-nav2- package_name: nav2_core --> install:ros-foxy-nav2-core 自动安装 位置: /opt/ros/<distro>/... 在使用 ROS 2 之前获取 ROS 2 安装工作空间 $ source /opt/ros/<distro>/setup.bash 获取自定义的工作空间: $ source <ws-path>/
参考文献:ROS2 Foundation - An introduction to core concepts ROS2极简总结-核心概念(一)_zhangrelay的专栏-CSDN博客 纲要 计算图 常用2种方式 第一种 用于在启动时或在运行时从外部配置节点,而无需重新编译节点的代码。 这些参数可以使用 ROS2 服务动态重新配置。 注意:ROS2 使用分布式参数系统。 用于 ROS2 参数的 YAML 当参数数量增加时管理参数变得复杂。 更多细节参考ROS2参数官方文档。 启动文件位置: ROS2 Launch 文件是用 python 编写 它们由 ROS2 CLI 工具执行,即:ros2 launch 在功能包中创建一个启动目录,如下所示 在启动目录使用 <launch_filename
参考文献:ROS2 Foundation - An introduction to core concepts 纲要 计算图(Computation Graph) 节点(Node) 节点组成(Node 呈现ROS系统通信 图的参与者为节点 节点通常可以订阅或发布数据 2 节点 在机器人系统中具备单一、模块化目标的元件。 (ROS2特色) 自动发现 ROS1 节点通讯 ROS2节点通信 使用ROS_DOMAIN_ID: 无主节点缺陷…… (比如,没有主节点故障!) ROS1与ROS2对比 节点结构 如果是嵌入式设备,则有: 结构图如下: 完美支持ROS2。 在基于机器人操作系统的机器人应用中弥补资源受限的微控制器和更大处理器之间的差距。 常见ROS结构 ROS2-统一API接口 ROS2 客户端库 API 构建在通用核心客户端库之上 确保对功能任何地更改都反映在所有派生的客户端库中 3 节点组成 统一API 单个进程中节点的组成 简化代码重用
参考: TF2 - TRANSFORMS IN ROS2 ROS机器人TF基础(坐标相关概念和实践) TF2 - 概述 TF2 是 TF (TransForm) 库的第二代。 事实上,ROS1 中的 TF 目前在后台调用 TF2。 ROS2 仅使用 TF2。 TF2 跟踪树结构中的所有坐标系。 与 ROS2 中的大多数功能一样,TF2 API 仍在开发中,但基本功能已经可用。 TF2 vs TF - 更快、更高效、新功能和更容易扩展。 工具: tf2_ros buffer_server.exe tf2_ros static_transform_publisher.exe tf2_ros tf2_echo.exe tf2_ros rviz2 发布坐标变换数据 ros2 run tf2_ros static_transform_publisher 1 2 3 0.5 0.1 -1.0 foo bar 接受坐标变换数据 ros2
(2) Znode结构 ZooKeeper命名空间中的Znode,兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分。 如果Zxid1的值小于Zxid2的值,那么Zxid1所对应的事件发生在Zxid2所对应的事件之前。 (2) 版本号 对节点的每一个操作都将致使这个节点的版本号增加。 (2) watch类型 ZooKeeper所管理的watch可以分为两类: ① 数据watch(data watches):getData和exists负责设置数据watch ② 孩子watch(child (2) Master故障 如果"主节点-A"挂了,这时候他所注册的节点将被自动删除,ZooKeeper会自动感知节点的变化,然后再次发出选举,这时候"主节点-B"将在选举中获胜,替代"主节点-A"成为主节点
kafka是用于构建实时数据管道和流应用程序。具有横向扩展,容错,wicked fast(变态快)等优点,并已在成千上万家公司运行。 一,简单说明什么是kafka Apache kafka是消息中间件
Ansible 极简教程 一、基本部署 简介 ansible是一个自动化管理工具,它足够简单且足够强大来管理大批量设备。可用于配置系统,部署软件以及组合复杂任务。 1234567891011121314151617 ntp.kangvcar.com[webserver]www1.kangvcar.com:2222www2.kangvcar.com[dbserver ]db1.kangvcar.comdb2.kangvcar.comdb3.kangvcar.com如果主机名遵循相似的命名模式,还可使用列表的方式标识个主机,例如:[webserver]www[01:50 例如: 1234567891011121314 [apache]httpd1.kangvcar.comhttpd2.kangvcar.com[nginx]ngx1.kangvcar.comngx2.kangvcar.com user: name=testuser2 state=present group=wheel 事实上,with_items中可以使用元素还可为hashes,例如: 12345 - name: add
海量数据组合条件查询 2. 毫秒级或者秒级返回数据 ElasticSearch 在Hadoop生态圈的位置 ? ? ElasticSearch 应用场景 1. 站内搜索:主要和 Solr 竞争,属于后起之秀 2. 2. Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能。 3. "number" : "6.5.4", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "d2ef93d rodge-run/p/6551152.html https://www.jianshu.com/p/1dc661517ab3 https://www.jianshu.com/p/9ce30e154d2f
ntp.magedu.com [webserver] www1.magedu.com:2222 www2.magedu.com [dbserver] db1.magedu.com db2.magedu.com 例如: [webserver] www1.magedu.com www2.magedu.com [webserver:vars] ntp_server=ntp.magedu.com nfs_server 例如: [apache] httpd1.magedu.com httpd2.magedu.com [nginx] ngx1.magedu.com ngx2.magedu.com [webserver 5.3.1 when语句 在task后添加when字句即可使用条件测试;when语句支持jinja2表达式语句,例如: tasks: - name: 'shutdown debian flavored user user: name={{ item }} state=persent groups=wheel with_items: - testuser1 - testuser2
---- 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者,大家请多支持!!! println("lazyValueSynchronized2 2!") println("lazyValueSynchronized2 1!") "Hello, lazyValueSynchronized2 ! lazyValueSynchronized2 3! lazyValueSynchronized2 2! lazyValueSynchronized2 1! Hello, lazyValueSynchronized2 ! Hello, lazyValueSynchronized2 !
HDFS分布在三个机架上Rack1,Rack2,Rack3。 a. Client将FileA按64M分块。分成两块,block1和Block2; b. 流式写入过程, 1>将64M的block1按64k的package划分; 2>然后将第一个package发送给host2; 3>host2接收完后,将第一个package发送给host1,同时client 6>host2,host1,host3向NameNode,host2向Client发送通知,说“消息发送完了”。如图粉红颜色实线所示。 block1:host2,host1,host3 block2:host7,host8,host4 c. block的位置是有先后顺序的,先读block1,再读block2。 2、hadoop fsadmin?
2.更新项目(没新加文件,只有删除或者修改文件): $cd ~/hello-world $git commit -a //记录删除或修改了哪些文件 $git push origin master //提交到
其中,数据量庞大是指数据规模超出了1,2台高性能主机所能处理范围;结构多样性是指除了关系型数据库能够处理的结构化数据还包含半结构化数据(如各类传感设备必如地镑、卫星、GPS设备等产生的纯文本格式的数据, 受Google三篇论文的启发 2. Hadoop核心项目 HDFS: Hadoop Distributed File System 分布式文件系统 MapReduce:并行计算框架 3. (2) 成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。 图2 Hadoop机群的单节点物理结构 二、Hadoop生态圈 1、Hadoop生态系统概况 Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。 图 3 Hadoop生态圈 2、HDFS(Hadoop分布式文件系统) 源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。是Hadoop体系中数据存储管理的基础。
这个高可用的HDFS架构是由3台zookeeper设备、2台域名服务(DNS)和时间服务(NTP)设备、2台Namenode设备(如果必要Standby可以更多)、一个共享存储设备(NFS)和N个DataNode NFS负责为2个NameNode存储EditLog文件,(NameNode 在执行 HDFS 客户端提交的创建文件或者移动文件这样的写操作时,会首先把这些操作记录在 EditLog 文件之中,然后再更新内存中的文件系统镜像
前言 创业公司也适用的极简项目管理法 我们处在一个VUCA的时代 易变性(Volatility) 不确定性(Uncertainty) 复杂性(Complexity) 模糊性(Ambiguity) 给我们的工作带来了很多困扰 解决主体这三个维度组成了理解和分析问题的空间结构 图1-10 用结构化思维解决问题 项目管理的过程就是将复杂问题简单化并予以解决的过程,降低复杂度的一个重要方法就是结构化 图1-11 项目管理的5个过程组 图1-12 极简项目管理的 “如来十掌 以五个过程组和“如来十掌”为框架,进一步展开为19个步骤,就形成了极简项目管理地图 图1-13 极简项目管理地图 第二部分 极简项目管理过程 在过程中打败自己,在结果上打败对手 项目不是在结束时失败 图2-12 项目相关方 用权力-利益方格分析和管理相关方 使用权力–利益方格进行相关方分析,编制相关方登记册并制定相关方管理策略,是项目管理者必须掌握的基本技能 表2-1 一个相关方登记册实例(部分) 4 一个项目启动会的议程(示例) 关于启动会,建议你关注以下10个问题和10个具体细节 表2-5 启动会议10问 表2-6 启动会议10个需要注意的细节 布利斯定理:用较多的时间为一次工作做计划,