在dji-osdk-ros中使用waypointV2设计飞行任务时,为实现在飞行过程中实时更改航路及动作,在代码中设...

Completed

Comments

10 comments

  • DJI Developer Support
    这个是sample实现的问题,actionID是保存在主节点的的变量中,航点信息保存在子节点中。这个可以修改一下sample代码解决,两种解决方案供参考: 1、在主节点中修改,上传action后将保存actionID的变量清除 2、参考航点任务的实现,修改到子节点中保存和处理。 存储actionID的代码参考: https://sdk-forum.dji.net/hc/zh-cn/articles/900005798726
    0
    Comment actions Permalink
  • 王旭杰

    请问存储actionID的代码( https://sdk-forum.dji.net/hc/zh-cn/articles/900005798726)的回答中截图的是哪个文件的代码?我在dji-osdk-rosv4.1.0的主节点文件dji_vehicle_node.cpp中没有找到类似的代码?

    0
    Comment actions Permalink
  • DJI Developer Support
    dji_vehicle_node_mission_services.cpp
    0
    Comment actions Permalink
  • 王旭杰

    以及您提到的方案2应该如何实现?必须要上传action无人机才能执行对应动作,而上传action的时候主节点似乎会自动生成一个actionId并保存,如何将这部分功能移到子节点中实现呢?

    0
    Comment actions Permalink
  • DJI Developer Support
    需要根据具体应用写代码实现,sample没有适配这个场景,建议先理解一下代码的实现,再结合需求来写代码。
    0
    Comment actions Permalink
  • 王旭杰

    之前的问题已经解决,但遇到了另一个问题,在对waypointV2的sample进行修改,使其能实现实时控制航点和动作后,第一次上传航点动作时无人机能正常的起飞,并按照航点飞行,此后,在无人机执行航点任务的飞行过程中实时上传新的航点动作也能通过stopWaypointV2Mission停止当前任务,并按新航点飞行。

    问题1:但在一次航点规划任务执行完毕后,在降落的过程中上传新的航点和任务,虽然主节点返回信息表示新的任务成功上传并执行,但实际在dji assistant2的模拟器中,无人机将不会对降落过程中新上传航点做出反应。

    问题2:当降落完成后,上传新的航点,无人机也只会起飞并悬停,不会执行航点任务,只有在其悬停时再上传一次新任务,无人机才会开始执行。(上述操作在主节点回报的信息中都显示成功执行新任务,但在模拟器中的表现并非如此)

    0
    Comment actions Permalink
  • DJI Developer Support
    1、您是什么需求需要在降落过程中再次上传航点动作呢?航点结束动作可以不设置降落或返航,再上传航点任务(如果航点任务没有结束,先stop再重新上传)。 2、降落完成后再上传任务与第一次上传航点任务应该没有区别。“但在模拟器中的表现并非如此”是指模拟器中测试正常但是实飞异常吗?
    0
    Comment actions Permalink
  • 王旭杰

    降落完成后再上传任务与第一次上传航点任务应该没有区别。“但在模拟器中的表现并非如此”是指模拟器中测试正常但是实飞异常吗?

    不是的,是指在无人机降落后,重新上传新的航点和动作后,调用startmission,以上操作主节点均返回successfully的信息,但是在模拟器中,无人机只是在完成起飞动作后就悬停了,并没有按照新的航点和动作飞行,而在悬停状态下,再一次执行上传航点和动作并调用startmission才能让无人机在模拟器中正常飞行。

    总而言之,就是在第一次执行航点任务时只需要上传一次航点任务,执行一次shartmission即可,但当无人机完成一次航点任务并降落停稳后,需要他再执行航点任务时,需要先上传一次航点任务,执行一次shartmission使其悬停,再在悬停状态下上传航点和动作并调用startmission才能完成对应的航点任务。(全程主节点都没有返回错误信息,主节点的终端中返回的都是successfully)

    请问可能是什么情况导致了这个问题?

    0
    Comment actions Permalink
  • DJI Developer Support
    如图所示,基于sample简单做个测试,待飞机执行完第一次完全降落后再次执行,测试正常。(方便测试,仅设置两个航点) ![](https://djisdksupport.zendesk.com/attachments/token/8Q7QUZkNpacHuX3KmU3DWMF7a/?name=inline-1638397023.png)​ ![](https://djisdksupport.zendesk.com/attachments/token/qQBathlwaufZOeQmPpQY7wE0x/?name=inline862056092.png)​
    0
    Comment actions Permalink
  • EFFER

    waypointV2的sample进行修改,使其能实现实时控制航点和动作后,第一次上传航点动作时无人机能正常的起飞,并按照航点飞行

    您好,我最近刚开始接触M300无人机的OSDK_ROS开发,请问您如何修改waypointV2实现航点任务飞行的呢?

    0
    Comment actions Permalink

Please sign in to leave a comment.