forked from logzhan/RobotKernal-UESTC
更新ROS和Pibot_ROS环境配置教程,修复若干错误,补充部分遗漏问题解决方案
parent
2641039531
commit
1770f93e0b
|
@ -1,6 +1,8 @@
|
||||||
# ROS环境安装
|
# ROS环境安装
|
||||||
|
|
||||||
更新时间:2024-01-27
|
> 本文档用于指导在RK3588上安装ROS的教程,经过测试刷机后的裸系统按照步骤安装运行即可。
|
||||||
|
>
|
||||||
|
> 更新时间:2024-01-27
|
||||||
|
|
||||||
> - 硬件:Firefly-ROC-RK3588S-PC
|
> - 硬件:Firefly-ROC-RK3588S-PC
|
||||||
> - 系统固件:ROC-RK3588S-PC_Ubuntu20.04-Gnome-r30028_v1.1.1b_230914.7z
|
> - 系统固件:ROC-RK3588S-PC_Ubuntu20.04-Gnome-r30028_v1.1.1b_230914.7z
|
||||||
|
@ -18,8 +20,9 @@ sudo sh -c '. /etc/lsb-release && echo "deb <http://mirrors.ustc.edu.cn/ros/ubun
|
||||||
|
|
||||||
### 2. 添加ROS软件源
|
### 2. 添加ROS软件源
|
||||||
|
|
||||||
```
|
```shell
|
||||||
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654` (这一步建议看下面链接) `
|
# 这个指令需要执行后才能执行 sudo apt update, 否则经过测试会报错
|
||||||
|
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. 开始安装ROS
|
### 3. 开始安装ROS
|
||||||
|
|
|
@ -1,20 +1,28 @@
|
||||||
# PIBot_ROS使用说明
|
# PIBot_ROS使用说明
|
||||||
|
|
||||||
|
> 这篇文档主要是解决ROS控制小车底盘,如果能成功调用库并控制小车底盘运行说明则成功。
|
||||||
|
|
||||||
`PIbot`是银星合作时购买的小车底盘。其包含直流电机控制、里程计、`IMU`和上位机通讯等功能。`PIBot_ROS`是其和ROS通信交互的软件包。
|
`PIbot`是银星合作时购买的小车底盘。其包含直流电机控制、里程计、`IMU`和上位机通讯等功能。`PIBot_ROS`是其和ROS通信交互的软件包。
|
||||||
|
|
||||||
## 1、远程连接RK3588板子
|
## 1、连接RK3588板子
|
||||||
|
|
||||||
我们是通过`RK3588 & RK3566`等高性能的主板控制`PIBot`下位机(`STM32`控制板)。如果直接采用`HDMI`线和`USB`鼠标和键盘进行控制非常的不便; 采用`VNC`等远程桌面的方式对性能的损耗较大,所以采用远程ssh连接一种较好的方式。这里,**我们采用的`vscode`进行ssh远程连接**, 其具有远程图形显示功能以及其他强大的功能。
|
#### 1.1 直接`USB`和`HDMI`连接
|
||||||
|
|
||||||
`ssh`连接需要知道目标机器的`ip`地址。理论上如果知道开发板的外网`IP`地址,那么就可以在任意位置连接开发板。由于外网固定`IP`难以获取,所以这里我们**采用局域网ssh连接**。由于`windows`平台的渲染窗口和`linux`不兼容,所以**windows平台的`vscode`是不支持ssh窗口显示的,需要开启虚拟机或者`linux`主机下面的`vscode`才可以显示窗口**。我们在虚拟机`ubuntu`里面使用`vscode`远程`ssh`连接`RK3588`和虚拟机需要用同个网络,远程连接[教程](http://www.autolabor.com.cn/book/ROSTutorials/di-9-zhang-ji-qi-ren-dao-822a28-shi-4f5329/92-vscodeyuan-cheng-kai-fa.html):
|
我们是通过`RK3588 & RK3566`等高性能的主板控制`PIBot`下位机(`STM32`控制板)。可以直接采用`HDMI`线和`USB`鼠标和键盘进行控制信息的查看和控制。1.2中我们采用ssh连接时,也需要提前知道`RK3566`或`RK3588`的`IP`地址。
|
||||||
|
|
||||||
1. `ip`查询方式终端: 在小车终端里输入 `ifconfig`查看小车的`ip`地址
|
#### 1.2 采用ssh远程连接
|
||||||
2. 将教程里步骤三内容改为:
|
|
||||||
|
|
||||||
3. `ssh -X firefly@ip` (-X 为远程显示图形界面需要)
|
采用`VNC`等远程桌面的方式对性能的损耗较大,所以采用远程ssh连接一种较好的方式。这里,**我们采用的`vscode`进行ssh远程连接**, 其具有远程图形显示功能以及其他强大的功能。
|
||||||
4. 密码为:`firefly`
|
|
||||||
|
|
||||||
5. 连接上后选择需要打开的文件夹
|
`ssh`连接需要知道目标机器的`ip`地址。由于`windows`平台的渲染窗口和`linux`不兼容,所以**windows平台的`vscode`是不支持ssh窗口显示的,需要开启虚拟机或者`linux`主机下面的`vscode`才可以显示窗口**。我们在虚拟机`ubuntu`里面使用`vscode`远程`ssh`连接`RK3588`和虚拟机需要用同个网络,远程连接可以参考[教程](http://www.autolabor.com.cn/book/ROSTutorials/di-9-zhang-ji-qi-ren-dao-822a28-shi-4f5329/92-vscodeyuan-cheng-kai-fa.html):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 通过usb和hdmi查看RK3588或者RK3566的ip地址
|
||||||
|
ifconfig
|
||||||
|
# 在vscode或者其他ssh设备输入命令, ip地址是上面查看到的IP地址,命令中 -X 为远程显示图形界面需要
|
||||||
|
ssh -X firefly@devices_ip_address
|
||||||
|
# 账号 firefly、密码 firefly
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## 2、编译和配置PIBot_ROS
|
## 2、编译和配置PIBot_ROS
|
||||||
|
@ -29,7 +37,7 @@ cd ~
|
||||||
# clone代码
|
# clone代码
|
||||||
git clone http://logzhan.ticp.io:30000/logzhan/RobotKernal-UESTC
|
git clone http://logzhan.ticp.io:30000/logzhan/RobotKernal-UESTC
|
||||||
# 把PIBot_ROS移动到Home目录下
|
# 把PIBot_ROS移动到Home目录下
|
||||||
mv RobotKernal-UESTC/Code/MowingRobot/PIBot_ROS ~/
|
mv RobotKernal-UESTC/Code/MowingRobot/PIBot_ROS ~/pibot_ros
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2.2 在RK3588上编译PIbot_ROS(主要是全覆盖部分)
|
#### 2.2 在RK3588上编译PIbot_ROS(主要是全覆盖部分)
|
||||||
|
@ -45,7 +53,7 @@ sudo apt-get install ros-noetic-cob-navigation
|
||||||
sudo apt-get install coinor-*
|
sudo apt-get install coinor-*
|
||||||
|
|
||||||
# 进入到Pibot的ROS的工作空间
|
# 进入到Pibot的ROS的工作空间
|
||||||
cd ~/PIBot_ROS/ros_ws
|
cd ~/pibot_ros/ros_ws
|
||||||
# 编译代码
|
# 编译代码
|
||||||
catkin_make
|
catkin_make
|
||||||
```
|
```
|
||||||
|
@ -62,11 +70,13 @@ catkin_make
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 进入PIBot_ROS
|
# 进入PIBot_ROS
|
||||||
cd PIBot_ROS
|
cd ~/pibot_ros
|
||||||
# 给脚本添加可执行的权限
|
# 给脚本添加可执行的权限
|
||||||
chmod +x pibot_init_env.sh
|
chmod +x pibot_init_env.sh
|
||||||
# 执行脚本
|
# 执行脚本
|
||||||
./pibot_init_env.sh
|
./pibot_init_env.sh
|
||||||
|
# 脚本最后会提示:刷新环境变量使其在当前命令行生效
|
||||||
|
source ~/.bashrc
|
||||||
```
|
```
|
||||||
|
|
||||||
在`pibot_init_env.sh`执行过程中,他会将部分串口的设备创建名为`pibot`的软链接。测试的过程如下:
|
在`pibot_init_env.sh`执行过程中,他会将部分串口的设备创建名为`pibot`的软链接。测试的过程如下:
|
||||||
|
@ -76,15 +86,52 @@ chmod +x pibot_init_env.sh
|
||||||
# 列出/dev/pibot的详细信息
|
# 列出/dev/pibot的详细信息
|
||||||
ls /dev/pibot -l
|
ls /dev/pibot -l
|
||||||
# 如果执行成功会看到类似下面的信息, 这个时候主机就可以和下位机通信、控制、交流
|
# 如果执行成功会看到类似下面的信息, 这个时候主机就可以和下位机通信、控制、交流
|
||||||
lrwxrwxrwx l root root 7 12月 20 10:47 /dev/pibot -> ttyACM0
|
lrwxrwxrwx l root root 7 12月 20 10:47 /dev/pibot -> ttyUSB0
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2.4 功能测试
|
由于`pibot_ros`代码从git拉取下来,所以很多文件没有可执行权限,所以需要通过以下代码设置`py`文件的可执行权限:
|
||||||
|
|
||||||
- 在` 树莓派/RK356/RK3588` 运行 `pibot_bringup` 或` roslaunch pibot_bringup bringup.launch`
|
```shell
|
||||||
- 在用户主机运行 `pibot_configure` 或 `rosrun rqt_reconfigure rqt_reconfigure` 可以查看和修改内置的配置信息
|
# pibot_ros目录下的python文件设置可执行权限
|
||||||
- 运行 `pibot_control `或 `roslaunch pibot keyboard_teleop.launch `即可通过键盘控制小车运动
|
find ~/pibot_ros -type f -name "*.py" -exec chmod +x {} \;
|
||||||
- 支持小米等手柄的接入,运行 `roslaunch pibot joystick.launch` 即可
|
```
|
||||||
|
|
||||||
|
#### 2.4 图形化支持
|
||||||
|
|
||||||
|
在firefly的`ROC-RK3588S-PC`开发板中,其系统只支持`EGL`,但是`rviz`、gazebo是基于等QT程序是基于`GLX `编写的,所以需要安装`GLX`库才能正常运行。[官方参考网址](https://wiki.t-firefly.com/zh_CN/Firefly-Linux-Guide/first_use.html#ros-zhi-chi)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 安装GLX库
|
||||||
|
sudo apt install -y libgl1-mesa-glx libgl1-mesa-dri libglx-mesa0
|
||||||
|
# 重启设备
|
||||||
|
reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
如果遇到`rviz`还不能运行,`rqt`报`QOpenGLTimeMonitor`等错误,需要更新官方的`libqt5opengl5-dev`, 执行下面操作,再尝试运行`rqt`、`rviz`和`gazebo`等程序。
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 上面是官方推荐,实际测试下来还是必须执行下面代码,后续的pibot_configure、pibot_view才能正常运行
|
||||||
|
sed -i 's/.*wiki.t-firefly.com.*/\#&/' /etc/apt/sources.list
|
||||||
|
sudo apt install libqt5opengl5-dev
|
||||||
|
sed -i '/.*wiki.t-firefly.com.*/s/^#//' /etc/apt/sources.list
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 2.5 功能测试
|
||||||
|
|
||||||
|
完成2.3中的步骤后,就可以通过`pibot`提供的脚本控制小车的运动。
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 1.先启动pibot_bringup, 它负责pibot底盘的基本通信(必要),或者运行roslaunch pibot_bringup bringup.launch
|
||||||
|
pibot_bringup
|
||||||
|
# 2.启动pibot的配置界面,但是由于RK35**平台安装的PyQ5存在问题,参照
|
||||||
|
# https://blog.csdn.net/fhqlongteng/article/details/130113779解决,这个不是启动小车控制的必要条件
|
||||||
|
# 或者采用命令 rosrun rqt_reconfigure rqt_reconfigure
|
||||||
|
pibot_configure
|
||||||
|
# 3. 启动小车控制, 或者使用命令 roslaunch pibot keyboard_teleop.launch
|
||||||
|
pibot_control
|
||||||
|
# 4. 通过步骤1和3即可启动小车的控制,如果需采用小米等手柄,运行:
|
||||||
|
roslaunch pibot joystick.launch
|
||||||
|
```
|
||||||
|
|
||||||
## 3、使用说明
|
## 3、使用说明
|
||||||
|
|
||||||
|
@ -94,7 +141,7 @@ lrwxrwxrwx l root root 7 12月 20 10:47 /dev/pibot -> ttyACM0
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 进入到pibot_ros的工作空间
|
# 进入到pibot_ros的工作空间
|
||||||
cd ~/PIBot_ROS/ros_ws
|
cd ~/pibot_ros/ros_ws
|
||||||
# 配置环境变量
|
# 配置环境变量
|
||||||
source ./devel/setup.bash
|
source ./devel/setup.bash
|
||||||
# 启动导航文件
|
# 启动导航文件
|
||||||
|
|
Loading…
Reference in New Issue