1. ROS 的安装和配置

1.1 ROS Melodic 配置环境

Ubuntu 18.04 LTS、Python 2.7

官方参考说明

1.2 切换 Python2 运行版本

conda create -n ros python=2.7 

说明:使用 anaconda 创建 虚拟环境 ros,anaconda 的安装及使用 参考网址

source activate ros 
(base) hjw@hjw-pc:~$ source activate ros
(ros) hjw@hjw-pc:~$ 

1.3 安装 ROS Melodic 版本

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

sudo apt update

sudo apt install ros-melodic-desktop-full

sudo apt install rospack-tools

sudo apt install python-rosdep

1.4 初始化 rosdep 过程

sudo rosdep init
rosdep update

说明:由于网络问题,如果失败采用如下方法(1.4.1、1.4.2、1.4.3)替代,如果成功跳至 1.5节

1.4.1 替代步骤一

  • 在一任意临时目录 home/hjw/ros 中下载 rosdistro 源码
git clone https://github.com/ros/rosdistro.git
  • 将 /home/hjw/ros/rosdistro/rosdep/sources.list.d/20-default.list 复制到 /etc/ros/rosdep/sources.list.d/
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

sudo cp /home/hjw/ros/rosdistro/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/

到此,相当于成功完成 sudo rosdep init 的功能效果

1.4.2 替代步骤二

将以下3个文件中的下载地址 https://raw.githubusercontent.com/ros/rosdistro/master 替换成本地地址 file:// + 第1.4.1步骤中的路径,即为file:///home/hjw/ros/rosdistro

  • /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
将

REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'

替换为

REP3_TARGETS_URL = 'file:///home/hjw/ros/rosdistro/releases/targets.yaml'
  • /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
将

DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

替换为

DEFAULT_INDEX_URL = 'file:///home/hjw/ros/rosdistro/index-v4.yaml'
  • /etc/ros/rosdep/sources.list.d/20-default.list
将

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

替换为

yaml file:///home/hjw/ros/rosdistro/rosdep/osx-homebrew.yaml osx
yaml file:///home/hjw/ros/rosdistro/rosdep/base.yaml
yaml file:///home/hjw/ros/rosdistro/rosdep/python.yaml
yaml file:///home/hjw/ros/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/hjw/ros/rosdistro/releases/fuerte.yaml fuerte
  • 更新配置文件
rosdep update

到此,相当于成功完成 sudo rosdep init 的功能效果

1.4.3 成功的标志

(ros) hjw@hjw-pc:~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit file:///home/hjw/ros_test/rosdistro/rosdep/osx-homebrew.yaml
Hit file:///home/hjw/ros_test/rosdistro/rosdep/base.yaml
Hit file:///home/hjw/ros_test/rosdistro/rosdep/python.yaml
Hit file:///home/hjw/ros_test/rosdistro/rosdep/ruby.yaml
Hit file:///home/hjw/ros_test/rosdistro/releases/fuerte.yaml
Query rosdistro index file:///home/hjw/ros_test/rosdistro/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Add distro "dashing"
Skip end-of-life distro "eloquent"
Add distro "foxy"
Add distro "galactic"
Skip end-of-life distro "groovy"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/hjw/.ros/rosdep/sources.cache
(ros) hjw@hjw-pc:~$ 

1.5 设置 ROS 环境变量

  • 原始的终端执行:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
  • 打开另一个终端:
source ~/.bashrc

2. ROS 的卸载和配置

  • 执行卸载命令
sudo apt-get purge ros-*
sudo apt-get autoremove
sudo rm -rf /etc/ros
  • 删除环境变量
sudo gedit ~/.bashrc

source /opt/ros/melodic/setup.bash

source ~/.bashrc

3. ROS 的 DEMO 示例

  • 第一个 terminal 执行 roscore
(base) hjw@hjw-pc:~$ source activate ros
(ros) hjw@hjw-pc:~$ 
(ros) hjw@hjw-pc:~$ roscore
... logging to /home/hjw/.ros/log/b07611c4-b605-11eb-8bdc-74d83e28ed44/roslaunch-hjw-pc-8009.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://hjw-pc:44267/
ros_comm version 1.14.10


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.10

NODES

auto-starting new master
process[master]: started with pid [8031]
ROS_MASTER_URI=http://hjw-pc:11311/

setting /run_id to b07611c4-b605-11eb-8bdc-74d83e28ed44
process[rosout-1]: started with pid [8042]
started core service [/rosout]
  • 第二个 terminal 执行 rosrun turtlesim turtlesim_node
(base) hjw@hjw-pc:~$ source activate ros
(ros) hjw@hjw-pc:~$ 
(ros) hjw@hjw-pc:~$ rosrun turtlesim turtlesim_node 
[ INFO] [1621142280.640312672]: Starting turtlesim with node name /turtlesim
[ INFO] [1621142280.656568572]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]

在这里插入图片描述

  • 第三个 terminal 执行 rosrun turtlesim turtle_teleop_key
(base) hjw@hjw-pc:~$ source activate ros
(ros) hjw@hjw-pc:~$ 
(ros) hjw@hjw-pc:~$ rosrun turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle. 'q' to quit.

在这里插入图片描述

说明:在第三个 terminal 移动键盘的 ,来控制 turtle 的移动

  • 第四个 terminal 执行 rosrun rqt_graph rqt_graph

在这里插入图片描述

说明:Python 缺 package,使用 conda install pyqt、conda install pydot 、pip install rospkg

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