基于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

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j