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># 密码:
rethinkssh 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 做了一个招手的动作。

Baxter工作站建立及简单使用相关推荐

  1. 用Python建立最简单的web服务器

    用Python建立最简单的web服务器 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录的路径下,输入命令: python -m Web服务器模块 [端口号,默认 ...

  2. bat 删除文件_利用电脑文本文档建立一个简单方便的删除文件的小程序

    删除文不需要的文件或者资料,是日常工作中必定会遇到了. 各种的杀毒软件或者防护软件都具备删除文件的功能,例如360.腾讯电脑管家.这些操作起来其实也不是太麻烦! 不过呢!今天来和大家分享一个更简单的方 ...

  3. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  4. Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5个样本)——概率预测

    Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5个样本)--概率预测 目录 输出结果 核心代码 输出结果 核心代码 # -*- coding: ...

  5. Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5+1个样本)——类别预测

    Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5+1个样本)--类别预测 目录 输出结果 核心代码 输出结果 核心代码 # -*- codin ...

  6. Hibernate学习——建立一个简单的Hibernate项目

    最近老师让做个web小应用,大三的时候学习过一点J2EE的东西,也做过一些web相关的XXX管理系统,都是用servlet,jsp这些完成的,虽然勉强能够完成任务,但其中各种代码掺杂在一起,不好看而且 ...

  7. 机器人坐标系建立_如何在30分钟内建立一个简单的搜索机器人

    机器人坐标系建立 by Quinn Langille 奎因·兰吉尔(Quinn Langille) 如何在30分钟内建立一个简单的搜索机器人 (How to Build A Simple Search ...

  8. 使用html 语言建立一个简单的网页,如何用记事本建立简单的网页(1).doc

    第九章 网页制作 实验一 用记事本建立简单的HTML文件 [实验目的] 学会用HTML语言建立一个简单的网页. [实验内容] 建立一个网页,布局自定,包括自我介绍.图片.自己的电子信箱地址等,要求在标 ...

  9. 怎么建立一个简单的程序化交易系统?

    怎么建立一个简单的程序化交易系统? 交易系统构成就有好几个部分,主要给大家介绍一个简单的交易系统的构成. 简单的交易系统建立的话至少要包括3个部分,即入市信号系统.离市信号系统.资金风险控制系统. 入 ...

最新文章

  1. android调试——教你用dumpsys命令调试
  2. linux怎么复制粘贴_linux中的实用技巧和快捷键总结
  3. 无卷积骨干网络:金字塔Transformer,提升目标检测/分割等任务精度(附源代码)
  4. 进入ASP .net mvc的世界
  5. 转载]Cyclone II JTAG ASP 配置下载程序
  6. 代码太烂,可能是他离职的原因吧!
  7. 【IoT最佳实践】设备获取实时天气信息
  8. 彻底搞懂阻塞、非阻塞、同步、异步
  9. uinty粒子系统子物体变大_新Unity 最新粒子系统如何用代码改变参数
  10. Python计算器练习
  11. 解读对象存储九大关键特征
  12. MySQL日志与备份
  13. OpenNLP使用小结
  14. 外设驱动库开发笔记47:ADS111x系列ADC驱动
  15. java与模式 之,《java与模式》学习之状态模式
  16. Java开发常用英语单词
  17. python链家新房信息获取练习
  18. 数据标注的终点会是众包么?(AI数据标注猿交流社区群欢迎加入)
  19. 【saprk Steaming】
  20. 【技术分享】如何用 TLA+ 思维为分布式算法建模

热门文章

  1. 手把手教你写一个安卓app
  2. 那些年啊,那些事——一个程序员的奋斗史 ——107
  3. 最新版Xyplayer X4.0.8
  4. 诺诺助手提示正在连接服务器,诺诺导账助手3.0操作说明.pdf
  5. input输入框,正则格式化手机号(344)
  6. IEC 61131-3编程标准(GBT 15969.3)
  7. springboot中的事务
  8. 汉语言文学考计算机和英语专业吗,我是一名英语专业的本科生想考研,不知道该考汉语言文学还是考法学?望了解这方面信息的给我一些建议?...
  9. 【Ray Trace from Groud Up】光线追踪代码实现解析
  10. 混合策略纳什均衡计算