基于ROS-Melodic版本的AUBO-i5基础环境搭建

2023-11-22 06:10

本文主要是介绍基于ROS-Melodic版本的AUBO-i5基础环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于ROS-Melodic版本的AUBO-i5基础环境搭建

  • 一、创建aubo_ws工作空间
  • 二、下载AUBO的功能包源码
  • 三、配置功能包的环境变量
  • 四、编译前的配置
  • 五、编译
  • 六、运行

版本:Ubuntu 18.04 ROS Melodic

一、创建aubo_ws工作空间

  1. 创建文件夹
mkdir -p ~/aubo_ws/src
  1. 编译
  • 目的:将普通文件夹转变成ROS的工作空间。注意路径!
  • 成功标志:~/aubo_ws/src文件夹包含CMakeLists.txt
cd ~/aubo_ws
catkin_make

二、下载AUBO的功能包源码

  1. 功能包放到工作空间下的src目录
cd ~/aubo_ws/src
  1. 获取源码 - melodic版本
git clone https://github.com/AuboRobot/aubo_robot -b melodic

三、配置功能包的环境变量

  • 目的:在任意终端,都可以运行功能包的文件
  1. 打开.bashrc文件
sudo gedit ~/.bashrc
  1. 将该行放到.bashrc文件中,并保存
source ~/aubo_ws/devel/setup.bash
  1. 验证是否添加成功。
  • 一定要重新开个终端,打印出ROS_PACKAGE_PATH变量值
  • 成功标志:环境变量的值包含功能包的位置~/aubo_ws/src即可。
echo $ROS_PACKAGE_PATH

在这里插入图片描述

四、编译前的配置

  1. 通过rosdep安装源码依赖(比较费时)
cd ~/aubo_ws/src
rosdep install -y --from-paths . --ignore-src --rosdistro melodic -r

成功标志
在这里插入图片描述

  1. 修改系统eigen3软链接
    在任何目录下,都可以
sudo ln -sf /usr/include/eigen3/Eigen/ /usr/include/Eigen
sudo ln -sf /usr/include/eigen3/unsupported/ /usr/include/unsupported
  1. 安装libprotobuf9
    如何目录,都可,看自己习惯。
  • 方式一:
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
  • 方式二:
    如果wget下载失败,可以采用下面的方法。
  • http://archive.ubuntu.com/ubuntu/pool/main/p/protobuf/libprotobuf9v5_2.6.1-1.3_amd64.deb输入到【浏览器搜索框】中
  • 回车(保存.deb文件)
  • 使用dpkg完成.deb的安装
sudo dpkg -i libprotobuf9v5_2.6.1-1.3_amd64.deb
  1. 安装所需软件
  • 将安装软件的命令,全部放到deps.sh文件中,一步执行。就无需一个一个sudo apt install安装了
  • 放到aubo_robot功能包下
cd ~/aubo_ws/src/aubo_robot
  • 创建.sh文件
touch deps.sh
  • 打开deps.sh文件
sudo gedit deps.sh
  • 将安装软件的命令,全部放到deps.sh文件中,一步执行。就无需一个一个sudo apt install安装了。deps.sh文件的内容:
sudo apt install -y ros-melodic-moveit*
sudo apt install -y ros-melodic-moveit-visual-tools
sudo apt install -y ros-melodic-industrial-*sudo apt install -y ros-melodic-gazebo-ros
sudo apt install -y ros-melodic-gazebo-plugins
sudo apt install -y ros-melodic-gazebo-ros-control
sudo apt install -y ros-melodic-joint-state-controller
sudo apt install -y ros-melodic-position-controllers
sudo apt install -y ros-melodic-joint-trajectory-controllersudo apt install -y ros-melodic-gazebo-ros-control 
sudo apt install -y ros-melodic-moveit-simple-controller-manager
sudo apt install -y ros-melodic-rviz-visual-tools
sudo apt install -y ros-melodic-moveit-visual-tools
  • 执行依赖文件(也挺费时)
sh deps.sh
  1. 更新 Moveit_core_lib
  • 位置
/home/xiao/aubo_ws/src/aubo_robot/UpdateMoveitLib/Kinetic
  • 打开Update.sh文件。将kinect改为melodic
    在这里插入图片描述
  • 进入Update.sh文件的路径下,执行下面两条命令:
chmod +x Update.sh
sudo ./Update.sh

在这里插入图片描述

  1. lib库环境变量配置
    该部分参考遨博协作机器人ROS开发 - ROS Melodic环境搭建与测试
  • 进入aubo sdk库的路径
roscd aubo_driver/lib/lib64/
  • pwd命令,打印当前文件夹绝对路径

    • 笔者的是:/home/xiao/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64
  • 新建 ldconfig 配置文件

