## 介绍 ***参考元启・鸿图HongTu官方文档在环境配置上可能会有漏包等情况以及一些地址修改的补充和实际操作中遇到的问题分享自己的日志供大家参考***hongtu官方补充## 系统配置### docker配置- 通过docker安装20.04noeticbashdocker build --processplain -t ros-noetic-base -f dockerfile .#给docker 权限sudo usermod -aG docker $USERnewgrp dockerdocker ps#进入docker#启动容器并直接进入docker run -it --name ros_noetic_dev ros-noetic-base /bin/bash#进入一个已经运行的容器docker exec -it ros_noetic_dev /bin/bash#如果容器已经停止启动并附着到容器docker start -ai ros_noetic_dev- 如果发现docker里面没有安装ros可以重新删除容器再装一次bashdocker rm -f ros_noetic_devdocker build --no-cache --progressplain -t ros-noetic-base -f dockerfile .### ros noetic配置- 由于容器里的gui连接不到宿主机的显示服务发现ros的显示界面打不开运行不了海龟例程bash#宿主机先执行允许docker访问x11xhost local:docker#重新建立一个容器docker run --it --rm --name ros_noetic_gui \--gpus all \ #lsy没有gpu的去掉--network host \-e DISPLAY$DISPLAY \-e QT_X11_NO_MITSHM1 \-v /tmp/.X11-unix:/tmp/.X11-unix:rw \ros-noetic-base /bin/bash## 部署### 克隆仓库 bashgit clone https://github.com/yuanqizhiti/HongTu.git### 2D导航- 安装 [Livox SDK2](https://github.com/Livox-SDK/Livox-SDK2)bashsudo apt install cmakebashgit clone https://github.com/Livox-SDK/Livox-SDK2.gitcd ./Livox-SDK2/mkdir buildcd buildcmake .. make -jsudo make install- 更改雷达ip及地图保存路径 bash# 修改本机与雷达ipcd HongTu/G1Nav2D/src/livox_ros_driver2-master/config/gedit MID360_config.json# 修改地图保存路径将该文件下最底部路径改为自己的电脑cd HongTu/G1Nav2D/src/fastlio2/src/gedit map_builder_node.cpp- 编译程序 bashcd HongTu/G1Nav2D/#lsy加载环境source /opt/ros/noetic/setup.bash#lsy永久配置echo source /opt/ros/noetic/setup.bash ~/.bashrcsource ~/.bashrccatkin_make#lsy依赖缺失补充apt update apt install -y \ros-noetic-tf2-sensor-msgs \ros-noetic-gtsam \ros-noetic-pcl-ros \ros-noetic-map-server \ros-noetic-navigation \ros-noetic-livox-ros-driver#遇到报错可先执行以下命令cd HongTu/G1Nav2D/src/livox_ros_driver2-master/./build.sh ROS1cd HongTu/G1Nav2D/catkin_make- 安装依赖包 bashsudo apt install ros-noetic-teb-local-planner ros-noetic-global-planner ros-noetic-costmap-server#lsy没有ros-noetic-costmap-server# 导航全家桶含 costmap_2d、map_server、move_base 等sudo apt install -y ros-noetic-navigation ros-noetic-teb-local-planner- 建图及保存 bash# 建图cd /lsy_ros/HongTu/G1Nav2D/source devel/setup.bashroslaunch fastlio mapping.launch# 打开新终端cd HongTu/G1Nav2D/source devel/setup.bash# 保存地图自定义路径及地图名称#rosrun map_server map_saver map:/projected_map -f /home/nvidia/mymaprosrun map_server map_saver map:/projected_map -f /lsy_ros/mymap- 编辑地图 bash# 打开地图利用Map Eraser Tool修改地图ctrl加号或减号可修改画笔大小保存地图source devel/setup.bashroslaunch ros_map_edit map_edit.launch- 开启导航 bash#修改地图路径cd HongTu/G1Nav2D/src/fastlio2/config/gedit gridmap_load.launch# 启动导航启动导航后需自行按照雷达位置重定位cd HongTu/G1Nav2D/source devel/setup.bashroslaunch fastlio navigation.launch- 启动运控安装unitree_sdk2_python参考[宇树官方文档](https://github.com/unitreerobotics/unitree_sdk2_python.git) bash# 打开新终端网口可通过ifconfig命令查询自行更改cd HongTu/unitree_sdk2_python/example/g1/high_level/python3 g1_control.py 网口在rviz中发布目标点即可自主导航#lsy修改地址,只要出现地址都改成自己相应目录下的cd /lsy_ros/HongTu/G1Nav2D/src/tool/launchnano downsample_pointcloud.launch#lsy修改地址只要出现地址都改成自己相应目录下的cd /lsy_ros/HongTu/G1Nav2D/src/fastlio2/launchnano gridmap_load.launcharg name2dmap_file default/lsy_ros/mymap.yaml /nano navigation.launch#假如出现b2导入错误删除b2引入nano /usr/local/lib/python3.8/dist-packages/unitree_sdk2py/__init__.py 删除b2rootlsy-computer:/lsy_ros/HongTu/unitree_sdk2_python/example/g1/high_level# python3 g1_control.py enx00e4c105a70Traceback (most recent call last):File g1_control.py, line 8, in modulefrom unitree_sdk2py.g1.loco.g1_loco_client import LocoClientModuleNotFoundError: No module named unitree_sdk2py.g1#假如官方的python版本安装后没有g1的模块解决办法通过将hongtu里的g1直接复制到/usr/local/lib/python3.8/dist-packages/unitree_sdk2py同时 nano /usr/local/lib/python3.8/dist-packages/unitree_sdk2py/__init__.py添加g1模块2、lsy:g1导航-hongtu启动流程汇总#启动带显示权限的xhost local:dockerdocker start lsydockerdocker exec -it -e DISPLAY$DISPLAY -e QT_X11_NO_MITSHM1 lsydocker bashxhost local:docker docker start lsydocker docker exec -it -e DISPLAY$DISPLAY lsydocker bash只有这样子才会给rviz显示权限#roscore#进入宇树机器人运控cd /lsy_ros/HongTu/unitree_sdk2_python/example/g1/high_level/python3 g1_control.py enx00e04c105a70网卡按自己的需求改#启动建图cd /lsy_ros/HongTu/G1Nav2D/source devel/setup.bashroslaunch fastlio mapping.launch#进入走跑模式走一圈看 RVIZ 画面中间彩色点云 雷达灰色区域 地图灰色地图完整覆盖你要走的区域 建图完成#新开终端保存建图cd /lsy_ros/HongTu/G1Nav2D/source devel/setup.bashrosrun map_server map_saver map:/projected_map -f /lsy_ros/mymap#启动导航cd /lsy_ros/HongTu/G1Nav2D/source devel/setup.bashroslaunch fastlio navigation.launch#重定位重定位你只需要在 RVIZ 里点两个按钮1. 点左上角 2D Pose Estimate绿色箭头2. 在地图上机器人大概位置点一下3. 拖动方向箭头朝向机器人面对的方向画面立刻匹配 → 重定位成功#开始导航1. 点 RVIZ 上方 2D Nav Goal2. 在地图上点一个目标点3. 拖方向机器人自己走过去