ROS安装PR2

一、PR2介绍

PR2是Willow Garage公司设计的机器人平台,也是目前科研领域经常用到的机器人之一。PR2有两条手臂,每条手臂七个关节,手臂末端是一个可以张合的夹爪;PR2依靠底部的四个轮子移动,在头部、胸部、肘部、夹爪上分别安装有高分辨率摄像头、激光测距仪、惯性测量单元、触觉传感器等丰富的传感设备。在PR2的底部有两台八核电脑作为机器人各硬件的控制和通信中枢,并且都安装了Ubuntu和ROS系统。ROS原本是Willow Garage为复杂的PR2机器人平台设计的软件框架,依靠强大的ROS,PR2可以独立完成多种复杂的任务,例如PR2可以自己开门、找到插头给自己充电、打开冰箱取出啤酒、打简单的台球等等。只不过PR2价格高昂,而且能力还达不到商业应用的要求,如今主要用于学术研究。可见,PR2是ROS中元老级的机器人平台,所有软件代码依托于ROS,并且全部在ROS社区中开放源代码,为我们学习、应用ROS提供了丰富的资源。

二、PR2安装

ROS Indigo版本

sudo apt-get install ros-indigo-pr2-*

ROS kinetic版本

sudo apt-get install ros-kinetic-pr2-*

ROS melodic版本

sudo apt-get install ros-melodic-pr2-*

三、Gazebo中的PR2

使用如下命令启动gazebo仿真环境,并使用pr2.launch将机器人加载到gazebo中:

roslaunch gazebo_ros empty_world.launch
roslaunchpr2_gazebo pr2.launch

也可以使用pr2_gazebo功能包中的pr2_empty_world.launch一次性启动gazebo并加载机器人模型:

roslaunch pr2_gazebo pr2_empty_world.launch

目前PR2机器人还处于静止状态,可以运行键盘控制节点,控制PR2运动

roslaunch pr2_teleop teleop_keyboard.launch

启动键盘控制节点,控制机械臂:

roslaunch pr2_teleop_general pr2_teleop_general_keyboard.launch

说到机械臂运动,就不得不提到MoveIt!,PR2机器人的机械臂也可以通过MoveIt!控制。在安装完成的PR2功能包中,已经包含了PR2手臂的MoveIt!配置功能包,可以直接启动demo示例:

roslaunch pr2_moveit_config demo.launch

除此之外,我们也可以使用如下命令,通过MoveIt!控制gazebo仿真器中的PR2:

roslaunch pr2_gazebopr2_empty_world.launch
roslaunch pr2_moveit_config move_group.launch
roslaunch pr2_moveit_config moveit_rviz.launch

在PR2仿真环境中,我们已经获取到所有传感器的数据,并且可以控制PR2移动,接下来尝试使用PR2实现SLAM,这里以gmapping为例,创建一个启动gmapping节点的启动文件pr2_build_map.launch:

<launch><node name="gmapping_node"pkg="gmapping"type="slam_gmapping" respawn="false" ><remap to="base_scan" from="scan"/><paramname="odom_frame" value="odom_combined" /></node>
</launch>

然后在该文件所在的路径下直接运行以下命令:

roslaunch pr2_build_map.launch

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

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

相关文章

Java实现树结构(为前端实现级联菜单或者是下拉菜单接口)

Java实现树结构&#xff08;为前端实现级联菜单或者是下拉菜单接口&#xff09; 我们常常会遇到这样一个问题&#xff0c;就是前端要实现的样式是一个级联菜单或者是下拉树&#xff0c;如图 这样的数据接口是怎么实现的呢&#xff0c;是什么样子的呢&#xff1f; 我们可以看看 …

初始SpringBoot:详解特性和结构

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java项目分享》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、SpringBoot…

[情商-2]:理解情商最关注的要素 - 情绪,情绪,情绪,不是事情本身,不是逻辑推理,不是讲道理

前言&#xff1a; 情商最关注的要素是情绪&#xff0c;他人的情形&#xff0c;自己的情绪&#xff0c;情绪是一个完全不同于技术人员经常关注的逻辑推理、问题解决。对于技术人员而言&#xff0c;它是一个完全不同的领域&#xff0c;有着不同的行为模式。 因此&#xff0c;在…

k8s安装

K8s 安装教程 v1.24 第一步前置环境调试 第一步确定自己的内核版本高于3 uname -sr 第二步&#xff1a;使用elrepo源升级内核检查发现当前内核版本是3.10, 使用elrepo源升级内核 配置elrepo源&#xff0c;执行如下命令 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elre…

科普:敏捷估算为什么用斐波那契数列

被一个同学问&#xff1a;敏捷估算为什么用斐波那契数列&#xff1f;有什么意义&#xff1f; 简单说说我自己的简介&#xff1a; 敏捷开发中使用斐波那契数列来估算的原因是&#xff0c;斐波那契数列可以用于估算任务的难度级别&#xff0c;并帮助团队预测完成任务所需的时间…

MySQL所有常见问题

