本仓库为2024哨兵导航仓库
main为双头构型,spare-sentry为单头构型
-
📊 决策
-
state_processing
维护一个状态机执行更上层的决策指令
-
-
📍 定位
-
faster_lio
在原有代码基础上利用imu数据结合内部的esekf前向预测,获得了大约200hz的定位频率,增加转换矩阵适应雷达的不同安装
-
fast_gicp
将实时采集的pcd与建图获得的pcd进行icp,维护map->odom的回环检测;经赛场测试,官方uwb定位精度极高,因此选择在uwb和定位高度不匹配时在此线程重启lio进行重定位
-
-
👁️ 感知
-
pointcloud_repub
裁切进入lio前的点云,变换lio去畸变后的点云到世界系,融合其他传感器(如d435)点云
-
terrain_anlysis
可根据雷达fov选择每次分析时更新地图栅格的区域,适应各种雷达安装方式
-
obstacle_generator
根据赛场已知地图,将静态障碍物发布为障碍物点云供规划使用
-
-
📅 规划
-
far_planner
以拓扑图为基础的全局规划,在动态场景下效果较好,规划的路径相较A*更加适配下层离线轨迹的local planner
-
local_planner
cmu_exploration的local_planner,以离线轨迹为基础,为适应全向移动在轨迹评分上有部分改动
-
-
⚙️ 执行
-
path_follow
简单的比例跟随轨迹,为适应赛场决策,目标跟随,云台控制,小陀螺等决策指令也在这里一并处理发出
-
-
📡 通信
-
nav_transporter
使用usb通信,can通信长时间未维护
-
-
下载所需依赖:
apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE echo "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" > /etc/apt/sources.list.d/realsense.list apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential cmake libeigen3-dev libpcl-dev libgoogle-glog-dev libudev-dev git libxrandr-dev libxi-dev libxinerama-dev libsdl2-dev libusb-1.0.0-dev cp -rf /usr/include/eigen3/Eigen /usr/include/Eigen -R
-
clone该仓库:
git clone [email protected]:IRobot-Algorithm/sentry_navigation.git
-
使用
lfs
下载所需的第三方库:git lfs install git lfs pull
-
解压并编译安装第三方库:
for file in ./thirdparty/*; do \ if [ -f "$file" ]; then \ case "$file" in \ *.tar.gz) tar -xzf "$file" -C ./thirdparty ;; \ *.zip) unzip "$file" -d ./thirdparty ;; \ *.tar.bz2) tar -xjf "$file" -C ./thirdparty ;; \ *.tar.xz) tar -xJf "$file" -C ./thirdparty ;; \ esac; \ rm "$file"; \ fi; \ done find ./thirdparty -name "install.sh" -type f -exec bash -c 'cd "$(dirname "{}")" && chmod 777 install.sh && ./install.sh' \;
-
下载所需ROS第三方库:
apt-get install -y ros-noetic-rviz ros-noetic-cv-bridge ros-noetic-pcl-ros \ ros-noetic-tf-conversions ros-noetic-eigen-conversions \ ros-noetic-ddynamic-reconfigure ros-noetic-diagnostic-updater \ ros-noetic-image-geometry ros-noetic-costmap-2d \ ros-noetic-nav-core ros-noetic-navfn
-
运行
build.sh
./build.sh
source /opt/ros/noetic/setup.bash
source /devel/setup.bash
roslaunch nav_bringup sentry_nav.launch
-
生成image
docker build . -t sentry_navigation:latest
-
生成container
docker run -it sentry_navigation:latest
-
运行
source /opt/ros/noetic/setup.bash source /devel/setup.bash roslaunch nav_bringup sentry_nav.launch