yocs_velocity_smoother介绍及参数说明

本文介绍了一种名为速度平滑节点的技术,该技术用于在ROS环境中根据机器人的速度和加速度限制来平滑速度指令。这有助于确保机器人运动更加稳定且符合预期。文章详细讨论了该节点的工作原理、参数配置及其应用场景。

软件包摘要

根据机器人速度和加速度限制绑定传入的速度消息。

链接:https://github.com/yujinrobot/yujin_ocs.git(branch:indigo)

速度平滑节点

速度平滑节点与kobuki_node一起运行,它们将控制机器人的速度和加速度在发送到机器人之前进行限制,然后再应用到机器人。其也适用于任何其他通用ros移动底层控制。

订阅主题

(1)〜raw_cmd_vel(geometry_msgs / Twist)
要平滑的输入速度。

(2)〜odometry (nav_msgs /Odometry )
我们将输出速度命令与测得的速度进行比较,以确保我们不会在速度曲线中产生非常大的跳跃。

(3)〜robot_cmd_vel(geometry_msgs / Twist)
或者,我们也可以比较输出速度命令和结束机器人速度命令,以确保我们不会在速度曲线中创建非常大的跳跃。有关更多详细信息,请参阅下面的robot_feedback参数说明。

发布主题

(1)〜smooth_cmd_vel(geometry_msgs / Twist)
根据速度和加速度极限的平滑输出相应的速度。

参数

(1)〜accel_lim_v(double)
线性加速度极限。强制。

(2)〜accel_lim_w(double)
角加速度极限。强制。

(3)〜speed_lim_v(double)
线速度限制。强制。

(4)〜speed_lim_w(double)
角速度限制。强制。

(5)〜decel_factor(double,default:1.0)
减速/加速比。用于使减速更积极,例如在具有高惯性的机器人上安全地制动。

(6)〜frequency(double,默认值:20.0)
输出消息速率。速度平滑器保持它,而不管输入消息速率,在必要时进行内插。

(7)〜robot_feedback(int,default:0)
指定用作机器人速度反馈的主题(0 - 无,1 - 里程计,2- 机器人结束命令)。有关详细信息,请参阅下面的提示。

提示

(1)除频率外的所有参数都是动态可重配置的。

(2)线性和角速度与更受限制的成比例地平滑,因此我们保证恒定的旋转半径。

(3)如果输入主题变得不活动,并且最后一个命令不是零速度命令(也许控制器崩溃,或者只是忘记了好的方式…),我们在排序超时后引入假零速度命令。

(4)看看Kobuki的控制系统教程,了解yocs_velocity_smoother如何与其他组件一起构建一个安全灵活的控制系统。

robot_feedback 数字参数

1、机器人反馈意味着机器人“认为”他现在移动的当前速度。知道这两个常见的方法是:

(1)测量速度,即里程表(选项1)

(2)假设机器人完全遵循我们发送给他的命令(选项2)

2、选项0当然忽略任何机器人反馈。使用机器人反馈有一些原因。我们面对的更多的是:

(1)多个控制器通过速度复用器访问机器人。已被具有较高优先级的另一个排除的控制器将继续向机器人发出命令,就好像它是唯一一个,而机器人实际速度可以完全不同于速度平滑器的假设。如果他恢复控制,他的第一个有效命令将从上一个控制器的最后一个跳跃。选项2很好地解决了这个问题。

(2)机器人不能使他接收的速度命令有效,例如如果他不能以命令的速度(斜坡,地毯,高惯性机器人…)加速/移动。同样,速度平滑的假设是错误的。选项1很好地解决了这个问题。

3、因此,在大多数情况下,推荐的选项是2(如果没有并发控制器,它将没有效果),让选项1只适用于特殊情况。如果人们不觉得它有用,我们可能会删除。

### ROS CMake Could not find package configuration file provided by yocs_velocity_smoother 解决方法 在ROS中编译工作空间时,若出现 `Could not find a package configuration file provided by 'yocs_velocity_smoother'` 错误,通常意味着系统在查找依赖包时未能找到该包的 `yocs_velocity_smootherConfig.cmake` 或 `yocs_velocity_smoother-config.cmake` 文件。此类问题通常由依赖项未正确安装、未在 `CMakeLists.txt` 中声明依赖,或未正确设置 `CMAKE_PREFIX_PATH` 导致。 以下为解决此问题的具体方法: #### 1. 确认 `yocs_velocity_smoother` 包是否已安装 ROS中部分功能包需要手动安装或通过ROS官方仓库安装。对于 `yocs_velocity_smoother`,应首先检查是否已通过 `apt` 安装[^1]: ```bash sudo apt install ros-<rosdistro>-yocs-velocity-smoother ``` 其中 `<rosdistro>` 为当前使用的ROS发行版名称,如 `noetic` 或 `melodic`。若未安装,执行上述命令安装后重新编译工作空间。 #### 2. 检查 `CMakeLists.txt` 和 `package.xml` 是否正确声明依赖 确保 `package.xml` 文件中包含对 `yocs_velocity_smoother` 的依赖声明: ```xml <depend>yocs_velocity_smoother</depend> ``` 同时,在 `CMakeLists.txt` 中添加对 `yocs_velocity_smoother` 的 `find_package` 调用: ```cmake find_package(catkin REQUIRED COMPONENTS ... yocs_velocity_smoother ) ``` 若未正确声明依赖,CMake将无法定位该包的配置文件,从而导致编译失败。 #### 3. 检查工作空间是否已正确 `source` 若 `yocs_velocity_smoother` 包已安装但未被CMake识别,可能是环境变量未更新。在编译前应确保已执行以下命令激活工作空间: ```bash source devel/setup.bash ``` 若使用 `catkin_make` 编译时仍无法识别,尝试使用 `catkin build` 并检查是否在正确的配置环境下运行。 #### 4. 检查 `CMAKE_PREFIX_PATH` 环境变量 CMake通过 `CMAKE_PREFIX_PATH` 查找ROS包的路径。若该路径未包含 `yocs_velocity_smoother` 的安装路径,将导致查找失败。可通过以下命令查看当前路径设置: ```bash echo $CMAKE_PREFIX_PATH ``` 确保输出中包含 `/opt/ros/<rosdistro>` 或包含 `yocs_velocity_smoother` 的自定义路径。若未包含,可通过以下命令临时添加路径: ```bash export CMAKE_PREFIX_PATH=/opt/ros/<rosdistro>:$CMAKE_PREFIX_PATH ``` #### 5. 检查 `yocs_velocity_smoother` 是否存在于ROS仓库 若上述方法无效,可能是 `yocs_velocity_smoother` 不在默认的ROS仓库中。此时应手动从GitHub克隆并编译该包。例如: ```bash cd ~/RenBot_chongqing_zuixin_ws/src git clone https://github.com/yujinrobot/yocs_velocity_smoother.git cd .. catkin_make ``` 确保该包与当前工作空间兼容,并在编译后执行 `source devel/setup.bash` 激活环境。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值