我是靠谱客的博主 愉快泥猴桃,最近开发中收集的这篇文章主要介绍ROS运行环境配置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

# 运行环境配置文档

**目录**
- [0.配置ros环境]
  - [0.1.ubuntu系统安装]
  - [0.2.ubuntu系统安装配置ros]
    - [换源]
    - [安装配置ros]
  - [0.3.ubuntu系统汉化]
  - [0.4.VScode安装汉化]
  - [0.5.cartographer安装]
  - [0.6.openCV3.4.5安装与编译]
- [1.源代码与依赖]
  - [1.1.获取源码]
  - [1.2.安装依赖]
     - [TigId]
     - [AprilTag]
     - [Sophus]  
     - [Opencv3.4.5]
     - [realsense]
  - [1.3.auto机械臂包]
  - [1.4.Visual-Servo]
- [2.网络配置]
  - [2.1.网络连接方式]
  - [2.2.机器人IP]
  - [2.3.机器人网口连接]
- [3.开机自启设置]
  - [3.1.编写脚本]
  - [3.2.修改脚本权限]
  - [3.3.添加自启]
- [4.机器人远程操作]
  - [4.1.VNC]
  - [4.2.VScode-remotessh插件]
  - [4.3.远程鱼眼]
- [5.机械臂调试]
  - [5.1.调试仿真]
  - [5.2.机械臂标定]

## **0.配置ros环境**

### **0.1.ubuntu系统安装**

插入u盘,开机,按`del`进入BIOS面板,进入`Advanced`下的`CSM Configuration`,更改`CSM Support`选项为`Enabled`,进入`boot`选项,选择无uefi的选项为`boot option1#`,`f4`保存重启,按`shift`,选U盘启动,进入ubuntu系统安装。

### **0.2.ubuntu系统安装配置ros**

**(1) 换源**

进入fishros一键换源

```bash
$ wget http://fishros.com/install -O fishros && . fishros
```

**(2) 安装配置ros**

进入fishros一键配置ros

```bash
$ wget http://fishros.com/install -O fishros && . fishros
```

### **0.3.ubuntu系统汉化**

(1) 下载搜狗安装包

(2) 命令行下更新源

```bash
$ sudo apt-get update
```
(3) 进入下载目录

```bash
$ cd Downloads
```

(4) dpkg命令安装搜狗

```bash
$ sudo dpkg -i sogoupinyin_版本号_amd64.deb
```

(5) 装fcitx

```bash
$ sudo apt-get install fcitx
```

(6) 设置fcitx为系统输入法,右上角->setting->区域和语言->添加汉语(简体))->设置框架fcitx

(7) 设置fcitx开机自启

```bash
$ sudo cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/
```

(8) 卸载系统ibus输入法框架

```bash
$ sudo apt purge ibus
```

(9) 安装输入法依赖

```bash
$ sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2
$ sudo apt install libgsettings-qt1
```

(10) 重启电脑,右上角输入法符号->配置->加号->去掉`Only Show Current language`的红勾,然后滑倒最下面,选择`Sogou Pinyin`,再点击右下角的OK键。

### **0.4.VScode安装汉化**

进入fishros一键安装

### **0.5.cartographer安装**

~~(复制包过来的不需要安装cartographer。)进入fishros一键安装,之后修改位置。
或运行代码~~

```bash
$ sudo apt-get update
$ sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow libgoogle-glog-dev
$ cd ~/rubber_tapping_robot/carto_ws
# 存档版本不需下载cartographer源码,否则需要根据说明下载源码。
$ wstool update -t src
# 这里因为网络问题使用了fishros的rosdepc
$ rosdepc install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
$ catkin_make_isolated --install --use-ninja
```

## **1.源代码与依赖**

### **1.1.获取源码**

直接copy或命令行运行

```bash
$ cd ~
# 原http方式弃用,改用ssh
$ git clone git@github.com:fangjhh/rubber_tapping_robot.git
```

需要设置机器ssh公钥才可下载。

### **1.2.安装依赖**


#### 1.2.1. AprilTag(源码编译)

直接copy或运行命令

```bash
git clone https://github.com/AprilRobotics/apriltag.git
cd apriltag
cmake .
sudo make install
cd ..
sudo rm -rf apriltagcd
```

#### 1.2.2. Sophus(源码编译)

直接copy或运行命令

```
it clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ..
sudo make install
cd ../..
sudo rm -rf Sophus
```

#### 1.2.3. opencv3.4.5(源码编译)

直接copy或运行命令

```bash
# 使用Ubuntu 20.04 已经不需要虚拟环境
# TODO: 这里还需要源码从哪来的
$ cd opencv-3.4.5
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D INSTALL_PYTHON_EXAMPLES=ON
-D ENABLE_CXX11=ON
-D INSTALL_C_EXAMPLES=OFF
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.5/modules
-D BUILD_EXAMPLES=ON ..
$ make -j8
$ sudo make install
$ sudo ldconfig
```

