此为新版README.md,在将北极熊大量功能包全部fork过来之后笔者重新编写了安装文档。
本仓库为北航Transistor战队2026赛季哨兵机器人的工作空间,参考了深北莫北极熊战队开源的导航功能包,丰富了假裁判系统等功能,同时做了一些修改。
本文档旨在帮助导航小白快速安装2025Transistor哨兵工作空间。
- Ubuntu 22.04
- ROS Humble
后续脚本文件大多数与主文件夹有关,所以强烈建议安装在主文件夹下,否则需要自行修改大量脚本文件
git clone https://github.com/LemperorD/nav2_ws.gitgit submodule update --init --recursive笔者将大部分需要在工作空间编译的第三方软件放在了.gitignore里防止更新时打扰到他们,所以此处需要自行使用vcstool,通过功能包中的dependencies.repos来拉取相应的第三方软件。
先配置相关环境。
sudo pip install vcstool2pip install xmacro然后正式拉取第三方软件。
vcs import src < dependencies.repos如果您的ubuntu没有配置英伟达驱动,那么仿真将奇卡无比,请移步飞书文档中的算法通用配置显卡驱动与英伟达容器工具箱。
先验点云用于small_gicp_relocalization功能包重定位,由于点云文件体积较大,故不存储在 git 中,请前往FlowUs下载。
然后将下载目录中的四个点云文件(即*.pcd文件)移动到~/nav2_ws/src/pb2025_sentry_nav/pb2025_nav_bringup/pcd/simulation中。
small_gicp_relocalization功能包依赖于small_gicp这一第三方库进行开发。笔者习惯于将系统安装的第三方库放在主文件夹的自定义文件夹下编译安装,接下来的命令将如此做。
mkdir -p ~/tools && cd ~/toolssudo apt install -y libeigen3-dev libomp-devgit clone https://github.com/koide3/small_gicp.gitcd small_gicpmkdir build && cd buildcmake .. -DCMAKE_BUILD_TYPE=Release && make -j
sudo make installbuaa_sentry_relocalization功能包的粗配准部分以及kiss_matcher_relocalization功能包依赖于KISS_Matcher这一第三方库进行开发。
mkdir -p ~/tools && cd ~/toolsgit clone https://github.com/MIT-SPARK/KISS-Matcher.gitcd KISS-Matcher接下来修改Makefile中的cppinstall和cppinstall_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/buildmake deps & make cppinstallsudo 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下载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/的内容
由于今年的哨兵采用双上位机,视觉与导航的代码相分离,所以pb2025_rm_vision在实车中完全无用,当上位机没有openvino与tensorrt环境时需要进行一定修改才能通过编译,修改过程如下:
- 删除
armor_detect_openvino和armor_detect_tensorrt两个功能包 - 在
src/pb2025_rm_vision/pb2025_vision_bringup/CMakeLists.txt中注释掉model的安装部分,即:
ament_auto_package(
INSTALL_TO_SHARE
launch
# model
params
rviz
)接下来的实车代码维护记得不要提交视觉子模块即可
上述步骤已经将所需的都安装好了,可以开始编译了。
cd ~/nav2_wsrosdep init # 如果初始化过rosdep请忽略这一步rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -ycolcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release注:上位机可能算力不够,初次编译会出现死机状况,可以增加
--parallel 2参数,调整后命令如下:colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --parallel 2
先在工作空间根目录下source环境变量。
source ./install/setup.bash~/nav2_ws/scripts/simu_gz.shros2 launch rmu_gazebo_simulator bringup_sim.launch.py
此处记得点击gazebo界面中左下角的启动键,不然将无法发布机器人内部各个零件间的tf变换。
如果rviz出现闪烁问题,可以尝试先设置环境变量
export QT_SCREEN_SCALE_FACTORS=1或
export QT_ENABLE_HIGHDPI_SCALING=0~/nav2_ws/scripts/simu_nav.shsource ./install/setup.bash ros2 launch pb2025_nav_bringup rm_navigation_simulation_launch.py \ world:=rmul_2025 \ slam:=False #注:上述命令使用了联盟赛的3v3地图,方便后续行为树决策部分使用
~/nav2_ws/scripts/simu_map.shsource ./install/setup.bash ros2 launch pb2025_nav_bringup rm_navigation_simulation_launch.py \ slam:=True
具体的更改地图、调参等功能请移步tutorial.md查看。
使用假裁判系统及操作手客户端需安装如下python第三方库
pip install python-engineio
pip install Flask
pip install flask-cors
pip install flask-socketio使用./scripts/local_referee_2350.sh在localhost:2350打开网页端假裁判系统
使用./scripts/local_player_5000.sh在localhost:5000打开网页端假操作手客户端
在~/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