精华内容
下载资源
问答
  • px4 外部位置估计

    2018-11-28 22:19:00
    步骤: 1、使能外部位置输入,通过...3、调节噪声参数:当你觉得外部位置输入的信息足够准确时,可以完全信任外部输入,不需要内部的算法融合,反之,加入内部算法的融合可以使得数据更加准确。 要注意参考坐标系...

    https://dev.px4.io/en/ros/external_position_estimation.html

    步骤:

    1、使能外部位置输入,通过相关使能位置1;

    2、关闭气压计:因为你足够信任你自己计算出的位置输入

    3、调节噪声参数:当你觉得外部位置输入的信息足够准确时,可以完全信任外部输入,不需要内部的算法融合,反之,加入内部算法的融合可以使得数据更加准确。

    要注意参考坐标系

     

    有mavros可以直接用mavros输入外部位置信息;

    没有mavros则使用mavlink 发布ATT_POS_MOCAP 这种情况下,需要进行坐标系的转换——ENU与NED。

     

    开始试飞的步骤:

     

    转载于:https://www.cnblogs.com/gaosheng12138/p/10035405.html

    展开全文
  • 本文介绍鼠标位置坐标获取,控制鼠标位置前文有文章写了。 二、环境 qt5.7 win8 三、正文 获取鼠标状态应用到几个函数 1移动mouseMoveEvent 2点击mousePressEvent 3释放mouseReleaseEvent 4双击...

    一、前言

    本文介绍鼠标位置坐标获取,控制鼠标位置前文有文章写了。

    二、环境

    qt5.7    win8

    三、正文

    获取鼠标状态应用到几个函数

    1移动mouseMoveEvent
    2点击mousePressEvent
    3释放mouseReleaseEvent
    4双击mouseDoubleClickEvent
    5滚轮wheelEvent

    下面就通过程序说明一下每个函数怎么使用

    //移动
    void MainWindow::mouseMoveEvent(QMouseEvent *event)
    {
        QPoint p_ab = event->globalPos();//整个桌面位置
        QPoint p_re = event->pos();//窗口内位置
    
        QString str;
        str = QString("%1 , %2").arg(p_ab.x()).arg(p_ab.y());
        ui->lineEdit4_2->setText(str);
    
        //str = QString("%1 , %2").arg(p_re.x()).arg(p_re.y());
        //ui->lineEdit4_3->setText(str);
    }
    //点击
    void MainWindow::mousePressEvent(QMouseEvent *event)
    {
        //获得鼠标的x , y 坐标 event->x  , event->y
        //判断点击的是左键还是右键 event->button()==Qt::LeftButton(Qt::RightButton)
        qDebug()<<event->globalPos();
        qDebug()<<event->globalX();
        qDebug()<<event->globalY();
        ui->lineEdit4_3->setText(QString("%1 , %2").arg(event->globalX()).arg(event->globalY()));
    }
    //释放
    void MainWindow::mouseReleaseEvent(QMouseEvent *event)
    {
        qDebug()<<event->globalX();
        qDebug()<<event->globalY();
        //nowmouseplace(event->globalX(),event->globalY());
    }
    //双击
    void MainWindow::mouseDoubleClickEvent(QMouseEvent *event)
    {
        // 如果是鼠标左键按下
        if (event->button() == Qt::LeftButton){
            qDebug() << "left double click";
    
        }
        else if (event->button() == Qt::RightButton){
            qDebug() << "right double click";
    
        }
    }
    //滚轮
    void MainWindow::wheelEvent(QWheelEvent *event)
    {
        int wheel_val = event->delta();
         //当滚轮远离使用者时
        if (wheel_val > 0){
            qDebug() << "wheel forward: " << wheel_val;
        }
        else{//当滚轮向使用者方向旋转时
            qDebug() << "wheel backward: " << wheel_val;
        }
    }

    如果想要获取窗口外某一点的鼠标坐标,可以通过在窗口内点击鼠标左键,然后按住左键拖到想要知道坐标的位置,在松开左键,然后就会进入到鼠标释放函数,在处理相应的坐标位置数据即可。

    还有一种方式是,先将聚焦在本窗口,然后鼠标移动到想要知道坐标的位置,不点击,然后用一下函数方法,就是通过按键来实现获取位置

    
    void MainWindow::keyPressEvent(QKeyEvent *event)
    {
        int keyValue = event->key();
        if (keyValue == Qt::Key_Control)
        {//获取鼠标位置
            qDebug() << "=== press key";
            QPoint pt = QCursor::pos();//获取鼠标的绝对位置
            QString str;
            str = QString("%1 , %2").arg(pt.x()).arg(pt.y());
            ui->lineEdit4_2->setText(str);//显示
    
           // nowmouseplace(pt.x(),pt.y());
        }
    }
    
    

     

     

    四、结语

    有了这篇文章和前文,鼠标的操作和获取状态都知道如何使用了。

    展开全文
  • 如果使用外部位置控制的话有三种方式:1、将外部位置信息当做一个GPS的信息传入飞控,在EKF2中进行融合。2、自己修改EKF2,加上一个外部位置融合的模块。3、位置控制在NUC上进行计算,然后得到期望的姿态给飞机控制...

    在三维激光雷达平台上我们飞控采用pixhawk2的飞控。官方给我说这个支持APM和PX4的固件,但是对APM固件的支持性比较好,因此就选用了APM的飞控。在一开始装好飞机后,第一次飞还好好的,但是之后出现了一个问题,就是yaw角会不受控制的自旋。这个找了电机电调的问题还是飞不稳(电调很容易焊接不牢靠)。之后我们把飞控的减震板去掉之后并且再次将电机连接到飞控上,进行了电调的校准,然后就可以很稳定的飞了。之后感觉飞控板质量有问题才导致了这个原因。不管怎么说现在可以在自稳模式平稳飞行了。超声波定高效果也还将就,偶尔会出现掉高的情况,反正先往下走吧(从后来回过头来看这个选择是很明智的)。之后遇到一个问题,AMP 3.5.7固件没有LPE,无法使用外部位置信息融合。如果使用外部位置控制的话有三种方式:1、将外部位置信息当做一个GPS的信息传入飞控,在EKF2中进行融合。2、自己修改EKF2,加上一个外部位置融合的模块。3、位置控制在NUC上进行计算,然后得到期望的姿态给飞机控制。斟酌了一下这些问题,我们决定我们换成PX4飞控来进行我们的工作,因为PX4固件有LPE,可以进行外部位置融合。

    换成PX4固件,大概调了一下PID参数,可以定高飞行了(效果也只是一般般)。然后我们准备将雷达的位置信息融合进飞机。但是问题出现了,进不到定点模式,融合数据太差了。经过看飞行日志,发现加速度计的波动在+-0.5G之间,这怎么能用呢。然后我再看了一下其他正常飞行的飞机,加速度计的波动都在+-0.1G左右。这个差距也太大了吧,我们又加了一个比较好的减震板,数据勉强在+-0.3G的噪声,但是还是太差了。不管调参还是怎么搞,都没有改善。为啥不加减震APM固件噪声就比较小,加了这么好的减震PX4固件的加速度计的噪声就这么大,其他硬件都是一样的 啊。这个真的是APM固件比PX4固件好么?那还换回APM固件来试一下吧。APM固件看一下有没有什么方法来融合外部位置,当时想的最坏的不过是把位置控制写在nuc上,总比做不出来强。换后,测试自稳模式和定高模式都很不错,惊喜的是定高不会出现掉高的现象了,看来好的减震板还是有必要的。不错不错,也不枉我们这段时间的折腾。

    现在就是位置估计了。查看了在APM论坛上,确实有人讨论外部位置融合的问题。我擦,有大神已经把APM外部位置融合做出来了。并且已经在github上合并到主项目中master版本上了。赶快下载下来试一下。参照官网上的APM编译环境配置,来配置好环境,编译最新的固件,然后看了一下固件版本3.7-dev。确实比我们在地面站上下载下来的固件新不少啊。试一下吧,按照他们说的步骤先设置一下飞机的参数。

    Setup the Pixhawk

    Connect to the Pixhawk with a ground station (i.e. Mission Planner) and set the following parameters:

    • SERIAL2_PROTOCOL = 1 (the default) to enable MAVLink on the serial port.

    • SERIAL2_BAUD = 921 so the Pixhawk can communicate with the TX1 at 921600 baud.

    • LOG_BACKEND_TYPE = 3 if you are using APSync to stream the dataflash log files to the TX1

    You may need to manually disable flow control on Telem2 although this is not normally required:

    As a side note the J120’s UART2 appears on the TX1 as /dev/ttyTHS1.

    以上是pixhawk2与mavros连接需要设置的。

    Configure ArduPilot

    Connect to the flight controller with a ground station (i.e. Mission Planner) and check that the following parameters are set as shown below:

    After changing any of the values above, reboot the flight controller.

    以上是使用EKF2来取消GPS、取消MAG。这个是融合视觉信息的准备工作。

    mavros连接到pixhawk2之后将位置信息通过vision_pose话题来发给飞控,然后在QGC上的analysis中可以看到视觉的估计值已经被飞控接收到了,然后就是看是否融合使用了视觉的信息。但是没有变量可以看到融合的位置信息。只能通过飞行日志来看了,让飞机产生一个飞行日志,然后查看EKF的消息中的PN PE来看一下融合进去了没有。看了一下确实融合进去了。并且yaw角使用的视觉yaw角这样的话,外部位置的坐标系和飞机的坐标系就对应起来了。

    如果位置信息融合了的话可以看到地面站消息中会有这样的显示。

    EKF2 IMU1 initial pos NED = 0.0,0.0,0.0 (m)
    EKF2 IMU1 is using external nav data
    EKF2 IMU0 initial pos NED = 0.0,0.0,0.0 (m)
    EKF2 IMU0 is using external nav data

    到这里就把视觉信息传给飞控了。此时还没有测试是否能够定点。之后测试之后再更新吧。

    10月13日更新

    经过这么久的调试,终于可以使用guided模式来寻点了。

    到上面那步可以直接试一下自己的飞机能否准确定点。如果可以的话就可以尝试使用set_point来给飞机发期望的位置。这里有一个位置,有一个四元数。位置是给飞机期望的位置,四元数是给飞机期望的yaw角。通过set_point给飞机期望位置之后飞机就根据你给的位置和yaw角来达到期望的状态。mavros给飞机当前外部位置的时候需要xyz都需要给,要不然融合就会有问题。不能只给x和y,然后z给0,这样的话在定高和定点的时候不会有问题。在guided模式和auto模式的时候就会出现问题,当前的z方向的位置都是0,导致高度控制会产生错误。

    reference

    http://ardupilot.org/dev/docs/ros-slam.html

    https://discuss.ardupilot.org/c/blog

    https://github.com/ArduPilot/ardupilot

     

    展开全文
  • 如果选择了安装位置是preferExternalrun时就出错:[2013-01-02 22:23:46 - MMSMASS] ------------------------------[2013-01-02 22:23:46 - MMSMASS] Android Launch![2013-01-02 22:23:46 - MMSMASS] ...

    如果选择了安装位置是preferExternal

    run时就出错:

    [2013-01-02 22:23:46 - MMSMASS] ------------------------------

    [2013-01-02 22:23:46 - MMSMASS] Android Launch!

    [2013-01-02 22:23:46 - MMSMASS] adb is running normally.

    [2013-01-02 22:23:46 - MMSMASS] Performing com.qidizi.mmsmass.MainActivity activity launch

    [2013-01-02 22:23:46 - MMSMASS] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'AVD_for_Nexus_S_by_Google'

    [2013-01-02 22:23:46 - MMSMASS] Uploading MMSMASS.apk onto device 'emulator-5554'

    [2013-01-02 22:23:47 - MMSMASS] Installing MMSMASS.apk...

    [2013-01-02 22:23:50 - MMSMASS]Installation error: INSTALL_FAILED_CONTAINER_ERROR

    [2013-01-02 22:23:50 - MMSMASS] Please check logcat output for more details.

    [2013-01-02 22:23:50 - MMSMASS] Launch canceled!



    logcat提示是没有权限.


    01-02 14:10:36.986: W/ActivityManager(287): No content provider found for permission revoke: file:///data/local/tmp/MMSMASS.apk


    但是如果想指定权限.

    android.permission.INSTALL_LOCATION_PROVIDER

    它就提示只有系统应用才允许使用

    展开全文
  • 易语言取外部程序指定窗口位置源码,取外部程序指定窗口位置,取窗口位置,取指定窗口句柄,窗口是否最大,窗口是否最小
  • 外部程序指定窗口位置.rar
  • stata外部命令存放位置 我想说的是,大家都比较浮躁,我也是,CSDN上确实有些文不对题、驴头不对马嘴、抄来抄去且很老又误人子弟的答案,但也是可以理解的,因为大家遇到的问题各种各样。但如果你是真的想更改stata...
  • LabVIEW调用外部exe之后指定运行位置,通过使用WindowsAPI函数,获取窗口句柄。
  • 外部发送位置给pixhawk

    2018-11-28 22:44:00
    一、硬件连接 ...2、还需要设置一些参数使得EKF2使用的是外部位置: EKF2_AID_MASK 3、确定使用哪个高度信息: EKF2_HGT_MODE   转载于:https://www.cnblogs.com/gaosheng12138/p/10035555.html
  • 易语言源码取外部程序指定窗口位置.rar
  • 外部交换平台所在目录:NCHOME/pfxx pfxx\businessprocessor:查看所有的外部交换接口及对应的处理类 pfxx\billdefine:每个单间的demo内容。字段说明 如果要新增外部交换接口 1.首先要在外部交换平台 在uapbd.xml...
  • 应放于&lt;/body&gt;标签之前,以免影响页面加载
  • 最近在研究Revit相关的东西,遇到了一个问题,就是通过外部工具引入的自定义工具,当我选择保存为addin的时候,无法立即生效,即使重启Revit软件也无法自动载入。并且生成的addin文件路径与Revit版本也不一致。 博...
  • 在编写程序的时候,常常会用到外部变量和全局变量。如:a.c和b.c两个c文件中都要用到变量x。 1、在a.c中定义全局变量int x=100;如果b.c中也要用x这个变量,那么应该在b.h中来进行定义extern int x;而不能再b.c中...
  • 引用外部script文件是存放的位置

    千次阅读 2016-06-17 21:51:16
    在编写代码的时候,我们都习惯把引用的外部JavaScript文件放在head标签中,这种做法的目的是把所有的外部文件放在同一个地方,便于管理,但是在文档的元素中包含所有的JavaScript文件,就必须浏览器把所有的...
  • 1 外部 1.1 top(外部正上方) 可应用于:series.label.position。 position:top 1.2bottom(外部正下方) 可应用于:series.label.position。 position:bottom 1.3 left(外部左边) 可应用于:series.label....
  • hive 表加载hdfs数据 情况1: 创建内部表 create table if not exists tmp.testa (merchant_id string) stored as parquet;...总结:创建内部表 load 数据 hdfs数据会进行迁移 迁移位置 到了 hive表目录/user/hi
  • hiveQL 外部

    2013-11-07 12:41:00
    1、创建外部表 hive> create external table ext_t (name string) ...使用external 关键字后,hive知道数据并不是由自己管理的,因此不会吧数据移动到自己的目录,即:在表定义时,甚至不会去检查这个外部位置是否存在
  • 【android】getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用,getfilesdir 热度5 评论 38 作者:jilfilg_fal TA关注 服务器运维,电源, 2014-10-01 ...
  • //普通的外部存储器(应该先判断是否拥有外部存储器 External storage) String pathString = Environment.getExternalStorageDirectory() + "/" +filename; 公有目录: Environment . ...
  • (2)外部配置加载顺序配置文件加载位置springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件–file:./config/ –file:./ 指的是项目根目录 –classpath:...
  • 外部jar包时,需要manifest.mf文件来指明,manifest.mf文件可以放在任何的位置。 2. *************** jar包生成后,manifest.mf文件可以删除。   ==========================================

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,277
精华内容 4,510
关键字:

外部位置