Baxter机器人---Hello_baster(二)

原创博文,转载请标明出处:--周学伟http://www.cnblogs.com/zxouxuewei/

 

Step 1: Setup ROS Environment

root@zxwubuntu-Aspire-V3-572G:~#  cd ~/ros_ws
root@zxwubuntu-Aspire-V3-572G:~# source /opt/ros/indigo/setup.bash
root@zxwubuntu-Aspire-V3-572G:~# catkin_make

 Source ROS Environment Setup Script

# Source baxter.sh script
root@zxwubuntu-Aspire-V3-572G:~# . baxter.sh
 

 Step 2: Verify ROS Connectivity

1.Verify ROS Master Ping

# Identify the ROS Master location
root@zxwubuntu-Aspire-V3-572G:~# env | grep ROS_MASTER_URI
root@zxwubuntu-Aspire-V3-572G:~# ping <our ROS Master>
# Example
root@zxwubuntu-Aspire-V3-572G:~# ping 011503P0019.local

Baxter机器人---Hello_baster(二)_第1张图片

2.View Available ROS Topics

root@zxwubuntu-Aspire-V3-572G:~# rostopic list
/robustcontroller/Tare/JointPoseAction/right/set_dc_weights
/robustcontroller/Tare/JointPoseAction/right/set_ff_weights
/robustcontroller/left/CalibrateArm/enable
/robustcontroller/left/CalibrateArm/status
/robustcontroller/left/Tare/enable
/robustcontroller/left/Tare/status
/robustcontroller/right/CalibrateArm/enable
/robustcontroller/right/CalibrateArm/status
/robustcontroller/right/Tare/enable
/robustcontroller/right/Tare/status
.........

 3.Verify Development Workstation Ping

$ env | grep ROS_IP
ROS_IP=192.168.1.102
$ ssh ruser@<our ROS Master>

# Password: rethink

# Example:
$ ssh [email protected]

# Now that we have SSH'd into the robot, verify that we are able to ping back to the development PC
ruser@p99 ~ $ ping <ROS_IP/ROS_HOSTNAME>

# Examples:
# ROS_IP
ruser@p99 ~ $ ping 192.168.101.99
# ROS_HOSTNAME
ruser@p99 ~ $ ping yoda
ruser@p99 ~ $ exit

 4.Echo a ROS Topic

root@zxwubuntu-Aspire-V3-572G:~# cd ~/ros_ws
root@zxwubuntu-Aspire-V3-572G:~# . baxter.sh
root@zxwubuntu-Aspire-V3-572G:~# rostopic echo /robot/joint_states

 --->>

 Step 3: Enable the Robot

root@zxwubuntu-Aspire-V3-572G:~# rosrun baxter_tools enable_robot.py -e 

 此处由于,baxter广方提供的SDK包和baxter robot的软件版本不对应会出问题:

后来参考:http://sdk.rethinkrobotics.com/wiki/Workstation_Update  后解决。

root@zxwubuntu-Aspire-V3-572G:~# cd ~/ros_ws/src/
root@zxwubuntu-Aspire-V3-572G:~# gedit baxter_sdk.rosinstall &
 Master 	https://github.com/RethinkRobotics/baxter/raw/master/baxter_sdk.rosinstall
Release v1.2.0 	https://raw.githubusercontent.com/RethinkRobotics/baxter/release-1.2.0/baxter_sdk.rosinstall
Release v1.1.1 	https://raw.githubusercontent.com/RethinkRobotics/baxter/release-1.1.1/baxter_sdk.rosinstall
Release v1.1.0 	https://raw.githubusercontent.com/RethinkRobotics/baxter/release-1.1.0/baxter_sdk.rosinstall
Release v1.0.0 	https://github.com/RethinkRobotics/baxter/raw/ea58ecd3204368791bf8d0afe5e9c7d0354b6e58/baxter_sdk.rosinstall
Release v0.7.0 	https://github.com/RethinkRobotics/baxter/raw/ff8afbd2d0dd71b6f5d3acc14a210313e1b6fcb7/baxter_sdk.rosinstall
- git:
    local-name: baxter
    uri: https://github.com/RethinkRobotics/baxter.git
    version: master
- git:
    local-name: baxter_interface
    uri: https://github.com/RethinkRobotics/baxter_interface.git
    version: master
- git:
    local-name: baxter_tools
    uri: https://github.com/RethinkRobotics/baxter_tools.git
    version: master
- git:
    local-name: baxter_common
    uri: https://github.com/RethinkRobotics/baxter_common.git
    version: master
- git:
    local-name: baxter_examples
    uri: https://github.com/RethinkRobotics/baxter_examples.git
    version: master

保存退出:
root@zxwubuntu-Aspire-V3-572G:~# wstool update
root@zxwubuntu-Aspire-V3-572G:~# cd ~/ros_ws/src
root@zxwubuntu-Aspire-V3-572G:~# cd baxter/
root@zxwubuntu-Aspire-V3-572G:~# git describe
  v1.1.1
root@zxwubuntu-Aspire-V3-572G:~# cd ~/ros_ws
root@zxwubuntu-Aspire-V3-572G:~# ./baxter.sh
root@zxwubuntu-Aspire-V3-572G:~# catkin_make
root@zxwubuntu-Aspire-V3-572G:~# catkin_make install

 重新使能机器人

root@zxwubuntu-Aspire-V3-572G:~# rosrun baxter_tools enable_robot.py -e

 Step 4: Run an Example Program

root@zxwubuntu-Aspire-V3-572G:~# rosrun baxter_examples joint_velocity_wobbler.py

 Step 5: Interactively Program Baxter

root@zxwubuntu-Aspire-V3-572G:~# rosrun baxter_tools enable_robot.py -e
$ python

# 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()

 

你可能感兴趣的:(Baxter机器人---Hello_baster(二))