一、事务 定义:一组操作要么全部成功,要么全部失败,目的是为了保证数据最终的一致性 在MySQL中,提供了一系列事务相关的命令: start transaction | begin | begin work:开启一个事务commit:提交一个事务rollback:回滚一个事务事务的ACID 原子性(Atomicity):当前事…

ubuntu设置显示应用程序

按住win键&#xff0c;可以搜索到想要的应用程序 或者是点击屏幕左下角的9个点图标&#xff0c;在应用程序列表中能看到这个的程序 设置android studio 在/usr/share/applications目录里&#xff0c;创建文件android-studio.desktop&#xff0c;内容如下&#xff1a; [Desk…

AI人工智能技术发现了拉斐尔名画背后的秘密:这幅画并非完全由大师本人完成

最近&#xff0c;一个先进的人工智能神经网络在拉斐尔的名画中发现了一个不寻常的地方&#xff1a;其中的一副面孔并非由拉斐尔本人绘制&#xff0c;而是出自其他艺术家之手。 详细文章网址链接&#xff1a;Deep transfer learning for visual analysis and attribution of pai…

负载均衡概述

负载均衡 负载均衡 建立在现有网络结构之上&#xff0c;它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 四层负载均衡 vs 七层负载均衡 四层负载均衡&#xff08;目标地址和端口交换&#xff09;…

[C#]使用ONNXRuntime部署一种用于边缘检测的轻量级密集卷积神经网络LDC

源码地址&#xff1a; github.com/xavysp/LDC LDC: Lightweight Dense CNN for Edge Detection算法介绍&#xff1a; 由于深度学习方法的快速发展&#xff0c;近年来&#xff0c;用于执行图像边缘检测的卷积神经网络&#xff08;CNN&#xff09;模型爆炸性地传播。但边缘检测…

【42页动态规划学习笔记分享】动态规划核心原理详解及27道LeetCode相关经典题目汇总

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

10 标准库的硬件I2C驱动mpu6050模块

阅读引言&#xff1a;本文只是给大家分享硬件I2C读取mpu6050加速度&#xff0c; 角速度&#xff0c; 温度的代码。 #ifndef __MPU6050_H #define __MPU6050_Hvoid MPU6050_WriteReg(uint8_t RegAddress, uint8_t Data); uint8_t MPU6050_ReadReg(uint8_t RegAddress);void MPU6…

计算机视觉工程师就业前景如何

计算机视觉主要涵盖了图像处理、模式识别等多个领域&#xff0c;可以应用到很多行业中。随着人工智能技术的快速发展&#xff0c;计算机视觉作为其中的重要分支之一&#xff0c;其就业前景非常广阔。 为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国…

Sensor Demosaic IP 手册PG286笔记

《 UG1449 Multimedia User Guide》中包含了大量的多媒体IP简介。 本IP 用于对bayer RGB&#xff08;每个pixel只有单个R/G/B&#xff09;做去马赛克处理&#xff0c;恢复成每个pixel点都有完整的RGB值。通过axi接口配置IP内部erg。 1、算法手册中的描述 提到了几种插值算法&…

MySQL基础笔记(1)基础理论

一.基本概念 DB&#xff1a;数据库&#xff0c;存储数据的仓库&#xff0c;数据是有组织地进行存储DBMS&#xff1a;操纵和管理数据库的大型软件 SQL&#xff1a;结构化查询语言&#xff0c;操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库的统一标准 &…

ref和reactive的区别

理解&#xff1a; 1.ref是定义简单类型 和单一的对象 2.reactive 定义复杂的类型 梳理文档&#xff1a; ref和reactive都是Vue.js 3.x版本中新增的响应式API&#xff0c;用于实现组件的数据响应式更新。它们的主要区别如下&#xff1a; 1. 数据类型不同&#xff1a;ref用于包…

React 18 新增的钩子函数

React 18 引入了一些新的钩子函数&#xff0c;用于处理一些常见的场景和问题。以下是 React 18 中引入的一些新钩子函数以及它们的代码示例和使用场景&#xff1a; useTransition&#xff1a; 代码示例&#xff1a;import { useTransition } from react;function MyComponent()…

关于Python里xlwings库对Excel表格的操作(二十四)

这篇小笔记主要记录如何【如何使用xlwings库中的“api”类设置单元格边界线型、粗细、颜色】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安装导入xlwings库&#xff1b;…

消息队列中间件的简述以及比较

文章目录 引言一、RabbitMQ的简单介绍二、ActiveMQ的简单介绍三、RocketMQ的简单介绍四、Kafka的简单介绍五、各个中间件对比总结参考文档 引言 上文简单讲述了何为消息队列和消息队列的特点&#xff08;优点&#xff09;&#xff0c;本文为大家介绍一下各个消息队列中间件的特…

C++的面向对象学习(9):文件操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、类的封装的多文件实现回顾二、文件操作1.对文件进行操作需要头文件<fstream>2.操作文件的三大类方法&#xff1a;读、写、读写 三、实现文本文件的读、写…