Baxter工作站建立及简单使用

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 做了一个招手的动作。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值