Ubuntu+Ros+kinect_v2+机械臂URDF在ROS中MoveIt的配置和使用+Moveit 实时控制UR5机械臂与问题解答

一、Ubuntu版本-20.04

二、Ros安装

1、添加ROS软件源

将下面这条命令复制到ubuntu的终端执行

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、添加密钥

将以下命令复制到ubuntu的终端执行

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

成功后会显示如下界面:

3、更新软件源

将以下命令复制到ubuntu的终端执行

sudo apt update

成功后会显示如下界面:

4、开始安装ROS

此次安装的ros版本为noetic

sudo apt install ros-noetic-desktop-full

成功后显示如下界面

  1. 配置环境变量

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 验证ros安装成功

roscore

按ctrl+alt+t打开一个新的终端,输入以下命令

rosrun turtlesim turtlesim_node

按ctrl+alt+t再打开一个新的终端,输入以下命令

rosrun turtlesim turtle_teleop_key

看见如下界面,且可以移动小海龟则安装成功

7、rosdep安装

(1)安装构建依赖

sudo apt install python3-rosdep

(2)初始化

sudo apt install python3-rosdep2

初始化会报错,报错信息如下:

ERROR: cannot download default sources list from:https : //raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.

错误原因:境外资源被屏蔽

解决方法:打开http://gitee.com/zhaoxuzuo/rosdistro,打开rosdistro/rosdep/sources.list.d/20-default.list文件,复制以下内容:gitee.com/zhao-xuzuo/rosdistro/raw/master

在终端输入如下命令:

find . -type f | xargs grep "raw.githubusercontent"

修改相关文件:./rosdistro/__init__.py、./rosdep2/gbpdistro_support.py、./rosdep2/sources_list.py、./rosdep2/rep3.py。使用sudo get+文件名打开文件

将文件中raw.githubusercontent.com/ros/rosdistro/master更改为复制的内容。

(3)再次初始化

sudo rosdep init
rosdep update

就可以正常实现rosdep的初始化与更新

三、kinect_v2安装

1、首先安装libfreenect2

(1)下载libfreenect2

git clone https://github.com/OpenKinect/libfreenect2.git

(2)最好先安装好opencv,ubuntu20.04安装opencv4.6.0参考下列链接

https://blog.csdn.net/stringwinder/article/details/127308113?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167637659816782425627316%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167637659816782425627316&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-127308113-null-null.142^v73^control_1,201^v4^add_ask,239^v1^control&utm_term=ubuntu20.04%E5%AE%89%E8%A3%85opencv4.6.0&spm=1018.2226.3001.4187

(3)安装依赖

sudo apt-get install build-essential cmake pkg-config libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev 
sudo apt-get install libglfw3-dev
sudo apt-get install libopenni2-dev
sudo apt-get install libusb-1.0-0-dev

(4)开始安装

进入libfreenect2

cd libfreenect2

新建build文件并进入

mkdir build && cd build

编译

cmake ..
make

cmke..可能会出现如下问题:

ubuntu@ubuntu:~/Desktop/libfree/libfreenect2/build$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
-- using tinythread as threading library
-- Checking for modules 'libva;libva-drm'
--   No package 'libva' found
--   No package 'libva-drm' found
-- Could NOT find TegraJPEG (missing: TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_L4T_OK TegraJPEG_DRIVER_OK TegraJPEG_WORKS) 
CMake Error at /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find TurboJPEG (missing: TurboJPEG_INCLUDE_DIRS TURBOJPEG_WORKS)
Call Stack (most recent call first):
  /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:377 (_FPHSA_FAILURE_MESSAGE)
  cmake_modules/FindTurboJPEG.cmake:66 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:237 (FIND_PACKAGE)


-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/Desktop/libfree/libfreenect2/build/CMakeFiles/CMakeOutput.log"

解决方案

sudo apt-get install libturbojpeg0-dev

然后删掉build,重新建build然后cmake . .

安装

sudo make install

设定udev rules,明确libfreenect2的路径,比如/home/jin/libfreenect2/

sudo cp libfreenect2/platform/linux/udev/90-kinect2.rules /home/jin/libfreenect2/

重新插拔Kinect2相机。在刚才build目录下运行

./bin/Protonect

看见画面便成功

2、ROS上使用Kinect v2

暂时还未成功

四、机械臂URDF在ROS中MoveIt的配置和使用

1、下载UR5机械臂URDF文件

URDF文件放在新建的功能包中后,编译(catkin_make),再执行下面代码即可运行可视化文件

roslaunch URDF文件 URDF文件里的.launch文件

2、配置MoveIt

(1)安装moveit

sudo apt-get install ros-noetic-moveit
source /opt/ros/noetic/setup.bash

(2)可以用下面的代码查看是否安装成功,并查看moveit!的版本

moveit_version

(3)启动MoveIt,这一步需要在新建的工作空间中执行,并且打开rocore ,再source一下

roscore
source devel/setup.bash
rosrun moveit_setup_assistant moveit_setup_assistant

(4)开始配置

具体配置参考以下链接

https://www.guyuehome.com/7613

注意:最后生成配置文件步骤,需要提前建立空文件夹,例如~/catkin_ws/src/panda_moveit_config。最后的文件名一定是moveit_config为结尾。

启动rviz进行可视化

roslaunch **_moveit_config demo.launch

五、Moveit 实时控制UR5机械臂

1、Universal_robot的软件包安装

创建工作空间并编译

