当前位置: 首页 > news >正文

网站建设教程论坛网络推广软件免费

网站建设教程论坛,网络推广软件免费,德州网站推广,技术支持 淄博网站建设本框架是基于激光雷达的无人机群自主避障代码: 其主体框架利用ORCA算法,他是经典的多智能体相互避障算法,此版本只能规避动态障碍物,不能规避环境形成的静态障碍物我们对ORVA算法稍作修改,使其可以分布式部署&#xff…
本框架是基于激光雷达的无人机群自主避障代码:
  • 其主体框架利用ORCA算法,他是经典的多智能体相互避障算法,此版本只能规避动态障碍物,不能规避环境形成的静态障碍物
  • 我们对ORVA算法稍作修改,使其可以分布式部署,并且将仿真代码修改为uav实测代码
  • ORCA算法需要知道其他智能体的绝对位置和速度作为算法输入,因此我们需要模块【1】和【2】来补充完成
  • 模块【2】是利用将lidar安装在当前uav上,并用其检测和估计其他无人机的相对位置和速度
  • 因为不满足ORVA算法需要绝对位置和速度的条件,因此需要利用模块【1】来估计当前uav的位置进行结合

【配置规范】不同的包安装在不同的工作空间中,方便管理,如catkin_ws_realsense,catkin_ws_vins,catkin_ws_lidar,catkin_ws_orca

1. 基于VIO/LIO的uav自身位置估计

[1] LIO
因为无人机安装了Lidar,所以用LIO比较好
待安装。。。

[2] VIO
VIO使用Vins,是基于D435深度相机的,具体安装参考D435i+vins-Fusion+ego-planner+yolo无人机避障实测中vins部分

roslaunch realsense2_camera rs_camera_vins.launch 
rosrun vins vins_node ~/catkin_ws_vins/src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config.yaml

2. 利用Lidar检测并估计其他uavs位置和速度

代码下载链接:https://gitee.com/dueen1123/lidar_esti

新建一个catkin_ws_lidar的工作空间
在其中先配置好激光雷达livox的SDK以及ROS版本的SDK,参考链接在此
然后将lidar_esti放在同一工作空间一起编译

代码运行如下:

# 启动激光雷达
roslaunch livox_ros_driver2 rviz_MID360.launch
cd ~/catkin_ws_lidar/src/lidar_esti/scripts
# 运行高反无人机检测
python3 multi_highRreflect_detect.py
# lidar到orca转换脚本
python lidar2orca.py

其中multi_highRreflect_detect.pylidar2orca.py中的DETECT_UAV_NUM变量,需要根据实际uav个数修改

3. ORCA集群避障算法

代码链接:https://gitee.com/dueen1123/orca

实测代码不同的无人机需要添加不同的node_0_true.cpp,以及相对应的rvo_node_true.launchnode_0_true.sh

(1)rvo_node.h修改copy_num_agent变量,改为本次实测的uav个数

int copy_num_agent = 2; // 复制智能体数量

(2)node_0_true.cpp,修改如下代码

void rvo_true_velCallback(const UAVPosVel::ConstPtr &sub_msg){// ...// 用哪架无人机,序号改成几float x = new_velocities[0]->x();float y = new_velocities[0]->y();float z = new_velocities[0]->z();// ...
}

(3)rvo_node_true.launch更改为当前的 node_0_true节点
(4)node_0_true.sh后面的目标点数量,修改与总uav数量一致,并且是第几架无人机,对应的目标点位置才赋值

#!/bin/bash
rosrun rvo_ros set_goals_client_0 default 1 1 1 0 0 0
sleep 8rosrun rvo_ros set_goals_client_0 default 4 1 1 0 0 0 
sleep 6

运行如下:

#启动飞机px4飞控
#启动vins绝对定位
#启动lidar相对定位
cd ~catkin_ws_orca/src/rvo_ros/scripts
# 无人机通信
python multirotor_communication.py iris 0
# 无人机悬停
python hover.py iris 1 vel 
# 启动壁障算法
roslaunch rvo_ros rvo_node_true.launch
# 设置目标点
bash node_0_true.sh

============================ 以下可以忽视 ==========================
ORCA是主要的避障算法
ORCA需要一个自定义话题的输入,也就是一个包含速度和位置的消息
但c++和python自定义消息稍有不同,不能直接引用头文件,然后直接用消息名称使用,如下

#include "UAVPosVel.h"
void rvo_true_velCallback(const UAVPosVel::ConstPtr &sub_msg);

首先,#include可能难以直接定位到UAVPosVel.h,需要在cmakelist中的include_directories添加其生成路径,即xxx/devel/include/package_name
其次,UAVPosVel.h中的类不叫UAVPosVel,他生成了一个模板函数,所以使用时应该重新定义
总结如下:

include_directories(include${catkin_INCLUDE_DIRS}${PROJECT_SOURCE_DIR}/include/3d_library  # 确保这里包含了3d_library目录/home/tju/catkin_ws_orca/devel/include/rvo_ros
)
#include "UAVPosVel.h"
typedef rvo_ros::UAVPosVel_<std::allocator<void>> UAVPosVel;
void rvo_true_velCallback(const UAVPosVel::ConstPtr &sub_msg);
http://www.tj-hxxt.cn/news/110436.html

相关文章:

  • 大陆怎么做香港网站抖音优化
  • 长沙营销网站建设seo优化一般包括
  • 东莞凤岗网站建设seo沈阳
  • 定制开发电商网站建设多少钱郑州seo技术外包
  • 怎么样网站速度快北京网站建设专业公司
  • 郑州外贸网站建设公司需要优化的网站有哪些?
  • 张家港杨舍网站制作个人外包接单平台
  • 个人可以做电影网站吗手机登录百度pc端入口
  • 网站建设logo曹操seo博客
  • 行业类网站模板北京网站优化排名推广
  • 做折线图网站武汉刚刚突然宣布
  • 网站开发对比特点张雪峰谈广告学专业
  • 网站规划 设计 制作 发布与管理过程学seo哪个培训好
  • 深圳有做网站的公司吗在seo优化中
  • 廉政网站建设经验交流微信app小程序开发
  • 企业网站开发汇报挖掘关键词工具
  • 教育直播网站建设seo公司关键词
  • 网站色差表搜索引擎优化原理
  • 做系统网站信息检索网站网店营销的推广方法有哪些
  • java做软件的网站外贸网站平台都有哪些
  • 备案网站内容怎么写迅速上排名网站优化
  • 免费网站设计软件北京中文seo
  • 大学web网站开发百度广告代理公司
  • linux打包网站做备份哪里有整站优化
  • 小公司做网站的实力佛山网站优化排名推广
  • 做网站软文怎么弄销售培训
  • 品牌app定制seo排名优化软件有用
  • 外贸模板建站网络推广平台有哪些?
  • 企业门户网站模板html上线公司的网站制作
  • ecs云服务器建设网站信息流广告公司排名