第1期
注:题目与答案为人工搬运,仅做解决问题参考,不一定是准确答案。 1、Q: 我早上是自己改了pos_contorller_PID.h,想跑自己的算法。 编译无问题,但飞机飞不动, 晚上我又弄了prometheus本身的pos_contorller_PID.h。编译后,飞机也飞不起来。sitl_control.launch 运行这个 ,无任何报错,固件用的就是prometheus_px4,上个月跑无任何问题,只是最近在研究怎么用新方法去实验位置控制。
A: 那证明是你改的问题呀,你仔细检查一下吧,如果只是改了位置环的控制器那几行,不会这样的。
Q: 现在运行 sitl_control.launch 其他都ok,就是会显示这种:
A: 不应该要融合baro,融合的是vision,还是固件或者参数问题,你把px4固件重新编译一下,仔细检查版本,实在不行 都删了重装一下,也就20分钟的事。
A: 我之前遇到过,重新编译解决的~~~
2、
Q: PLException:Invalid roslaunch XML sysntax :mismatched reg:line227,column, i,The tranaceback for the exception was exception was writen to the log file? 这是咋回事呀?
A: 安装必备依赖项 sudo apt install xmlstarlet
3、
Q: 请问有有人在英伟达的板子上跑过仿真嘛,mavros一直就连不上,换了板子重装也不好使,电脑就可以连上。
A: 终结此话题:仿真不能在tx2上跑,更加不推荐。仿真的合理配置是高性能的台式机。
4、
Q: Parmeter MPC_Z_VEL_MAX_DOWN not found 报错有影响吗?
A:不影响,没有这个参数,所以写不进去。
5、
Q:请问一下,prometheus镜像,是Ubuntu安装环境吧,这个镜像在哪里可以下载呢?
A: 镜像地址 : https://mp.weixin.qq.com/s/rAtXVP2S5b1nGyHiY0eXgQ##
6、
Q: Prometheus项目主页 https://github.com/amov-lab/Prometheus 很难点进去或者根本进不去?
A:GitHub是一个软件源代码托管服务平台,如果访问有问题建议使用梯子会顺畅很多。
------------------------------------------------------------------------------------------------------------------------------------
第2期
1、
Q:测试PX4出错,请问怎么解决呀?
A:运行这段报错不影响运行,可以不用管他,主要看模型有没有正常跑出来。
2、 Q:Prometheus项目中的 UKF 你们有测试过效果吗? A:那个还没用…被搁置了,可能有bug,一起调调。
3、
Q:想问一下,用位置环进行轨迹追踪,绿色线为期望轨迹,红色线为运行轨迹,他们怎么相差这么大啊,而且红色线看起来是随机运动的?
A:是不是t265出问题了啊?双目摄像头,你这是仿真?以前我真机遇到过t265出问题了红线乱飘的情况。
Q:阿木实验室里的位置环控制器的二次开发,请问阿木实验室里的位置环控制器二次开发里面有用到t265吗 ?
A:控制算法二次开发可以使用任何导航信息,包括t265 。
Q:刚才运行了一下,红线乱飘,用位置环进行轨迹追踪,绿色线为期望轨迹,红色线为运行轨迹,他们怎么相差很大?
A:因为你导航数据发散了吧,如果是买了飞机,售后问题找客服哦,仿真不会飘呢…仿真和t265没关系。
4、
Q:vector<vector ,请问一下有大佬知道这种容器的数据怎么读吗 ?嵌套的。
A:当成一个矩阵来读。
5、
Q:大家遇到过 mavros ,unsupported fcu这个问题吗?
A:遇到过,我这边是因为qgc和mavros抢端口了。
---------------------------------------------------------------------------------------------------------------------------------
第3期
1、
Q:求一篇文章的pdf “Predictive control of aerial swarms in cluttered environments”,做集群的朋友可以看看。
A: Predictive control of aerial swarms in cluttered environments:下载链接https://assets.researchsquare.com/files/rs-82503/v1_stamped.pdf
2、
Q:请问一下,树莓派4B上可以运行Prometheus项目吗,怕带不起来。
A:控制模块问题不大。
A:opcv估计够呛。
3、
Q:请问,我的笔记本装ubuntu官方镜像就没问题,但是一装阿木实验室的普罗米修斯镜像就找不到磁盘,安装界面就只显示我的安装u盘,这是什么情况 ?
A:他读取不到你本地硬盘 再外接一个硬盘就好了。
A:nvme 也可以装系统哈:https://www.amovlab.com/document
4、
Q:github开源的prometheus只是仿真部分吗,可不可以在部署在真机测试一下,需要有大的改动吗?
A:有基础的实物飞行(但我还没测试,目前刚把T265的定位调通,因为默认给的动捕系统实在没条件实现),在这个文件夹,切记,要从prometheus_px4编译固件烧录到实际飞机中。
5、
Q:请问大家在集群控制例程仿真时,有没有遇到这个问题?lanuch 文件sitl_swarm_4uAV.launch
A:你没编译上,或者source失败,系统找不到node。
-------------------------------------------------------------------------------------------------------------------------------------------
第4期
1、
Q:请问将sitl_swarm_control_3uav.launch文件中的控制模式改为速度追踪,在swarm_controller.cpp中改变了算法的参数,但是最后在gazebo中让飞机飞行时和原来的效果一样,看不出有什么区别,这是怎么回事呢?参数试了多次,差距很大,参数全为0也和原来一样。 A:你确认下当前command的模式是什么?在ground station中可以看到。
2、 Q:大家有没有遇到 libreaksense2-dkms 无法定位文件这个问题? A:有脚本可以自动安装,可以选择编译。
3、 Q:请问prometheus里面穿框用的框的gazebo模型如何设置碰撞属性呢,我自己添加了别的形状stl文件,替换了里面的框形状的stl文件,但是前者不具有碰撞属性,后者是具有的,我是用catia画的模型然后转成stl文件的。 Q: sdf的,我就画个方形的框,我看到阿木里面是圆框,然后设置碰撞属性那我直接替换成了我的stl文件,但是飞机直接从框的外形穿过去了,visual属性都换了的,那个框的sdf里面只要涉及到stl文件的都换我自己的了,不知道是不是和我画用的软件有关系,剩下的都是用的阿木里面的这个sdf。 然后在world里加了这个: 感觉还是我的stl的问题,因为阿木那个stl就没问题,我看看换solidworks行不行。 A:你可以试试blender。 Q:问题解决了,换solidwork就可以了。
4、 Q:有人用联想Y9000K2020么?有遇到过装双系统直接花屏的情况嘛? A:我台式机之前装Prometheus的镜像也是直接花屏,然后曲线方式,在笔记本上把Prometheus的镜像装到u盘里,然后插到台式机上配置使用。 A:禁用独显以后再试试,我联想r7000之前也是花屏。
5、 Q:Prometheus的slam模块在xavier上编译 报缺少emmintrin.h这个错,我查的这个头文件只有x86架构才有,所以这个仿真不能直接抄到 arm64上吗? A:仿真不能在arm平台运行,项目可以部署在arm平台。 A:换个nuc的话,也是 x86架构,就可以直接部署了。
6、 Q:我用这个跑了下仿真,然后飞机节点没起来?但是部署应该没什么问题? A: 跑的什么节点? Q: px4.sitl,进gazebo后没话题出来,z8300就是一个凌动,赛扬都比他强。 A: 我没用gazebo,用的px4的飞控,控制模块是可以移植的。
--------------------------------------------------------------------------------------------------------
第5期 1、 Q:gazebo里无人机只能飞50m,我想飞100m需要改world嘛,我改了launch没有用。 A:设置控制算法中的geo_fence地理围栏参数,改大一点。 Q: 是这个文件吗? A:你跑的哪个launch,自己对应找一下参数文件在哪。 A:我猜是这个文件,如果你连跑的launch所调用的所有文件没有过一遍的话,这是一个很差的开发习惯。即使看不懂,也要过一遍,这是基本开发准则。
2、 Q:想问大家一下,我在运行make px4_sitl gazebod 时候,显示没有安装numpy,之后我安装成功了,再次运行make px4_sitl gazebo,还出现没有安装numpy ? 我的python是2.7版本的,大家知道是什么原因嘛? A:去px4 GitHub issue去查关键词 A: 应该是make px… 用的python环境和你安装numpy发的python环境不一致。建议先了解缺少numpy包的python环境,针对缺包的python环境安装对应的numpy
3、 Q:运行仿真的launch文件,有时候会加载特别久,有什么好的方法可以加快打开速度的吗? A:看一下wiki,需要切换PX4的分支,看一下wiki,离线下载一下gazebo模型。
-----------------------------------------------------------------------------------------------------------------------------
第6期
1、
Q: 飞机速度信息可以短时间内估算位置吗?
A: 我只知道加速度计 磁力计 陀螺仪,这三个可以测出姿态信息,建议看阿木的px4开发课。https://bbs.amovlab.com/plugin.p ... deo&mod=video&cid=6
2、
Q: 有大佬知道为啥用make amov_sitl gazebo_p450打开mavros 运行px4官网的demo_node节点可以正常起飞,但用roslaunch px4 mavros_posix_sitl.launch却飞不起来吗?
A: 官方demo跑不了的,运行mavros_posix_sitl.launch文件,默认定位是aid和hgt都是vision传进去的。可以把ekf2_vision改为ekf2_gps,可以把ekf2_vision改为ekf2_gps
3、
Q: 请问一下 Prometheus适合用虚拟机还是双系统呢?那我直接装ubuntu好了
A: 双系统。 虚拟机会存在各种莫名的报错。 而且用不了GPU,建议双系统,尽可能用固态盘, 不是说机械盘不能用嗷,就是万一你内存太小,固态盘做swap交换分区起码还能用,机械盘的swap实在是一言难尽。
4、
Q: 请问大家:如果在室外用gps飞行的话,世界坐标系的原点是起飞点吗?
A: 是开机时的那个点。
----------------------------------------------------------------------------------------------------------------------------
第7期
1、
Q: Promentheus 只能用在多旋翼上吗?固定翼飞机能用这个进行二次开发吗?
A:简单回答:可以。
2、
Q:Ubuntu怎么科学上网呢,rosdep update一天了
A:proxy代理 ,Csdn上搜,应该能搜到 。
A: https://blog.csdn.net/jasdhasd/article/details/105607125 昨天也有同学update了一天,用这个解决的。
A:https://blog.csdn.net/nanianwochengshui/article/details/105702188 或者可以从github上下载下来,把要访问的github网址全改成本地路径。
3、
Q:给集群控制加了个APF避障,还有些弱智,群里做apf避障的应该有好几个吧,pull了代码,编译即可运行,有没有愿意贡献代码或者算法的?
4、
Q:这个有没有真实飞行视频,matlab仿真可以调成这样。
A:这种情况APF调调感知范围和势场函数应该能比较顺滑。
5、
Q:PX4最新V1.12版本的子库都下载不下来? git submodule update --init --recursive 都下载失败了,用的是手机热点。
A:人家仓库肯定没问题啊,肯定是你网络问题撒。一定要用最新的吗?不是的话,就用prometheus_px4;是的话,要么改善网络,要么可以gitee自己拉下来,然后再改子模块地址(太麻烦,不推荐) 。
A: https://doc.fastgit.org/zh-cn/guide.html#web-的使用,可以试试这个,设置全局代理,通常会快不少 。
A:justmysocks加openwrt旁路由,稳的一p。
A:反正我ubuntu用的clash 必备梯子,不然真的窝火。
6、
Q:用t265这么飘,控不住呀?有其他方法在室内飞稳一点的吗?
A:mocap,看预算吧,100w 50w 10w 5w都有。
A:感觉像是调参没调好,或者是保护圈的影响,我以前测试的时候,保护圈会影响t265的定位效果,你先在rviz上面看一下t265输出的轨迹,飞机手拿着走个正方形之类的看轨迹是否闭环,要是t265的轨迹都有问题的话,融合之后的位置数据也不对。
A:做集群都不买mocap 做啥呢,用t265就是折腾自己。
A:室外集群用不了mocap,室内可以用,我们以前用过vicon的,效果还不错。
A: 室外的话要不试试rtk定位?室外的话t265效果也不一定好呀,而且飞高了连特征点都莫得。
A:不过gps在室外也有点飘,会有误差,一般读取的都是跟跟imu融合后的数据。
7、
Q:mavros发送ActuatorControl给飞控出现这个错误是什么原因呢?
A:lockstep置disable 。
Q:请问Disable Lockstep Simulation具体的原理是什么?根据官网置disable以后,IMU等估计的状态都失效了,仿真飞机都是Not ready to fly 。
A:你设置actuator没啥用,建议别用这个控制方式 。
Q:如果想要直接传入参数控制作动器,不用这种方式的话,应该怎么做呢?
A:这是11.0以后版本才支持的,我前段时间也用来着,mavros也记得用新的包。
8、
Q:我想咨询一个问题,就是目前这个控制器可以在gazebo当中直接进行速度控制嘛?(三个线速度和三个角速度)
A: /gazebo/set_model_state 。
9、
Q:请问一下,切换prometheus_px4飞龙固件分支至prometheus_swarm,这个步骤应该怎么操作呢?后面的控制节点加不进去。
A:在prometheus_px4文件夹内终端git branch -a可以看到分支,git checkcout (name)可以切换分支。 10、 Q:请问下大佬们有在16.04下成功装过px4的吗?我今天试了网上几个教程 都不太行... A:我觉着你是有一堆包没下下来…适当科学上网…或者对应修改包的网址。 Q: 之前我按照有个单步的教程安装,然后pip pandas的时候一直说缺少typing,但是我conda环境给配的是Python3.6了,然后我就按照另外一个.sh的安装, .sh的时候有些是有报错,我只是在下子模块的时候翻了下,我明天再一直翻着试试这个.sh行不行,谢谢。 ----------------------------------------------------------------------------------------------------------------------------
第8期
1、
Q:请问,自主降落这块,我的飞机为什么一直停在takeoff这一步了?
A:command id没有累加。Q:我是把kcf框选跟踪和自主降落的launch合到了一个launch文件里面,就在object_tracking加了这么一段
A:那应该是id问题吧,你改了程序在问问题的时候就说一下呀~
2、
Q:你好请问搭梯子有教程吗?,我的不知道为啥只有ubuntu中的网页可以科学上网,终端里不行,用的socket
A:终端默认不走代理,需要单独调试,我搞的openwrt……直接路由器代理
A:终端需要再输两个命令才能翻 (后面是自己的那个ip和端口)
export http_proxy="127.0.0.1:8118"
export https_proxy="127.0.0.1:8118"
3、
Q:想问一下地理围栏设置怎么没有用哈,设了1m,坐标点跑出1.5m都没有反应这个参数设置是在px4_pos_controller.cpp里吧,我改的是这个设置,然后重新编译了control模块,用的是实机,室内用的t265
A: 检查一下参数是否读取到了,有可能是该话题没消息,回调函数没执行所以超了地理围栏也没反应,把判断地理围栏的函数写到获取无人机状态的回调函数里应该就不会有错误了。
4、
Q:想请问下px4_sitl中的 MAV_BROADCAST 这个参数在哪里设置,是在启动脚本rcs文件中吗?
A:可以直接QGC中修改 也可以在rcs中写定。
----------------------------------------------------------------------------------------------------------------------------
第9期
1、 Q: 各位,有人知道什么传感器可以测量无人机的功率吗? A: 电流计 然后P=UI ....
2、Q: ****群里有大佬用激光雷达开发过px4的防撞功能Collision Prevention吗?我是通过机载计算机发送的/mavros/obstacle/send消息,飞控也收到了,在靠近墙壁的时候qgc也提示检测到了障碍物,但是障碍物的方向检测的不对,具体表现就是在靠近墙壁之后无法手控远离墙壁,只能继续靠近墙壁,我开始以为是数据方向错了,之后我修改了周围障碍物信息的方向,但是飞控还是无法正确确认障碍物方向。,有大佬知道这是怎么回事吗? A: 雷达掉个方向 雷达装反了会有这个现象。 Q: /mavros/obstacle/send消息的格式是sensor_msgs::LaserScan格式,规定的是z轴向上时,逆时针为正向,我逆时针和顺时针都试了,顺时针就相当于enu转frd了,就相当于y坐标取反,因为我没用z坐标,我这个雷达真不方便掉个,多线雷达太大了,而且掉个和我用软件改数据方向应该没区别。 A: 电机顺序插线换一下,机头就变了。
3、Q: Prometheus支持ardupilot吗? A: 基于px4的,虽然也是用mavros实现和飞控通信,但是需要一定量的改动(至少我知道的mavros里,px4和adp读取飞控参数有区别) Q: 仿真的可以兼容不?应该可以兼容吧。 A: 有一定区别,目前应该是不能兼容的。 Q: 有计划兼容不?应该可以兼容吧。 A: 暂时没有计划兼容 想要兼容的话,自己改一些即可,都是用Mavros的,只是部分消息可能有一些定义区别。 A: 可以建一个分支,兼容一下 ardupilot A: 要是自己有能力封装其他无人机的控制,读懂项目的代码,理论上也可以在其他无人机上实现Prometheus的功能。
4、A: 在tello上复现了aruco跟随的功能。 Q: tello的速度信息能拿到吗?跟你请教一下tello的回传。。我们都是用的动捕差分求的速度。 A: 拿到了回传信息,但是手上没有测速的手段。 Q: 贡献一下tello的代码吧! A: 可以啊,我是另建的ROS空间,是不是开源前要先加入下开源协议因为aruco_det是在金博的程序基础上改的 common文件夹为了省事儿直接copy的(小小的根据tello修改了下)。
5、 Q: 各位老师,请问大家在安装环境过程中又遇到类似情况吗,我按照官网文档进行操作,但是,不知道出现了什么样的问题? A: 把虚拟磁盘内存适当放大,选用40g。
6、 Q: 请问一下,在测试ego_test.sh的时候,找不到这两个节点是什么原因? A: 重新编译一遍,就生成这两个node了,没问题了。
7、 Q: 请问启动gazebo遇到这个情况,gazebo自动结束,大家知道怎么解决 吗? A: 虚拟机跑gazebo的通病,百度就完事了。
8、Q: 之前装过px4再装普罗米修斯的px4两个会不会有影响? A: 不会的。 A: 环境变量设置看是用哪一个px4咯。 Q: 环境变量用的时候是不是要改一下配置。 A: 看wiki。
9、 Q: 之前做仿真都没问题,最近开每个仿真都这样,是啥问题,有大佬指导一下吗? A: killall gzclient killall gzserver Q: 我试过,已经没有进程了。 A: 打开任务管理器 搜ros 有关的都关掉。
10、 Q: ego_test.sh启动之后,通过终端控制起飞不了,也没报错,是什么原因呢? A: unconnected Q: 对,那该如何修复? A: px4用的哪个分支? Q: 用的阿木实验室的分支。 A: 要用swarm分支 你有看wiki吗。
11、 Q: 想问一下~如果对避障时无人机的速度没要求 只用T265或者RGBD不用激光雷达 可以跑VFH和Astar这几个算法嘛? A: 可以。 A: 那你得有给它输入深度信息的传感器啊。 Q: ros自定义类.h在主程序里面include之后编译说找不到,我按官方的CMakeLists改了还是不行,这是为啥? Q: 解决了,include加上功能包名就可以了,但是Prometheus里没加也可以,不知道为什么。 A: 是不是要source一下,找不到文件应该是路径没有包含进来。
12、Q: 大佬们,我们的飞机重刷了一次最新的固件之后校准了传感器,为啥position模式切不了了。 A: 那是位置信息没有传进去啊,用什么定位的啊? A: 刷的啥固件,阿木自带的吗?看导航数据log呀。 Q: t265,刷的qgc里面最新的固件,有人还在用px4_commend的吗?现在我们这边应该是pos controller那个节点没用。 A: 数据传到飞控了吗? 没有的话 肯定切不了定点啊。 Q: 但是我试了只用gps和气压计也不能切position A: gps有几颗星啊,不能切就看日志,先找出不能切的原因。 A: 话说你刷了固件,参数调了吗?端口设置和EKF,刷固件不影响MAVROS…… Q: ekf2那些都调了。 A: 那就看一下地面站报错,确认机载电脑和飞控是否能通信?看一下mavros的vision消息是否发出。
----------------------------------------------------------------------------------------------------------------------------
第10期
1、
Q: 运行ros_2Dnav_demo_px4.launch时,报错找不到ros_navigation。可是这个包我已经装过了,大佬知道怎么回事吗 A: 没编译成功,建议检查下代码,重新编译。 Q: ros_navigation没编译成功吗?,我这个就是按照视频里一步步走的,其他例子没有问题,比如画圈那个,自己没写啥代码。 A: 这不会吧,我是在用阿木Prometheus项目的时候遇到过你这个问题,后来检查就是代码没下完整,重新下载完整,重新编译就好了。
2、 Q: 请问一下,无人机携带深度相机同反复拍摄一个位置,导致点云数据重叠到一起,有什么解决办法吗 A: 滤一下? Q: 可以考虑设定一些关键帧策略来降低点云数。
3、 A: 厉害。 A: 看了一下代码,深得prometheus精髓啊,哈哈哈。 A: 支持一波,对tello感兴趣的小伙伴可以参考这个仓库。 A: 但是安利一个更好的代码更新方式:如果你觉得你的代码是有意义且能够惠及更多开发者,可以在开发前/中/后联系我们项目组,我们会给你提供技术支持(做得好的会有奖励),将你的部分融入到prometheus大框架中。 Q: 好的目前还处于移植一些prometheus的功能在tello上实现(主要是与单目相机相关的内容),准备先把单目专精点满。
4、Q: 请问,编译./compile_control.sh的时候报这个错,我去看了对应的.h文件,里面好像是没有定义battery这个变量。 A: 刚才我试了下 编译没问题哈。 A: 这个我也遇到了,好像不搞无人车的话就不用管这个错误 。
5、Q: 问下Nomachine连接Ubuntu系统,Ubuntu系统无法铺满整个桌面?这个怎么设置下。 A: 改分辨率。 Q: xrandr --fb 1920x1080 试了改分辨率越改越小,而不是对应放大铺满这个屏幕。 A: 在etc/profile下面修改,重启。 A: 或者三四块钱买个显卡欺骗器。 A: nano上面好用忽悠系统有个显示器,但又没完全有强推这个 而且特便宜。
6、 Q: 出现的很多未定义的引用,还有编译./compile_planning.sh A: 详情查看issue 。
7、Q: 各位,我用的是原厂的镜像,在安装yolov5的环境后,编译的时候opencv好像出了点问题,请问这种情况应该怎么解决呢 A: 你这个是opencv版本冲突,可以修改Cmakelist,指向相同的opencv路径@西电 cc
8、Q: 请问一下 如何把TX2得到的双目视觉的图像信息传输到地面端呢》 A: 加图传,或者nomachine远程登录。 A: 推流 prometheuswiki有介绍。 Q: 看你的通信设备呀。
9、
Q: 大家有什么办法能让无人机进入offboard模式以后,再通过程序给无人机disarm嘛? A: 发送arm的服务不行吗? A: 我觉得可以,等我试试,模式和上锁不冲突。 Q: 老师使用arm的服务和直接发disarm情况一样 是报disarming denied!NOT landed A: 飞机在空中是不能上锁的吧。 A: 那你在飞呀,如果想强行上锁 那就要改一下源码 去掉这个判断,要么就用遥控器kill Q: 好的 谢谢老师 对的 目前这个做法不给通过。 A: 这个源码很容易改的 因为px4有的时候明明落地了还认为自己在天上。 Q: 戚老师您好 我强制上锁以后 然后再次解锁的时候 很多情况下 ekf2check过不去 报Preflight fail Yaw estimate error 戚老师以前有遇到过类似的问题嘛? A: 没这个需求 一般我会重新上电。 Q: 老师指的是实际中重新上电嘛? A: 你在做仿真吗? Q: 嗯嗯 强化学习… 因为需要重复起飞 所以需要重新上锁 然后再解锁。 A: 干嘛要上锁呢 直接飞不行? Q: 重置位置之后 不先上锁再解锁的话 直接飞无人机直接就失速了 无人机会以一个非常快的速度乱飞 第二次takeoff都不能到达要求的目标点。 A: 大概知道你要干嘛了 可以研究下怎么做比较好 。 A: 强化学习的话gazebo太重了吧,会不会每次的reset太久了。 Q: 同学太重指什么方面呀。 Q: px4 sitl做这个训练几千次是太慢了实时因子还是1.0现在,实时因子还是1.0现在。 A: 跑起来感觉也很难调高 比较麻烦 其实就普通的gazebo仿真就可以… 自己写个动力学模型 我思考过… Q: 我之前试过rotors的 但是我比较想实现速度控制 如果自己弄动力学模型 速度控制这端就不知道该怎么实现。 A: 我们可以先想想用px4有啥优点 比自己写动力学模型,你怎么看呢,如果自己写动力学模型 就会简易很多,不需要管px4代码。 Q: 老师我那时候也考虑过这个问题 但是后来不知道该怎么下手这个问题。 A: 自己写动力学就是你写一个函数订阅速度指令,然后根据速度积分算出位置,在gazebo中更新… Q: 他有position_control 和roll pitch yaw_rate thrust这两个底层的控制得接口 A: 老师那不是需要将速度控制信息解算到转子转速上面嘛? Q: 你就是位置环啊,思考下。 A: 老师意思是通过速度积分到位置 然后通过位置环控制无人机是嘛? Q: 强化学习 用px4 sitl效率确实有点低,之前看有用Airsim跑的还 有个同学硕士毕业的时候是用webots跑的无人机的强化学习。 A: 你的强化学习要的就是环境状态和无人机状态 你强化学习输出是速度 你就是想办法怎么用速度 算出状态 不需要搞那么复杂。 Q: 老师再请教个问题:无人机动力学模型解算出无人机状态以后,通过tf知道传感器位置,那传感器数据应该如何获取呀? A: 你现在是怎么获得的?你用的什么输入,简化的激光点云,还是深度点云?获取方法可以是无人机模型上放gazebo的插件,比如相机、激光雷达 也可以自己写程序模拟。 Q: 我目前用的是gazebo插件 kinect相机 你想要的什么?多少维的 数据 就是点云即可?那就还用插件呗 简单点。 Q: 老师我目前理解是这样的 通过动力学方程通过控制量解算无人机位姿 然后得到相应传感器的数据 但是无人机不是还需要和gazebo进行交互才能运动起来嘛 我理解上是px_4目前提供了这么一个交互得功能 我用插件传感器 那该实现无人机按照我解算的姿态运动呢。 A: 你还需要姿态? Q: 需要yaw角 。 A: 是啊,那你就也有yaw角速度指令呀那就积分算呀 算完之后set给gazebo 好像群里就你一个做强化学习的。 Q: 老师直接用set_model设置无人机状态嘛? A: 频率要高点 不然飞机会掉下来 不对,要把模型设为static就行,我做过一个类似的,当时要做一个40机的仿真,但px4 sitl太吃力了,就自己重写了。
----------------------------------------------------------------------------------------------------------------------------
第11期 1、 Q: 图一是启动多机仿真的launch文件,指定了无人机编号,但是在实机测试的时候不需要启动这个launch文件,请问那么在图二中的uav0或者uav1怎么进行访问呢? A: 实机也是要启动mavros的,在启动真机mavros的launch文件时加上命名空间就可以了。
2、Q: 请问这个包是在哪找的,我在GitHub上没找到、 A: 这个是套机的吧 ,买飞机送的。
3、Q: 各位师兄好,我想问一下从运动规划的角度来说,如何能在生成一条较好的轨迹的同时保证跟踪的目标尽可能处在无人机视野中心呢?或者说如何能让无人机整条轨迹中,可以看到目标的轨迹段占比尽可能多呢? A: 纯学术问题,轨迹优化的时候加一下目标位置的代价,高飞今年ICRA有一篇类似的论文,“Fast-Tracker:ARobustAerialSystemforTrackingAgileTargetinClutteredEnvironments”
4、
Q: 想问一下,ORB-SLAM和yolo目标检测相结合的话,要修改各自哪部分的代码呀? A: YOLO正常开着修,改ORB-SLAM的代码,订阅检测结果话题就行@华理-月月-路径规划。 A:
5、Q: 你好,我们实验室有optitrack设备,这样是不是就不需要t265了,如果用optitrack来做定位的话,编队飞行那一部分,请问在哪里修改来替代t265获取位置信息?optitrack发布多个位置信息,每架飞机怎么来订阅对应自己的位置呢? A:
6、Q: 请问大家promethues里面的ego_planner都跑通了吗?大家运行./compile_planning.sh的时候出现过各种未定义的引用的错误吗? A:
A: 编译的时候就没过把,我当时也是Planning有个出错。。 A: 未定义的引用“是cmake版本的问题,升级到3.15版本就好了,大家有类似问题的可以参考这个。
----------------------------------------------------------------------------------------------------------------------------
第12期
1、 Q: 室内定点飞行能改用激光雷达吗 A: 可以,NX开发板,Ubuntu18.04,思岚S1雷达,扫描频率20HZ,室内定点很稳 1.检测运行雷达和slam roslaunch rplidar_ros view_rplidar_s1.launch rolaunch rplidar_ros slam.launch 2.px4通讯 sudo chmod 777 /dev/ttyTSH0 roslaunch mavros px4.launch 3.运行location //在location包里运行 source devel/setup.bash rosrun location location 4.检查是否运行成功 rostopic echo /mavros/vision_pose/pose 是否有输出
A: 坐标系得改一下。 A: 还有ekf_改24就行了。
2、
Q: 请问是不是出来这个就表示px4编译成功了啊? A: 还不是 检查连接状态是不是conected Q: 是mavros和px4连接吗?
A: 这是编译成功了 再运行一下 mavros px4.launch 可以打印一下 mavros/state看一下是否已连接 Q: roslaunch px4 mavros_posix_sitl.launch我刚刚运行的这个,不知道是不是这个,应该算连接上了吧。 A: 为什么不参考下prometheus中的设置呢? Q:好 我去试试
3、
Q: 大佬们,连p450的时候有没碰到这种情况? A: nomachine版本不一致有这个问题,pc的版本和机载计算机的版本不一致
4、 Q: p450检测不到t265,有人碰到这个问题吗 A: 这个要确定什么线材 是不是我们提供的t265 ,线材接触不良 ,除了线材问题 系统是识别的
5、 Q: 我的px4接jetson nano和 nx,接(6 8 10)的引脚,但cat /dev/ttyTHS1 nano会有数据传输,但换nx就没有 A: THS1改成0试一试 Q: 确实 我整错串口号了
6、 Q: 仿真的时候飞机一起飞,就一直上升,超出了范围
Q:roslaunch prometheus_gazebo sitl.launch rosrun prometheus_control terminal_control 控制输入 999,然后输入1 起飞,就飞走了 其它的功能也是这样。 A: 感觉像是 ekf_vision 模式那里 是不是没调对? A: 是不是订阅的odom话题不对?
A: 直接运行sitl_control.launch Q: 效果一样 没有改过,用的默认环境装的,之前其他电脑装过一次,没有出现这个问题 挺奇怪。 A: 这个选的什么 gazebo真值数据没有传进去,正常在地面上的z为0.17左右 。
----------------------------------------------------------------------------------------------------------------------------
第13期
1、
Q: 请问大家试过怎样解除 px4 的自稳限制吗? 不想要自稳
A: 旋翼manual背后就是自稳模式,不想要自稳 飞行模式不设置自稳就可以了
2、 Q: 普通的pixhawk飞控可以刷pixracer的固件吗? A: 他们刷的都是px4固件
Q: 请问执行上面这指令出现下面这个图对吗? A: imu detected 或者echo /mavros/imu/data
4、 Q: 有大佬搞过基于3D激光雷达的建图和定位吗, 有没有遇到过融合出来的位姿短时间内还可以,时间稍微久点久会有漂移,会一直累计。 A: 这应该算正常现象吧 。 A: 这又不是视觉有loop back,我们之前用16线雷达测试的时候也会有点飘 Q: 那你们后来是怎么解决这个问题的 A: 可以用外部方法进行修正,长廊环境下飘得比较严重 A: 外部传感器,比如用gnss吗? 我们当时是加了一个单目usb摄像头,跑到一个地方之后用pnp解算到特征物距离,传到ros中修正位置,点云的特征太稀疏了,用特征匹配的方法回环貌似不太行 Q: 我刚才想的是使用gnss和激光位姿做紧耦合,会相对来说改善一些,我们主要考虑山谷飞行,所以gnss信号也不太好。
5、 Q: 请问大家 px4控制小车的offboard设置和飞机有什么差异吗?我在小车上的设置,无法切换到offboard A: 可以切啊,不过得持续发控制命令,frame写错了吧,你设置成1看看。
6、
Q: 请问什么软件可以编辑STL文件A: solidworks
7、 Q: 大家好 请问px4做小车的话,电调是只能正转吗 A: PWM输出范围是1000-2000,在这个范围 有电机可以正转 反转,具体看你用的电机 可能只能正转,电机都不转? 那你要看下飞控现在pwm输出多少-电调可用吗-电机可用吗,很有可能还没解锁 还没有pwm输出。 Q: 我是觉得因为有 数传的通讯,我用遥控是可以的,但是接了offboard 就不行了,运行的戚博的terminal_rover,仿真是可以的 。 A: 你竟然把我自己没跑成的跑成了?我仿真里就乱转了。 A: 仿真里车没有问题,真机测试 怎么也跑不起来 。 Q: 建议不用px4做小车 不然只能各种踩坑
8、 Q: 请问一个关于px4小车的开发问题,pixhawk4有8个I/O口,飞行电机占了4个,我想利用剩下的4个I/O口输出pwm信号,想着直接将遥控器上的三段开关映射到I/O口,是否可行,如果可行怎么才能做到? A: 代码不支持,可以通过修改pwm输出的代码可以实现。 Q: 是指mixer里面的代码吗,我看控制组里面只有AUX OUT,没有MAIN OUT,而且要和遥控器映射好像得用到地面站,地面站映射选项只有两个AUX OUT A: 可以改混空 不是 是添加控制量 或者fmu.cpp最外层改 控制量actuator填值。
9、
Q: 请教一下大家,px4v1.11代码中,位置估算模块是怎么样实现调用run函数的啊,求解答
A: work queue里调用的吧。
10、
Q: 请教一下大家,我在真机飞行的时候用代码进去offboard模式,之后用遥控器切换到altitude模式或者position模式,此时无人机只会自动降落,不会受遥控器的控制,有什么方法可以让遥控器有控制权呢。 A: 不进offboard可以 。 Q: 同学你好,我刚刚测试了一下,和failsafe offboard无关。因为我在切换模式的时候qgc没有任何的警告,而我用代码专门将offboard控制信息的频率提高到大于2hz或者关闭offboard的节点,他都会报failsafe enabled:no offboard,也就是说如果和failsafe有关,那qgc会有这个提示。所以得到上面的结论。 A: 直接用mavros 切换模式 。 Q: 我想这样做的目的是为了飞机万一失控可以用遥控器进行控制,就是一个安全的考虑。 A: 安全的话卸桨测试,之后加个kill switch就得了。 A: 我这边是遥控器切offboard,遥控器切出,没有这个问题。
11、 Q: 兄弟们,请问下px4日志查看姿态的roll实时量看哪个参数啊 .setpoint表示的含义是不是设定值啊,就是控制输入的,不是最后实际的姿态量啊。
A: 更确切地说应该叫参考指令或者参考信号
----------------------------------------------------------------------------------------------------------------------------
第14期
1、Q: 您好,请问要用实机实现这个ego_planner的项目的话,机载电脑需要什么配置呢?树莓派?Nano?还是必须得是TX2或NX呢? A: 我用树莓派复现过fastplanner,ego planner应该也差不多 Q: 你用的啥传感器? A: t265+d435 A nano和树莓派都可以~~这两个我试了,vins还是用nx。
2、 Q: 请问offboard模式可以直接通过遥控器切入吗? A: 可以啊 ,qgc遥控器通道设置下 。
3、 Q: 遥控器切换到offboard切换不了,提示这个是什么原因呢? A:可以尝试搜一下PX4源码 看看原因。
4、 Q: 大家好,我正在用arUco做定位,请问大家有没有遇到过一个问题,就是二维码相对视野也很小的时候,会发生定位的跳变?例如真是位置是x轴0.7m,但有时会跳变到-0.7m 二维码相对视野大时,就不会发生这个问题? A: 镜面效应? Q: 搜到源码只有这个,意思是没有解锁吗? A: aruco确实跳的厉害有时候。 Q: 大概在这个位置识别右上角的小二维码,就会跳变,很奇怪的是,三维坐标的绝对值不变,正符号会跳,很奇怪的是,三维坐标的绝对值不变,正符号会跳。 A: 一般需要kf来稳定数据,或者多个marker来提高鲁棒性。 Q: 调试结果发现,是x和y的旋转方向他自己算出来的是反的 z轴旋转角度正确。
5、
Q: 请问大家,如果将板载电脑换成nx的话,分电板连接DC19v端口给nx供电时需要一个限压模块吗?
A: 直接用4s电池连接 ,不需要限压,你可能需要的是升压(稳压)模块,主要看电池电压是多少,4s最高是16.8,我觉得长期欠压工作不太妥当。
A: 你要看你要的是多少电压啊 是不是宽压? Q: Prometheus推荐的梯子Stellar好像没法在arm64上使用吧。 A: NX电压范围是12-19V,电流大一些都行把 用的板载计算机是Xavier。 A: 实在没法,那就在电源上多做一些工作了。1)做好全系统地平面设计,最好单点。2)串肖特基后大电容储能,小电容去噪,再过一个好点的dcdc。3)任务机到飞控机信号传输用光隔离或磁隔离,等等。
6、
Q: 有人遇到过roslaunch多无人机,给指令无人机没反应的嘛?px4也已经切换到Prometheus_swarm分支了,不知道是不是我之前自己安装过Firmware,后来删除了直接下的Prometheus_px4,正常跟踪室外的单机可以飞,就是一到swarm无人机没反应,多无人车有反应。
A: 我遇到过本来发送给1的指令,结果2动了 我感觉应该是mavlink的端口配置问题。 Q: 这个端口不应该都配置好了嘛,每个无人机对应mavros端口。 A: 都配置好的 按照wiki走不会出错 看到你的issue截图,你是source路径没改,仔细看看wiki的安装说明 。 Q:找到原因了! 它报错找不到Prometheus_control功能包下面的swarm_control,因为阿木github上写的代码功能包是Prometheus_control,但是应该是Prometheus_swarm_control 要自己改,github克隆下来的有错。但是我试了下还是不行呢,转了一下解锁没起飞。
A:仔细看下wiki ,没说可以跑的,就不要自己跑了。
Q: 好的,我跑能跑的,一起飞就连接不到飞控,没动静,环境变量也加了。
A: 先切回去分支 试试单个的。
A: 如果单个没问题,可以控制,那看下这个:
Q:
A: unconnected 本质是端口号,但你这里感觉是你分支没切过去 ,群里有运行这个没问题的吗? Q: 感觉是显示切了没切成功,我用swarm跑单个的也可以跑。 A: 切过去你编译PX4了吗?可能你需要先切分支再递归 我之前递归完以后 分支也切不过来。
A: 戚博:我下周就把集群和单个的合并了。。。就没这么多破事了 关键大家都还是跑包的心态,不懂底层,没法自己debug,这也是为啥说环境最好都要自己配,每一步都有意义的,单机和集群的px4代码改动的区别主要在哪,就是为了支持更多飞机(20架以上),所以在ros里改动了端口号,就是为了支持更多飞机(20架以上),所以在rcs里改动了端口号,我上次集群公开课里讲过,PX4原生只支持10架、20架,多了就出问题了。
Q: 问题解决了,就是切换分支没有成功的问题,但是只要第一次递归过后面就切不回来了,是通过群友的提醒,重新下了一个prometheus_px4,一开始先切换分支到prometheus_swarm再递归编译,用两个不同名字的px4环境文件,用哪个文件就再环境变量.bashr里面改路径,正常的切换无法切换,希望能帮到有过同样问题的朋友。
7、
Q: 请问Xavier NX板载计算机上有啥科学上网软件推荐吗?wiki中推荐的好像只有amd64的。 A: 感觉不如直接把翻墙设置在路由器里 这样所有的终端都能上了,一劳永逸。 8、 Q: 报错了,。。。 请问下各位大佬,为什么提示这个问题?
Q: 可以了,飞控串口连接的问题,飞控跟nx的串口连接没接好,接好了就显示了。 A: 这个是已开始没有发现设备,后来发现了吧?没影响的。 ----------------------------------------------------------------------------------------------------------------------------
第15期
1、 Q: 我的飞机只要通过 gcs接上地面站 就疯狂报错,这是什么原因呢? Q: 破案了 好像是固件版本的问题。 大家用1.12.3有遇到问题吗? 2、 Q: rtsp在tx2里面才能用? A: arm处理器都可以安装这个包。 A: linux。 Q: 虚拟机x86可以用吗? A: 可以网络 端口对就行。 3、 Q: 有没有同学遇到过,gazebo中插入自己定义的ground plane,然后在某些角度看不到,然后用摄像头看地面纹理,也是会闪烁的。 A: 把地面设置好一点点 可能是几个纹理重合了 高一点点。 Q: 地面描述文件中没有高度这项啊,我尝试加过,没变化。 A: 位置可以自己加, 可能你不是这个原因。 Q: 我把原始ground plane删掉就好了,怎么垫高还是不知道。 A: 所以还是重叠了啊。需要增加sdf的标签,你这个写法直接忽略了,prometheus里好几个world都自定义了地面 ,可以参考。 4、 最近在用大疆的onboard sdk来控制无人机,有三种控制模式,一种是姿态角控制,另一种是速度控制,还有一种是位置控制,我想问一下你们给PX4发控制指令的话是采用哪一种啊,我想借鉴一下。 因为我昨天做实验的时候采用的是姿态角控制,但是好像不是很稳,如果用速度控制的话,我不知道A3飞控的速度反馈来自于哪儿,不确定是不是单纯依靠GPS反馈的,我们是在室内做实验所以不知道速度控制得不得行,向大佬取下经。 A: 都用过,常见的是位置和速度,你做室内,dji的是需要自己写控制器的。 Q: 如果在室外采用速度控制,是不是速度是通过GPS反馈的,飞控的数据都是组合导航滤波后的吧? A: 那你应该发邮件问dji的人呀,我说的也只是我的理解,可能有误。 Q: 用Onboard SDK做A3飞控的上层开发的,我再做做实验看一下吧。 5、 Q: 我在实机上操作飞行实验教程里的px4_sender_oboard_.launch 这个文件的示例,报错如下 请问我能怎么尝试解决? A: 没有 vrpn client ros ,没有设置环境变量吗? 这个包也是要自己装的吧。 Q: 有这个路径,我试试。
6、 Q: 我在用fast_planner的时候订阅了相机的深度信息,相机的位置话题是mavros/local_position/pose。在rviz中发现障碍物的方向不对 本来是朝前的,怎么朝上了,有人遇到过这个问题吗? 我试着将/mavros/local_position/pose的话题做了一下坐标变换后重新以/camera_pos发布,但是还是没用。 A: 修改camera_pose那一个 在这个launch文件的上面应该。 ----------------------------------------------------------------------------------------------------------------------------
第16期
1、 Q: 请问qgc里可以设置重复执行任务多少次或者盘旋多少圈吗? A: 可以。
2、 Q: 请问这个要怎么试呢?我选用四旋翼无人机,group mix 设为2,control 给 roll,pitch,yaw 以及 thrust 四个量的归一化值,这样理解对吗? A: 发过去,echo回来… 看看对不对 ,但这个指令你应该控不好,需要高频率,低延迟。
3、 Q: 大神们有没有遇到过mavros上的话题长时间订阅不到的问题?可能是啥原因? A: 队列长度一致吗,我遇到过,我订阅的长度是知道的,发布的长度在哪看要看mavros源码么? Q: 我当时发布和已订阅消息都是自己写的,所以知道是队列长度的原因,我当时队列长度过长还有不一致,最后都定了10,就能发布和订阅了。 4、 Q: 请问下MxMyMz是指的什么? A: 力矩。 Q: 所以这里三个角度的控制量就是指给的力矩是吧。 A: 对呀,但这里是一个归一化的量 不代表实际值。 5、 Q: uu们请问有做过无人机组网的嘛 如何把飞控都连到一个WiFi下呀? A: 路由器—机载电脑 — 飞控 ,通过wifi连接。 6、 Q: qgc检测不到遥控器的通道怎么回事,说至少5个通道,我现在这有6个通道啊 ? A: 这是一个很正常的遥控器和接收机信号不通, 接收机需要重新校准,试试。 看看遥控器和接收机有没有对频。 7、 Q: Gazebo仿真运行测试,出现上图错误,请问有人知道这是什么导致的呢? A: mavros没连接上飞控。 8、 Q: 想问一个关于无人机集群代码的问题,集中式的控制看懂了,就是给各个无人机绝对位置通过地面站集中控制,但是那个跟随头机的分布式控制的算法,我看代码里写的每个无人机的位置都跑到头机的位置,应该是有一定距离的跟随,以长机为准,多架副机跟随长机再减去起飞位置,得到副机跟随长机后的位置? A: seperation是阵型偏移量 ,offset没什么用 ,都是0 ,可以忽略。 Q: 所有飞机都飞到头机的位置,不都撞一起了吗,怎么实现跟随后间隔一定距离的呢? A: controller controller_num等于2吗? Q: 等于0,应该只是位置控制。 A: 还有1呢。 Q: 知道跟随头机实际就是阵型的平移,跑仿真可以看出来,就是没看懂代码具体实现。1的速度控制没用到吧,cpp文件一开头就写了参数controller_num为0啊。 A: 你要看launch文件啊,不过速度和加速度的控制我都没有最后放出代码,这就是个例子而已。 Q: launch里也是0位置平移跟踪。 A: 其他的暂时不负责答疑哦。
----------------------------------------------------------------------------------------------------------------------------
第17期
1、
|