执行display_aloha.launch
若您的机械臂,上电后使用上位机使能回零,j2、j3关节非触碰到限位位置,则为旧版零点
旧版本零点以j2、j3的限位位置偏移2度得到,参
aloha_new_v00.urdf
执行display_aloha_v00.launch
核心理念:使用 Docker 隔离系统级 ROS 环境,使用 Pixi 灵活管理 Python 算法环境。 适用场景:VS Code (Mac) -> Remote SSH -> Ubuntu Host -> Docker Container。
该环境采用 Hybrid(混合) 架构,解决了 ROS1 系统依赖僵化与 Python 现代算法库(如 Torch/Numpy)版本冲突的问题。
-
OS 层 (Docker):
ros:noetic(Ubuntu 20.04),负责roscore、catkin build、以及硬件驱动。 -
Shell 层:
Zsh+Oh-My-Zsh+ 语法高亮/自动补全,非 Root 用户 (rosdev),UID 自动同步。 -
Python 层 (Pixi): 独立于系统 Python,通过
pixi.toml管理两个隔离环境: -
ros1-python-env: 用于运行深度学习、强化学习算法。 -
backup-env: 备用调试环境。 -
编辑器: VS Code Dev Container (自动注入插件、配置、挂载工作区)。
在远程 Ubuntu 宿主机 上,必须配置图形显示权限,以便容器内的 Gazebo/Rviz 能显示在屏幕上。
- 开放 X11 访问权限:
# 在宿主机终端执行
xhost +local:docker
- 检查 Display ID:
echo $DISPLAY
# 通常输出 :0 或 :1
DevContainer 已配置自动继承此变量,若显示有问题,请手动在容器内 export DISPLAY=:0。
- VS Code 连接: 使用 Remote-SSH 连接到远程 Ubuntu 主机。
- 打开项目: 打开包含
.devcontainer的文件夹。 - 构建容器:
- 点击左下角绿色图标
><。 - 选择 Reopen in Container。
- 首次构建需要几分钟,会自动安装 ROS、Pixi、Zsh 等。
容器启动后,或者代码有 C++ 变动/新增包时:
# 1. 确保在工作空间根目录
cd /home/rosdev/mobile_aloha_ws
# 2. 使用 catkin build (比 catkin_make 更强)
catkin build
这一步至关重要,否则系统找不到你的包。
source devel/setup.zsh
注:编译一次之后,第二次重建容器不用再编译,因为 devel 文件夹是通过挂载同步的。
不要直接用 python,请使用 Pixi 托管的环境:
# 进入 ROS1 专用 Python 环境
pixi shell -e ros1-python-env
(此时终端提示符左侧会出现环境名称)
# 语法: roslaunch <包名> <launch文件名>
roslaunch aloha_new_description display_aloha.launch
现象:
RLException: [xxx.launch] is neither a launch file in package [xxx]...
像侦探一样排查 (3步法):
- 确认物理位置: 文件到底在哪?是不是名字打错了?
# 递归查找
find src/aloha_new_description -name "*.launch"
- 情况 A: 没输出 -> 文件名错或不存在。
- 情况 B: 在子文件夹 -> 引用时需要加路径,如
subfolder/display.launch。
- 确认注册状态: ROS 看到这个包了吗?
rospack find aloha_new_description
- 报错:说明没 Source 或者没编译。
- 解决:
rospack profile刷新索引,然后再次source devel/setup.zsh。
- 终极修复连招 (标准重启流程): 如果上述都没用,按顺序执行:
cd /home/rosdev/mobile_aloha_ws # 回家
catkin build # 重新编译
source devel/setup.zsh # 重新加载
rospack list | grep aloha # 验证确认
如果在 catkin build 或 pixi 时遇到权限错误:
# 在容器内执行,夺回所有权
sudo chown -R $(id -u):$(id -g) .
