# 激活名为ROS的虚拟环境目录
!!!注意:!!!
本人发现还未解决的问题:
- 主从机交互:mac系统下的arbotix_gui无法正常控制车运动,而使用Paralles Desktop安装的Ubuntu 20.04虚拟机中可以正常控制。
- conda search ros-noetic-* 查包,发现有些包在conda中没有,尝试源码安装,失败,放弃
但是我的Paralles Desktop现在有个问题(PD 19.0,重装18.1, 19.1也有这问题),在mac复制代码,Ubuntu虚拟机会卡死,⌘ + ⌥ + E强制退出 PD后,Ubuntu读取不到mac的剪切板,还需要重启才能读取到mac的剪切板,就很头疼…………
暂时替代方案:桥接无线网,用ssh连接mac,使用vim编辑器手动复制粘贴文件中的内容(使用gedit会在mac中打开)
参考网页:
我的anaconda也能装ros,我系统的python版本更新为3.12,使用anaconda创建的虚拟环境后调用系统默认python3.12。
使用arbotix功能包时需要用到wx的python库,wx库最高支持python3.9。安装的wx库在引用时会报错,
错误为:ModuleNotFoundError: No module named 'wx._core'
所以在创建虚拟环境前建议设置python版本为pythom3.9(2023年11月25日有效)。
主体步骤和上述参考链接类似,但细微处有些差异。
一、conda创建并配置虚拟环境
首先可以先更新一下conda(自行选择,也可以不更新)
conda update -n base -c conda-forge conda
conda update --all
自动同意安装名为ROS的python3.9虚拟环境, ROS可以改成自己心仪的虚拟环境名,下面代码中也要自行修改相应虚拟环境名
conda create -n ROS python=3.9 -y
激活名为ROS的虚拟环境,并配置环境
conda activate ROS
conda config --add channels conda-forge
conda config --add channels robostack
conda config --set channel_priority strict
如果python版本选择错误,则需要删除虚拟环境后重装
退出并自动同意删除虚拟环境ROS
conda deactivate
conda remove -n ROS --all -y
注意
安装完ROS之后需要再修改通道的优先级,在flexible模式下,Conda 将根据安装软件包的频率和当前环境的频繁程度来动态调整通道优先级。这有助于提高下载速度和减少环境创建和更新的时间。
conda config --set channel_priority flexible
不然,直接使用conda 安装第三方库时会出现错误
二、安装ROS noetic
python3.8安装ros-noetic-desktop-full会报错,所以需要用python3.9,3.10以上好像安装什么来着也有问题,忘了
安装ROS noetic及其附加工具
conda install ros-noetic-desktop-full -y
conda install compilers cmake pkg-config make ninja catkin_tools -y
三、创建工作空间
1. 创建工作空间
注意,在mac终端中无法直接使用ROS,需要先激活ROS虚拟环境(根据自己设置虚拟环境名进行修改)
conda activate ROS
使用mkdir在主目录下创建并初始化工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
2. 编译工作空间
catkin_make进行编译使用cd .. 指令返回catkin_ws路径,输入catkin_make进行编译
cd ~/catkin_ws
catkin_make
3. 设置环境变量
在macOS系统下,设置激活ROS所在conda虚拟环境时自动设置环境变量,参考文章