Ubuntu18.04安装ROS1和ROS2 Ubuntu18.04安装ROS1-Melodic和ROS2-Dashing 保姆教程

        最近在Ubuntu18.04环境下使用realsense,需要配置ROS1和ROS2,查找了多方面教程,最后整理出来一个成功案例,自己测试已经成功(经过多次尝试,如果想使用ROS2,必须先把ROS1安装完成),具体的流程如下:

一、安装ROS1-Melodic:

1.安装源:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2.设置key

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

3.更新

sudo apt-get update

4.桌面完整安装(推荐)   

ROS,rqt,rviz,机器人通用库,2D / 3D模拟器,导航和2D / 3D感知

sudo apt-get install ros-melodic-desktop-full

5.初始化rosdep

sudo rosdep init
rosdep update

 ubuntu安装ROS进行到rosdep update时出现错误,如ERROR: unable to process source ...

ubuntu安装ROS进行到rosdep update时出现错误,如ERROR: unable to process source ..._学习道路上的小学生的博客-CSDN博客

这个尝试后不行,需要在码云上下载,找到对应路径即可,解压到realsense目录下。

修改以下三个文件:

修改文件一:

sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list

# os-specific listings first
# yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
# 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

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

yaml file:///home/avic/Zhul/RealSense/ROS/rosdistro-master/rosdep/osx-homebrew.yaml osx
yaml file:///home/avic/Zhul/RealSense/ROS/rosdistro-master/rosdep/base.yaml
yaml file:///home/avic/Zhul/RealSense/ROS/rosdistro-master/rosdep/python.yaml
yaml file:///home/avic/Zhul/RealSense/ROS/rosdistro-master/rosdep/ruby.yaml
gbpdistro file:///home/avic/Zhul/RealSense/ROS/rosdistro-master/releases/fuerte.yaml fuerte

修改文件二:

sudo gedit /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/avic/Zhul/RealSense/ROS/rosdistro-master/index-v4.yaml'

 修改文件三:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

修改第39行
#REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
REP3_TARGETS_URL = 'file:///home/avic/Zhul/RealSense/ROS/rosdistro-master/releases/targets.yaml'

 6、环境设置

source /opt/ros/melodic/setup.bash

7、构建软件包的依赖关系

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

8、测试

打开一个终端,输入:
source /opt/ros/melodic/setup.bash
roscore
打开第二个终端,输入:
source /opt/ros/melodic/setup.bash
rosrun turtlesim turtlesim_node
打开第三个终端,输入:
source /opt/ros/melodic/setup.bash
rosrun turtlesim turtle_teleop_key

使用键盘上下左右键控制小乌龟移动

 二、安装ROS1-Dashing:

1. 设置UTF-8编码

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

 2、更新软件源

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl http://repo.ros2.org/repos.key | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'

3、安装ros2

#桌面版 : 包含ROS, RViz, demos, tutorials (安装后没有bash文件)
sudo apt install ros-dashing-ros-base  #(第一步先安装基础版)
sudo apt install ros-dashing-desktop   #(第二步先安装基础版)

4、安装自动补全工具

 sudo apt install python3-argcomplete

5、导入配置脚本

source /opt/ros/dashing/setup.bash

6、安装附加RMW实现

sudo apt update
sudo apt install ros-dashing-rmw-opensplice-cpp # for OpenSplice
sudo apt install ros-dashing-rmw-connext-cpp # for RTI Connext (requires license agreement)

7、ROS 2和ROS 1之间通过ros-bridge通信

sudo apt update
sudo apt install ros-dashing-ros1-bridge  (真慢)

8、测试

mkdir  ~/ros2_ws
cd /ros2_ws
git clone https://github.com/zhangrelay/ros2_tutorials
cd ros2_tutorials
colcon build


设置环境变量
source /opt/ros/dashing/setup.bash
运行第一个终端
ros2 run demo_nodes_cpp listener
第二个终端
ros2 run turtlesim draw_square 


添加环境变量
gedit .bashrc
添加如下内容:
#source /opt/ros/melodic/setup.bash
#source /opt/ros/dashing/setup.bash
# ROS 1.0 melodic or ROS 2.0 Dashing
echo ROS 1.0 or ROS 2.0? 1=Melodic 2=Dashing 
read ROS
if (($ROS==1));then
source /opt/ros/melodic/setup.bash
echo "Melodic"
elif (($ROS==2));then
source /opt/ros/dashing/setup.bash
echo "Dashing"
else
echo "Non-ROS"
fi


之后输入
source .bashrc
以后每次启动终端时,会提示选择什么平台

猜你喜欢

转载自blog.csdn.net/zhulong1984/article/details/125333451