• 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

    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()
    
  • 相关阅读:
    用Taro写一个微信小程序——版本升级
    matlab subplot 的边距(with tight margins)
    Nginx(Tengine) 解决 unknown directive "stream" 问题
    MinIO 分布式集群搭建
    Docker 及 Docker Compose 日常操作(团队培训材料)
    基于 AdoptOpenjdk 官方 Dockerfile 制作 jre8 镜像(修改字符集和时区)
    Syncthing 开源文件同步工具
    Harbor 2.2.0 搭建与使用
    Centos7 使用 chronyd 进行时钟同步
    Centos7 安装 Python3 及配置国内源、虚拟环境
  • 原文地址:https://www.cnblogs.com/zxouxuewei/p/5110392.html
Copyright © 2020-2023  润新知