#### 1.2.4. realsense

运行命令

```bash
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
$ sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
$ sudo apt-get install -y librealsense2-dkms librealsense2-utils librealsense2-dev librealsense2-dbg ros-noetic-librealsense2-camera
$ sudo apt-get --yes install ros-noetic-diagnostic-updater -y
$ sudo apt-get --yes install ros-noetic-ddynamic-reconfigure -y
$ sudo apt-get --yes install ros-noetic-rgbd-launch
$ sudo apt install ros-noetic-pcl-ros libeigen3-dev
$ cd /usr/include
$ sudo ln -sf eigen3/Eigen Eigen
$ sudo ln -sf eigen3/unsupported unsupported
$ sudo apt-get update
$ sudo apt-get --yes upgrade
```

#### 1.2.5. Other dependencies

```bash
$ sudo apt install -y ros-noetic-moveit ros-noetic-moveit-visual-tools ros-noetic-navigation ros-noetic-trac-ik-kinematics-plugin ros-noetic-industrial-core ros-noetic-joy
$ sudo apt install -y build-essential cmake pkg-config libjpeg8-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran python2.7-dev ros-noetic-serial
```

### **1.3.auto机械臂包**

直接copy或运行代码

```bash
$ wget http://archive.ubuntu.com/ubuntu/pool/main/p/protobuf/libprotobuf9v5_2.6.1-1.3_amd64.deb
$ sudo dpkg -i libprotobuf9v5_2.6.1-1.3_amd64.deb
```

### **1.4.Visual-Servo**

运行代码

```bash
$ wstool update -t src
```

## **2.网络配置**

### **2.1.无线网络连接**

目前使用室外路由器(WAVELINK-N)做主节点。
|WiFi SSID:| WAVELINK-N|
|:----:|:-----:|
|WiFi 密码:| zzkj2022|
|Admin 密码:|97012400|

### **2.2.机器人IP**

在户外使用固定路由器,所以各个机器人使用静态IP
|   机器人描述   | 机器人主机名 |    IP地址     |
| :------------: | :----------: | :-----------: |
|    良乡v1.1    |  rubber-xcy  | 192.168.10.9  |
| 小底盘坏机械臂 |   rubber00   | 192.168.10.10 |
|   新割胶机构   |   rubber01   | 192.168.10.11 |
|   新导航底盘   |   rubber02   | 192.168.10.12 |
|     机器臂     |               |192.168.2.13|

### **2.3.机器人网口连接**

一般情况下,右侧网口(第一个有线连接)插机械臂,左侧网口(第二个有线连接)插激光雷达。

## **3.开机自启设置**

### **3.1.编写脚本**

编写脚本,脚本位置存放在`rubber_tapping_robot/script`中

```shell
/bin/bash
···
···
w$ hile true
do
···
done
```

### **3.2.修改脚本权限**

在脚本存放处打开终端,运行代码
```
chmod +x auto_run.sh
```

### **3.3.添加自启**
 
 命令行运行

 ```bash
$ gnome-session-properties
```

Command部分添加以下命令

```
gnome-terminal -x bash -c '/home/rubber/rubber_tapping_robot/script/autostart.sh;exec bash'
```

## **4.机器人远程操作**

### **4.1.VNC**

机器人主机安装`x11vnc`与`openssh-server`,远控主机通过deb安装`vncviewer`即可。

机器人主机通过开机自启脚本启动,远程主机运行`vncviewer`并连接机器人IP即可。

### **4.2.VS code-remote ssh插件**

配置时需要主从机连能够接通外网的局域网,以更新server。

### **4.3.远程鱼眼**

使用MJPG-Streamer达到远程观察机器人携带摄像头的用途。

机器人主机安装MJPG-Streamer,并使用remotecam.sh脚本正确启动程序。可能出现/dev/video*对应不上的问题,根据rubber-xcy中的/etc/udev/rules.d/imu.rules中修改相机相应的.rules文件即可解决,保证每次相机连接的都是video0。

远程主机无需额外配置,浏览器地址输入`http://机器人IP:8080`即可

## **5.机械臂调试**

### **5.1.调试仿真**

实机调试之前先仿真调试,使用`roslaunch visual_servo visual_servo_sim.launch`

修改`aubo_ixx_gazebo_control.launch`

修改`(find aubo_ixx_moveit_config)`

之后运行`roslaunch visual_servo visual_servo_sim.launch`即可。
### **5.2.机械臂标定**

除了在示教器以外,还可以在AuboSDK.cpp中修改。

最后

以上就是愉快泥猴桃为你收集整理的ROS运行环境配置的全部内容,希望文章能够帮你解决ROS运行环境配置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部