宇树机器人g1二次开发:建图,定位,导航手把手教程(二)建图部分:开始一直到打开rviz教程

注意:

本教程为ros1,需要ubuntu20.04,使用算法为fase_lio

本教程为遵循的网上开源项目:https://github.com/deepglint/FAST_LIO_LOCALIZATION_HUMANOID.git

一、系统环境准备

1.1. 安装必要的依赖库

# 安装C++标准库 sudo apt install libc++-dev libc++abi-dev # 安装Eigen3线性代数库 sudo apt-get install libeigen3-dev

库说明:

  • libc++-dev:C++标准库开发文件
  • libeigen3-dev:线性代数库,用于矩阵运算和几何变换
  • 这些是编译FAST-LIO和Open3D必需的数学和系统库

二、创建工作空间和准备

2.1. 创建定位工作空间

mkdir -p ~/ws_loc/src cd ~/ws_loc/src

把https://github.com/deepglint/FAST_LIO_LOCALIZATION_HUMANOID.git这个项目移到这里

三、获取并配置Open3D库

3.1. 下载预编译Open3D库

3.2. 编辑CMakeLists.txt

# 编辑CMakeLists.txt配置Open3D路径 cd ~/ws_loc/src/FAST_LIO_LOCALIZATION_HUMANOID/open3d_loc nano CMakeLists.txt

3.3. 修改CMakeLists.txt中的Open3D路径

将:set(Open3D_DIR "/home/liar/open3d141/lib/cmake/Open3D")中的liar改成自己home名字修改为你的用户名(假设用户名为 your_username):

set(Open3D_DIR "/home/your_username/open3d141/lib/cmake/Open3D")

保存操作: 修改完后按 Ctrl+X,然后输入 Y,最后按 Enter

3.4. 完成Open3D的配置

cd ~/ws_loc catkin_make -DROS_EDITION=ROS1

 

四、安装Livox SDK和相关驱动

4.1. 安装Livox-SDK2

# 克隆Livox-SDK2 git clone https://github.com/Livox-SDK/Livox-SDK2
# 编译安装 cd Livox-SDK2 mkdir build && cd build cmake .. && make -j sudo make install

4.2. 安装Livox-SDK(旧版)

# 克隆Livox-SDK git clone https://github.com/Livox-SDK/Livox-SDK

# 重命名并处理嵌套文件夹 # 注意:文件有两层嵌套,需要删除第二层嵌套文件夹

# 编译安装 cd Livox-SDK mkdir build && cd build cmake .. && make -j sudo make install

注意: 如果遇到cmake版本兼容问题,尝试使用策略跳过

4.3. 安装livox_ros_driver

# 克隆驱动 git clone https://github.com/Livox-SDK/livox_ros_driver

# 重命名并处理嵌套文件夹

# 创建livox专用工作空间 mkdir -p ~/ws_livox/src cd ~/ws_livox/src
# 创建符号链接 ln -s ~/livox_ros_driver . # 编译 cd ~/ws_livox catkin_make

注意: 如果遇到cmake版本兼容问题,尝试使用策略跳过

五、解决编译问题和配置

5.1. 重新配置和编译定位系统

cd ~/ws_loc/build cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ../src -DROS_EDITION=ROS1 make -j

六、配置激光雷达

6.1. 配置激光雷达参数文件

cd ~/ws_loc/src/FAST_LIO_LOCALIZATION_HUMANOID/livox_ros_driver2/config nano MID360_config.json

配置文件,校正激光雷达在G1机器人上的安装姿态,确保点云数据坐标系正确

 

6.2. 修改IP地址配置

桥接机器人,检查本机IP地址:

hostname -I
  1. 将MID360_config.json配置文件中的IP地址:
"host_net_info": { "cmd_data_ip": "192.168.123.222", ... }

修改为你自己的IP地址,例如:

"host_net_info": { "cmd_data_ip": "192.168.123.111", ... }

七、环境配置和连接测试

7.1网线连接机器人配置
(也可以先跳过这一步进行下面的步骤,后面遇到问题再来修改)

在home中:

nano ~/.bashrc

在文件末尾添加:

# 有线连接配置 export ROS_MASTER_URI=http://localhost:11311 export ROS_HOSTNAME=localhost

注释掉其他ROS相关配置(如果有):

