yocs_velocity_smoother介绍及参数说明

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件包摘要

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

链接: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只适用于特殊情况。如果人们不觉得它有用,我们可能会删除。

<think>好的,用户想安装yocs_velocity_smoother,但不太清楚具体步骤。首先,我需要回忆一下相关的ROS包安装方法。记得在ROS中,很多功能包可以通过apt-get直接安装,特别是官方提供的包。用户提到的yocs_velocity_smoother应该属于yocs套件的一部分,所以可能需要安装ros-noetic-yocs-velocity-smoother(假设是Noetic版本)。但用户可能不确定具体的包名,或者版本问题。 然后,用户提供的引用里提到引用[1]有安装命令:sudo apt-get install ros-noetic-yocs-velocity-smoother,这应该是最直接的方法。但需要确认用户的ROS版本是否匹配,比如Noetic对应Ubuntu 20.04,而如果是其他版本如Melodic,就需要调整包名。不过用户可能没有说明自己的ROS版本,所以需要提醒他们检查版本。 另外,引用[2]和引用[3]提到了安装后可能出现的问题,比如找不到库或者节点加载失败,这可能是因为依赖没有安装,或者编译问题。所以需要建议用户在安装后检查依赖,或者从源码构建,如果apt安装不成功的话。 用户可能遇到的问题包括:安装命令错误、版本不匹配、缺少依赖。需要分步骤指导,先尝试apt安装,如果失败再考虑源码编译。源码编译的话,可能需要先创建工作空间,下载源码,然后编译。同时,提醒用户注意包的依赖,比如可能需要安装yocs_msgs或其他相关包。 最后,用户可能需要教程链接,比如参考优快云博客或古月居的文章,这些在引用里已经提到,可以附上链接供用户进一步查阅。确保回答清晰,步骤正确,覆盖可能的问题点,比如版本适配和依赖安装。</think>[逐步解答] 根据ROS版本选择对应的安装方式,以下是详细安装指导: 一、通过apt安装(推荐方式) ```bash # 针对Noetic版本 sudo apt-get install ros-noetic-yocs-velocity-smoother # 如果是Kinetic版本 sudo apt-get install ros-kinetic-yocs-velocity-smoother ``` 二、源码编译安装(当apt仓库不可用时) 1. 创建工作空间 ```bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 2. 克隆源码 ```bash cd ~/catkin_ws/src git clone https://github.com/yujinrobot/yujin_ocs.git ``` 3. 安装依赖 ```bash rosdep install --from-paths . --ignore-src -y ``` 4. 编译 ```bash cd ~/catkin_ws/ catkin_make ``` 三、验证安装 ```bash rospack find yocs_velocity_smoother # 应显示安装路径 rosnode list | grep velocity_smoother # 启动节点后验证 ``` [常见问题解决] 1. 出现`Could not find library`错误时: - 确认已安装对应版本的`libyocs_controllers` - 检查ROS_PACKAGE_PATH环境变量是否包含工作空间路径[^2] 2. 多机器人控制场景建议配合`yocs_cmd_vel_mux`使用,实现速度指令的优先级控制[^3] [引用资料] 官方文档:http://wiki.ros.org/yocs_velocity_smoother 优快云解决方案:https://blog.youkuaiyun.com/xxx (具体问题对应解决方案) 古月居教程:https://www.guyuehome.com/xxx (速度控制相关应用)[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值