Baxter工作站建立及简单使用

2023-05-16

1.硬件

  • 1个 Baxter Research Robot
  • 1台PC机或笔记本,安装好Ubuntu系统(推荐Ubuntu16.04安装ROS kinetic)
  • 1个无线路由器(千兆网口)
  • 2根网线

2.安装Baxter SDK

# 1.创建ROS工作空间
mkdir -p ~/ros_ws/src

# 2.source ROS
# 在每次打开终端时,都先要运行source ROS命令才能运行ros相关命令,为了避免这一繁琐过程,可以事先在.bashrc文件(Home目录下)中添加这条命令
source /opt/ros/kinetic/setup.bash

# 3.编译与安装
cd ~/ros_ws
catkin_make
catkin_make install

# 4.安装依赖
sudo apt-get update
sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-kinetic-control-msgs ros-kinetic-joystick-drivers

# 5. 安装Baxter SDK
cd ~/ros_ws/src/
wstool init
wstool merge https://raw.githubusercontent.com/RethinkRobotics/baxter/master/baxter_sdk.rosinstall
wstool update

在国内用网,执行到 wstool update 这一步可能会失败,在执行 wstool update之前,打开~/ros_ws/.rosinstall,在每个uri的前面加上 https://ghproxy.com/(访问github加速网址)
在这里插入图片描述

source /opt/ros/kinetic/setup.bash
cd ~/ros_ws/
catkin_make
catkin_make install

3.配置Baxter 通信

3.1 网络配置

在这里插入图片描述
Baxter 机器人网络连接参考网站:http://sdk.rethinkrobotics.com/wiki/Networking
将 Baxter 机器人与 PC 通过网线连接方式连接到路由器局域网上
PC 既可以通过 WIFI 连接到与 Baxter 相连的无线路由器,也可以通过网线连接路由器,我们通常是使用有限路由器连接

3.2 配置Baxter通讯

# 1.下载 baxter.sh,改变用户权限
wget https://github.com/RethinkRobotics/baxter/raw/master/baxter.sh
chmod u+x baxter.sh

# 2.编辑 baxter.sh,与自己的 Baxter 信息匹配
cd~/ros_ws/
gedit baxter.sh

# 3.编辑 baxter_hostname
> # Specify Baxter's hostname
> baxter_hostname="011xxxxxxxx.local"  //baxter序列号见机器人背部接线处附近

# 4.编辑 your_hostname 或 your_ip(二选一)
# 推荐编辑 your_hostname ,此处不介绍更改 your_ip
your_hostname="cothink-Inspiron-5488.local"

# 5.修改ros_version
ros_version="kinetic"

# 6.更改完以上内容,保存 baxter.sh

# 7.初始化 SDK 环境
# 每次打开新的终端,执行命令时,应该首先按下面步骤初始化 Baxter 机器人 SDK 运行环境
cd ~/ros_ws/
./baxter.sh

hostname 可以通过在终端输入 hostname 命令得到,也可以点击 Ubuntu 右上角电源键中关于这台电脑(About This Computer)得到,设备名称(device name)对应的值为 hostname
在这里插入图片描述

3.3 查看、验证SDK环境配置

env | grep ROS

通过上述命令,会返回一些 ROS 相关的配置信息,关注以下几个字段即可
ROS_MASTER_URI — 机器人的主机名(baxter_hostname)
ROS_IP — 工作站IP(如果没有使用 ROS_HOSTNAME 模式这里应该包含工作站的IP地址,否则此项不可见)
ROS_HOSTNAME — PC的主机名(your_hostname)(如果没有使用ROS_IP模式, 这里应
该包含你的PC的主机名(your_hostname),否则此项不可见)

至此,工作空间配置就全部完成了

4.Hello Baxter

4.1 设置ROS环境

如果之前设置过ROS环境,那么在 ~/ros_ws 文件目录下应该会有一个 devel 文件夹,如果已经有了,可以跳过下面的代码(当然重复运行一次下面的代码也是没问题的),如果还没有此文件夹,那必须运行一遍下面的代码

cd ~/ros_ws
source /opt/ros/kinetic/setup.bash
catkin_make

接下来再 Source 一下 ROS 环境设置脚本,也就是 baxter.sh

./baxter.sh

4.2 检查ROS连接

4.2.1 检查PC与ROS Master(Baxter)的连接

这一步是检查PC能否给ROS Master发送数据

ping 011506P0014.local

如果显示有数据通信,就说明与ROS Master的连接正常,继续下一步

4.2.2 检查Baxter与开发工作空间PC的连接

这一步是想检查PC能否收到ROS Master(Baxter)发过去的命令

首先用SSH远程登录ROS Master,在ROS Master上ping我们的PC机,看是否有通信。

ssh ruser@<our ROS Master>

# 密码:
rethink

ssh ruser@011506P0014.local
# 现在我们SSH登录 到了机器人,我们可以验证往回Ping 开发PC是否可行
ruser@011506P0014.local:~$ ping <ROS_IP/ROS_HOSTNAME>
# 例子:
# ROS_IP
ruser@011506P0014.local:~$ ping 192.168.1.102
或者
ruser@011506P0014.local:~$ ping cothinkTab.local

如果能ping通,说明连接正常,可以退出远程登录了。

ruser@011506P0014.local:~$ exit

4.3 查看ROS Topic

如果双向通信没有问题了,我们就可以查看目前正在发生的ROS Topic了

rostopic list

4.4 使能Baxter

操作 Baxter 机器人之前,先要使能机器人。
baxter_tools SDK工具包中,提供了 “使能enable/反使能disable/重置reset/停止stop” 机器人的API。
这在急停按钮(E-STOP)按下后是必需执行的。
必须使能 Baxter才能主动控制任何电机。

rosrun baxter_tools enable_robot.py -e

输出的结果显示 Robot Enabled 表示已经成功使能 Baxter 机器人

4.5 运行一个示例程序

roscore

# 新开一个终端
rosrun baxter_examples joint_velocity_wobbler.py

4.6 自己编写一个程序来运行Baxter

写一个 Hello Baxter 程序,实现让 Baxter 机器人向我们挥手的功能

4.6.1 使能机器人

rosrun baxter_tools enable_robot.py -e

4.6.2 编写hello_baxter.py

# Import the necessary Python modules

# rospy - ROS Python API
import rospy

# baxter_interface - Baxter Python API
import baxter_interface

# initialize our ROS node, registering it with the Master
rospy.init_node('Hello_Baxter')

# create an instance of baxter_interface's Limb class
limb = baxter_interface.Limb('right')

# get the right limb's current joint angles
angles = limb.joint_angles()

# print the current joint angles
print angles

# reassign new joint angles (all zeros) which we will later command to the limb
angles['right_s0']=0.0
angles['right_s1']=0.0
angles['right_e0']=0.0
angles['right_e1']=0.0
angles['right_w0']=0.0
angles['right_w1']=0.0
angles['right_w2']=0.0

# print the joint angle command
print angles

# move the right arm to those joint angles
limb.move_to_joint_positions(angles)

# Baxter wants to say hello, let's wave the arm

# store the first wave position
wave_1 = {'right_s0': -0.459, 'right_s1': -0.202, 'right_e0': 1.807, 'right_e1': 1.714, 'right_w0':-0.906, 'right_w1': -1.545, 'right_w2': -0.276}

# store the second wave position
wave_2 = {'right_s0': -0.395, 'right_s1': -0.202, 'right_e0': 1.831, 'right_e1': 1.981, 'right_w0':-1.979, 'right_w1': -1.100, 'right_w2': -0.448}

# wave three times
for _move in range(3):
	limb.move_to_joint_positions(wave_1)
	limb.move_to_joint_positions(wave_2)
	
# quit
quit()

在Terminal中运行编辑好的python程序

python hello_baxter.py

