皮皮网

皮皮网

【项目开发系统源码】【jsp 答题源码】【apk 获取源码】duration源码

时间:2024-11-23 10:36:02 分类:时尚

1.scrollto和scrollby的区别
2.NAV2-Velocity Smoother 速度平滑器理解

duration源码

scrollto和scrollby的区别

       ã€€ã€€View类的源代码如下所示,mScrollX记录的是当前View针对屏幕坐标在水平方向上的偏移量,而mScrollY则是记录的时当前View针对屏幕在竖值方向上的偏移量。

       ã€€ã€€ä»Žä»¥ä¸‹ä»£ç å¯ä»¥å¾—知,scrollTo就是把View移动到屏幕的X和Y位置,也就是绝对位置。而scrollBy其实就是调用的scrollTo,但是参数是当前mScrollX和mScrollY加上X和Y的位置,所以ScrollBy调用的是相对于mScrollX和mScrollY的位置。在上面的代码中可以看到当手指不放移动屏幕时,就会调用scrollBy来移动一段相对的距离。而当我们手指松开后,会调用 mScroller.startScroll(mUnboundedScrollX,源码 0, delta, 0, duration);来产生一段动画来移动到相应的页面,在这个过程中系统回不断调用computeScroll(),再使用scrollTo来把View移动到当前Scroller所在的绝对位置。

       ã€€ã€€/

**

        * Set the scrolled position of your view. This will cause a call to

        * { @link #onScrollChanged(int, int, int, int)} and the view will be

        * invalidated.

        * @param x the x position to scroll to

        * @param y the y position to scroll to

        */

        public void scrollTo(int x, int y) {

        if (mScrollX != x || mScrollY != y) {

        int oldX = mScrollX;

        int oldY = mScrollY;

        mScrollX = x;

        mScrollY = y;

        invalidateParentCaches();

        onScrollChanged(mScrollX, mScrollY, oldX, oldY);

        if (!awakenScrollBars()) {

        invalidate(true);

        }

        }

        }

        /

**

        * Move the scrolled position of your view. This will cause a call to

        * { @link #onScrollChanged(int, int, int, int)} and the view will be

        * invalidated.

        * @param x the amount of pixels to scroll by horizontally

        * @param y the amount of pixels to scroll by vertically

        */

        public void scrollBy(int x, int y) {

        scrollTo(mScrollX + x, mScrollY + y);

        }

NAV2-Velocity Smoother 速度平滑器理解

       NAV2 Velocity Smoother 是一个用于平滑由 NAV2 框架发送给机器人控制器速度的功能包。主要目的源码是通过平滑加速减少机器人电机和硬件控制器的磨损。平滑处理包括对速度、源码加速度和死区的源码项目开发系统源码控制。个人理解其核心功能有以下几点:

       1. 确保发布的源码速度在容许的速度区间内。

       2. 保证指令速度与机器人当前速度所计算得到的源码加速度在容许的区间内。

       3. 在[x,源码 y, theta]坐标轴上考虑同比例变化。

       4. 考虑闭环控制,源码通过使用 odometry 数据来保证平滑过程的源码准确性。

       Velocity Smoother 参数设定如下:

       1. **smoothing_frequency**:设置平滑频率(Hz),源码决定如何使用最后接收到的源码jsp 答题源码速度命令进行速度、加速度和死区约束的源码平滑处理。根据局部轨迹规划器的源码速率调整平滑效果,设置较高频率时进行插值并提供平滑的源码硬件控制命令。

       2. **scale_velocities**:是源码否按照同比例调整其他速度组件,以适应加速限制带来的apk 获取源码变化。确保所有组件方向一致,同时严格遵守加速限制,即使这意味着稍微偏离命令轨迹。

       3. **feedback**:使用当前状态反馈,OPEN_LOOP 模式下使用上一次发布的源码修复版速度作为当前速度,适合开环控制;CLOSED_LOOP 模式下使用 odometry 信息估计速度,要求 odometry 高速率低延迟。

       4. **max_velocity**:在[x, y, theta]轴上的最大速度。

       5. **min_velocity**:在[x, y, theta]轴上的最小速度,且为负值,情侣php源码表示逆向。

       6. **deadband_velocity**:发送给硬件控制器的最小速度,防止由于无法达到该速度而损坏硬件控制器的情况。

       7. **velocity_timeout**:速度接收的超时时间,即原始速度接收频率。

       8. **max_accel**:每个轴[x, y, theta]上的最大加速度。

       9. **max_decel**:每个轴[x, y, theta]上的最小减速度,应为负值。

       . **odom_topic**:用于闭环控制的 odometry 主题。

       . **odom_duration**:在闭环模式下,缓冲 odometry 命令以估计机器人速度的时间。

       源码注解涉及的主要函数为 void VelocitySmoother::smootherTimer(),该函数接收由局部路径规划器或运动控制器发布的速度指令,并发布经过平滑处理后的速度。