Skip to content

binbin2002/Unitree_G1_Navigation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

「基于Unitree G1 导览讲解机器人」

本项目是基于宇树Unitree G1 人形机器人二次开发的,实现3D SLAM建图,2D导航、语音交互和运动控制集成,可用于语音导览讲解机器人。

项目核心内容:

  • 基于FAST-LIO2的3D激光里程计与建图
  • 基于双重ICP的重定位
  • 2D栅格地图导航(A*+TEB)
  • 集成Unitree SDK,可调用多个内置动作和舞蹈
  • 集成语音助手,支持大模型的问答

环境依赖

  • ubuntu20.04(ROS noetic)
  • 依赖库 Eigen,PCL,Open3d Livox-SDK2,Unitree_SDK2_python

部署

1.克隆仓库

git clone https://github.com/binbin2002/Unitree_G1_Navigation.git
cd Unitree_G1_Navigation
git submodule update --init --recursive

2. 安装依赖

  • 安装依赖包

    sudo apt install ros-noetic-local-planner ros-noetic-global-planner ros-noetic-costmap-server
  • 安装 Livox SDK2

    sudo apt install cmake
    git clone https://github.com/Livox-SDK/Livox-SDK2.git
    cd ./Livox-SDK2/
    mkdir build
    cd build
    cmake .. && make -j
    sudo make install

3. 更改配置

  • 更改雷达ip及地图保存路径
    # 修改本机与雷达ip
    cd /G1Nav2D/src/livox_ros_driver2-master/config/
    gedit MID360_config.json
    根据本机IP和雷达IP地址,修改为对应ip
     "host_net_info" : {
        "cmd_data_ip" : "192.168.123.222",
        "cmd_data_port": 56101,
        "push_msg_ip": "192.168.123.222",
        "push_msg_port": 56201,
        "point_data_ip": "192.168.123.222",
        "point_data_port": 56301,
        "imu_data_ip" : "192.168.123.222",
        "imu_data_port": 56401,
        "log_data_ip" : "",
        "log_data_port": 56501
      }
    },
    "lidar_configs" : [
      {
        "ip" : "192.168.123.120",
        "pcl_data_type" : 1,
        "pattern_mode" : 0,
        "extrinsic_parameter" : {
          "roll": 3.1415,
          "pitch": 0.0,
          "yaw": 0.0,
          "x": 0,
          "y": 0,
          "z": 0
        }
    #修改地图保存路径,将该文件下最底部路径改为自己的电脑
    cd G1Nav2D/src/fastlio2/src/
    gedit map_builder_node.cpp

4. 编译程序

cd G1Nav2D/
catkin_make

#遇到报错可先执行以下命令
cd G1Nav2D/livox_ros_driver2-master/
./build.sh ROS1
cd /G1Nav2D/
catkin_make

5.建图及保存

  • 建图

    # 建图
    cd G1Nav2D/
    source devel/setup.bash
    roslaunch fastlio mapping.launch
    
    # 打开新终端
    cd G1Nav2D/
    source devel/setup.bash
    # 保存地图,自定义路径及地图名称
    rosrun map_server map_saver map:=/projected_map -f /home/nvidia/mymap
  • 编辑地图

    # 打开地图,利用Map Eraser Tool修改地图,ctrl+加号或减号可修改画笔大小,保存地图
    source devel/setup.bash
    roslaunch ros_map_edit map_edit.lunch

6.开启导航

-启动导航

#修改地图路径
cd HongTu/G1Nav2D/fastlio2/config/
gedit gridmap_load.launch

# 启动导航,启动导航后需自行按照雷达位置重定位
cd HongTu/G1Nav2D/
source devel/setup.bash
roslaunch fastlio navigation.launch
  • 启动运控
    安装unitree_sdk2_python参考宇树官方文档
    # 打开新终端,网口可通过ifconfig命令查询自行更改
    cd HongTu/unitee_sdk2_python/example/g1/high_level/
    python3 g1_control.py 网口

在rviz中发布目标点即可自主导航

语音交互

实机测试

1. 开始建图

# 开始建图
source devel/setup.bash
roslaunch fastlio mapping.launch
  1. 3d建图————运行重构的fastlio2,保存pcd点云文件
  2. 2d建图————修改octomap_server.launch的max_Z min_Z,得到2d栅格地图
#保存地图
rosrun map_server map_saver map:/projected_map -f /home/nvidia/map

2. 地图编辑

  1. 3d地图编辑————通过cloudcompare直接编辑,降采样、移除离群点
  2. 2d地图编辑————使用ros_map_edit功能包
# 打开地图,利用Map Eraser Tool修改地图,ctrl+加号或减号可修改画笔大小,保存地图
  source devel/setup.bash
  roslaunch ros_map_edit map_edit.lunch

需要确保3d地图和2d地图一致。可以通过pcd2pgm功能包(https://github.com/Hinson-A/pcd2pgm_package)

3. 导航

# 1.启动导航
  source devel/setup.bash
  roslaunch fastlio navigation.launch
# 2.rviz手动重定位
# 3.rviz给定目标点导航(调节move_base参数)
#结合语音播放
python3 point1.py

4. 启动SDK

cd HongTu/unitee_sdk2_python/example/g1/high_level/
python3 g1_control.py enp3s0

Thanks

本项目是在Hongtu基础上完善的,添加了自己在实机部署过程中遇到的一些problem和理解。 感谢上述所有开源项目贡献者。

License

本项目仅供学习交流,请遵守相关开源协议。

About

基于Unitree G1 人形机器人的导览机器人自主导航

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors