Installation on Armadillo240

a220-angle-250.jpg a240-long-150.jpg

Armadillo240 is a compact CPU board that can be mounted on Linux with ARM, which is sold from At Mark Techno. Three development tools from Atmark Techno, Inc., ATDE2 (Atmark Techno Development Environment), GNU cross development tool, AtmarkDist are provided, which makes cross development easy.
In this example, we will cross-develop the executable file of the RT component that can be executed by Armadillo. After that, after starting Armadillo, create an image file (romfs: root file system) that the RT component automatically starts up.

(G)Workflow

  • Development of cross development environment
  • Maintenance of ATDE2 (installation of necessary packages)
  • Cross compiling and installing of OpenRTM-aist
  • Cross compiling of RT components
  • Start executable file on Armadillo240
  • Create image file of Armadillo240
  • Operation confirmation on RtcLink

(G)Building cross development environment

Create an executable file of RT component that can be executed by Armadillo by cross-compiling. The development environment of Armadillo series is distributed from Atmark Techno, Inc. as a VM image, and necessary tools for cross development environment are pre-installed.

(G)Downloading ATDE2 and VMware

ATDE2
ATDE2(Atmark Techno Development Environment) is a virtual PC image for VMware for Admadillo cross development environment distributed from AtmarkTechno. The entity is Debian GNU Linux, and the tool chain necessary for cross development is installed in advance.
    • here page for free.
VMware Player
Virtual PC software freely distributed from VMware Inc. can execute VMware's virtual PC image. It is necessary to start ATDE2. Although there are Windows version and Linux version, we will proceed as below using VMware Player for Windows version.
    • here page for free.

(G)Activating ATDE2 and VMware

  • Start ATDE2 with VMware.

Unzip ATDE2-20071018.zip, double click on ATDE2.vmx in the folder you unzipped, or select ATDE2.vmx from ATDE2-20071018 in the folder extracted from file > Open of VMware.

ATDE.png
Start up ATDE2 with VMware

  • Start up with "Start this virtual machine".
  • There is no login work and the Desktop of ATDE2 is displayed.

(G)Development of ATDE2 development environment

ATDE2 already has a cross-compiling environment, but it is necessary to prepare an environment that allows cross-development of RT component of OpenRTM. On the started ATDE2 download the following source and shell script and place it in the appropriate working directory under the home directory.

  • download
    • OpenRTM source code
    • config100.sh / config 042.sh
      • You can run it in the expanded OpenRTM-0.4.2.tar.gz, or OpenRTM-1.0.0.tar.gz, and specify configure options necessary for cross compiling.
      • It is divided into correspondence with OpenRTM-0.4.2 and OpenRTM-1.0.0 correspondence. 2010/01/21
    • arm-cross-install.sh
      • OpenRTM-1.0.0 is now supported. 2009/12/28
      • Build OpenRTM's ARM cross-compilation environment on Debian host.
  • arm-cross-install.sh downloads the deb package with the apt-get command. Add the URL containing the deb package to sources.list. Become root (password: root) with the su command and add the URL below to /etc/apt/sources.list.
     deb http://downloads.pylone.jp/cross-toolchain/deb ./
     deb http://www.openrtm.org/pub/Linux/debian/ etch main
  • Leave root, install the package with the apt-get command.
     # apt-get update
     # apt-get install python-yaml (Please enter yes or Y to complete the installation.)
    The python-yaml package is required for rtc-template after installing OpenRTM.
  • Construct the OpenRTM-aist arm-cross-compilation environment with arm-cross-install.sh. Since a lot of data is downloaded, create an appropriate working directory and execute arm-cross-install.sh in it.
     # sh arm-cross-install.sh (Please enter yes or Y to complete the installation.)
    • By running arm-cross-install.sh, packages necessary for cross-compiling OpenRTM-aist are downloaded and installed, but as a side effect, some packages such as gdm are deleted I will. When gdm is deleted, the graphical desktop screen will not be displayed. If you want to return it, reinstall gdm as follows.
       # apt-get install gdm (Please enter yes or Y to complete the installation.)
       # /etc/init.d/gdm start
  • The maintenance of the ATDE2 environment is completed with the above.