mkdir -p ~/catkin_UR5/src
cd ~/catkin_UR5/src
catkin_init_workspace
cd ~/catkin_UR5
catkin_make
source devel/setup.bash

进入定义好的catkin_UR5工作空间

cd ~/catkin_UR5/src 

下载 Ros 服务器中的 universal_robot.git 的数据包源码,并添加到 src 中

git clone -b melodic-devel https://github.com/ros-industrial/universal_robot.git 

进入 catkin_UR 5工作空间

cd ~/catkin_UR5

安装插件

rosdep install --from-paths src --ignore-src --rosdistro noetic

进行编译

catkin_make 

运行环境变量设置脚本文件

source /devel/setup.bash

2、安装驱动

方法1:

(1)下载ur_modern_driver驱动:https://github.com/ros-industrial/ur_modern_driver

(2)删除 catkin_UR5/src/universal_robot 这个目录下的 ur_driver 文件夹。

(3)将下载好的 ur_modern_driver .zip 复制到 catkin_UR5/src/universal_robot 这个目录下。

(4)解压 ur_modern_driver.zip

sudo  unzip  ur_modern_driver.zip 

(5)修改ur_modern_driver文件夹中的ur_hardware_interface.cpp文件!!!

将所有“controller_it->hardware_interface”替换成“controller_it->type

(6)进入到 catkin_UR5目录下,重新编译

catkin_make 

(7)遇见catkin_make错误

如果是这种错误

CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "octomap_ros" with
  any of the following names:

    octomap_rosConfig.cmake
    octomap_ros-config.cmake

  Add the installation prefix of "octomap_ros" to CMAKE_PREFIX_PATH or set
  "octomap_ros_DIR" to a directory containing one of the above files.  If
  "octomap_ros" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  octomap_mapping/octomap_server/CMakeLists.txt:19 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/zdj/octomap/octomap_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/zdj/octomap/octomap_ws/build/CMakeFiles/CMakeError.log".
Makefile:320: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed;

看见框住的,就是缺少的,所以用

//octomap_ros是我们缺少的,但是我们要把_改成-,noetic是ros版本;
sudo apt-get install ros-noetic-octomap-ros

然后接着catkin_make

方法2:

(1)进入之前catkin_UR5工作空间

cd ~/catkin_UR5
catkin_make
source devel/setup.bash

(2)安装驱动包

git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver
git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot
git clone https://github.com/ros-industrial/ur_msgs.git src/ur_msgs

(3)编译

catkin_make
source devel/setup.bash

3、连接UR5机械臂

(1)设置ployscope的静态IP地址

要启用网络连接,请使用UR的示教器导航至设置机器人->设置网络菜单(如下附件所示)。

注意,ip地址初始为0.0.0.0,我们需要更改设置,然后点击应用,会有提示网络以连接

(2)设置电脑端IP

注意电脑IP地址跟ployscope是不一样的,机器人的IP地址是192.168.1.10,是为了使电脑跟它处于一个局域网下,仅将最后一个小数点后面的那个设置得不一样即可,我设置成了192.168.1.11。IPV4选项设置如下图所示,点击应用即可。启动UR5机器人。

(3)检验电脑和UR5机械臂网络是否连接成功

启动一个终端,并输入:

ifconfig 

再测试连接情况:

 ping  192.168.1.10 

如下图代表电脑和UR5机械臂网络是否连接成功!下一步可进行ROS驱动UR5机械臂测试

4、使用Moveit控制UR5机械臂

(1)第一个终端打开并输入:

roscore

(2)第二个终端打开,进入catkin_UR5文件夹目录(或第四章配置好的工作空间):

cd ~/catkin_UR5
//cd ~/catkin_ws //第四章保存的工作空间

(3)在此终端下,启动机器人驱动程序:

roslaunch ur_modern_driver ur5_bringup.launch limited:=true robot_ip:=192.168.1.10 use_lowbandwidth_trajectory_follower:=true

(4)第三个终端打开,进入catkin_UR5文件夹(或第四章配置好的工作空间)目录,启动 moveit :

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
//roslaunch **_moveit_config demo.launch limited:=true  //第四章保存的文件

(5)第四个终端打开,进入catkin_UR5文件夹目录,启动 rviz:

roslaunch ur5_moveit_config moveit_rviz.launch config:=true
//roslaunch **_moveit_config moveit_rviz.launch config:=true //第四章保存的文件

接下来就可以在 rviz 中进行运动规划,并控制真实机器人按照规划的路径运动了。

(6)遇见的困难:

在rviz中进行运动规划时,可以规划成功,但机器人执行会失败。

开启rviz的终端显示:

开启moveit的终端显示:

解决方法:

将catkin_UR5/src/ur5_moveit_config/config/controllers.yaml文件中的action_ns字段的值修改为follow_joint_trajectory,重新执行使用Moveit控制UR5机械臂操作即可成功!

六、遇到的问题与解决措施

1、roslaunch **_.launcn文件报错

错误信息如下:

RLException: [racecar.launch] is neither a launch file in package [racecar_gazebo] nor is [racecar_gazebo] a launch file name

The traceback for the exception was written to the log file

解决方法:

方案1:

回去再次编译:

catkin_make

添加环境变量:

source ./devel/setup.bash

方案2:

打开这个文件:

sudo  gedit ~/.bashrc

在该文件的最后添加如下代码,catkin_ws为ros工作路径下的功能包

source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/

然后重启bashrc

source ~/.bashrc

再次roslaunch **_.launch文件就成功。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值