基于ROS2的机器人控制器配置
此文档为本人学习笔记,用于记录在ROS2系统搭建调试中遇到的问题与解决方法,同时为遇到相同问题的朋友提供参考。文章整理了部分博主及官方的文档资料,已在文中连接或文末参考文章指出,如有侵权,请联系本人删除,谢谢。
一、 Ubuntu22.04安装及配置
1. Ubuntu22.04安装
系统状况:
本机采用Windows 11+Ubuntu 22.04.03 双系统,Ubuntu安装前期工作于Windows11系统下完成
硬件设备:
CPU: i9-13900K
主板:ROG MAXIMUS Z790 HERO (网卡:XXXX)
显卡:RTX4090
屏幕:双屏幕
1.1 下载镜像
Ubuntu镜像(LTS)下载地址: https://cn.ubuntu.com/download/desktop
1.2 镜像烧录
参考官方U盘制作方式: https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview
1.3 系统安装
参考官方系统安装过程 :https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview
由于Windows系统已连接过WIFI,故Ubuntu系统安装时可直接连接无线网络。若无WIFI模块且出现在安装后系统无法识别网卡的问题,可在安装时使用【USB-网口】转换器提供网络,在安装完成后即自动获取板载网卡驱动,仅供参考.
1.4 更换下载源
Settings -> About -> Software Updates -> Download from -> Other -> Select Best Server
1.5 更换显卡驱动
Settings -> About -> Software Updates -> Additional Drivers -> Using NVIDIA driver metapackage from nvidia-driver-525 (proprietary)
2. 系统配置
2.1 安装:Terminator
sudo apt install terminator
2.2 安装:搜狗输入法
参考: https://blog.csdn.net/Mr_Sudo/article/details/124874239
提示:安装并应用Fcitx4后重启电脑,而后再进行输入法安装,或可避免诸多问题。
注:若出现只可输入英文无法输入中文的情况,则是缺少依赖所导致的,解决方法如下:
sudo apt-get install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
sudo apt install libgsettings-qt1
2.3 安装:ROS2
参考:https://fishros.com/d2lros2/#/humble/chapt1/get_started/3.%E5%8A%A8%E6%89%8B%E5%AE%89%E8%A3%85ROS2
2.4 安装:VSCode
下载地址:https://code.visualstudio.com/Download
解压安装:
sudo dpkg -i code_1.85.1-1702462158_amd64.deb
配置C/C++扩展包含路径:
/opt/ros/humble/**
2.5 安装: make & cmake & colcon
sudo apt install make
sudo apt install cmake
sudo apt-get install python3-colcon-common-extensions
2.6 安装: gcc-12
由于版本内核6.5.0,安装下述CH34X驱动时需要使用gcc-12,故需先行安装。
- 添加源
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update
- 安装gcc
sudo apt-get install gcc-12
- 系统更新
链接高版本gccsudo apt-get upgrade
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 50
2.7 安装: CH341驱动
-
查看并删除系统自带CH340驱动
ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial
cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial sudo rm -rf ch341.ko
-
下载驱动:https://www.wch.cn/download/CH341SER_LINUX_ZIP.html
注:MTI670 修改配置文件中端口信息
-
查询系统内核版本
uname -r
-
打开bootlin
链接:https://elixir.bootlin.com/linux/v6.5/source/drivers/usb/serial/ch341.c -
替换ch34x.c内容
根据系统内核选择对应版本,复制并替换ch34x.c全部内容 -
编译驱动
cd CH341SER_LINUX/driver make
生成ch34x.ko文件
-
加载驱动
sudo make load
-
永久安装驱动
sudo make install
其他问题参见:机器人硬件驱动以及程序编译
2.8 安装: CuteCom
2.9 安装: Mujoco
GItHub链接:https://github.com/google-deepmind/mujoco
Mujoco(py)链接:https://pypi.org/project/mujoco/#files
-
安装步骤
mkdir build cd build cmake .. make -j32 sudo make install
注:其他包安装同上(32为PC核心数)
-
创建链接
- 打开动态库文件
sudo gedit /etc/ld.so.conf
- 添加添加库路径
include /etc/ld.so.conf.d/*.conf /usr/local/lib
- 更新配置
sudo ldconfig
- 打开动态库文件
参考:解决cannot open shared object file: No such file or directory
2.10 安装: opencv
2.11 安装: gl3w和glfw
2.12 安装: fftw
- 安装步骤
./configure --prefix=/home/***/fft/fftw-3.3.10/build CFLAGS=-fPIC CXXFLAGS=-fPIC --enable-shared make -j32 make install
二、 工作空间配置
1. 环境配置
1.1 Source工作空间
1.2 USB权限修改
- USB端口权限修改
sudo chmod 777 /dev/ttyUSB0
- USB端口永久赋权
- 新建并进入规则文件
sudo chmod 777 /dev/ttyUSB0
- 编辑规则内容
KERNEL=="ttyUSB*", MODE:="0777", GROUP:="dialout
- 将用户添加进dialout用户组
sudo usermod -a -G dialout $USER sudo service udev reload sudo service udev restart
- 新建并进入规则文件
参考文献
- ubuntu22.04安装搜狗输入法
- ubuntu系统安装好搜狗输入法后只能输入英文,无法输入中文的解决方案
- 【ubuntu 搜狗输入法】ubuntu下搜狗输入法不能打印中文的所有问题都这样解决!
- ubuntu安装与卸载搜狗输入法
- ubuntu20.4系统安装CH340驱动并使用串口调试助手
- (保姆级)Ubuntu下的USB设备永久权限+设备起别名方法
- Ubuntu下gcc安装及使用
- Invalid operation build-depgcc 安装ngnix依赖组件
- 【Ubuntu系统安装gcc简易教程】
- Ubuntu系统中gcc安装
- ubuntu16.04cmake、gcc/g++版本更换
- linux升级gcc版本详细教程
- FFTW安装(Linux)
- 解决cannot open shared object file: No such file or directory
- libfftw3.a(assert.o): relocation R_X86_64_PC32 against symbol xxx when making a shared object; rec