(G)Cross compilation of OpenRTM-aist

(G)Build OpenRTM-aist

Deploy the OpenRTM-aist-0.4.2 source code to a suitable directory such as home directory. After deployment, go to the created directory.

 # tar zxvf OpenRTM-aist-0.4.2.tar.gz
 # cd OpenRTM-aist-0.4.2
Normally we will run configure here, but to cross-compile OpenRTM you need to specify the appropriate options for configure. By using config.sh downloaded above, you can run configure by specifying options necessary for cross compiling, so use config.sh here. Copy config.sh to the current directory and execute it with the installation directory as an argument.
 # cp ../config.sh ./
 # sh config.sh/usr/arm-linux-gnu
Please confirm that config.sh was completed normally. Make it when the build is completed normally.
 # make
In order to install it at least,
 OpenRTM-aist-0.4.2/rtm
 OpenRTM-aist-0.4.2/rtm/idl
 OpenRTM-aist-0.4.2/utils/rtm-config
 OpenRTM-aist-0.4.2/utils/rtm-naming
 OpenRTM-aist-0.4.2/utils/rtc-template
The following directories must be built successfully. Once the build is completed successfully, install header files, libraries, and utility commands.

(G)Installing OpenRTM-aist

It is installed in /usr/arm-linux-gnu/specified in config.sh.
 # make install
A sample executable file is generated in /usr/arm-linux-gnu/share/examples/.

(G)Cross-development of RT components

With this, the environment for cross development of the RT component is in place. Here, as an example, try cross-compiling using the source of SeqOutComp included in the sample.

(G)RT component cross development

  • To cross-develop an RT component, you need to use the command for cross development, so pass it through the (/usr/arm-linux-gnu/bin) path as follows. Be careful that /usr/arm-linux-gnu/bin is at the beginning of PATH when passing through the path.
     > export PATH=/usr/arm-linux-gnu/bin:$PATH

(G)Generate the RT component of SimpleIO with rtc-template.

Create a suitable directory to create the sample and copy the following files contained in the OpenRTM sample SeqOut source into it.

 SeqOutComp.cpp SeqOut.h SeqOut.cpp Makefile.SeqOut

 > mkdir test
 > cp (installation directory)/OpenRTM-aist-0.4.2/examples/SeqIO/SeqOutComp.cpp ./test/
  (Copy all with the above command)

We create a component called SeqOutComp with eight OutPorts.

(G)Build RT component

Please check the contents of the generated Makefile.SeqOut. If there is no line beginning with CXX =, you need to specify the cross compiler for the compiler as follows.

Set environment variable and make make

 > CXX=arm-linux-gnu-g++ make -f Makefile.SeqOut
 or
 > export CXX=arm-linux-gnu-g++
 > make -f Makefile.SeqOut

When make completes normally, SeqOutComp executable file is generated.

(G)Running the RT component

Copy cross-developed executable files, libraries, etc. to USB memory and start up on Armadillo240.

(G)Preparing the USB memory

Copy and generate the files necessary for executing the RT component on the Armadillo240 to the USB memory.

Executable file
Executable file of the RT component you want to run on Armadillo240.

In this example, we use SeqOutComp that we cross-compiled earlier. Copy SeqOutComp to the appropriate location (such as the root directory) of the USB memory.

Library
Library of ARM is stored under /usr/arm-linux-gnu/lib of ATDE2.

Of the libraries in this directory, copy the following to the USB memory. Create a directory lib to place the library in the USB memory.

 >mkdir lib
 or
 For the GUI, right click to create a folder

When copying the library of /usr/arm-linux-gnu/lib, change the name as follows.

  • OpenRTM-aist-0.4.2 case
    • Change library name When copying, please change the name as follows.
Library name After changing library name
libomniDynamic4.so.0.6 libomniDynamic4.so.0
libomniORB4.so.0.6 libomniORB4.so.0
libomnithread.so.3.1 libomnithread.so.3
libRTC - 0.4.2 .so.0.0.4 libRTC - 0.4.2.so.0
librt.so.1 librt.so.1 (no change)
libACE.so.5.4.7 libACE.so.5.4.7 (no change)
  • For OpenRTM - aist - 1.0.0
    • Change library name
Library name After changing library name
libm -2.3.6.so libm.so.6
libomiDynamic4.so.0.6 libomniDynamic4.so.0
libomnithread.so.3.1 libomnithread.so.3
librt.so.1 librt.so.1 (no change)
libRTC - 1.0.0 .so.0.0.4 libRTC - 1.0.0.so.0
libstdc ++. so.6.0.8 libstdc ++. so.6
libuuid.so.1.2 libuuid.so.1
rtc.conf
Please create rtc.conf like below using a text editor.

Since Armadillo does not start the name server, please start the name server on another PC. For the option of corba.nameservers in rtc.conf, specify the address of the PC that started the name server.

 corba.nameservers: 192.168.100.1 (Enter the IP address of your name server)
 naming.formats:% n.rtc

* Mounting of USB memory with ATDE2
When inserting the USB flash memory into the PC while VMware (ATDE2) is running, it can be mounted automatically and checked on Desktop.

If it is not mounted automatically, use the su command on VMware (ATDE2) terminal to become root and mount again.

  • USB memory mounted
     > su
     # mkdir /mnt/(suitable directory)
     # mount - t vfat/dev/sdb1/mnt/(directory created above)
  • Unmount USB memory
     If the USB memory icon is displayed on the Desktop, right click> unmount it. &br;
     Or you can unmount it with the command from the console. &br;
     # umount /mnt/(the directory created above)

(G)Directory structure of USB memory

After preparing the USB memory, the USB memory has the directory structure as shown below.

  • OpenRTM-aist-0.4.2

     USB memory  -+- lib --+- libomniDynamic4.so.0
                |     +- libomniORB4.so.0
                |     +- libomnithread.so.3
                |     +- libRTC-0.4.2.so.0
                |     +- librt.so.1
                |     +- libACE.so.5.4.7
              |
              +- SeqOutComp 
              |
              +- rtc.conf

  • OpenRTM-aist-1.0.0

  USB memory   -+- lib --+- libm.so.6
                |     +- libomniDynamic4.so.0
                |     +- ibomnithread.so.3
                |     +- librt.so.1
                |     +- libRTC-1.0.0.so.0
                |     +- libstdc++.so.6
                |     +- libuuid.so.1
                |
              +- SeqOutComp 
              |
              +- rtc.conf

(G)Start executable file with Armadillo240&aname (start240);

Change the USB memory mount setting and library PATH setting, and move the executable file. You can operate Linux on Armadillo by connecting the PC and Armadillo with a serial cable and logging in from Linux serial console on Armadillo. Please proceed with the following easy method.

(G)Operate with minicom from ATDE2

From ATDE2, operate with terminal emulator program minicom. Connect the serial port of the PC and the serial port of Armadillo with a serial cable. For a PC without a serial port, you need to use a USB-serial conversion cable or the like. Refer to the Armadillo manual for how to connect the Armadillo serial cable.

Configure the VMware virtual machine's device as follows.

 Menu bar > VM > Settings > Hardware tag
(It can be set with VMware Workstation and VMware Console.)
VMwareUseSerialSetting.png
Configure VMware's USB serial port

Please check the connection check.

VMwareComSeting.png
Configure VMware's serial port

Check the device status and check the port using Connection> Physical Serial Port. Start the terminal emulator minicom from the terminal of ATDE2.

 > minicom
Press Enter to display the Armadillo240 login screen. Please proceed to & color (Maroon) {common operation}; thereafter.

(G)Operate with Windows terminal emulator (teraterm)

You can also connect to Armadillo's serial console from Windows using a terminal emulator such as TeraTerm. TeraTerm can be downloaded for free from here. Please start with the following setting.

  • Menu bar> Settings> Serial port setting>
  • Port/optional
  • Baud rate/115200
  • Data/8bit
  • Parity/none
  • Stop/1bit
  • Flow control/none

When starting with the above setting, the login screen of Armadillo240 will be displayed. If it is not displayed, press Enter. Please proceed to the common operation after that.

(G)Common operation

Please plug the USB memory into Armadillo. Please log in as root (password: root) on Armadillo login screen. The default mount is an option (umous=111), which permission setting any user can not execute.

Once unmounted, it will be remounted with the -o rw option that can be written and executed.

 # umount/dev/sda1
 # mount - t vfat - o rw /dev/sda1/home/www-data/storage/
In order to pass the library path, move to the USB memory with the command as a guest.
 # su guest
 > cd /home/www-data/storage
Pass through the path of the library. (Please specify the directory where the library is located.)
 > export LD_LIBRARY_PATH = $ {LD_LIBRARY_PATH}:/home/www-data/storage/
 > ./SeqOutComp (executable file was executed)
The RT component will start up.

You can also check from RtcLink.

In this method, you have to modify the setting every time you start Armadillo. In the next chapter, after Armadillo starts, it creates an image file that the RT component automatically starts and downloads it to Armadillo.

(G)Create an image file of Armadillo240

With the previous method, it is necessary to change the setting with the terminal emulator every time Armadillo starts up. In this case, use atmark-dist provided by AtmarkTechno, Inc, create an image file that RT component automatically starts after Armadillo240 start up, and download it to Armadillo.

(G)Development environment development

Use the environment of ATDE2 cross-compiled RT component as it is. Please download the following items on ATDE2.

Atmark-dist
Create an Armadillo userland image file.
Linux kernel
Required when creating image files with Atmark-dist.
    • here for free. (In the case of Armadillo240)
    • openrtm_new.patch, Atmark-dist (2009/03/18) with the verification of patch Fixed the file. (2010/02/12)

(G)Build and configure atmark-dist

Here, we will create an image file of userland of Armadillo. By using the image file created here, you can start RT Component that was previously installed in USB memory automatically.

(G)How RT Component starts

Mount the USB memory to /home/openrtm/, and start Armadillo /home/openrtm/boot.sh. boot.sh starts the executable file through the library path in the USB memory.
  • OS setting
    • Write USB memory, executable and mount on /home/openrtm/.
    • When USB memory is mounted, start boot.sh directly under the USB memory.
  • Contents of USB memory
    Please prepare the following files in the USB memory.
boot.sh
Shell script to launch after Armadillo240 starts. Please prepare the following boot.sh directly under the USB memory. Run the executable file through library PATH.
    • This is the setting when rtc.conf is placed under the USB memory and the library is placed in the lib directory. Correct according to the directory structure of the USB memory.

 #!bin/sh
 . /etc/default/openrtm.conf
 export LD_LIBRARY_PATH=$LIBPATH:/home/openrtm/lib/
 /home/openrtm/SeqOutComp(Execution file name)  -f  /home/openrtm/rtc.conf

(G)atmark-dist Build

Please download atmark-dist and linux kernel, openrtm.patch on ATDE2 and expand it.

 > tar zxvf atmark-dist - 20090318.tar.gz
 > tar zxvf linux - 2.6.12.3 - a9 - 15. tar.gz
Go to the directory of the expanded atmark - dist and make a symbolic link of the linux kernel. Link name must be . /linux-2.6.x regardless of ver of linux.
 > ln -s ../linux-2.6.12.3-a9-15 ./linux-2.6.x
make make config. Please enter the following as below.
 > make config
 Select the Vendor you wish to target:     Atmarktechno (input)
 Select the product you wish to target:    Armadillo-240.Recover (input)
 Kernel is linux - 2.6.x:                             default (even with enter)
 defined CONFIG_DEFAULTS_CROSSDEV_DEFAULT:      none (also OK)
 Default all settings:                                y (input)
 Customize Kernel Settings:                    n (even enter)
 Customize Vendor / User Settings:        n (even enter)
 Update Default Vendor Settings:            n (also OK, end)

Copy openrtm.patch and apply the patch as follows.

 > cp openrtm.patch /atmark-dist-YYYYMMDD/vendor/AtmarkTechno/Armadillo-240.Recover/openrtm.patch
 > cd /atmark-dist-YYYYMMDD/vendor/AtmarkTechno/Armadillo-240.Recover/
 > patch -p1 <openrtm_new.patch
 (Patch finished)
Go to the atmark-dist-YYYYMMDD directory and make dep all all.
 > cd ../../../
 > make dep all
While make make all, the following error message is displayed, but romfs is generated normally.
 /bin/sh: extensions/.dccp-test: No permission
 /bin/sh: extensions/.layer 7-test: No permission
 /bin/sh: extensions/.statistic-test: No permission
 make[2]: Enter directory `/home/atmark/Desktop/foratde/forkernel/atmark-dist-200807 17/user/iptables'
 romfs-inst.sh /bin/iptables
 romfs-inst.sh -l /bin/iptables/bin/iptables-save
 Accessing ln: `/bin/iptables': No such file or directory
 romfs-inst.sh -l /bin/iptables/bin/iptables-restore
 Accessing ln: `/bin/iptables': No such file or directory
After making make, four files are generated in the images directory.
 > ls images
 linux.bin    linux.bin.gz    romfs.img    romfs.img.gz
In the next chapter write romfs.img.gz to Armadillo.

(G)Download image file to Armadillo240

Download the generated userland image file romfs.img.gz to Armadillo240. Armadillo short the jumper pin (2), please turn on the power (Armadillo Hardware Manual please refer to p.16)

You can download from either VMware (ATDE2) or Windows.

(G)Download from ATDE2

Here to configure the device of VMware virtual machine before proceeding.

  • Connect the Armadillo-240 and the PC with a USB serial cable (or serial cable).
  • Download images/romfs.img.gz with hermit from the terminal console of ATDE2.
     > hermit download - i images/romfs.img.gz - r userland - port/dev/ttyUSB 0 (or /dev/ttyS0)
    Download takes about 8 minutes.
  • It is completed when completed is displayed.
     serial: completed 0x004455fd (4478461) bytes. (Completed)

     

    (G)Download from Windows

Please put downloader > win32 > Hermit.zip of CD-ROM bundled with Armadillo240 on Widows.

  • Extract Hermit.zip on Windows and double-click Hermit.exe to start it.
    hermit.png
    Windows上のHermit
  • Connect the Armadillo240 to the PC via the serial port.
  • Move romfs.img.gz generated on ATDE2 on Windows.
  • Configure the serial port in the displayed dialog and press Download. Set romfs.img.gz created with images to userland in Region and click the download button to download. (It will take about 8 minutes.)
  • When downloading is completed, it will be displayed in Hermit.

(G)Execution/confirmation of RT component

Start RTCLink and confirm start of RT component.

  • After the image file download is completed, remove short circuit of Armadillo's jumper pin (2), plug the power supply and restart it.
  • When you run the RT component, start the name server specified in rtc.conf.
    • For Windows
      • Execute "OpenRTM-aist" > "example" > "NameService.bat" from the program menu.
      • Alternatively, double click on rtm - naming.bat in OpenRTM-aist\bin and start it.
    • For Linux
      • Become root with the su command and start the name server.
         > su
         # /etc/init.d/omniorb4-nameserver start
  • Start up RTCLink and check that the component is created on the name server.
    • If the name server is not displayed, please push the Connect Name Server button and add a name server.

(G)Application example

(G)Armadillo + URG sensor

Combined with Armadillo and Hokuyo Electric URG sensor, it is a unit to easily construct a distributed sensor system. The URG sensor RT component works on Armadillo. (RTC starts automatically at the same time as Armadillo power is turned on.) By using Armadillo compatible with PoE (Power over Ether), communication and power supply are possible only with the LAN cable. The URG sensor also operates with power supply from PoE. Sensor arrangement is possible with only one cable, so you can easily construct a distributed sensor system.

Armadillo_URG.png
Distributed LRF Unit

Armadillo_URG3.png
PoE (Power over Ether) HUB can supply power

 

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK