精华内容
下载资源
问答
  • 带有两个离轴系留拖车的移动机器人后退的运动控制方法
  • 简单修理irobot 380T拖地机器人 后退转圈故障2015-02-17 11:21:3067点赞279收藏106评论小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情最近买了一台380T的擦地机,...

    简单修理irobot 380T拖地机器人 后退转圈故障

    2015-02-17 11:21:30

    67点赞

    279收藏

    106评论

    小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情

    最近买了一台380T的擦地机,出现了开机撞到物体后,就开始后退转圈的故障,结合之前另一台的使用经验,怀疑是感应开关在碰撞后没有正常复位引起的。上网问了下维修的价格在100-300不等,周末有空拆开进行了简单的修理就搞定了,发上来共享一下。 [商品:Amazon.com - iRobot Braava 380t Floor Mopping Robot - Robotic Intelligent Vacuums]

    简单判断故障的方法:

    1、保持机器在充电板上的姿势,分别按拖板的2个角,仔细听能够有明显的咔嗒声,类似鼠标按键的声音,如果某侧没有这个声音,就是那边有问题了。

    2、另一个直观的方法,打开380T的电源后,同时按干拖和湿拖,机器会进入自检模式,此时分别按拖板的左右两边,能够看到机器面板中间的3个个蓝色的灯中,左右两个会跟按压的那边对应亮起和熄灭,如果常亮或者不亮就是有问题了。

    拆机器和修理的步骤:

    1、机器背面有4个十字螺丝,全部拧下,电池可以不拆。

    2、将机器的上盖移开,注意要缓慢,有1根线连着盖子和底部,这根线是做充电用的。

    3、将连线从主板上拔下,去掉机器顶盖,这是后补拍的,仔细看能够看到维修痕迹。

    4、将机器进入自检模式后,按压触板的左右两侧并进行观察,确定是哪一次的问题。

    5、将两侧同时按下,然后用手去拨动弹簧连接的铁片,确认能否出现咔嗒声和对应的灯的变化。用钳子,把铁片掰弯一点,然后用步骤4进行复测。

    下图是正常的一侧,铁片是平的。

    下图是修理后的一侧,铁片有一个小弯度。

    6、测试通过后,装回上盖去做实际使用测试就可以了。

    展开全文
  • 简单修理irobot 380T拖地机器人 后退转圈故障2015-02-17 11:21:3067点赞279收藏106评论小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情最近买了一台380T的擦地机,...

    简单修理irobot 380T拖地机器人 后退转圈故障

    2015-02-17 11:21:30

    67点赞

    279收藏

    106评论

    小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情

    最近买了一台380T的擦地机,出现了开机撞到物体后,就开始后退转圈的故障,结合之前另一台的使用经验,怀疑是感应开关在碰撞后没有正常复位引起的。上网问了下维修的价格在100-300不等,周末有空拆开进行了简单的修理就搞定了,发上来共享一下。 [商品:Amazon.com - iRobot Braava 380t Floor Mopping Robot - Robotic Intelligent Vacuums]

    简单判断故障的方法:

    1、保持机器在充电板上的姿势,分别按拖板的2个角,仔细听能够有明显的咔嗒声,类似鼠标按键的声音,如果某侧没有这个声音,就是那边有问题了。

    2、另一个直观的方法,打开380T的电源后,同时按干拖和湿拖,机器会进入自检模式,此时分别按拖板的左右两边,能够看到机器面板中间的3个个蓝色的灯中,左右两个会跟按压的那边对应亮起和熄灭,如果常亮或者不亮就是有问题了。

    拆机器和修理的步骤:

    1、机器背面有4个十字螺丝,全部拧下,电池可以不拆。

    2、将机器的上盖移开,注意要缓慢,有1根线连着盖子和底部,这根线是做充电用的。

    3、将连线从主板上拔下,去掉机器顶盖,这是后补拍的,仔细看能够看到维修痕迹。

    4、将机器进入自检模式后,按压触板的左右两侧并进行观察,确定是哪一次的问题。

    5、将两侧同时按下,然后用手去拨动弹簧连接的铁片,确认能否出现咔嗒声和对应的灯的变化。用钳子,把铁片掰弯一点,然后用步骤4进行复测。

    下图是正常的一侧,铁片是平的。

    下图是修理后的一侧,铁片有一个小弯度。

    6、测试通过后,装回上盖去做实际使用测试就可以了。

    展开全文
  • 机器人前进后退左转右转的c语音代码,PWM控制直流电机正反转
  • 小车基础定时器控制电机的代,有详细注释,深入理解pwm控制电机,总共连个文件,main。c和motor。c两个,方便理解与学习pwm与电机控制原理
  • 对很多人来说,扫地机器人一点...一、科沃斯扫地机器人的工作原理科沃斯扫地机器人的工作原理科沃斯家庭服务机器人专业智造者,创造了地面清洁机器人地宝、自动擦窗机器人窗宝、空气净化机器人沁宝、机器人管家亲宝...

    对很多人来说,扫地机器人一点都不陌生。随着科技的发展,经济的增长,很多家庭都会使用扫地机器人代替手工打扫。今天小编和大家讲讲一个国产品牌--科沃斯。科沃斯的扫地机器人的工作原理和维修方法您知道吗?下面齐装网小编要给您讲的就是这些哦。

    一、科沃斯扫地机器人的工作原理

    科沃斯扫地机器人的工作原理

    科沃斯家庭服务机器人专业智造者,创造了地面清洁机器人地宝、自动擦窗机器人窗宝、空气净化机器人沁宝、机器人管家亲宝,专业从事家庭服务机器人的研发、设计、制造和销售。科沃斯地宝(EcovacsDeebot)是一款集自动清洁和人性智能于一体的地面清洁机器人,全程无需人工插手,清扫抛拖一步到位,还有定点、沿边、精扫、自动四种工作模式可选,彻底解放双手。现已面市的有5系、6系、7系、以及9系等多款产品。地宝主要适合硬地面工作,如地板、地砖、短毛地毯、瓷砖等硬质地板。目前主流的清洁模式有:随机清洁、摄像头成像规划清洁、红外规划清洁、模糊小区域规划清洁(通过机器人前面的撞板感应)、灰尘感应重点清洁。功率越大的扫地机器人越好,但也要看用在吸尘上的功率以及机器的密封性,一般看吸力是多少帕比较靠谱。

    二、科沃斯扫地机器人的维修方法

    科沃斯扫地机器人的维修方法

    1.故障:

    楼梯边缘清扫时,经常掉下去,不知道避让

    解决方案:

    科沃斯扫地机器人能够感知高度差大于8厘米的绝大多数楼梯,但对于部分圆滑有落差的地面或反光较强的地面,其红外线防撞功能探测落差的性能就会降低。出现这汇总情况时,您可以在此位置放置虚拟墙(可以是一双拖鞋,或者是一个小椅子),以防机器跌落。如若不是此情况,可先检查产品的下视传感器上是否灰尘过多,如果擦拭后仍然出现该情况,可能是传感器故障。在玻璃或者是水晶这些比较透明的水平地面时,科沃斯扫地机器人会觉得自己遇到了悬崖,它的防撞防跌机制就会启动,从而不敢向前,这时候您就可以把它搬回家就好啦。

    科沃斯扫地机器人效果图

    2.故障:

    科沃斯地宝在开机后会就会出现连续左转、右转或者是后退的行为?

    解决方案:

    检查科沃斯地宝底部的下视传感器是否存在灰尘或者脏物,如果有的话,使用半干的棉布把脏物抹去。如果步不能解决问题的话,再检查缓冲碰撞板是否失灵,我们可以用手去碰压缓冲碰撞板的左、中、右侧,看它是否能够自动反弹。如果故障还不能得到解决的话,那就只能联系产品的买家帮忙解决。

    科沃斯扫地机器人是个很适合家用的清洁小帮手,以上关于科沃斯扫地机器人的工作原理及维修方法您一定要记熟哦,在以后买了机器人的时候,就能用到啦。如果您还想了解更多关于科沃斯扫地机器人的信息,请关注齐装网。

    展开全文
  • 移动机器人拖车后退路径跟踪控制研究 非常详细
  • 最近做一个项目,要求使用虚拟摇杆控制机器人设备前进后退转弯,整个过程的思路不算复杂,写篇文章记录下大致思路 (1)黄色圆不动时候 小车速度为0 (2)拖动摇杆 拖动距离越大 小车速度越大 距离最大为灰色圆环...

    项目需求

    最近做一个项目,要求使用虚拟摇杆控制机器人设备前进后退转弯,整个过程的思路不算复杂,写篇文章记录下大致思路
    (1)黄色圆不动时候 小车速度为0
    (2)拖动摇杆 拖动距离越大 小车速度越大 距离最大为灰色圆环半径
    (3)向正上方拖动时候要求左右轮速度相同 小车前进
    (4)向正下方拖动时候要求左右轮速度相同 小车后退
    (5)向斜方向拖动时候要求小车向对应方向转弯
    (6)速度范围1200~1800

    一、360虚拟摇杆的实现

    中间黄色圆可以360度移动,最大运动距离为外部灰色圆环半径
    在这里插入图片描述

    思路

    以圆心为坐标系原点 分为四个象限 取两个速度 d/R y/R 为左右轮速度
    在第一象限运动 手指由左到右运动 小车则向右转弯 右轮速度减小 即此时右轮速度为小的那个y/R 左轮速度为大的那个 d/R
    其他象限同理
    R为灰色圆环半径,即运动最大距离
    在这里插入图片描述

    代码实现:

    package com.light.robotproject.views;
    
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.PixelFormat;
    import android.graphics.Point;
    import android.graphics.PorterDuff.Mode;
    import android.graphics.RectF;
    import android.util.AttributeSet;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.SurfaceHolder;
    import android.view.SurfaceHolder.Callback;
    import android.view.SurfaceView;
    
    import com.light.robotproject.R;
    import com.light.robotproject.utils.MiscUtil;
    
    public class MySurfaceView2 extends SurfaceView implements Callback {
    
        private SurfaceHolder sfh;
        private Canvas canvas;
        private Paint paint;
        private Context mContext;
        private int coordinate;
        // 固定摇杆背景圆形的半径
        private int RockerCircleR, SmallRockerCircleR;
        // 摇杆的X,Y坐标以及摇杆的半径
        private float SmallRockerCircleX, SmallRockerCircleY;
    
        private RudderListener listener = null; // 事件回调接口
    
        public MySurfaceView2(Context context) {
            super(context);
        }
    
        public MySurfaceView2(Context context, AttributeSet as) {
            super(context, as);
            this.setKeepScreenOn(true);
            this.mContext = context;
            sfh = getHolder();
            sfh.addCallback(this);
            paint = new Paint();
            paint.setColor(Color.GREEN);
            paint.setAntiAlias(true);// 抗锯齿
            setFocusable(true);
            setFocusableInTouchMode(true);
            setZOrderOnTop(true);
            sfh.setFormat(PixelFormat.TRANSPARENT);// 设置背景透明
    
        }
    
        public void surfaceCreated(SurfaceHolder holder) {
    
            // 获得控件最小值
            int little = this.getWidth() < this.getHeight() ? this.getWidth()
                    : this.getHeight();
            // 根据屏幕大小绘制
            SmallRockerCircleX = SmallRockerCircleY = coordinate = little / 2;
            // 固定摇杆背景圆形的半径
            RockerCircleR = (int) (little * 0.35) - 20;
            // 摇杆的半径
            SmallRockerCircleR = (int) (little * 0.15);
            draw();
        }
    
        /***
         * 得到两点之间的弧度
         */
        public double getRad(float px1, float py1, float px2, float py2) {
            // 得到两点X的距离
            float x = px2 - px1;
            // 得到两点Y的距离
            float y = py1 - py2;
            // 算出斜边长
            float xie = (float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
            // 得到这个角度的余弦值(通过三角函数中的定理 :邻边/斜边=角度余弦值)
            float cosAngle = x / xie;
            // 通过反余弦定理获取到其角度的弧度
            float rad = (float) Math.acos(cosAngle);
            // 注意:当触屏的位置Y坐标<摇杆的Y坐标我们要取反值-0~-180
            if (py2 < py1) {
                rad = -rad;
            }
            return rad;
        }
    
        public double getAngle(float px1, float py1, float px2, float py2) {
            double angle = Math.toDegrees(Math.atan2(py2 - py1, px2 - px1));
            Log.i("tempRad角度==", angle + "");
            return angle;
    
        }
    
        public double getDistance(float px1, float py1, float px2, float py2) {
            // 计算两点间距离公式
            double juli = Math.sqrt(Math.abs((px2 - px1) * (px2 - px1)) + (py2 - py1) * (py2 - py1));
            System.out.println("两点间的距离是:" + juli);
            if (juli < 0) {
                juli = -juli;
            }
            return juli;
        }
    
        @SuppressLint("ClickableViewAccessibility")
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            // 得到摇杆与触屏点所形成的角度
            double tempRad = getRad(coordinate, coordinate, event.getX(),
                    event.getY());
            getAngle(coordinate, coordinate, event.getX(),
                    event.getY());
            if (event.getAction() == MotionEvent.ACTION_DOWN
                    || event.getAction() == MotionEvent.ACTION_MOVE) {
                // 当触屏区域不在活动范围内
                if (Math.sqrt(Math.pow((coordinate - (int) event.getX()), 2)
                        + Math.pow((coordinate - (int) event.getY()), 2)) >= RockerCircleR) {
                    // 保证内部小圆运动的长度限制
                    getXY(coordinate, coordinate, RockerCircleR, tempRad);
                } else {// 如果小球中心点小于活动区域则随着用户触屏点移动即可
                    SmallRockerCircleX = (int) event.getX();
                    SmallRockerCircleY = (int) event.getY();
                }
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
                // 当释放按键时摇杆要恢复摇杆的位置为初始位置
                SmallRockerCircleX = coordinate;
                SmallRockerCircleY = coordinate;
            }
            draw();
            //摇杆移动半径=圆环半径
            double roundRate = RockerCircleR;//85+15
    
            //触摸点到圆点的比例
            double ratio = getDistance(coordinate, coordinate, SmallRockerCircleX,
                    SmallRockerCircleX) / roundRate;
            //将坐标系旋转
    //        Point nowSmall=calcNewPoint(new Point((int) SmallRockerCircleX,(int) SmallRockerCircleY),new Point(coordinate,coordinate),-45);
            Point oldSmall = new Point((int) SmallRockerCircleX, (int) SmallRockerCircleY);
            //将圆点坐标从(150,150)移到中心点(0,0)
    //        double x = Math.abs(oldSmall.x) - coordinate;
    //        double y = Math.abs(oldSmall.y) - coordinate;
            /**
             * 获得两个速度
             * 一个根据圆心到摇杆半径距离比例来算d/r--为大速度
             * 一个根据y/r来算--为小速度
             */
            double distanceR=getDistance(SmallRockerCircleX,SmallRockerCircleY,coordinate,coordinate)/roundRate;
            double distanceY=Math.abs(coordinate-SmallRockerCircleY)/roundRate;
            Log.i("MySurfaceView2==", "dR==" + getDistance(SmallRockerCircleX,SmallRockerCircleY,coordinate,coordinate) + "   dY==" + (coordinate-SmallRockerCircleY) + "\r\ndistanceR==" + distanceR + "distanceY==" + distanceY);
    
            if (listener != null) {
                listener.onSteeringWheelChanged(SmallRockerCircleX,
                        SmallRockerCircleY, distanceR, distanceY);
            }
    
            return true;
        }
    
        /**
         * @param R       圆周运动的旋转点
         * @param centerX 旋转点X
         * @param centerY 旋转点Y
         * @param rad     旋转的弧度
         */
        public void getXY(float centerX, float centerY, float R, double rad) {
            // 获取圆周运动的X坐标
            SmallRockerCircleX = (float) (R * Math.cos(rad)) + centerX;
            // 获取圆周运动的Y坐标
            SmallRockerCircleY = (float) (R * Math.sin(rad)) + centerY;
            Log.i("MySurfaceView2==getXY", "x==" + SmallRockerCircleX + "y==" + SmallRockerCircleY);
        }
    
        public void draw() {
            try {
                canvas = sfh.lockCanvas();
                // canvas.drawColor(Color.WHITE);
                canvas.drawColor(Color.TRANSPARENT, Mode.CLEAR);// 清除屏幕
                drawCircle();
                drawRomot();
            } catch (Exception e) {
                // TODO: handle exception
            } finally {
                try {
                    if (canvas != null)
                        sfh.unlockCanvasAndPost(canvas);
                } catch (Exception e2) {
    
                }
            }
        }
    
        /**
         * 绘制圆环
         */
        public void drawCircle() {
            //绘制圆弧的边界
            RectF mRectF = new RectF();
            mRectF.left = coordinate - RockerCircleR /*- 20*/;
            mRectF.top = coordinate - RockerCircleR /*- 20*/;
            mRectF.right = coordinate + RockerCircleR /*+ 20*/;
            mRectF.bottom = coordinate + RockerCircleR /*+ 20*/;
            Paint ringNormalPaint = new Paint(paint);
            ringNormalPaint.setStyle(Paint.Style.STROKE);
            ringNormalPaint.setStrokeWidth(15);
            ringNormalPaint.setColor(mContext.getResources().getColor(R.color.Color_584832));
            canvas.drawArc(mRectF, 360, 360, false, ringNormalPaint);
        }
    
        /**
         * 绘制摇杆
         */
        public void drawRomot() {
            paint.setColor(mContext.getResources().getColor(R.color.Color_88FFFF00));
            // 绘制摇杆
            canvas.drawCircle(SmallRockerCircleX, SmallRockerCircleY,
                    SmallRockerCircleR + 10, paint);
            paint.setColor(Color.YELLOW);
            // 绘制摇杆
            canvas.drawCircle(SmallRockerCircleX, SmallRockerCircleY,
                    SmallRockerCircleR - 5, paint);
    
        }
    
        public void surfaceChanged(SurfaceHolder holder, int format, int width,
                                   int height) {
        }
    
        public void surfaceDestroyed(SurfaceHolder holder) {
        }
    
        // 设置回调接口
        public void setRudderListener(RudderListener rockerListener) {
            listener = rockerListener;
        }
    
        // 回调接口
        public interface RudderListener {
            void onSteeringWheelChanged(double x, double y, double distanceR, double distanceY);
    //        void onSteeringWheelChanged(double angle, double distanceRatio);
        }
    
        /**
         * 将点围绕圆点旋转45度  使得x=y点为最北点
         * 这样当拉到最上面时候  左右轮速度一样
         *
         * @param p
         * @param pCenter
         * @param angle
         * @return
         */
        private static Point calcNewPoint(Point p, Point pCenter, float angle) {
            // calc arc
            float l = (float) ((angle * Math.PI) / 180);
    
            //sin/cos value
            float cosv = (float) Math.cos(l);
            float sinv = (float) Math.sin(l);
    
            // calc new point
            float newX = (float) ((p.x - pCenter.x) * cosv - (p.y - pCenter.y) * sinv + pCenter.x);
            float newY = (float) ((p.x - pCenter.x) * sinv + (p.y - pCenter.y) * cosv + pCenter.y);
            return new Point((int) newX, (int) newY);
        }
    }
    
    
       <com.light.robotproject.views.MySurfaceView2
                android:id="@+id/remote1"
                android:layout_width="150dp"
                android:layout_height="150dp" />
    

    回调

     remote1.setRudderListener(object : MySurfaceView2.RudderListener {
                override fun onSteeringWheelChanged(
                    x: Double,
                    y: Double,
                    distanceR: Double,
                    distanceY: Double
                ) {
                    /**
                     * 手指触摸地  x,y
                     * distanceR  触摸点距离圆心distance/灰色圆环半径R
                     * distanceY  触摸点坐标y/灰色圆环半径R
                     * 在最北边时候distanceR=distanceY  即左右轮速度相同  设备向前运动
                     * 根据坐标分为四个象限  根据  x,y和坐标原点的大小  来判断左右转 
                     *  distanceR和distanceY   分别为左右轮速度    具体为哪个速度要根据象限来判断左转右转
                     * 例如左转时候 右轮速度>左轮速度
                     */
                    Log.i(
                        "RudderListener==",
                        "x==" + x + "y==" + y + "distanceR==" + distanceR + "distanceY==" + distanceY
                    )
                    //根据灵敏度算速度
                    getSpeed(x, y, distanceR, distanceY)
                }
    
            })
    
    

    获取速度

     /**
         * 根据象限区域判断左右轮速度归属
         * 圆心为(150,150)
         */
         var minSpeed=1200
         var maxSpeed=1800
        fun setSpeed(
            x: Double,
            y: Double,
            distanceR: Double,
            distanceY: Double,
            minSpeed: Int,
            maxSpeed: Int
        ) {
            var center = 150  //摇杆中心坐标(150,150)
            var speedBig = getRealSpeed(distanceR, minSpeed, maxSpeed)
            var speedSmall = getRealSpeed(distanceY, minSpeed, maxSpeed)
            if ((x > center && y < center) || (x > center && y > center)) { //第一、四象限方向  右转、右退  左轮>右轮
                ch1Speed = speedBig
                ch2Speed = speedSmall
            } else if ((x < center && y < center) || (x < center && y > center)) {//第二、三象限方向 左前、左退  右轮>左轮
                ch1Speed = speedSmall
                ch2Speed = speedBig
            }
            if (x == 150.0 && y == 150.0) {
                ch1Speed = 0.0
                ch2Speed = 0.0
            }
            Log.i("获取转速==", "左轮ch1Speed==" + ch1Speed + "右轮ch2Speed==" + ch2Speed)
        }
    

    中间踩的坑

    刚开始思考这个算法时候觉得很难,我把方向对准在圆上,发现要找规律对我自己这个数学水平来说很难很难,后来在同事的提醒下,将方向转为线性,突然发现茅塞顿开,由此可见处理问题的时候还是不能让自己钻牛角尖,集思广益,自己想不通的东西,别人一句话就搞定了。

    展开全文
  • 机器人小优本身没有直接控制功能,此文件是反编译了机器人本身的声控程序得到的,直接输入数字,就可以前进后退转弯,还能读出电池,和中断数据,压缩包里有编译好的apk,源码,截图
  • 安川机器人 前进后退一般操作
  • 上篇文章搞定了虚拟摇杆以及左右轮速度算法,接下来就是连接硬件以及向硬件提交信息 获得串口通信串儿 (1)串口通讯 (2)通讯规则: 1、协议格式:(8字节) [startbyte] [data1][data2]…[data22][flags][endbyte...
  • 路径规划是移动机器人的应用程序S的关键问题之一。在未知动态环境中进行路径规划的传统方法通常只规划一个步骤,而不是多个控制步骤。本文提出了一种具有多个控制步骤的方法,该方法集成了用于移动机器人路径规划的...
  • 近日,国外一组科研人员在3D打印和软机器人的概念探索的新证据中使用了新制造的3D打印形状记忆聚合物条带。这款记忆聚合物条带是在试验中使用了3D打印、可编程设计和热粘弹性超材料制造而成的。该小组同构此条带创建...
  • 哈哈哈,活跃一下气氛,今天小莉老师教大家简单做一个能动的机器人,这个机器人会前进、会后退,还会劈叉。小朋友说红色机器人能放电,粉色机器人会放花。都很厉害!瓶子机器人 准备材料:彩色色海绵纸,药瓶,剪刀...
  • 微信机器人

    2019-10-05 18:51:50
    后退,我要开始变身了... 之前在微博上看到网友分享微信网页版协议做的一个机器人的程序,觉得挺有意思,就参照分享作者整理的协议及源码自己也做了个微信机器人 效果如图: 程序下载地址: 文件名称:F:\...
  • 随着智能化生活的出现,...1)远程控制:通过智能扫地机器人APP按键操作,远程遥控机器人清扫、充电、快速/慢速清扫,实时查看机器人状态,控制机器人前进、后退、左转、右转。2)预约清扫:智能扫地机器人APP根据需...
  • 丰汉电子(上海)有限公司SV资料安川机器人按键功能一览...位置移动位置移动按键按键按键:伺服状态接通下有效伺服状态接通下有效前进执行移动命令联锁+前进执行单步前进联锁+后退执行单步后退(只执行移动命令)联锁...
  • 机器离墙近或陷入拥挤环境时,由于机器人所携带的传感器都是有盲区的,格物斯坦表示:前进或后退动作搜集身边障碍物的信息,经过分析后,找到一条安全合理的脱困路径,继续工作。如上面图片所示,机器人被困墙壁旁边...
  • 机器人,BFS

    2014-04-01 21:19:56
    Dr.Kong设计了一个可以前进或后退机器人,该机器人在每个位置i会得到一个移动步数的指令Ki (i=1,2…N),聪明的机器人自己会判断是要前进Ki步还是后退Ki步。 例如:给定指令序列(3 3 1 2 5),表示机器人在第1个位置时...
  • 彭永东谈到,一些IoT公司及扫地机器人厂商会尝试与贝壳建立合作关系,希望用贝壳关于房子的厚重数据训练AI设备。「设备和数据都需要迭代,迭代又可以促进场景应用的无限拓展。」彭永东表示。 低欲望扩张 「很多事情...
  • 控制机器人运动

    2019-04-28 10:35:47
    主要参考链接: Turbot与python教程-实现后退 ROS机器人操作系统(rospy) 含代码介绍 ROS里面的传感器 ROS探索总结(八)——键盘控制 官网:ros.org
  • 哈哈哈,活跃一下气氛,今天汪星星教大家简单做一个能动的机器人,这个机器人会前进、会后退,还会劈叉。纸箱环保机器人准备材料:快递瓦楞纸盒、直尺、图钉、铅笔、双面胶、轻黏土两脚钉、剪刀、塑料瓶、卷筒纸芯、...
  • 本期专栏中,您将可对手机说出「go」、「back」、「left」以及「right」等四个语音指令,让机器人执行前进、后退与左右转等共四种动作。有接触过App Inventor 的师长朋友们,欢迎从App Inventor 中文学习网下载原始...
  • ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— Arduino相关设置 代码 // 智能小车红外避障实验1(基础避障) //=============================================================== //#include &lt;Servo.h&...
  • 本文引入一种基于CPG(中央模式发生器)的步态控制算法模型,CPG 生成的节律运动具有独立性与稳定性,还具有反馈调整功能,对波形调制处理后,能够实现仿生机器人的前进、后退、转弯、侧移、原地踏步等运动控制。...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 174
精华内容 69
关键字:

机器人后退