BART LAB AssistBot II
BART LAB AssistBot Team
AssistBot II during Manipulation Task
VDO #1
http://www.youtube.com/watch?v=5tyX6ZsTYa0&feature=youtu.be
VDO#2
http://www.youtube.com/watch?v=Dr-TfGkOB6U&feature=youtu.be
1. Mechanical System
1.1 Driving System
The robot is designed to operate in a house, so a small radius to turn is required. An independent driving system is used in the robot. There are all 8 motors in the independent driving system. Four motors are designed for wheels, and another four ones are used to change the direction of wheels. The independent driving system is able to control a turning radius. Closed loop control is applied to control the direction and the speed of the wheels. All of the motors are attached with optical encoder for close-loop control feedback.
Figure 1: The base of the robot
1.2 Another Mechanical System
Manipulator
There are two manipulators which are equipped at left and right side of the robot body. Each manipulator consists of six degrees of freedom, and is attached to robot that is similar to a human body. Figure 2 shows the manipulator of the robot.
- Two degrees of freedom on the top are designed to mimic the motion of human shoulder
- Two degrees of freedom are designed to mimic the motion of human elbow
- One degree of freedom is designed to mimic the motion of human wrist
- One degree of freedom is designed to mimic the motion of human hand for grabbing an object
Figure 2: The manipulator of the robot
2. Software Description
The software architecture of the robot is based on ROS (Robot Operating System), which combines several nodes to perform the specific task. Figure 3 shows the overview diagram of important node. We use ROS packages to connect with common devices. For example, the 2D range finder is interfaced with laser_drivers package (hokyo_node), the RGB-D camera is implemented with OpenNI package and the camera is implemented with uvc_camera package. We develop ROS node to preform specific task based on several open source library such as OpenCV and OpenNI for image processing. In order to interface for controlling the robot movement, we develop our own ROS packages and messages to interface with hardware microcontroller for controlling the manipulators and wheels.
Figure 3: The overview of control diagram
Therefore, the integrated software of robot consists of several ROS nodes for interfacing, calculation and controlling. For example, the manipulation task program is developed by combining the image information from uvc_camera node and the depth information from OpenNI node to our processing node then sends the command through the motor controlling node to perform the task. The follow me task of the robot is based on fuzzy logic control and kinect OpenNI library for human detection. The main idea of this system is to follow the human and avoid the obstacles as the same time. The fuzzy logic controls have two separate subsystems. The first subsystem is using human position related to the robot head as the input to control the degree of robot’s neck. With this subsystem, robot will move the head in the horizontal plane to follow the human position. The second subsystem is using robot’s neck position together with range data from laser range finder that attached at the robot based. The first priority of the second subsystem is to follow the human by control the angle of wheels to make the robot heading parallel to the human heading. If there are obstacle between the robot and human, the robot will avoid the obstacle and try to compensate the heading back while the robot head is still follow the human position.
3. Scientific
Manipulator:
The manipulators are designed to mimic the human motion. To grab an object, 2 cameras are used for object recognition and object localization. The inverse kinematic is used for approaching the object.
Independent drive
The independent drive system is controlled by using microcontroller. One wheel consists of two degree of freedom, one for driving the wheel and another for changing the direction of the wheel.
Independent drive control system
Figure 4: Motor controller Rev.03
For a low-level control, the robot microcontroller is dsPIC30F4011 to control each motor 8 for base platform drive 12 for manipulator and 1 for body up-down. A motor controller can drive motor current up to 9 amps continues and 30 amps peak and we use 2 power supply to feed for motor controller 1.motor supply 2.logic supply for isolation between logic supply and motor supply for communication is used RS-485 bus communication to communicate with master. A motor controller be in slave mode and computer be in master mode to control slave via 2 wire twist-pair cable and master connect to the media converter to convert signal USB to RS-485 for suitable with motor controller and connect with 20 motor controller and it can connect with incremental encoder and hall effect sensor directly for control angle for 4 wheels use incremental encoder and hall effect to measurement and control the angle for each wheel and send an angle to master for monitoring wheel of robot. Furthermore, incremental encoder is applied to main motor for a robot speed measurement in both of forward and backward movement.
Figure 5: Motor control diagram
Team Members and Their Contributions
Jackrit Suthakorn Team Advisor
Woratit Onprasert Mechanical designer
Sakol Nakdhamabhorn Programming and communications
Rachot Phuengsuk Controller and navigation system development
Yuttana Itsarachaiyot Team manager
Choladawan Moonjaita Inverse kinematic algorithm development
Syed Saqib Hussain Shah Power management
Peerapat Owatchaipong Mechanical designer
Chawaphol Direkwattana Mechanical designer for camera manipulator
Watcharawit Saensupho Test field design
Maria Chatrasingh Communication monitoring
Preedipat Sattayasoonthorn Accessories management
JitendraYadav Power management
Nantida Nillahoot Spare parts and accessories management
Karat Thanaboonkong Spare parts and accessories management
Pitchaya Rayothee Team stuff management
Nonthachai Soratriyanont Programming and communications
ShenTreratanakulchai Sensing development