# export ROS_IP=192.168.111.128 # export ROS_IP=192.168.123.111 # export ROS_MASTER_URI=http://192.168.123.161:11311 # export ROS_IP=192.168.123.99

八、运行FAST-LIO系统

8.1. 测试激光雷达连接

# 测试激光雷达IP连通性 ping 192.168.123.120

8.2. 打开四个终端运行系统

终端1:启动ROS核心
roscore
终端2:启动建图系统
cd ~/ws_loc source devel/setup.bash roslaunch fast_lio mapping_mid360_g1.launch
终端3:启动雷达驱动
cd ~/ws_loc source devel/setup.bash roslaunch livox_ros_driver2 msg_MID360.launch
终端4:启动可视化界面
rviz

九、添加显示项

Read more

【C++】告别“类型转换”踩坑,从基础到四种核心强制转换方式

【C++】告别“类型转换”踩坑,从基础到四种核心强制转换方式

各位大佬好,我是落羽!一个坚持不断学习进步的学生。 如果您觉得我的文章还不错,欢迎多多互三分享交流,一起学习进步! 也欢迎关注我的blog主页:落羽的落羽 文章目录 * 一、回顾C语言的类型转换 * 二、C++中的类型转换 * 1. 内置类型转为自定义类型 * 2. 自定义类型转为内置类型 * 3. 自定义类型之间的转换 * 4. 类型安全与C++的四种强制类型转换方式 * 4.1 什么是类型安全? * 4.2 static_cast * 4.3 reinterpret_cast * 4.4 const_cast * 4.5 dynamic_cast 一、回顾C语言的类型转换 C语言的类型转换主要是隐式类型转换和强制类型转换: * 隐式类型转换,是编译器在特定情况下自动进行的类型转换,通常发生在不同类型的表达式运算中。主要是整型之间、整型与浮点型之间、

By Ne0inhk
【C++ Qt】多元素控件(ListWidget、TableWidget、TreeWidget)

【C++ Qt】多元素控件(ListWidget、TableWidget、TreeWidget)

每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论 : 本章将通过代码示例详细介绍了Qt中QListWidget、QTableWidget和QTreeWidget三种多元素控件的使用方法与核心功能,涵盖列表的增删操作、表格的行列管理以及树形结构的节点处理。 ———————— 早关注不迷路,话不多说安全带系好,发车啦(建议电脑观看)。 多元素控件 Qt 中提供的多元素控件有: 1. QListWidget 2. QTableWidget 3. QTreeWidget QTreeView(前两个表示树形结构) QTableView(前两个表示表格结构) QListView(前两个表示列表结构) 不难发现两种结构中有:xxWidget 和 xxView 之间的区别 1. xxView 是更底层的实现 2. xxWidget 是基于 xxView 封装起来的 例如: * QTableView 是基于 MVC

By Ne0inhk
C++ —— 哈希详解 - 开散列与闭散列

C++ —— 哈希详解 - 开散列与闭散列

江河入海,知识涌动,这是我参与江海计划的第6篇。 目录 1. 哈希的概念 1.1 直接定址法 1.2 哈希冲突  1.3 负载因子 1.4 哈希函数  1.4.1 除法散列法/除留余数法   1.4.2 乘法散列法  1.4.3 全域散列法 1.5 处理哈希冲突 1.5.1 开放定址法(闭散列) 1. 线性探测(挨着查找) 2. 二次探测(跳跃着查找) 3. 双重散列 2. 闭散列实现哈希表 2.

By Ne0inhk

Visual C++ 6.0中文版安装包下载教程及win11安装教程

本文分享的是Visual C++ 6.0(简称VC++6.0)中文版安装包下载及安装教程,关于win11系统下安装和使用VC++6.0使用问题解答,大家在安装使用的过程中会遇到不同的问题,如遇到解决不了的问题请给我留言! 一、安装包的下载 vc6.0安装包下载连接: https://pan.quark.cn/s/710dc0efe636 二、安装vc++6.0 1.鼠标右键解压到“VC++ 6.0”安装包,解压后如图所示: 2.双击Steup.exe,进行安装; 3.点击下一步 4.更改路径,建议不要安装在C盘(默认盘符),可以选择其他的盘符,点击浏览进行更改盘符。 5.选择C盘(默认盘或系统盘)以外的盘符。

By Ne0inhk