Przeglądaj źródła

[temp]:临时存储-设置两轮差速

sangxin 3 lat temu
rodzic
commit
54550ca675

+ 59 - 3
docs/chapt9/9.3为FishBot配置两轮差速控制插件.md

@@ -10,19 +10,75 @@
 
 ## 1. Gazebo插件介绍
 
-之前小鱼说过Gazebo是一个独立于ROS的软件,对外提供了丰富的API可以使用,而我们今天的猪脚就是一个通过gazebo的API编写的机器人轮子控制插件。
+之前小鱼说过Gazebo是一个独立于ROS的软件,对外提供了丰富的API可以使用,gazebo的插件按照用途大致可以分为两种:
 
-该插件的名称为:diff_drive_controller
+1. **用于控制的插件**,通过插件可以控制机器人关节运动,可以进行位置、速度、力的控制,比如我们这节课的两轮差速控制器。
+2. **用于数据采集的插件**,比如IMU传感器用于采集机器人的惯性,激光雷达用于采集机器人周围的点云信息。
 
-源码地址:https://github.com/ros-controls/ros2_controllers/tree/foxy/diff_drive_controller/src
+当然上面两类插件功能也可以写到一个插件里,两轮差速插件就是一个二合一加强版。
 
+## 2.两轮差速插件介绍
 
+两轮差速插件用于控制机器人轮子关节的位置变化,同时该插件还会获取轮子的位置以及速度的信息的反馈,根据反馈的位置信息结合运动学模型即可计算出当前机器人的位姿(里程计)。
 
+> 该插件的名称为:gazebo_ros_diff_drive
+>
+> 源码地址:https://github.com/ros-simulation/gazebo_ros_pkgs/blob/foxy/gazebo_plugins/src/gazebo_ros_diff_drive.cpp
 
+要想快速了解一个系统的功能,最直接的就是看系统的对外的输入和输出是什么?什么都不要说,看下图:
 
+```mermaid
+graph LR;
+D[配置参数-轮距直径等]-->B
+A[控制指令-cmdvel]-->B[gazebo_ros_diff_drive]
+B-->C[里程计-odom]
+B-->E[里程计tf-可选]
+B-->F[轮子tf-可选]
+```
 
+上图就是对gazebo_ros_diff_drive的输入和输出信息的总结,可以很直观的看到该插件主要**输入控制指令**,主要**输出里程计信息**。接着小鱼带你分别认识一下输入和输出两个部分。
 
+### 2.2 输入参数
 
+#### 2.2.1 配置参数
+
+不知道你是否还记得在第七章中,小鱼对两轮差速底盘的运动学正的介绍,小鱼再带你一起回顾一下:
+
+两轮差速运动学一共分为三个部分:
+
+1. 运动学正解
+
+```mermaid
+graph LR;
+A[左轮速度]-->B[正运动学]-->C[机器人角速度]
+D[右轮速度]-->B
+B-->E[机器人线速度]
+```
+
+2. 运动学逆解
+
+```mermaid
+   graph LR;
+   A[机器人线速度]-->C[运动学逆解]
+   B[机器人角速度]-->C
+   C-->D[左轮速度]
+   C-->E[右轮速度]
+```
+
+3. 里程计推算
+   
+
+
+
+#### 2.2.2 控制指令
+
+### 2.3 输出参数
+
+#### 2.3.1 里程计
+
+#### 2.3.2 TF变换信息
+
+#### 2.3.3 joint-states
 
 
 

+ 1 - 1
docs/chapt9/9.4为FishBot添加IMU传感器.md

@@ -14,4 +14,4 @@ ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:
 - **小鱼微信:AiIotRobot**
 - **QQ交流群:139707339**
 
-- 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划
+- 版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划为FishBot添加IMU传感器