Skip to content

LemperorD/nav2_ws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

187 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

北航Transistor战队2026赛季哨兵工作空间

此为新版README.md,在将北极熊大量功能包全部fork过来之后笔者重新编写了安装文档。

本仓库为北航Transistor战队2026赛季哨兵机器人的工作空间,参考了深北莫北极熊战队开源的导航功能包,丰富了假裁判系统等功能,同时做了一些修改。

本文档旨在帮助导航小白快速安装2025Transistor哨兵工作空间。

0. 前言

  • Ubuntu 22.04
  • ROS Humble

1. 拉取工作空间的远端仓库并安装子模块

后续脚本文件大多数与主文件夹有关,所以强烈建议安装在主文件夹下,否则需要自行修改大量脚本文件

git clone https://github.com/LemperorD/nav2_ws.git
git submodule update --init --recursive

2. 下载部分第三方软件

笔者将大部分需要在工作空间编译的第三方软件放在了.gitignore里防止更新时打扰到他们,所以此处需要自行使用vcstool,通过功能包中的dependencies.repos来拉取相应的第三方软件。

先配置相关环境。

sudo pip install vcstool2
pip install xmacro

然后正式拉取第三方软件。

vcs import src < dependencies.repos

如果您的ubuntu没有配置英伟达驱动,那么仿真将奇卡无比,请移步飞书文档中的算法通用配置显卡驱动与英伟达容器工具箱

3. 先验点云地图

先验点云用于small_gicp_relocalization功能包重定位,由于点云文件体积较大,故不存储在 git 中,请前往FlowUs下载。

然后将下载目录中的四个点云文件(即*.pcd文件)移动到~/nav2_ws/src/pb2025_sentry_nav/pb2025_nav_bringup/pcd/simulation中。

4. small_gicp第三方库系统安装

small_gicp_relocalization功能包依赖于small_gicp这一第三方库进行开发。笔者习惯于将系统安装的第三方库放在主文件夹的自定义文件夹下编译安装,接下来的命令将如此做。

mkdir -p ~/tools && cd ~/tools
sudo apt install -y libeigen3-dev libomp-dev
git clone https://github.com/koide3/small_gicp.git
cd small_gicp
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release && make -j
sudo make install

5. KISS_Matcher第三方库系统安装

buaa_sentry_relocalization功能包的粗配准部分以及kiss_matcher_relocalization功能包依赖于KISS_Matcher这一第三方库进行开发。

mkdir -p ~/tools && cd ~/tools
git clone https://github.com/MIT-SPARK/KISS-Matcher.git
cd KISS-Matcher

接下来修改Makefile中的cppinstallcppinstall_matcher_only为如下所示(添加两行)

cppinstall: deps
	@mkdir -p cpp/kiss_matcher/build
	@cmake -Bcpp/kiss_matcher/build cpp/kiss_matcher -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_CXX_FLAGS="-fPIC"
	@cmake --build cpp/kiss_matcher/build -j$(nproc --all)
	@$(SUDO) cmake --install cpp/kiss_matcher/build
	@$(SUDO) cmake --install cpp/kiss_matcher/build/_deps/robin-build

cppinstall_matcher_only:
	@mkdir -p cpp/kiss_matcher/build
	@cmake -Bcpp/kiss_matcher/build cpp/kiss_matcher -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_CXX_FLAGS="-fPIC"
	@cmake --build cpp/kiss_matcher/build -j$(nproc --all)
	@$(SUDO) cmake --install cpp/kiss_matcher/build
make deps & make cppinstall

6. TEASER-plusplus第三方库系统安装

sudo apt install cmake libeigen3-dev libboost-all-dev
mkdir -p ~/tools && cd ~/tools
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake .. && make
sudo make install
sudo ldconfig

7. MVS第三方库系统安装

MVS下载中心

下载linux版本的MVS并安装其中的deb包,注意与自己使用的cpu架构对应

MVS会安装在/opt目录下, 然后运行下述命令来删除海康的libusb库以防止污染环境

sudo rm -rf /opt/MVS/lib/64/libusb-1.0.so.0

可能以后新版本的MVS自带的usb驱动不叫这个名字,记得自己看一下/opt/MVS/lib/64/的内容

8. 针对实车的小修改

由于今年的哨兵采用双上位机,视觉与导航的代码相分离,所以pb2025_rm_vision在实车中完全无用,当上位机没有openvinotensorrt环境时需要进行一定修改才能通过编译,修改过程如下:

  • 删除armor_detect_openvinoarmor_detect_tensorrt两个功能包
  • src/pb2025_rm_vision/pb2025_vision_bringup/CMakeLists.txt中注释掉model的安装部分,即:
ament_auto_package(
  INSTALL_TO_SHARE
  launch
  # model
  params
  rviz
)

接下来的实车代码维护记得不要提交视觉子模块即可

9. 编译

上述步骤已经将所需的都安装好了,可以开始编译了。

cd ~/nav2_ws
rosdep init # 如果初始化过rosdep请忽略这一步
rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

注:上位机可能算力不够,初次编译会出现死机状况,可以增加 --parallel 2 参数,调整后命令如下:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --parallel 2

10. 运行

先在工作空间根目录下source环境变量。

source ./install/setup.bash

terminal 1

~/nav2_ws/scripts/simu_gz.sh
ros2 launch rmu_gazebo_simulator bringup_sim.launch.py

此处记得点击gazebo界面中左下角的启动键,不然将无法发布机器人内部各个零件间的tf变换。

terminal 2

如果rviz出现闪烁问题,可以尝试先设置环境变量

export QT_SCREEN_SCALE_FACTORS=1

export QT_ENABLE_HIGHDPI_SCALING=0

导航模式

~/nav2_ws/scripts/simu_nav.sh
source ./install/setup.bash
ros2 launch pb2025_nav_bringup rm_navigation_simulation_launch.py \
world:=rmul_2025 \
slam:=False
#注:上述命令使用了联盟赛的3v3地图,方便后续行为树决策部分使用

建图模式

~/nav2_ws/scripts/simu_map.sh
source ./install/setup.bash
ros2 launch pb2025_nav_bringup rm_navigation_simulation_launch.py \
slam:=True

具体的更改地图、调参等功能请移步tutorial.md查看。

11. 假裁判系统及操作手客户端

使用假裁判系统及操作手客户端需安装如下python第三方库

pip install python-engineio
pip install Flask
pip install flask-cors
pip install flask-socketio

使用./scripts/local_referee_2350.shlocalhost:2350打开网页端假裁判系统

使用./scripts/local_player_5000.shlocalhost:5000打开网页端假操作手客户端

12. 自启动脚本

~/nav2_ws/autostart文件夹下存放着脚本自启动服务文件与对应的安装/卸载脚本,可根据需求自行调整。

~/nav2_ws/autostart文件夹内部的文件架构如下:

├── install.sh					# 安装脚本(需提供root权限)
├── nav_auto_launch.service		# 脚本自启动服务,可在内部调整自启动脚本文件与脚本启动位置
├── serviceInstall.txt			# 调试命令,更方便粘贴
└── uninstall.sh				# 卸载脚本(需提供root权限)

service文件内部使用绝对路径,所以需要根据自己的用户名进行更改

安装命令:

cd ~/nav2_ws/autostart && sudo ./install.sh

卸载命令:

cd ~/nav2_ws/autostart && sudo ./uninstall.sh

About

北航transistor战队2026赛季导航功能包仓库

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors