nav2_controller
1 概述1.1 Progress CheckerProgress_checker: 判断机器人在一段时间内是否真的在朝目标前进. 插件名 plugin...
nav2_planner
1 概述规划器服务器(Planner Server)负责处理规划器请求, 并托管插件实现的映射. 它会接收一个目标和一个要使用的规划器插件名称, 然后调用相应的插件来计算通往目标的路径. 它还托管全局成本图. 总得来说, 就是控制全局的导航路线. 2 参数解析默认示例. 12345678planner_server: # 负责调用规划插件 ros__parameters: expected_planner_frequency: 20.0 # 规划器运行的频率 costmap_update_timeout: 1.0 # 等待全局代价地图(global costmap)更新的超时时间 introspection_mode: "disabled" # disabled(关闭) read_only(只读) full(完全记录) planner_plugins: ['GridBased'] # 定义要加载的规划器插件列表, GridBased和下面的插件对应, 名字自己配置就行. GridBased: # 具体插件 ...
Diffdrive
1 概述以下为两轮差速机器人计算的相关公式. v: 机器人的线速度 w: 机器人的角速度 L: 两轮之间的距离 x: 机器人车体朝向在全局坐标系 x 轴的位置 y: 机器人车体朝向在全局坐标系 x 轴的位置 θ: 机器人车体朝向与全局坐标系 x 轴正方向的夹角 坐标系遵守右手法则: X轴指向前方, Y轴指向左方, Z轴指向上方. 2 运动学正解123456789v = ( v(R) + v(L) ) / 2w = ( v(R) + v(L) ) / Lx(t+1) = x(t) + v * cos(θ) * dtx(t+1) = x(t) + v * cos(θ) * dtθ(t+1) = θ(t) + w * dt 3 运动学逆解123v(R) = v + (L / 2) * w;v(R) = v - (L / 2) * w; 4 编码电机的计算 轮子的半径为 rd, 直径为 dl, 圆周率为 PI. 编码脉冲计数为 Tick, s 为 1 个 Ticks 轮子走过的距离, S 为经过 dt 时间后轮子走过的举例. 4.1...
DDS
DDS 通信示例1 概述ROS 2 默认中间件即 DDS(自动发现、无中心、UDP 传输), 你只需关心话题名、消息类型和 QoS. DDS 实现. 实现 常见 RMW 标识 备注 eProsima Fast DDS(旧称 Fast RTPS) rmw_fastrtps_cpp / rmw_fastrtps_dynamic_cpp 官方文档列为默认实现;各版均可用。([docs.ros.org][1]) Eclipse Cyclone DDS rmw_cyclonedds_cpp Galactic 中被选为默认,其余版本可选。([docs.ros.org][2]) RTI Connext DDS rmw_connextdds 专业版/付费为主;可选 RMW。([GitHub][3]) GurumDDS rmw_gurumdds_cpp 可选 RMW ADLINK OpenSplice(已停更) rmw_opensplice_cpp 早期支持,现已归档停用。([GitHub][4]) 各 ROS 2 版本的默认...
nav2
1 概述2 安装2.1 安装 slam_toolbox1sudo apt install ros-jazzy-slam-toolbox -y 2.2 安装 nav2123sudo apt install ros-jazzy-nav2-map-serversudo apt install ros-jazzy-navigation2sudo apt install ros-jazzy-nav2-bringup 3 使用3.1 建图Terminal 1 使用. 12# 设置的启动脚本.ros2 launch robot_pkg robot.launch.py Terminal 2 使用. 1ros2 launch slam_toolbox online_async_launch.py Terminal 3 使用. 1rviz2 之后在地图中移动机器人进行建图. Terminal 4 使用. 然后创建新的功能包, 这里命名为 robot_nav2 保存地图, 在其目录下创建 maps 目录, 进入目录. 12# 订阅 /map 话题并保存为文件.ros2 run...
gazebo
1 概述Gazebo 是一个 高保真度的机器人仿真平台,用于在虚拟环境中模拟机器人和其与环境的交互行为. 2 安装不同版本的安装方式不一样, 这里以 jazzy 为例. gazebo 主要有 classic 和 Harmonic 两个版本, 我们安装后者. 特性 Gazebo Classic Gazebo Harmonic(或 Ignition Gazebo 系列) 📦 名称 gazebo ignition-gazebo / gz-sim 🧱 架构 单体架构(monolithic) 模块化(plugin-based、库分离) 🎮 GUI 内嵌在 gazebo 中 独立 GUI(gz-gui) 🌐 网络通信 ROS(直接集成) ZeroMQ、Ignition Transport(更模块化) ⚙️ 插件 ROS plugin 直连 ROS 需使用 bridge(如 ros_ign_bridge 或 gz-ros2-control) 🧪 状态 维护模式(Gazebo 11 是最后一个版本) 正式接替,持续开发 📅...
urdf
1 概述机器人都是由link和joint进行描述. 2 流程12345678910# 建立工程mkdir -p urdf_ws/srccd urdf_ws/srcros2 pkg create --build-type ament_cmake --dependencies urdf robot_state_publisher --license Apache-2.0 my_robot_descriptioncd my_robot_description# 名称固定为 urdfmkdir -p urdf 写入urdf代码. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657# robot.urdf<?xml version="1.0"?><robot name="my_robot"> <link...
micro ros
1 概述micro-ROS Agent 是运行在 PC 上的桥接程序,负责接收 MCU 发出的 XRCE-DDS 消息,并转发到 ROS 2 网络中(DDS). 12345# Creating a FreeRTOS + micro-ROS firmware workspaceros2 run micro_ros_setup create_firmware_ws.sh freertos olimex-stm32-e407# Creating a Zephyr + micro-ROS firmware workspaceros2 run micro_ros_setup create_firmware_ws.sh zephyr olimex-stm32-e407 2 安装2.1 Agent12345678# clone 代码# 这里以为 jazzy 为例git clone -b jazzy https://github.com/micro-ROS/micro-ROS-Agent.git# 初始化工作空间cd micro-ROS-Agent# 若出现问题详见 colcon...
Source about Atlas
安装镜像 Ubuntu 22.04: https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas%20200I%20DK%20A2/DevKit/images/23.0.RC3/1.2.3/A200I-DK-A2_desktop-image_1.2.3_ubuntu22.04-aarch64.img.xz OpenEuler 22.03: https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas%20200I%20DK%20A2/DevKit/images/23.0.RC3/1.2.5/A200I-DK-A2_desktop-image_1.2.5_openeuler22.03-aarch64.img.xz 安装 MindStudio 和 CANN这里有版本对应图:...
k8s
1 openEuler版本至少在 22.03-LTS-SP1 以上 12dnf install -y docker conntrack-tools socatdnf install -y kubernetes* 1.1 安装集群自动化部署工具1.1.1 minikube123# aarch64curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64chmod +x minikube-linux-arm64 && sudo mv minikube-linux-arm64 /usr/local/bin/minikube 1.1.2 k3s1.2 启动docker镜像将当前用户加入 docker 权限组. 12sudo usermod -aG docker $USERnewgrp docker 编写 Docker 配置文件. 下面的 Dockerfile 可以试试,...