ubuntu20.04安装ros-noetic,moveit,ur机器人驱动...指南!

目录

  • 献给学习机械臂的小伙伴
    • 安装ubuntu20.04
    • 安装ROS-Noetic
    • 安装moveit!
    • 安装UR机器人相关驱动
      • 【2021.6.7更新】
    • 参考文献

献给学习机械臂的小伙伴

学习机器人的小伙伴一定很头疼,到底该怎么控制我们的机器人,才能使得它像人类手臂一样灵活呢?ROS机器人操作系统里面集成了很多机器人的功能包,我们可以直接调用这些功能包,专注于上层运动逻辑,而无需考虑底层控制,可以说十分方便,这也是未来机器人开发应用的趋势。
话不多说,先来安装好必备的环境吧!

安装ubuntu20.04

ubuntu20.04是最新的linux长期支持版系统,配套支持最新版ROS1发行版ros-noetic
使用官方的安装教程即可安装。

安装ROS-Noetic

ROS官方的英文教程写的很清楚,但是在国内由于网络的原因,要多一些步骤。

  1. ubuntu软件源切换到国内源,建议使用aliyunubuntu20.04安装ros-noetic,moveit,ur机器人驱动...指南!_第1张图片
  2. 命令行输入下列代码添加清华大学ros源
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
  1. 更新仓库
sudo apt update
  1. 开始安装ros
sudo apt install ros-noetic-desktop-full

上述命令一次可能不能成功,没事,再输入一次就行了。

  1. 安装完成后设置环境
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

到这里基本上ROS的安装已经完成了,可以打开一个ROS例程看一下:
新建一个终端(ctrl+alt+T)运行

roscore

再新建一个窗口(ctrl+shift+T)运行

rosrun turtlesim turtlesim_node

这时候应该可以看到一个小乌龟了!

再新建一个窗口运行

rosrun turtlesim turtle_teleop_key 

可以通过方向键控制小乌龟移动啦!

  1. 但是ROS的安装还有最后一步,安装相关依赖,也是最麻烦的一步。

首先安装这些:

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

然后

sudo rosdep init
rosdep update

如果你的网络够好,这一步应该没有问题。
但是很多时候由于网络原因,这一步会失败。
两个解决办法:

  1. 科学上网,使用代理
  2. 点这里

成功之后,恭喜!ROS安装部分结束!

安装moveit!

moveit!是一个很好用的机械臂运动规划库,有多好用?用了你就知道了!
直接命令行安装

sudo apt install ros-noetic-moveit

安装UR机器人相关驱动

如果你恰好有一台真实的UR机器人,那么你可以用moveit控制UR的运动。
如果你没有,也能在gazebo中进行仿真。
首先创建一个ROS工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

之后要source一下,才能读取到工作空间里的文件,以后每次打开终端进入工作空间都要执行该命令。

source devel/setup.bash

不想每次都输入的话,那就输入下面命令,这样每次打开终端会自动source:

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

【2021.6.7更新】
请忽略以下文字,直接跳到更新处。

/*************
好了,我们准备安装ur的模型配置包了,这个包里面有ur的模型文件,moveit配置等。

cd ~/catkin_ws/src
git clone -b melodic-devel https://github.com/ros-industrial/universal_robot.git

为什么我们的ros版本是noetic而要安装melodic的呢?
因为UR官方太懒了,还没更新最新的noetic的分支…
所以先用这个吧,之后我们手动改一下相关文件。

克隆完成之后,安装相关依赖:

cd ~/catkin_ws
rosdep update #如果之前在安装ros时候已经做了这步那就不用重复了
rosdep install --from-paths src --ignore-src --rosdistro noetic

好了,继续安装ur的驱动包。

git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver

克隆完成之后,再次安装相关依赖:

rosdep install --from-paths src --ignore-src -y

到这一步基本上都差不多了,不过上面说了,melodic版本的ur包有点问题,需要手动改一下,不然编译会报错。

gedit ~/catkin_ws/src/universal_robot/ur_msgs/srv/SetPayload.srv

用下面的内容替换掉原来的:

float32 payload
geometry_msgs/Vector3 center_of_gravity
-----------------------
bool success

还需要改动ur_msgs包中CMakeLists.txtpackage.xml两个文件中对应的地方:

gedit ~/catkin_ws/src/universal_robot/ur_msgs/CMakeLists.txt

CMakeLists.txt替换成下列内容:

cmake_minimum_required(VERSION 2.8.3)
project(ur_msgs)

## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS message_generation std_msgs geometry_msgs)


## Generate messages in the 'msg' folder
add_message_files(
   FILES
   Analog.msg
   Digital.msg
   IOStates.msg
   RobotStateRTMsg.msg
   MasterboardDataMsg.msg
   RobotModeDataMsg.msg
   ToolDataMsg.msg
)

## Generate services in the 'srv' folder
add_service_files(
   FILES
   SetPayload.srv
   SetSpeedSliderFraction.srv
   SetIO.srv
)


## Generate added messages and services with any dependencies listed here
generate_messages(
   DEPENDENCIES
   std_msgs
   geometry_msgs
)

###################################
## catkin specific configuration ##
###################################
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES ur_msgs
   CATKIN_DEPENDS message_runtime std_msgs geometry_msgs
#  DEPENDS system_lib
)

###########
## Build ##
###########

#############
## Install ##
#############

#############
## Testing ##
#############
gedit ~/catkin_ws/src/universal_robot/ur_msgs/package.xml

package.xml替换成下列内容:


<package format="2">
  <name>ur_msgsname>
  <version>1.2.5version>
  <description>The ur_msgs packagedescription>
  
  <author>Andrew Glusiecauthor>
  <author>Felix Messmerauthor>
  <maintainer email="[email protected]">G.A. vd. Hoornmaintainer>
  <maintainer email="[email protected]">Miguel Prada Sarasolamaintainer>
  <maintainer email="[email protected]">Nadia Hammoudeh Garciamaintainer>
  
  <license>BSDlicense>
  
  <buildtool_depend>catkinbuildtool_depend>
  <build_depend>message_generationbuild_depend>
  <depend>std_msgsdepend>
  <depend>geometry_msgsdepend>
  <exec_depend>message_runtimeexec_depend>

  <export>
  export>
package>

***********/

【2021.6.7更新】

官方功能包更新了,我们使用下面的方式安装。

$ cd ~/catkin_ws/
 #clone the driver
$ git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver
 #clone fork of the description. 
$ git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot
 #clone ur_msgs
$ git clone https://github.com/ros-industrial/ur_msgs.git src/ur_msgs

$ rosdep update #如果之前在安装ros时候已经做了这步那就不用重复了
$ rosdep install --from-paths src --ignore-src -y

好了,现在可以开始编译了,检查以下自己是不是在catkin_ws目录下:

catkin_make

编译完成后再

source devel/setup.bash

OK!大功告成!安装完毕!

试试看我们的ur和moveit吧

roslaunch ur3_moveit_config demo.launch

如果你不行的话,是不是没有source!
ubuntu20.04安装ros-noetic,moveit,ur机器人驱动...指南!_第2张图片

参考文献

【1】https://github.com/ros-industrial/universal_robot
【2】https://github.com/UniversalRobots/Universal_Robots_ROS_Driver

求点赞

你可能感兴趣的:(ubuntu,git)