sudo gedit /etc/ld.so.conf.d/aubo_driver.conf
  • 将库的路径拷贝到文件中,保存后退出
/home/xiao/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64
/home/xiao/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/aubocontroller
/home/xiao/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/config
/home/xiao/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/log4cplus
  • 使新建的aubo_driver.conf配置文件生效
sudo ldconfig

五、编译

如果上面操作完成,编译不会报错。

cd ~/aubo_ws
catkin_make
  • 报错:/usr/bin/ld: cannot find -lindustrial_robot_client
    • /usr/bin/ld: cannot find -lindustrial_robot_client
      collect2: error: ld returned 1 exit status
      aubo_ggcnn_gazebo/aubo_ggcnn_gazebo/robot/aubo_robot/aubo_controller/CMakeFiles/aubo_joint_trajectory_action.dir/build.make:129: recipe for target ‘/home/xiao/catkin_ws/devel/lib/aubo_controller/aubo_joint_trajectory_action’ failed

在这里插入图片描述

  • 原因:industrial-robot-client 包没安装
    • 解决:为避免其他错误,我安装了ros-melodic-industrial-*
    sudo apt remove ros-melodic-industrial-*
    

六、运行

  1. 运行moveit仿真
roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=127.0.0.1
  • 报错1
    • [ERROR] [1676803133.388400621]: PluginlibFactory: The plugin for class ‘moveit_rviz_plugin/MotionPlanning’ failed to load. Error: Failed to load library /opt/ros/melodic/lib/libmoveit_motion_planning_rviz_plugin.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = libmoveit_robot_trajectory.so.0.9.15: cannot open shared object file: No such file or directory)
      在这里插入图片描述
  • 原因1:
    • /opt/ros/melodic/lib/目录下只有libmoveit_robot_trajectory.so.1.0.11,libmoveit_robot_model.so.1.0.11,libmoveit_robot_state.so.1.0.11三个文件,没有0.9.15文件
      执行
  • 解决1
      1. 知识点补充 -> 复制cp a b (a为旧的,b为新的) ;修改 mv a b (a为旧的,b为新的)
      1. 需要先查看自己 /opt/ros/melodic/lib/目录下3个文件的版本号,我的是1.0.11,根据自己的修改一下
      1. 感谢该作者!!!
      1. 操作:这样写显得有些占地方,但是为方便大家一行一行复制。
      • (1)将1.0.113个文件复制到/opt/ros/melodic/目录下
      cd /opt/ros/melodic/lib
      
      	sudo cp -r libmoveit_robot_trajectory.so.1.0.11 ..
      
      	sudo cp -r libmoveit_robot_model.so.1.0.11 ..
      
      	sudo cp -r libmoveit_robot_state.so.1.0.11 ..
      
      • (2)将/opt/ros/melodic/目录下的1.0.113个文件的后缀改为0.9.15
      cd ..
      
      sudo mv libmoveit_robot_trajectory.so.1.0.11 libmoveit_robot_trajectory.so.0.9.15
      
      sudo mv libmoveit_robot_model.so.1.0.11 libmoveit_robot_model.so.0.9.15
      
      sudo mv libmoveit_robot_state.so.1.0.11 libmoveit_robot_state.so.0.9.15
      
      • (3)将/opt/ros/melodic/目录下0.9.153个文件复制到/opt/ros/melodic/lib/目录下
      sudo cp -r libmoveit_robot_trajectory.so.0.9.15 lib/
      
      sudo cp -r libmoveit_robot_model.so.0.9.15 lib/
      
      sudo cp -r libmoveit_robot_state.so.0.9.15 lib/
      

搞定啦!
好吧,rviz可以正常显示,但是无法规划机械臂运动。。。

  • 报错2:

    • [ERROR] [1676810486.905088528]: spline start
      [move_group-6] process has died [pid 8463, exit code -11, cmd /opt/ros/melodic/lib/moveit_ros_move_group/move_group __name:=move_group __log:=/home/xiao/.ros/log/b20c85f6-b052-11ed-94df-845cf3931fde/move_group-6.log].
      log file: /home/xiao/.ros/log/b20c85f6-b052-11ed-94df-845cf3931fde/move_group-6*.log

    在这里插入图片描述

    • 原因:move_group出错,导致rviz里面无法规划路径。
    • 解决:卸载moveit 重新装。再更新软件列表。
    sudo apt remove ros-melodic-moveit*
    
    sudo apt install ros-melodic-moveit*
    

这回真的搞定了!
在这里插入图片描述

这篇关于基于ROS-Melodic版本的AUBO-i5基础环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408056

相关文章

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo