- Back Ground
Around few years, humanoid Robot development has been hot issued in Companies, instituate, amature developers.
- Challenges
In case of Japan, humanoid robots will be designed for competition as such as Robo-One. That means developers don't like to disclose their own technologiies which is developed on special controller. What's is special controller ? Many robots are using special servo motor controllers which are released from commercial base products. Those are proprietary products. We have to do "Reinventing the wheel" in robot community at moment. RoboShell breaks it with open source.
-
Motivation
Build an open and resonable robot controller with industry defact standard. Obtain many technics as controller theory and electrical circuit, UI via development cycle. Contribute community obtained technology for next development.
-
Advantages
- High performance
- 32bit RISC CPU
- Servo motor control with PWM. Max 32ch
- High capacity program memory (512KB on chip flash)
- High speed (Internal clock 60MHz)
- Indstry defact standard
- Hardware
- CPU - Based on ARM7TDMI
- CPLD (XILINX 9572XL)
- USB
- JTAG
- Servo motor controll with PWM
- (Based on Mr.Koji Miyata released Little Burning Core)
- Partly supported KONDO Red version servo motor
- Software
- Development environment
- GNU tool chain as GCC, GDB
- Eclipse + CDT
- CPLD Writer
- Flash Programming tool
- Flexibility
- Small base factor
- Low price
- Parts Kit Aprox.42USD wo S/H
- Assembled Aprox.67USD wo S/H
Purchase from Opitimizeas Kit and assembled
Unitl now, if we want humanoid robot controller, we have to purchase robot controller either commercial products or evaluation board with customization. I am not sure price of commercial products, however little bit expensive. Other opition as customization, anyway we need to spent a lot of time for.
- Open source
- Robot side
- Servo motor contol software
- Only reference purpose
- CPLD
- Native
Many types of RoboController have script systems. Script can be intorduced very easy. However, this not a open technology, proprietaly technology. That means we can imagine if changed robocontoller, we can not use any script next robocontoller. Other dimension, robocontroller makers want to hide their own IP.
- Legacy maximum utilization
- Available two power source
Mixtured using with two type of servo motor such as normal and high with jumper setting.
- Reusability
Reuse batttery connector and such those type of stuffs.
-
RoboShell has several subystem in its inside. No operation system, therefore, very easy to port other type of micro controller. Subsystem has been driven by interrupt. Very small latency.
- PWM
Servo motor control and drive. PWM base clock is 2.5msec as genral servo motor control cycle.
- Serial
Core of RoboShell. Commnication process between host and contoller.
- Servo angle capture
Obtain angle information from servo motor as KONDO red version
- Analog-Digital converter
Obtain analog data from ADC as same tyming as PWM
- Motion Control
Decide step angle of servo motor from divided by 4 of PWM cycle (as 10msec).
-
Two types of task manager working in RoboShell system. One is 2.5msec scheduler from PWM signal generator. Other one is task dispatcher.
-
Ref. Circuit
EZ-SERVO prepers only core of robot. Acutally, we integrated more devices (as sensors as well) for realizing a real (humanoid) robot. You can freely integrate any type of sensors. Typical sensors are still needed. Typical sensors means to avoid Reinventing the wheel as well. In this section, we'd like to make ref. circuit for RoboShell system.
-
Command
- Command
RoboShell receives commands from serial line as RxD0, TxD0. If you use Host system such as PC, you need to convert voltage level between RoboShell system(3.3V) and PC(EIA-232C).This serial line contorl is used mainly early development and caribration stage.
- Command structure
RoboShell commands are very principle. That means don't like to use resource fro parser mechanism. Command will be given as below...
- Command format
Command numberParameter 1Parameter 2Parameter 3 <CR><LF>
- Table of Command(Frequently, update) Refer source code as commandID.h
| Command ID | Command number | Process | |
| ID_TASK_CHANGE_SERVOVALUE_RUN |
0200 |
Dirve Servo motor angle |
| ID_TASK_CHANGE_SERVOVALUE |
0210 |
Set servo motor angle |
| ID_TASK_SET_SERVO_VALUE |
0220 |
Drive servo motor angle with 0210 set |
| ID_TASK_SET_MODE_PWM |
0300 |
Set PWM mode |
| ID_TASK_SET_MODE_CAP |
0400 |
Set CAP mode |
| ID_TASK_CAP_SERVOVALUE |
0500 |
Get servo angle |
| ID_TASK_RESET_COUNTER |
0600 |
Reset counter and set counter |
| ID_TASK_UP_COUNTER |
0650 |
Set counter |
| ID_TASK_GET_ADC_VALUE |
0700 |
Get ADC value |
| ID_TASK_GET_SERVOVALUE |
0800 |
Display servo angle |
| ID_TASK_MOVE_MOTION_SCENARIO |
0900 |
Do motion |
| ID_TASK_PS_PAD_READ |
1200 |
Display PS2 Controller Value |
| ID_TASK_PS_PAD_SET_RUMBLE |
1210 |
Rumble On/Off |
| ID_TASK_PS_PAD_READ |
1211 |
Switch PS2 Controller |
- Example
- Dirve Servo motor angle
Confirm Servo drive which is connected to CH00 to entered value.
- Get Servo angle
Confirm to get a value which has been entered above 1.
Caution
Your own command should be after 9000.
-
F.A.Q.
- Q.Where Can we get RoboShell board ?
From Opitimize.
- Q.I found bug(s).
A.Please tell me.
- Q.Will you support KONDO serial method ?
A.Probably, OK, if we got how to do it.
- Q.Do we have to disclose our own extension ?
A.I don't like to force. However, we will be happy, if you disclose nice routine for robot !!
- Do you have user's / instruction manual ?
A.Have to spend a lot of time for making manuals. Time is money. That means low price is realized by no manual system at moment. RoboShell has disclosed source code. You can access freely inside of system.
-
License
No gurantee, No support
|