Baxter手臂控制

1.Baxter介绍

1.1概述

Baxter是 Rethink Rbotics生产的一款双臂机器人。Baxter每个手臂有7个自由度,具有一系列关节执行器。
Baxter能安全的在人周围进行作业,无需设置安全边界。因为其关节组件通过系列弹性制动器(series elastic actuators)组成,在发动机/传动装置和执行器之间有一条弹簧,可以监测外部的作用力并反馈。

研究型的Baxter提供了运行于远程计算机上的SDK程序,SDK程序提供了开源的ROS API,通过API运行ROS命令和脚本,对Baxter进行操作。
名词解释:
SDK:Software Development Kit ,软件开发工具包。
API:Application Programming Interface,应用编程接口,是操作系统留给应用程序的一个调用接口。

1.2 Baxter模拟器

Baxter模拟器是开源的。
Baxter模拟器在ROS的元包baxter_simulator中。
Baxter的URDF文件用于生成模拟的Baxter模型。
功能包baxter_sim_hardware提供硬件仿真借口。可以用rqt修改位置和速度。
功能包baxter_sim_controllers提供手臂和头部的控制器。
Baxter模拟器可以用于rviz和MoveIt。

1.3 Baxter的手臂

肩部、肘部、腕部的旋转关节、俯仰关节共有7个
Baxter的控制模式有:关节位置控制、关节速度控制、关节扭矩控制、原始关节位置控制。关节位置控制是最最主要的控制模式。
手臂有两类抓手:电动抓手和吸盘抓手。
Baxter手臂袖口传感器:每一个手臂有一个集成摄像头、一个红外传感器、一个3轴加速度计
1rad=57.3º
90º=1.571rad

2.下载Baxter软件

(注意:baxter只能安装在Ubuntu14.04,其对应ROS发行版本为indigo)

2.1安装Baxter SDK软件

对于Baxter的SDK包,存放在另一个工作空间baxter_ws。
1)创建catkin工作空间目录并初始化。
用户级安装:在~/下安装。

mkdir -p ~/baxter_ws/src
cd ~/baxter_ws/src
catkin_init_workspace
Creating symlink "/home/battery/baxter_ws/src/CMakeLists.txt" pointing to "/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake"

系统级安装:供所有用户进行访问,安装在计算机上而非home

sudo makdir -p /opt/baxter_ws/src
cd /opt/baxter_ws/src
catkin_init_workspace

2)构建工作空间

cd ~/baxter_ws
catkin_make

3)添加源

source ~/baxter_ws/devel/setup.bash
echo "source ~/baxter_ws/devel/setup.bash" >> ~/.bashrc

4)检查

echo $ROS_PACKAGE_PATH

若已添加,则会看到/home//baxter_ws/src
6)安装依赖
安装BDK的依赖。

sudo apt-get update
sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-indigo-control-msgs ros-indigo-joystick-drivers

7)使用wstool
wstool检查是否已经将所有要用的Baxter SDK功能包都下载下来
( wstool is a command to manipulate ROS workspaces. )
wstool初始化:在src中添加.rosinstall文件

cd ~/baxter_ws/src
wstool init
Writing /home//baxter_ws/src/.rosinstall

wstool merge :把另一个配置并入工作空间

wstool merge http://raw.githubusercontent.com/RethinkRobotics/baxter/master/baxter_sdk.rosinstall
wstool update

8)构建、安装工作空间

cd ~/baxter_ws
catkin_make
catkin_make install

2.2安装Baxter模拟器

1)安装功能包

sudo apt-get update
sudo apt-get install gazebo2 ros-indigo-qt-build ros-indigo-driver-common ros-indigo-gazebo-ros-control ros-indigo-gazebo-ros-pkgs ros-indigo-ros-control ros-indigo-control-toolbox ros-indigo-realtime-tools ros-indigo-ros-controllers ros-indigo-xacro ros-indigo-tf-conversions ros-indigo-kdl-parser

安装的功能包:
gazebo2:用于ROS的gazebo修正版本
qt_build:
driver_common:提供对键盘和手柄支持的驱动和输出设备的驱动
gazebo_ros_control、ros_control、control_toolbox、ros_controller:提供用于模拟器的模拟控制软件和实时控制软件
gazebo_ros_pkgs:提供了gazebo和ros的接口,能在gazebo环境下对机器人模拟
realtime_tools:提供了实时发布器将实时线程的消息发布到某个主题
xacro:通过Baxter的URDF生成robt_description参数
tf_conversions:和kdl_parser提供了Baxter的坐标变换支持。tf_conversions提供了在变换库中所需要的数据类型变换程序,kdl_parser提供从URDF构建完整的KDL树所需的工具
KDL:Kinematics and Dynamics Library,运动学和动力学库

2)使用wstool工具
用wstool检查是否已经将所有需要用的Baxter模拟器功能包下载并保存到了baxter工作空间的源代码目录下

cd ~/baxter_ws/src
wstool init
wstool merge https://raw.githubusercontent.com/RethinkRobotics/baxter_simulator/master/baxter_simulator.rosinstall
wstool update

3)构建、安装工作空间

cd ~/baxter_ws
catkin_make
catkin_make install

2.3配置 Baxter shell

Baxter SDK需要通过baxter.sh文件来建立机器人与工作站之间的连接。
Baxter模拟器也需要使用baxter.sh文件,该文件建立一种模式,对ros环境变量进行设置,以识别工作站的主机。
baxter文件脚本包含了服务于baxter模拟器的专用钩子。

1)复制文件到/baxter_ws,修改为允许所有用户的权限。

cp ~/baxter_ws/src/baxter/baxter.sh ~/baxter_ws
cd ~/baxter_ws
chmod +x baxter.sh

2)打开baxter文件,修改ip或主机名。
ifconfig查看ip地址,用hostname查看主机名。
需要修改的参数名为your_ip或your_hostname。此参数会把主机IP或主机名指定到ROS_IP或者ROS_HOSTNAME环境变量中。(若都指定,ROS_HOSTNAME优先)
此外,参数ros_vertion=indigo.

2.4安装MoveIt

MoveIt是用于路径规划的ros工具。
1)将MoveIt软件下载到/baxter_ws/src/

cd ~/baxter_ws/src
git clone https://github.com/ros-planning/moveit_robots.git
sudo apt-get update
sudo apt-get install ros-indigo-moveit

git是用来管理文件的程序
2)将新下载的软件编译为整体

cd ~/baxter_ws
catkin_make

3)检查功能包

ls ~/baxter_ws/src

正确显示应该有7个功能包和一个cmakelist文件

3.Baxter模拟器

3.1在gazebo中启动模拟器

1)检查ROS的环境变量

env | grep ROS

可以看到ROS_MASTER_URI和ROS_IP or ROS_HOSTNAME

2)启动模拟器
切换到工作空间。
运行参数为sim的baxter.sh脚本,开头出现[baxter - http://localhost:11311] ,说明已经开始与模拟的Baxter进行对话了。
启动控制器,开启模拟。

cd ~/baxter_ws
./baxter.sh sim
roslaunch baxter_gazebo baxter_world.launch

3)打开新的终端

cd ~/baxter_ws
./baxter_sh sim

4)查看状态,使能Baxter,确认状态

rosrun baxter_tools enable_robot.py -s
rosrun baxter_tools enable_robot.py -e
rosrun baxter_tools enable_robot.py -s

4)设置手臂位置

rosrun baxter_tools tuck_arms.py -u

(tuck:折叠)

代码链接
https://github.com/PacktPublishing/ROS-Robotics-By-Example/tree/master/Chapter_5_code/ros_robotics

你可能感兴趣的:(ROS)