原创博文,转载请标明出处:--周学伟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
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 ruser@011303P0017.local # 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()