此时可以看到 Baxter 做了一个招手的动作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Baxter工作站建立及简单使用 的相关文章

  • 技术资源汇总(一)

    1 Ubuntu技术论坛 xff1a https askubuntu com 2 树莓派资源 https www yahboom com study raspberry3B 密码 xff1a cf0p 汇总资料提取码 xff1a hdy7
  • docker常用命令

    1 配置docker阿里云镜像 1 打开daemon json文件 xff08 若没有此文件 xff0c 则创建 etc docker daemon json xff09 xff1a vi etc docker daemon json 2
  • 网络调试助手UDP广播问题

    用直接广播地址 xff08 192 168 xxx 255 端口 xff09 可以进行广播 xff1b 用受限广播地址 xff08 255 255 255 255 端口 xff09 显示没有指定有效的远程主机端口 xff0c 搞了好久发现是
  • “平衡小车之家”家的STM32F103最小系统源代码分享

    在网上寻找了好久 xff0c 因为他家的开发板自带有mpu6050模块 故想测试其精准度以及z轴漂移程度 发现也有很大的漂移 代码如下 main c部分 xff1a span class token macro property span
  • 使用PMW3901和VL53L1X 实现室内定点悬停

    使用PMW3901和VL53L1X 实现室内定点悬停 使用PMW3901 光流传感器进行水平方向定位Pixhawk连接PMW3901传感器PX4源代码加入PMW3901驱动后重新编译QGroundControl中的配置 使用气压计和VL53
  • 使用 QGroundControl 地面站更新 PixHawk飞控的Bootloader

    安装最新版本的PX4固件 启动QGroundControl并且使用USB连接到Pixhawk飞控 选择 Q icon gt Vehicle Setup gt Firmware sidebar 打开固件设置 安装最新版本的PX4固件 更新Bo
  • 自制DIY 机器狗 完全教程 - MIT猎豹Cheetah

    自制DIY 机器狗 完全教程 MIT猎豹Cheetah 背景结构设计模块化关节电机性能考虑关节结构 四足平台设计腿部设计身体设计脚部设计 硬件设计关节驱动器通信总线板供电系统 控制系统人工智能 背景 3年前 xff0c MIT开源了世界上跑
  • centos安装wxWidgets,erlang,RabbitMq

    centos安装wxWidgets erlang RabbitMq 默认已经安装了java环境 而安装RabbitMq需要安装erlang xff0c 安装erlang又需要安装wxWidgets 安装wxWidgets 更新系统 yum
  • 2.rabbitmq概述和helloworld

    rabbitmq概述 rabbitmq中的几个概念 BROKER 接收和分发消息的应用 xff0c RabbitMQ Server 就是 Message Broker Virtual Host 出于多租户和安全因素设计的 xff0c 把 A
  • 3.rabbitmq轮询和不公平分发

    rabbitmq轮询和不公平分发 rabbitmq轮询分发 rabbitmq默认是使用轮询来分发消息的 测试代码如下所示 生产者代码 span class token comment 生产者 task rabbitmq 轮询演示 span
  • 4.rabbitmq消息应答

    rabbitmq消息应答 概述 消息应答就是消费者在收到消息的时候 xff0c 在它接收到消息并处理完毕之后 xff0c 告诉rabbitmq它已经处理完了 xff0c rabbitmq可以删除这个消息了 消息应答的方式 channel b
  • 5.rabbitmq持久化

    rabbitmq持久化 队列的持久化 队列的持久化需要我们在声明的时候指定其持久化 使用durable 61 true来持久化队列 span class token comment 队列的持久化 span span class token
  • 关于双控阵列的实现原理的讨论

    xfeff xfeff http bbs chinaunix net forum viewthread tid 4140392 html 对于一个支持FC SAN的双控存储阵列 xff0c 对外号称active active xff0c 实
  • 6.rabbitmq中exchange的几种形式

    rabbitmq中exchange的几种形式 RabbitMQ 消息传递模型的核心思想是 生产者生产的消息从不会直接发送到队列 实际上 xff0c 通常生产 者甚至都不知道这些消息传递传递到了哪些队列中 相反 xff0c 生产者只能将消息发
  • 7.rabbitmq死信和死信队列

    rabbitmq死信和死信队列 概述 先从概念解释上搞清楚这个定义 xff0c 死信 xff0c 顾名思义就是无法被消费的消息 xff0c 字面意思可以这样理 解 xff0c 一般来说 xff0c producer 将消息投递到 broke
  • 8.rabbitmq发布确认

    rabbitmq发布确认 生产者将信道设置成 confirm 模式 xff0c 一旦信道进入 confirm 模式 xff0c 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID 从 1 开始 xff0c 一旦消息被投递到所有匹配的队
  • 9.延迟队列

    延迟队列 延迟队列的概念 延时队列 队列内部是有序的 xff0c 最重要的特性就体现在它的延时属性上 xff0c 延时队列中的元素是希望 在指定时间到了以后或之前取出和处理 xff0c 简单来说 xff0c 延时队列就是用来存放需要在指定时
  • 10.回退消息

    rabbitmq回退消息 mandatory参数 在仅开启了生产者确认机制的情况下 xff0c 交换机接收到消息后 xff0c 会直接给消息生产者发送确认消息 xff0c 如果发现该消息不可路由 xff0c 那么消息会被直接丢弃 xff0c
  • 11.备份交换机

    备份交换机 概念 当交换机收到一条不可路由消息时 xff0c 将会把这条消息转发到备份交换机中 xff0c 由备份交换机来进行转发和处理 xff0c 通常备份交换机的类型为fanout xff0c 这样就能把所有消息都投递到与其绑定的队列中
  • 12.优先级队列和惰性队列

    优先级队列 如何添加优先级 选择Maximum priority xff0c 指定优先级的数值 xff0c 设定范围为0 255 xff0c 如果值为10 xff0c 那么就是0 10 xff0c 最大不能超过255 代码形式 span c

