实验三 Baxter基本控制 - RLi43/Baxter-Experimental-Guide GitHub Wiki
实验目的
- 了解Baxter的API,并控制Baxter
实验要求
- 实验前了解实验指导书中的相关内容
- 实验前做好实验计划,做好前期准备,能按实验指导书完成相应内容,并进行适当探索。
- 注意实验安全
实验内容
Baxter SDK API
Baxter SDK API包括Python API和Baxter上已安装的ROS消息和服务。这是很重要的参考内容。能够执行的操作都可以在参考中找到。
机器人的底层操作往往都已被封装,比起工业机器人,Baxter提供的接口已经称得上很底层了。尽管如此,电机转动角度一类的接口是不会开放给使用者的,一来有PID控制,二来还有机器人自身的机械限制不允许一些看似可行的操作,用户要在其给定的框架下操作。比如想要得到指定的路线,就可以指定足够的路径点数量来使其路径与预期吻合。
Baxter示例学习
Baxter提供了一些示例程序,可以在连接Baxter主机的环境(即执行$./baxter.sh
后)中运行示例程序:
rosrun baxter_examples <examples_name>
可以在ros_ws/src/baxter_examples
文件夹中查看实现示例的源码
在示例界面有详细的指引
运行每一个示例,并阅读示例代码,通过这一步,你将基本了解Baxter的控制。
工具学习
Tools-sdk-wiki Baxter SDK提供了使能,相机,打包三个工具。
- 使能
- 控制机器人启动or关闭
- 相机
- 控制相机的打开/关闭,分辨率,帧率等。详见Camera Control Tool
- 打包
- 将机器人的状态设为运输模式。略。
交互式控制
cd ros_ws
./baxter.sh
python
>>>
交互式编程为控制者提供了快捷实时控制机器人的方式。在python环境中新建一个节点,即可发布/接收消息,进而通知/了解正在运行的程序。也可以用API直接控制机器人的运动。比如下面的的一段即可读取右手关节角大小:
>>>import rospy
>>>import baxter_interface
>>>rospy.init_node('hello', anonymous=True)
>>>rightl = baxter_interface.Limb('right')
>>>angles = rightl.joint_angles()
>>>print angles
控制小任务
通过以上的步骤,相信你对Baxter的控制已经有了足够的了解。
接下来请设计一个舞蹈动作并实现。
提示:需要的手臂姿态可以通过关节角读取确定。
实验结果
- 了解Baxter的API,成功控制Baxter实现基本运动,为综合任务开发做好技术准备