关于husky无人车官方定制Ubuntu系统下载慢、报错的替代方法

前一阵子实验室的husky无人车突然连不上车载电脑了,就想着重装一下系统,顺便把indigo换成kinetic。
首先跟着官网地址的版本走,做好定制版镜像后,开始安装的时候发现安装的实在太慢了,经常在中间卡死报错,可能是我连的校园网的原因,于是决定换个思路。
联系了售后,说可以尝试先安装普通版本的Ubuntu、ros,再打包下载husky的功能包,也可以配置成功。于是开始安装Ubuntu 16.04和ros kinetic,成功安装后打开终端输入

sudo apt-get install ros-kinetic-husky-base
sudo apt-get install ros-kinetic-husky-bringup
sudo apt-get install ros-kinetic-husky-control
sudo apt-get install ros-kinetic-husky-description
sudo apt-get install ros-kinetic-husky-desktop
sudo apt-get install ros-kinetic-husky-gazebo
sudo apt-get install ros-kinetic-husky-msgs
sudo apt-get install ros-kinetic-husky-navigation
sudo apt-get install ros-kinetic-husky-robot
sudo apt-get install ros-kinetic-husky-simulator
sudo apt-get install ros-kinetic-husky-husky_viz

上面是安装husky所需的功能包,这里需要注意的是不能安装在新建的工作空间下,直接在终端安装即可(即装在opt/ros/kineitc下)
然后接着在终端输入

sudo apt-get install ros-kinetic-robot-upstart

robot_upstart可以实现机器人开机自启动
装好上述包后,就可以继续接着官网教程做了
执行

rosrun husky_bringup install

执行下面的代码

sudo systemctl start ros

车与电脑的连接线的灯会开始闪烁,则代表连接已成功

### VSCode 中 Husky 导致 Git Push 报错的解决方案 当在 VSCode 使用 Husky 时遇到 `git push` 报错的情况,通常是因为预提交钩子(pre-commit hook)未能正常执行或者存在冲突。以下是可能的原因分析以及对应的解决方法。 #### 可能原因一:强制推送覆盖了远程分支状态 如果尝试通过 `--force` 参数强行推送更改到远程仓库,可能会触发 Husky 的保护机制。可以通过指定更安全的方式进行强制推送: ```bash git push --force-with-lease [<refname>] [^1] ``` 此命令允许在不完全破坏远程历史记录的情况下完成推送操作。 --- #### 可能原因二:未正确配置 ESLint 自动修复功能 为了确保代码质量,在保存文件时自动应用 ESLint 修正规则可以减少错误的发生概率。可以在 VSCode 设置中启用以下选项来实现这一目标: ```json "editor.codeActionsOnSave": { "source.fixAll": true, } ``` 上述设置会使得每次保存文件时都运行一次 ESLint 的自动修复工具[^2]。这有助于避免因格式化问题而引发的 Hook 错误。 --- #### 可能原因三:Pre-commit 文件中的脚本存在问题 检查 `.husky/pre-commit` 脚本是否被正确定义并调用了正确的命令。例如,如果你正在使用 `lint-staged` 来管理暂存区内的文件,则应确保该脚本的内容如下所示: ```bash #!/bin/sh . "$(dirname "$0")/_/husky.sh" pnpm lint-staged ``` 这里的关键在于最后一行命令——它负责启动 `lint-staged` 并处理所有已暂存的变更[^3]。如果有任何语法错误或路径问题都会阻止 Hooks 成功运行从而导致 Push 失败。 --- #### 综合建议 除了以上具体措施外,还应该注意以下几点通用提示: - **确认依赖版本一致**:保证本地项目所使用的 Node.js 版本与全局安装的一致;同时也要验证各个插件(如 eslint、husky 等)处于兼容的状态。 - **清理缓存重试**:有时候旧数据残留也会干扰新流程运作,因此可考虑先清除相关缓存再重新测试一遍整个过程。 最后附带一段用于调试目的的小型 Shell Script ,可以帮助定位确切失败位置: ```sh set -euxo pipefail echo 'Running pre-commit checks...' pnpm run test || exit $? pnpm run build || exit $? pnpm lint-staged || exit $? echo 'All checks passed!' exit 0; ``` 这段脚本逐项检验单元测试、构建任务及静态分析器的表现情况,并且会在任意环节出现问题的时候立即终止后续动作并向开发者反馈清晰的信息。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值