最近,新配置了一版虚拟机,因为学校已经配置好环境的虚拟机忘了带回来,我还想系统的学习一下ROS,并将其用于机械臂的控制,因此用了新的方式配置了vim,并将树莓派raspberry buster系统配置上了ROS1的环境,虚拟机配置了ROS2的环境,这篇文章我先讲的是虚拟机的配置过程,较树莓派配置过程而言较为简单。
还是先下载驱动,后安装,内存最好在4GB到8GB左右,具体空间我设置成了100G,大家可以依据自己的需求进行改变,之后进入环境之后要换源和进行安装更新,网络不好就多更新几遍吧
尽量保证网络正常,可以爬取github上的东西
需要先下载curl工具,或者是直接下载压缩包再解压出其中的plug.vim文件
需要先安装curl
sudo apt-get update
sudo apt-get install curl
之后执行如下命令
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
下载这个文件之后,执行如下命令
mkdir -p ~/.vim/autoload/
cp plug.vim ~/.vim/autoload/plug.vim
新建一个文件吧
vim ~/.vimrc
把这些粘进去
call plug#begin()
" The default plugin directory will be as follows:
" - Vim (Linux/macOS): '~/.vim/plugged'
" - Vim (Windows): '~/vimfiles/plugged'
" - Neovim (Linux/macOS/Windows): stdpath('data') . '/plugged'
" You can specify a custom plugin directory by passing it as the argument
" - e.g. `call plug#begin('~/.vim/plugged')`
" - Avoid using standard Vim directory names like 'plugin'
" Make sure you use single quotes
" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'
" Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
" Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" On-demand loading
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" Using a non-default branch
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
" Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
Plug 'fatih/vim-go', { 'tag': '*' }
" Plugin options
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
" Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin'
" Initialize plugin system
" - Automatically executes `filetype plugin indent on` and `syntax enable`.
call plug#end()
" You can revert the settings after the call like so:
" filetype indent off " Disable file-type-specific indentation
" syntax off " Disable syntax highlighting
然后执行:PlugInstall命令,等待下载成功
相关命令如下
下载插件 :PlugInstall
下载新的插件 在call plug#begin()和call plug#end()之间添加一下新的插件
安装特定插件 :PlugInstall gist-vim
卸载插件 :PlugClean
更新vim-plug :PlugUpgrade
更新所有已经安装的插件 :PlugUpdate
查看插件状态 :PlugStatus
退回主目录,输入:
sudo apt install cmake
sudo apt-get install cmake-qt-gui
先下载一下nodejs和npm
sudo apt update
sudo apt install nodejs npm
查看一下版本
nodejs --version
sudo npm install n -g
sudo n stable
在确定版本够新之后,设置一下环境变量
curl -sL install-node.now.sh/lts | bash
在指定位置添加插件
" Use release branch (Recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
然后进入~/.vimrc文件,在命令行中输入:CocInfo
出现相关版本信息即为成功。
之后我们就可以通过这个页面配置相关语言的补全功能了,我这里配置一下python吧
打开这个网页:
Language servers · neoclide/coc.nvim Wiki · GitHub
找到python的部分,发现是要安装coc-pyright这个插件
输入:
pip3 install 'python-language-server[all]'
vim ~/.vimrc
:CocInstall coc-pyright
这个库我基本在每个虚拟机上都会配置,主要是自己也是做视觉方面,也是经常使用
我们就按最简单的方式来吧,直接从ubuntu源码库安装,省时省力
sudo apt update
sudo apt install libopencv-dev python3-opencv
查看一下版本吧,此时版本为4.5.4
python3 -c "import cv2; print(cv2.__version__)"
欢迎查看ROS2官方文档
https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html
先设置编码吧
sudo apt update
sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
然后查看一下设置的源
apt-cache policy | grep universe
我这里设置的是阿里源
其他源应该和这个类似,release出的项大同小异
然后继续运行
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
更新一下啦
sudo apt update
sudo apt upgrade
我们直接安装桌面版吧,就是时间会比较长
sudo apt install ros-humble-desktop
之后我们可以设置一下环境变量
source /opt/ros/humble/setup.bash
echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
分别开两个终端,输入
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
其中第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点