SAN-move + EPS-board => Coordinate-based move?

Sort:
kevincrawfordknight

/* This is a software chess-programming question.  If there is a more appropriate place for me to aim this question, I would be very grateful to hear!  Thanks very much. */


Greetings,

I'm using gnuchess to decide which move to make, and I'm using that output to control a robot arm (to execute the move on a real board).

However, gnuchess outputs SAN (Standard Algebraic Notation), such as "Nf3". To control the robot arm, it would be much more helpful to have a coordinate-based notation, such as "g1-f3".

My question is:

1) Is there a way to get gnuchess to output coordinate-based notation? I know it can accept such notation as input (human-supplied move).

-or-

2) Is there existing software (or detailed algorithm) that takes
(a) a SAN move
(b) a .eps board
and produces:
(c) a coordinate-based move?

Thanks!
Kevin

 

PS. I use Linux, and here is how I get gnuchess to make its (SAN) move recommendation:

#===================================================================
# Use gnuchess to decide on next move.
#
# 1. reads current position from file named $1 (.epd format)
# 2. decides what move to make (as white), using gnuchess
# 3. prints out move
# 4. also stores resulting board in dgt.chess.nextpos (.epd format)

rm -f dgt.chess.nextpos

printf "solveepd $1\nepdsave dgt.chess.nextpos\nquit\n" |
gnuchess |
grep -a 'My move is' |
sed 's/My move is : //'

kevincrawfordknight

Thanks to H.G. Muller on another board for suggesting other engines (such as stockfish), which naturally output coordinate notation. All set!