ubuntu20.04安装ros并配置相关环境以及驱动AUBO i5机械臂

ubuntu20.04安装ros并配置相关环境以及驱动AUBO i5机械臂

  • 安装ros
  • 安装rosdep(小鱼的rosdepc,又快又好用)
  • 环境配置
  • 下载并编译aubo ros
  • lib库环境变量配置
  • aubo gazebo
  • aubo rviz
  • 驱动真实机械臂

安装ros

搜索鱼香ros网站https://fishros.com/,根据一键安装ros里提供的指令

wget http://fishros.com/install -O fishros && . fishros

按着运行的提示,选择1noetic(ros)继续安装,具体选择看运行的提示即可。

安装rosdep(小鱼的rosdepc,又快又好用)

根据一键安装ros里提供的指令

wget http://fishros.com/install -O fishros && . fishros

在这里插入图片描述
按着运行提示选择3安装即可。

环境配置

1.industrial依赖安装,终端输入如下指令。

sudo apt install ros-noetic-industrial-*

安装这个依赖可能会遇到如下报错:
在这里插入图片描述
解决方案:

#使用这个指令:sudo dpkg -i --force-overwrite <filename>
$ sudo dpkg -i --force-overwrite var/cache/apt/archives/python3-catkin-pkg-modules_0.4.24-1_all.deb
#然后继续输入修复依赖指令:
$ sudo apt-get -f install```提示:var/cache/apt/archives/python3-catkin-pkg-modules_0.4.24-1_all.deb为我自己的路径,你自己看自己sudo apt --fix-broken install后报错。

如果上面两条命令用完依然会出现同样的报错,如下:
在这里插入图片描述
上次是1.5.0版本报错,这次是1.0.0报错,同一类型错误,重新输入上面两条方案指令,即可解决!
解决完报错,再重新输入执行指令安装industrial依赖:
在这里插入图片描述

2.Gazebo、rviz等依赖安装,终端输入如下指令。

sudo apt install ros-noetic-gazebo-ros ros-noetic-gazebo-plugins ros-noetic-gazebo-ros-control ros-noetic-joint-state-controller ros-noetic-position-controllers ros-noetic-joint-trajectory-controller
sudo apt-get install ros-noetic-gazebo-ros-control 
sudo apt-get install ros-noetic-moveit-simple-controller-manager
sudo apt-get install ros-noetic-rviz-visual-tools
sudo apt-get install ros-noetic-moveit-visual-tools

3.修改系统eigen3软链接,在终端中输入如下指令。

sudo ln -sf /usr/include/eigen3/Eigen/ /usr/include/Eigen
sudo ln -sf /usr/include/eigen3/unsupported/ /usr/include/unsupported

4.安装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

下载并编译aubo ros

1.新建名称为 aubo_ws 的工作空间,并在 src 目录下下载官方最新 noetic 版本源码。执行如下命令:

mkdir -p ~/aubo_ws/src
cd ~/aubo_ws/src/
git clone https://github.com/AuboRobot/aubo_robot.git -b Noetic

git clone命令执行不了,可直接去对应的官网下载aubo_robot的zip包然后放到src文件夹下,注意不是aubo_robot这个名的最好改一下。
2.通过rosdep安装源码依赖

rosdepc install -y --from-paths . --ignore-src --rosdistro noetic -r

出现rosdep update错误
在这里插入图片描述
这里运行后会有一条白色Error,无需处理,看到successfully即为成功。
解决方法:使用的鱼香ros下载配置ros的话可以改成rosdepc再运行,即输入指令

rosdepc update

结束后,再继续输入一开始的rosdepc安装指令安装源码依赖:
在这里插入图片描述
3.使用catkin工具配置工作空间并进行源码编译,在终端输入如下指令。

cd ~/aubo_ws
catkin_make

lib库环境变量配置

1.输入如下指令进入aubo sdk库的路径

cd ~/aubo_ws/
source devel/setup.bash
roscd aubo_driver/lib/lib64/

2.通过输入 pwd 命令打印当前文件夹绝对路径,示例路径如下(具体以实际打印为准):

pwd
//输出结果:/home/cxh/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64

实际与你的路径不同之处在于cxh这个地方
这里是在1.的基础上使用pwd命令打印路径为下面4.作准备
3.执行如下命令新建 ldconfig 配置文件:

sudo gedit /etc/ld.so.conf.d/aubo_driver.conf

运行完后会打开一个新建的空文件(打开文件有点慢,稍微等一下,不要乱点)
4.将下列库的路径拷贝到文件中,保存后退出。注意以第二步中打印的实际路径为准。

/home/cxh/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64
/home/cxh/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/aubocontroller
/home/cxh/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/config
/home/cxh/aubo_ws/src/aubo_robot/aubo_driver/lib/lib64/log4cplus

5.在终端输入如下指令使能新建的配置文件。

sudo ldconfig

aubo gazebo

cd ~/aubo_ws
source devel/setup.bash
roslaunch aubo_gazebo aubo_i5_gazebo_control.launch

运行报错
解决办法:
1、修改aubo_i5_gazebo_control.launch文件
找到aubo_ws文件夹,在该文件夹下右键打开终端,输入命令

code .

会通过vscode打开aubo_ws代码文件,找到要修改的代码文件,如下是修改过的:
在这里插入图片描述
主要修改了两个地方:
(1)

<param name="robot_description" command="$(find xacro)/xacro '$(find aubo_gazebo)/urdf/aubo_i5.xacro'"/>

直接将这句话复制粘贴到对应代码文件中的位置,原先这句话是被注释的,而且没有command内容,按着现在这里修改好的这句的内容直接粘贴过去即可完成修改
(2)

<!-- 2.Run a python script to the send a service call to gazebo_ros to spawn a URDF robot -->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
args="-urdf -model arm -param robot_description -model robot -x 0 -y 0 -z 0.001"/>

同样的将修改好的这块内容复制粘贴到代码文件对应位置覆盖即可!
修改完成后记得保存!!!然后再用下面两条命令在终端aubo_ws下更新+执行gazabo

source devel/setup.bash
roslaunch aubo_gazebo aubo_i5_gazebo_control.launch

即可弹出aubo_i5的gazabo显示:
在这里插入图片描述

aubo rviz

cd ~/aubo_ws
source devel/setup.bash
roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=127.0.0.1

运行完,即可弹出aubo_i5的rviz显示:
在这里插入图片描述

驱动真实机械臂

我们使用的网线进行控制实际的机械臂运行
方法一:电脑主机与机械臂两根网线分别连接路由器
查看电脑ip

//打开终端输入:
ifconfig
//输出示例:ip 192.168.31.84 子网掩码:255.255.255.255(24)  网关:192.168.31.255

查看机械臂ip
打开示例器后依次点击->设置->系统->网络->ifconfig
得到机械臂ip 192.168.31.83
最后在电脑终端输入:

ping 192.168.31.83

验证是否连接成功
操作机械臂
配成成功后运行:

roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=192.168.31.83

然后就可以控制真实的机械臂进行运动。
方法二:电脑主机用网线连接机械臂
查看电脑ip

//打开终端输入:
ifconfig
//输出示例:ip 192.168.31.84 子网掩码:255.255.255.255(24)  网关:192.168.31.255

设置机械臂ip
打开示例器后依次点击->设置->系统->网络
设置机械臂ip地址 192.168.31.**(**不能与电脑相同,0-255取值)
设置机械臂网关与电脑相同
最后在电脑终端输入:

ping 192.168.31.**

验证是否连接成功
操作机械臂
配置成功后运行:

roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=192.168.31.**
//**为上面设置值

然后就可以控制真实的机械臂进行运动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chromium内核浏览器编译记(四)Linux版本CEF编译

转载请注明出处&#xff1a;https://blog.csdn.net/kong_gu_you_lan/article/details/136508294 本文出自 容华谢后的博客 0.写在前面 本篇文章是用来记录编译Linux版本CEF的步骤和踩过的坑&#xff0c;以防止后续再用到的时候忘记&#xff0c;同时也希望能够帮助到遇到同样问…

Crow 编译和环境搭建

Crow与其说是编译&#xff0c;倒不如说是环境搭建。Crow只需要包含头文件&#xff0c;所以不用编译生成lib。 Crow环境搭建 boost&#xff08;可以不编译boost&#xff0c;只需要boost头文件即可&#xff09;asio &#xff08;可以不编译&#xff0c;直接包含头文件。不能直接…

【Linux】软件管理器yum和编辑器vim

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 一、Linux下安装软件的方案1.1 源代码安装1.2 rpm安装1.3 yum安装 二、Linux软件…

Spring Boot 配置热部署

前言 对于 Spring Boot 项目之中, 在刚开始学习的时候, 每当代码进行变动的时候, 想要生效那就必须要手动重启. 为什么要重启呢 ? 原因在于写的代码是依靠运行之后的 class 文件运行的, 当我们的代码更新以后, 如果不去手动重启, 那么就无法生成新的 class 文件, 执行的就是旧…

蓝桥杯物联网竞赛_STM32L071_11_知识体系的查漏与补缺

太久没学单片机了&#xff0c;再重新过一遍查漏补缺&#xff0c;对其中之前没怎么在意的&#xff0c;而现在又发觉的问题进行再分析与补充 1. debug serial wire是干什么用的 这个东西我勾选不勾选都对我的程序没有什么影响&#xff0c;我很好奇是干什么用的&#xff0c;网上查…

vue3+elementPlus:el-table-column表格列动态设置单元格颜色

:cell-style属性 //html<el-tableempty-text"暂无数据":data"datalist.table":max-height"height"row-key"id"border:cell-style"cellStyle"> <el-table>//js //动态设置单元格颜色 const cellStyle ({ row, c…

Java后台面试相关知识点解析

文章目录 JavaJava中四种引用类型及使用场景集合HashMap源码及扩容策略HashMap死循环问题ConcurrentHashMap与HashtableConCurrentHashMap 1.8 相比 1.7 判断单链表是否有环&#xff0c;并且找出环的入口IO线程池线程池的几种创建方式判断线程是否可以回收线程池的7大核心参数线…

【MySQL】lower_case_table_names作用及使用

知识点&#xff1a; lower_case_table_names 是mysql设置大小写是否敏感的一个参数。 场景&#xff1a;在使用dataease时&#xff0c;连接外部数据库&#xff0c;启动报错&#xff01;后查看官方文档&#xff0c;特别要求改数据库配置文件&#xff1a;lower_case_table_names …

Mybatis从入门到CRUD到分页到日志到Lombok到动态SQL再到缓存

Mybatis 入门 1.导入maven依赖 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>x.x.x</version> </dependency>2.配置核心文件 <?xml version"1.0" encoding"U…

【MySQL知识体系】第1章 初始 MySQL

文章目录 第1章 初始 MySQL1.1 MySQL 介绍1.1.1 什么是 MySQL&#xff1f;1.1.2 MySQL 的特点&#xff1f;1.1.3 MySQL 默认端口&#xff1f; 1.2 安装 MySQL1.2.1在MacOS上安装MySQL1.2.2 在Windows上安装MySQL 1.3 如何选择 MySQL 客户端1.3.1 在MacOS上安装Workbench1.3.2 在…

【吊打面试官系列】Java虚拟机JVM篇 - 三道最简单最常问的JVM面试题

大家好&#xff0c;我是锋哥。今天分享三道最简单最常问的JVM面试题&#xff0c;希望对大家有帮助&#xff1b; 一&#xff0c;请问JDK与JVM有什么区别&#xff1f; 简单来说&#xff1a; 1. JVMJava 运行器&#xff1b; 2. JREJVM Java 基础&核心类库&#xff1b; 3. JD…

【贪心算法】专题练习二

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;买卖股票的最佳时机&#x1f449;&…

吴恩达深度学习笔记:神经网络的编程基础2.1-2.3

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第二周&#xff1a;神经网络的编程基础 (Basics of Neural Network programming)2.1 二分类(Binary Classification)2.2 逻辑回归(Logistic Regression) 第一门课&#xff1a;神经网络和深度学…

【机器学习】详解正则化思想

我们的生活当中真正有意义或者有价值的部分可以概括为两句话&#xff1a;一句话是&#xff1a;弄清楚某个东西是怎么一回事&#xff0c;另一句话是&#xff0c;弄清楚某个东西是怎么一回事。头一句话&#xff0c;我们弄清楚的那个东西对于我们而言是未知的&#xff0c;但是已经…

【数据结构】二、线性表:4.循环链表的定义及其基本操作(循环单链表,循环双链表的初始化、判空、判断头结点、尾结点、插入、删除)

文章目录 4.循环链表4.1循环单链表4.1.1初始化4.1.2判断单链表是否为空4.1.3判断p结点是否为循环单链表的表尾结点 4.2循环双链表4.2.1初始化4.2.2判断循环链表是否为空4.2.3判断结点p是否为循环双链表的表尾结点4.2.4双链表的插入4.2.5双链表的删除 4.循环链表 4.1循环单链表…

Android自定义横向滑动菜单的实现

本文讲述了Android自定义横向滑动菜单的实现。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 前言 开发安卓过程中&#xff0c;经常会用到标题栏的样式&#xff0c;有时候传统方式不能满足开发者的需要&#xff0c;这时候就需要自定义控件来实现。&#xff08;注意&…

Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口

CleanMyMac 是 macOS 上久负盛名的系统清理工具&#xff0c;2018 年&#xff0c;里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化&#xff0c;焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能&#xff0c;使得在日常使用 macOS 时有了…

短视频矩阵系统----矩阵系统源码搭建(技术门槛?)

短视频矩阵是什么意思&#xff1f;短视频矩阵的含义可以理解为全方位的短视频账号&#xff0c;通过不同的账号实现全方位的品牌展示。实际上是指一个短视频账号&#xff0c;通过不同的链接实现品牌展示&#xff0c;在不同的粉丝流量账号中互相转发同一个品牌&#xff0c;在主账…

为什么电容器放电电阻器现在被强制要求作为基本安全装置

在电子产品中&#xff0c;电容器放电电阻器或泄放电阻器是与高压电源电路的输出并联的电阻器&#xff0c;其明确目的是释放存储在电源滤波电容器中的剩余电荷。 例如&#xff0c;开关模式电源使用桥式整流器将交流市电转换为 320V&#xff08;市电电压为 220/240V&#xff09;或…

【Python学习篇】Python基础入门学习——你好Python(一)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…