这篇指南将基于 Ubuntu 20.04 LTS 和 ROS Noetic,这是目前 Husky 机器人最主流和稳定的软件环境。

总览:配置流程
- 硬件准备与组装:确保你的 Husky 机器人硬件已经正确组装。
- 软件环境搭建:在主控计算机(通常是车载工控机或你的笔记本)上安装 Ubuntu 和 ROS。
- 网络配置:配置机器人、工控机(如有)和你的开发电脑之间的网络连接。
- 安装 Husky 相关软件包:下载并编译 Husky 的核心驱动和功能包。
- 核心功能配置与测试:
- 基础驱动测试:确保传感器(如激光雷达、IMU)和电机能正常工作。
- SLAM(建图):配置并运行建图功能,创建机器人的环境地图。
- 导航(Navigation):基于已创建的地图,配置并运行导航功能,让机器人自主移动到目标点。
- 高级与定制化配置:如启动文件配置、故障排查等。
第一步:硬件准备与组装
- Husky 机器人本体:确保所有机械部件、电机、轮子都已正确安装。
- 传感器:
- 激光雷达:最常用的是 Hokuyo UST-10LX 或 Velodyne VLP-16,确保它已正确安装并连接到机器人的串口或 USB 端口。
- IMU (惯性测量单元):通常由 Xsens 或 VectorNav 提供,确保它已通过串口连接。
- 轮式编码器:通常集成在电机驱动器中,用于里程计计算。
- 主控计算机:推荐使用带有 Intel i7 处理器和 16GB 以上内存的工控机,并预装 Ubuntu 20.04 LTS。
- 网络:确保机器人上有 以太网交换机,用于连接工控机、Wi-Fi 接入点等。
第二步:软件环境搭建
在你的主控计算机(或开发笔记本)上执行以下操作。
安装 Ubuntu 20.04 LTS
从 Ubuntu 官网 下载桌面版镜像,制作启动 U 盘,并完整安装系统,安装过程中建议选择 "Erase disk and install Ubuntu"。
配置软件源
为了提高下载速度,建议更换为国内镜像源。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list ```替换为(例如中科大源):
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse

按 `Ctrl+O` 保存,`Ctrl+X` 退出。
#### **3. 更新系统并安装依赖**
```bash
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl wget git build-essential python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool python-rosdep ros-noetic-rosbash
安装 ROS Noetic
请严格按照官方教程进行,因为命令可能会更新,以下是核心步骤:
# 1. 设置 sources.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' # 2. 设置密钥 curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - # 3. 安装 ROS 桌面完整版 (推荐) sudo apt update sudo apt install -y ros-noetic-desktop-full # 4. 配置环境变量 echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc # 5. 安装 rosdep sudo rosdep init rosdep update
第三步:网络配置
这是至关重要的一步,确保所有设备可以互相通信。
工控机在机器人上
-
将工控机连接到机器人交换机。
-
配置静态 IP:为工控机设置一个固定的 IP 地址,
168.131.1。# 安装 net-tools sudo apt install net-tools # 编辑网络配置文件 sudo nano /etc/netplan/01-network-manager-all.yaml
可能如下(根据你的实际情况修改):
network: version: 2 renderer: NetworkManager ethernets: enp3s0: # 这是你的网卡名称,用 ifconfig 查看 dhcp4: no addresses: [192.168.131.1/24] gateway4: 192.168.131.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]应用配置:
sudo netplan apply
-
配置开发电脑:将你的开发电脑(或另一台电脑)连接到同一个网络(例如通过网线或连接到 Husky 的 Wi-Fi 热点),并设置一个与工控机在同一网段的静态 IP,
168.131.10。
通过 Wi-Fi 远程操作
- 在 Husky 上配置一个 Wi-Fi 接入点。
- 让你的开发电脑连接到这个 Wi-Fi。
- 按照场景一的方法,为工控机和你的电脑配置静态 IP。
网络连通性测试: 在你的开发电脑上,ping 工控机的 IP:
ping 192.168.131.1
如果通,则网络配置成功。
第四步:安装 Husky 相关软件包
在你的开发电脑上操作。
创建工作空间
mkdir -p ~/husky_ws/src cd ~/husky_ws/src
初始化工作空间
catkin_init_workspace
克隆 Husky 代码库
# 克隆主仓库 git clone https://github.com ClearpathRobotics/husky.git # 克隆依赖的描述文件仓库 git clone https://github.com ClearpathRobotics/husky_desktop.git git clone https://github.com ClearpathRobotics/husky_simulator.git
编译工作空间
返回工作空间根目录进行编译:
cd ~/husky_ws catkin_make
首次编译会花较长时间,如果遇到依赖问题,使用 rosdep 解决:
rosdep install --from-paths src --ignore-src -r -y
然后再次 catkin_make。
添加环境变量
为了让终端每次启动都能加载 Husky 的环境变量,请执行:
echo "source ~/husky_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc
第五步:核心功能配置与测试
所有软件都已安装,我们需要在机器人上运行它们。
基础驱动测试
-
SSH 连接到机器人:在你的开发电脑上,打开终端,连接到 Husky 的工控机。
ssh husky_user@192.168.131.1 # 默认用户名可能是 husky 或 ubuntu
-
启动核心驱动:
roslaunch husky_bringup robot.launch
这个
launch文件会启动所有必要的节点,包括:- 电机驱动和里程计 (
husky_driver) - Hokuyo 激光雷达驱动 (
hokuyo_node) - IMU 驱动 (
xsens_driver或vectornav_driver) - TF 树发布
- 电机驱动和里程计 (
-
检查话题:在你的开发电脑上,打开一个新终端,运行:
rostopic list
你应该能看到
/scan,/odom,/imu/data等话题。 -
可视化传感器数据:
rosrun rviz rviz
在 RViz 中:
- 点击 "Add"。
- 添加 "LaserScan" 并将话题设置为
/scan。 - 添加 "RobotModel"。
- 添加 "TF"。
- 你应该能看到机器人的模型和实时的激光雷达扫描点云。
SLAM (建图)
我们使用 gmapping 或 slam_toolbox,这里以 slam_toolbox 为例,它是目前更推荐的选择。
-
启动建图节点:在机器人(SSH 终端)上运行:
roslaunch husky_slam slam_toolbox.launch
-
启动键盘控制:在开发电脑上打开另一个新终端,运行:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
你现在可以使用键盘(
i,j,k,l,u,m,)来控制机器人缓慢移动。 -
在 RViz 中开始建图:
- 确保 RViz 已经打开。
- 在 "Displays" 面板中,点击 "Add"。
- 添加 "Map" 类型。
- 你应该能看到地图随着机器人的移动而实时构建出来。
-
保存地图:建图完成后,在开发电脑上运行:
rosrun map_server map_saver -f ~/husky_ws/src/my_map
这会在你的工作空间的
src目录下生成my_map.pgm和my_map.yaml两个文件,这就是你的地图。
导航
-
启动地图服务器:在机器人上,重新启动一个新的终端,运行:
roslaunch husky_navigation map_server.launch map_name:=my_map
(
my_map是你保存的地图文件名,不带扩展名) -
启动导航栈:在同一个终端(或另一个新终端)中,运行:
roslaunch husky_navigation navigation.launch
这会启动
move_base、amcl(定位)等核心导航节点。 -
在 RViz 中设置目标点:
- 确保 RViz 中已经添加了 "Map" 和 "RobotModel"。
- 点击 "2D Nav Goal" 工具(一个带箭头的标志)。
- 在地图上点击一个位置,然后拖动并释放,机器人就会自动规划路径并移动到该点。
第六步:高级与定制化配置
启动文件
Husky 提供了许多方便的 launch 文件来组合不同的功能,你可以通过修改这些文件来定制你的机器人行为,
husky_bringup/robot.launch:修改激光雷达的串口或波特率。husky_navigation/navigation.launch:调整机器人的最大/最小速度、代价函数权重等参数。
故障排查
- TF 树错误:使用
rosrun tf tf_echo map base_link检查关键坐标系之间的连接是否正常。 - 传感器无数据:检查
rostopic hz /scan或rostopic hz /odom的发布频率是否正常,检查硬件连接和驱动日志。 - 导航失败:检查地图质量、机器人周围是否有障碍物、
move_base的参数是否合理。
配置 Husky 机器人是一个多步骤但逻辑清晰的过程,关键在于:
- 网络畅通:所有设备必须能互相
ping通。 - 环境变量:确保每次终端都加载了正确的 ROS 和工作空间环境。
- 循序渐进:先测试驱动,再建图,最后导航,每一步确认无误后再进行下一步。
- 善用工具:
rostopic,rosnode,rviz,rqt_graph是调试 ROS 系统的利器。
希望这份详细的指南能帮助你成功配置你的 Husky 机器人!如果在某个步骤遇到问题,请仔细检查错误信息,并查阅 Clearpath Robotics 官方文档 获取更具体的信息。
标签: Husky机器人配置参数详解 Husky机器人关键配置清单 Husky机器人硬件配置参数