+ Module that implements a simple grid world with obstacles and rewards/reinforcement. + Movements are given either as absolute or relative directions in the MOVE input. +
++ In absolute mode set by move = "max", the maximum direction in the MOVE array sets the + direction of movement. The four components in the array correspond to north (up), east (right), + south (down) and west (left). In absolute mode with summation, set by move = "sum", the movement + is the result of adding all directions in the MOVE input before finding the maximum direction. +
++ In relative mode, set by move = "relative", the array MOVE is interpreted as having + three components: move-ahead, turn-left, turn-right. With mode = "relative_sum", the components + turn-left and turn-right are subtracted before the maximum is found. +
++ No action is performed if MOVE is the zero vector. +
++ The agent is automatically moved to the initial location when a reward location is reached. +
++ Module that implements a depth-first method that generates a perfect maze. A partfect maze is + one with exactly one path between any two locations in the maze. The maze is randomly generated. + use -z# at the command line with different numbers for # to get different mazes each time. +
++ Module that implements a simple arm simulation. +
++ Module used for reading numerical input data from a text file. The data is represented in the file as a number of columns given names in a header. Each set of columns will be available as an output vector from the module with the same name as the columns. +
++ The following example shows how the header describes the number of columns in each output vector and its name: +
++ X/2 Y/3 + 10 2.0 12 5 8 + 2 31 5.4 10 1 + : + : ++
+ The first output will get the name "X" and consists of two values while the second output will be called "Y" and contain three elements. Each row in the file corresponds to the output from an InputFile module at each time step. +
++ Comments can be added in the data file after a hash sign (#) as in the following example: +
++ # This is a comment; this line will be ignored in the input + X/2 Y/3 + 10 2.0 12 5 8 # This is also a comment + 2 31 5.4 10 1 # and this + : + : ++
+ Blank lines in the file are skipped. When the whole file has been read, the module send an end-of-file signal to the IKAROS kernel that will stop the execution. This is useful in off-line simulations. +
++ InputFile can read files using any of the three popular line terminators: CR, LF, or CR+LF. +
++ Module used for writing numerical data to a text file. The data is represented in the + file as a number of columns given names in a header. The first column is called "T" + and contains the time (in ticks) when the row was written. All other columns in the + output file are defined in the XML file. +
++ <module + class = "OutputFile" + name = "OUT" + filename = "data.txt" + > + <column name = "X" /> + <column name = "Y" /> + </module> ++
+ The following example shows how the header describes the number of' + columns in each output column and its name. The file could have been + produced by the above module definition if the input vector to "X" had one + value and the input to "Y" had two values. +
++ T/1 X/1 Y/2 + 0 2.0000 12.0000 5.0102 + 1 31.0000 5.4000 10.4321 + : + : ++
+ As default there are four decimals in each column. This can be changed with the decimals attribute: +
++ <module + class = "OutputFile" + name = "OUT" + filename = "data.txt" + decimals = "0" + > + <column name = "X" /> + <column name = "Y" decimals = "2" /> + </module> ++
+ Here, the attribute decimals in the module tag sets the default decimals to none for all columns. This is changed locally for column Y where 2 decimals are used. The example above will now become: +
++ T/1 X/1 Y/2 + 0 2 12.00 5.01 + 1 31 5.40 10.43 + : + : ++
+ Driver for the Dynamixel servos from ROBOTIS. The module can control servos both in position and continuous (wheel) mode. The IDs of the modules can be set with the parameter 'servo_id'. If this parameter is not set, the module will instead scan the bus for servos. +
++ When the index_mode indirect is set, the input and output arrays ranges from 0 to N, where N is the number of connected servos. If the module scanned for the IDs, they will be in numerical order, otherwise they will be in the order listen in the pramater servo_id. +
++ When the index_mode is set to direct, the input and output arrays ranges from 0 to the ID of the servos with highest ID. In this mode, some of the elements in the input and output arrays may not be used and will always be set to 0. +
++ If the parameter size is set, it will override the other calculations of the size of the arrays and either truncate or extend the array to the requested size. +
++ It is usually necessary to install the drivers for the FTDI USB serial driver before using the + USB2Dynamixel with Ikaros. This driver is available from the FTDI site. When the driver is + installed a device called something like "cu.usbserial-A7005Lxn" will show up under the /dev directory. +
++ If the servo is set up to run in continuous mode, the module uses the input SPEED to set the speed directly + between min (0) and max (1). No speed control is performed by this module. +
++ If the TORQUE input is connected, the torque for each servo can be set individually between min (0) and max (1). +
++ Module that calculates a polynomial function of ints input. + The order of the polynomial is set by the attribute order and + the coefficients are set by coefficients. This example will calculate the function: +
++ The example will calculate the function: + y = x-2x2+3x3+2x5 + for each input element. +
+