Last Update : 2007/Nov/25

LERN of Robot Magazine Spring issue 2007


RoboShell At glance
Motivation
Advantages
Architecture
Task management
Ref. Circuit
Command
F.A.Q.
License
<< Return
    RoboShellPCB01 RoboShellPCB02
    • 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

      RoboShelle.gif

      • High performance

        1. 32bit RISC CPU
        2. Servo motor control with PWM. Max 32ch
        3. High capacity program memory (512KB on chip flash)
        4. High speed (Internal clock 60MHz)

      • Indstry defact standard
        • Hardware
          1. CPU - Based on ARM7TDMI
          2. CPLD (XILINX 9572XL)
          3. USB
          4. JTAG
          5. Servo motor controll with PWM
            1. (Based on Mr.Koji Miyata released Little Burning Core)
            2. Partly supported KONDO Red version servo motor
        • Software
          • Development environment
            1. GNU tool chain as GCC, GDB
            2. Eclipse + CDT
            3. CPLD Writer
            4. Flash Programming tool
              • Via USB to PC, JTAG supported for programming(both CPU, CPLD) and debug.

                -> You can use obtained technics for next project !!

      • Flexibility
        • CPU + CPLD

          CPLD complements not enough number of I/O pin of CPU. Ofcourse, CPU, CPLD are re-programmable.

      • 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
      • 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

        1. Available two power source

          Mixtured using with two type of servo motor such as normal and high with jumper setting.

        2. Reusability

          Reuse batttery connector and such those type of stuffs.


    • Architecture(Detail...

      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).


    • Task management(Detail...

      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

      RoboShellWithGyroSensor02.JPG

      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.

      • Sensor & Controller

        1. Serial Console Terminal

          For RoboShell command. mini Pinjack is used for this project. Make your sense. Level converter is needed for connection between PC and EZ-SERVO board.

          • Port

            1. TxD0
            2. RxD0

        2. LED

          LED is very simple device. However, very powerful device in early stage of devlopment. OK, we can connect freely LED. But, we have common information, if we connected same port with LED.

          • Port

            1. P0.31

        3. Accelerometer sensor

          To detect figure(lie down, standing) of robot. Using Kionix 3-axis accelerometer sensor with direct connect to ADC. We can purchase from Akizuki Denshi in Akihabara.

          • Port

            1. A0.0
            2. A0.1
            3. A0.2

        4. Gyro Scope

          RoboShellWithGyroSensor01.JPG
          Low cost Gyro Scope is break-thru of modern humanoid robots. RoboShell also supports Gyro scope. Using Gyro scope is made by Murata.

          • Port

            1. A0.3
            2. A0.4

        5. PlayStation 2 Controller

          FourPS2Controllers.JPG
          Romote controlling methods are full of variety. Bluetooth and WiFi are very popular. However, they are very expensive and eating power. They have very good compatibility to connect PC. Traditional Radio-controller is one of solution. RoboShell supports (Wireless)PlayStation2 controller. We confirmed to work four manufacturing controllers in picture. GameTech(as Japanese distributor) controller is different behavior. We have to type in command as following

          • PS2 Controller from GameTech(as distributor in Japan)

            GameTechController.JPG

            >1211 0001 [Enter]

            • Port

              1. P0.17 CLK
              2. P0.18 DAT 3.3KOhm PullUp
              3. P0.19 CMD
              4. P0.20 /SEL

      • How to connect Ref. Circuit to main board

        RoboShellWithGSensor02.JPG
        Good stiffness is realzed by 11mm spacer and inline connector combination.


    • 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 IDCommand numberProcess
        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

        1. Dirve Servo motor angle

          Confirm Servo drive which is connected to CH00 to entered value.

        2. 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.

      1. Q.Where Can we get RoboShell board ?

        From Opitimize.

      2. Q.I found bug(s).

        A.Please tell me.

      3. Q.Will you support KONDO serial method ?

        A.Probably, OK, if we got how to do it.

      4. 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 !!

      5. 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

      • Personal and education

        You can use freely. Support page is here.

      • Commercial

        E-mail me


Top of Page
e-mail to Yuichi ODA


Copyright (C) 1998 - 2007 TeamKNOx