随机推荐

  • 13.rabbitmq集群搭建

    rabbitmq集群搭建和镜像队列 集群搭建 准备三台服务器 172 16 140 133 Jan172 16 140 132 Feb172 16 140 133 Mar 修改3台机器的hosts文件 span class token fu
  • 14.haproxy+keepalived负载均衡和高可用

    haproxy 43 keepalived负载均衡和高可用 概述 多个rabbitmq服务形成集群 xff0c 由haproxy来做负载均衡 xff0c haproxy会暴露出来一个端口 xff0c 客户端可以通过haproxy所在的服务器
  • 15.federation

    federation和shovel federation exchange 问题的由来 xff1a 城市A有rabbitmqA xff0c 城市B有rabbitmqB xff0c 当城市B的应用要发消息到exchangeA的时候 xff0c
  • vue瀑布流插件vue-waterfall-easy 2.x

    不知道大家都是怎么用瀑布流的 xff0c 一开始尝试用flex布局失败 xff0c 后面找到了这个组件 xff0c 还是挺好用的 xff0c 记录一下 首先是用npm安装npm install vue waterfall easy save
  • 1.JUL

    JUL JUL全称Java util Logging是java原生的日志框架 xff0c 使用时不需要另外引用第三方类库 xff0c 相对其他日志框架使用方便 xff0c 学习简单 xff0c 能够在小型应用中灵活使用 架构介绍 Logge
  • Log4j2

    Log4j2 目前市面上最主流的日志门面就是SLF4J xff0c 虽然Log4j2也是日志门面 xff0c 因为它的日志实现功能非常强 大 xff0c 性能优越 所以大家一般还是将Log4j2看作是日志的实现 xff0c Slf4j 43
  • LOG4J

    LOG4J Log4j是Apache下的一款开源的日志框架 xff0c 通过在项目中使用 Log4J xff0c 我们可以控制日志信息输出到控 制台 文件 甚至是数据库中 我们可以控制每一条日志的输出格式 xff0c 通过定义日志的输出级别
  • Slf4j(门面)

    Slf4j 简单日志门面 Simple Logging Facade For Java SLF4J主要是为了给Java日志访问提供一套标准 规范 的API框架 xff0c 其主要意义在于提供接口 xff0c 具体的实现可以交由其他日志框架
  • Logback

    Logback Logback是由log4j创始人设计的另一个开源日志组件 xff0c 性能比log4j要好 官方网站 https logback qos ch index html Logback主要分为三个模块 logback core
  • 嵌入式-C语言常见面试/笔试题

    1 关键字类型题 常见的关键字有 sizeof static const volatile 1 sizeof xff1a 通常与strlen做比较不同 例1 xff1a char str 61 Hello char p 61 str int
  • node.js的http模块输出request参数

    xff08 只作为本人自己记录所用 xff0c 参考需谨慎 xff09 ServerResponse 服务响应 domain null 域名 events finish Function resOnFinish 项目 eventsCount
  • ATI F/T Gamma sensor( 力和力矩传感器 ) 开箱测评 + 使用说明

    型号和序列号等参数如下 xff1a Description Six Axis Force Torque Sensor Manufacturer ATI Industrial Automation Serial Number FT29352
  • 阿克曼转向原理解析

    汽车的转向过程就是阿克曼转向 其也是移动机器人的一种运动模式之一 阿克曼基本原理 xff1a 汽车在行驶过程中 xff08 直线和转弯时候 xff09 xff0c 每个车轮的运动估计必须符合他的自然运动轨迹 xff0c 从而保证轮胎与地面始
  • 通过ROS控制真实机械臂(18) --- 构建 octocmap 用于碰撞检测和避障

    师兄和同门在做SLAM的时候 xff0c 经常会用到的 octomap xff0c 也就是八叉树地图 octomap相比于点云地图来说大大减小了地图的存储空间 既然octomap可以用于导航和避障 xff0c 那么自然也可以导入moveit
  • 【实用版】卡尔曼滤波及其扩展方法的区别与定位系统中的应用

    卡尔曼滤波及其扩展方法的区别与定位系统中的应用 卡尔曼滤波卡尔曼滤波的扩展EKFSPKFEnKF 定位系统中的应用 源自于学校课题 xff0c 主要用卡尔曼滤波KF及其扩展方法 xff08 包括扩展卡尔曼滤波EKF Sigma点卡尔曼滤波S
  • CP2102 USB to UART Bridge Controller 驱动安装(windows or Ubuntu)

    CP2102是一款USB转TTL电平的USB转串口芯片 xff0c 使用时发现诸多小网站上的驱动不是病毒就是安装后无效 xff0c 经同事推荐去官网下载后成功连接 官网地址 xff1a https www silabs com produc
  • 解决罗技GHUB 安装 一直初始化 下载不了问题

    罗技的GHUB在安装时一直处于初始化状态 xff0c 可以通过修改时间解决 原地址 罗技 GHub 解决初始化无法安装教程 侵删
  • 基于Cartographer的建图与导航

    一 RoboSense 16线雷达驱动安装 2 二 Cartographer的安装 2 三 配置文件结构说明 4 四 配置文件详解 4 2D lua文件的配置 5 2D launch文件的配置 6 2D pure location lua文
  • Ubuntu18.04安装autoware.ai

    前言 Autoware AI是世界上第一个用于自动驾驶技术的 All in One 开源软件 xff0c 关于它的介绍就不再赘述了 xff0c 感兴趣的可以去看一下知乎文章 xff0c 这里主要说明一下autoware ai的安装配置 之前
  • Baxter工作站建立及简单使用

    1 硬件 1个 Baxter Research Robot1台PC机或笔记本 xff0c 安装好Ubuntu系统 xff08 推荐Ubuntu16 04安装ROS kinetic xff09 1个无线路由器 xff08 千兆网口 xff09