Turtlebot 2 movement analysis

Facebooktwitterredditpinterestlinkedinmail


[In English]

Ahora que ya tenemos el Turtlebot 2 andando, hemos querido caracterizar los motores cuando se mueven con la carga inicial del robot. Para ello, hemos seguido los siguientes pasos, que están documentados en el vídeo al final del post; en mi repositorio de GitHub está el código C++, Matlab y R:

  • Hemos creado un nodo ROS que mueve al robot con velocidad lineal x=0.1 m/sec, y almacena en fichero las medidas de los encoders de ambos motores junto con dos marcas de tiempo: las asociadas a los mensajes ROS, y las grabadas por la base Kobuki.
  • Después, analizamos las medidas con Matlab.
    • Primero, hemos representado gráficamente las medidas de los ticks frente a los dos tipos de marcas de tiempos (tanto relativas como absolutas).
    • En segundo lugar hemos representado la velocidad de cada rueda, entendiendo velocidad como la relación entre ticks y variación de tiempo. En el vídeo se observa que la velocidad aparece como rads/sec; para hacer la transformación nos hemos basado en las especificaciones de la base Kobuki. Si manualmente se hace el cálculo V = r*ω se observa que todo es correcto.
    • En tercer lugar, aprovechando la Control Toolbox de Matlab, hemos hecho una identificación de los motores de las ruedas usando un método de aproximación mediante sistemas de primer orden con retraso. La K y la τ obtenidas se han tomado como base para hacer después un reajuste manual, que se adapta bastante bien a los datos reales (sobre todo en el caso del motor derecho).
  • Finalmente, hemos hecho una representación muy básica (aún sin usar ggplot2, estamos trabajando en ello 😉 ) en R.


[En español]

Now that our Turtlebot moves, we have characterized its motors when they are moving bearing the initial load of the robot. We have followed these steps, which are documented in the video at the botton of this post; my GitHub repository stores the C++, Matlab and R code:

  • We have created a ROS node that makes the robot move with a linear x speed=0.1 m/sec, and then writes to a file the measurements of both encoders along with two timestamps: those related to ROS messages, and those taken by the Kobuki base.
  • Then, we have analysed the data using Matlab.
    • First, we have plotted the ticks values versus both timestamps (both relative and absolute).
    • In the second place, we have plotted the speed of each wheel, where speed is the relationship between ticks and time difference. You can see in the video that speed is represented as rads/sec; we transformed the values using the Kobuki mobile base specifications. If you do your maths by hand (V = r*ω), you will see that calculations are correct.
    • In the third place, using the Control Toolbox provided by Matlab, we did the identification of both motors with an approximation using a first order system with delay. The resulting K and τ are the basis for a manual recalculation, which fits quite well to the real data (especially, for the right motor).
  • Finally, we prepared a very basic R plotting (still without ggplot2, but we are working on it 😉 )

R + Arduino + ROS

Facebooktwitterredditpinterestlinkedinmail


[In English]

Como ya comenté en un post anterior, es posible integrar Arduino dentro de ROS. Por otra parte, hay un paquete rosR muy interesante que permite crear scripts R trabajando también en ROS; la documentación del paquete es completa y cubre tanto la parte ROS como la parte R:

Combinando ambos paquetes se pueden hacer cosas majas. Por ejemplo, en el vídeo al final del post se muestra cómo un nodo ROS envía las lecturas de un sensor FSR conectado a un Arduino (Duemilanove, en este caso) por un topic al que está suscrito un script R que muestra un plot con esos valores sobre la marcha. El código del sketch y del script, basados en los ejemplos proporcionados en la documentación de ambos paquetes, están en mi Github.

En este caso, he usado la máquina virtual Nootrix con ROS indigo 32, ya que me resulta útil por motivos docentes. La misma combinación Arduino-R también funciona correctamente en un Xubuntu 14.04.3 de 64 bits con ROS indigo instalado.

Por probar, he compilado la versión 64 bits de rosR en un Ubuntu Mate 15 con ROS jade distribuido entre un portátil y el netbook del Turtlebot, y también funciona… ¡¡Turtlebot, R te espera :)!!


[En español]

As I commented in a previous post, it is possible to use Arduino with ROS. Furthermore, there is a very interesting rosR package that allows to build R scripts also in ROS; the documentation of this package is complete and covers the ROS point of view as well as the R perspective:

You can build nice things using both packages. For example, the video at the bottom of this post shows how a ROS node sends the readings of a FSR sensor connected to an Arduino (Duemilanove, in this case) through a topic; a R script which is subscribed to that topic plots those values on the fly. The code of the skecth and the script, based on the examples provided in the documentation of both packages, is in my Github.

You can see in the video that I use the Nootrix ROS indigo 32 virtual machine, since I find it useful due to teaching reasons. The same Arduino-R combination also works fine under a Xubuntu 14.04.3 64 bits with ROS indigo.

I tried to compile the rosR 64 bits version under Ubuntu Mate 15 with a ROS jade distributed between a desktop and the Turtlebot netbook, and it also works… Turtlebot, R is waiting for you 🙂

WidowX+ROS: Primeras pruebas unitarias / First unit tests

Facebooktwitterredditpinterestlinkedinmail

Como comenté en el post anterior, estamos trabajando con un brazo WidowX instalado sobre un Turtlebot. Estas son las muy primeras, muy iniciales y muy parciales pruebas 🙂 que hemos realizado: un “home” básico, en el que las articulaciones de la 1 a la 5 se posicionan en 0º.  Por si fuera de utilidad, este código de prueba está disponible en mi GitHub,  y poco a poco iremos añadiendo pruebas más complicadas. Está preparado para trabajar con el software ROS para WidowX de Robotnik Automation.

Ahora mismo, las articulaciones no se relajan desde código; para lograrlo, llamar desde consola al servicio de relax de las articulaciones; por ejemplo, rosservice call /arm_5_joint/relax

 

As I commented in the previous post, we are working with a WidowX arm fixed on a Turtlebot 2. These are the very first, very preliminar and very partial tests 🙂 we have performed: a basic “home”, with joints from 1 to 5 set to 0º . In case it could be useful, I have uploaded this code to my GitHub, though we will keep adding more tests. The code is prepared to work with the ROS software for WidowX created by Robotnik Automation.

Right now, joints are not relaxed from code; to do this, you should call from console to the relax service of every joint; for example, rosservice call /arm_5_joint/relax

WidowX + Arbotix + ROS Indigo

Facebooktwitterredditpinterestlinkedinmail


[In English]

Estamos trabajando con el brazo WidowX instalado en nuestro Turtlebot 2. El brazo utiliza los drivers de Arbotix para ROS Indigo. Estas son las diferencias encontradas con la documentación original de la web:

  • La instalación desde apt-get no funciona, ya que cuando se crea el paquete aparecen errores. Es mejor descargar los drivers desde el github de Vanadium. Si se va a escoger sólo una parte de los drivers, es necesario asegurarse que se bajan todos los paquetes ROS necesarios; por ejemplo, no debería faltar el paquete de mensajes de arbotix.
  • El código fuente se copia al directorio de trabajo de ROS (en mi caso, que uso el directorio típico creado por ROS, /home/catkin_ws/src). Luego se crea como cualquier otro paquete ROS usando catkin_make .
  • El paquete arbotix_python también presenta diferencias con la documentación de ROS. Una vez creado el paquete, en el directorio_de_trabajo/src/arbotix_python/bin aparecen tres ficheros: arbotix_driver, arbotix_gui (en lugar de controllerGUI.py) y arbotix_terminal (y no terminal.py)
    • arbotix_terminal debe lanzarse tal cual, es decir,  ejecutando  ./arbotix_terminal sin lanzar roscore.
    • arbotix_driver y arbotix_gui necesitan lanzarse en ROS, es decir, con roscore ejecutándose.
    • arbotix_gui, además, parece venir preparado para un modelo URDF/XACRO concreto que no encuentra, ya que al ejecutarlo no aparecen las articulaciones del brazo en el interfaz gráfico que se abre, y en la ventana de comandos se muestra el error No URDF defined, proceeding with defaults. Bicheando un poco en el código, he visto que arbotix_gui llama a la función getJointsFromURDF, que está en directorio_de_trabajo/src/arbotix_python/joints.py y que carga el parámetro robot_description con el modelo URDF que utilizará. He intentado modificar este parámetro robot_description con otro modelo llamando a rosparam set /directorio_del_modelo/modelo.xacro (roscore debe estar lanzado), pero, aunque getJointsFromURDF sí encuentra este nuevo modelo, el resto del código de la función no está, aparentemente, preparado para él, así que por ahora voy a dejarlo y a centrarme en la programación del brazo que realmente necesitamos.


[En español]

We are working with the WidowX arm set on our Turtlebot 2. This arm uses the Arbotix drivers for ROS Indigo.  These are the differences with the documentation in the web:

  • Installation from apt-get does not work: errors arise when the package is created. The best option is to download the drivers from the Vanadium repository at github. If you download just a subset of the drivers, make sure that you choose all the basic ROS packages; for example, don’t forget to download de arbotix messages package.
  • All the source code should be copied to the ROS workspace (for example, I use the default workspace created by ROS, so I put it into /home/catkin_ws/src). After that, the package is created like any other ROS package with catkin_make .
  • arbotix_python package has also differences with ROS documentation. Once the package is created, three files are stored in your_workspace/src/arbotix_python/bin folder: arbotix_driver, arbotix_gui (instead of controllerGUI.py) and arbotix_terminal (not terminal.py)
    • arbotix_terminal runs “stand alone”, i.e.,  calling to  ./arbotix_terminal without a launched roscore.
    • arbotix_driver and arbotix_gui must be run within ROS, i e., with a running roscore.
    • Furthermore, arbotix_gui waits for a specific URDF/XACRO model that cannot find: the gui does not open all the joints of the arm, and the command window shows error No URDF defined, proceeding with defaults. Tracing the code, I found that arbotix_gui calls to function getJointsFromURDF in your_workspace/src/arbotix_python/joints.py, which in turn loads the robot_description parameter, that stores the URDF model used by this function. I tried to set another model in this parameter, running  rosparam set /model_folder/model.xacro (roscore must be running), but, though getJointsFromURDF does find this new model, the rest of the code of this function is not prepared to work handle it, so by now I am going to skip this question and move to the programming of the arm that we really need.

 

Playing with Leaflet and R :)

Facebooktwitterredditpinterestlinkedinmail

Pequeña prueba con Leaflet y R… una combinación estupenda 🙂 Los datos corresponden al mes de Mayo de 2015 del proyecto Málaga City Sense, y representan información sobre operadores, estado de carga y modelo (aparece como un pop-up) de teléfonos inteligentes usados en Málaga; están disponibles en el Portal de Datos Abiertos del Ayto. de Málaga. El código R está disponible en mi GitHub.

This is a small test using Leaflet and R… a really cool combination 🙂 The data belong to the Málaga City Sense project (May 2015), and they represent information about phone providers, battery level and devices (as a pop-up) of smartphones deployed in Málaga; they are available at the Open Data Website of the Málaga Townhall. The R code can be found at my GitHub.

R + RStudio + PostGIS + Xubuntu 14.04/Debian jessie

Facebooktwitterredditpinterestlinkedinmail


[In English]

Estos son los pasos para poder obtener datos de una base de datos PostGIS desde RStudio trabajando en Xubuntu 14.04 o en Debian jessie:

  1. Deben estar instaladas las librerías libgeos, libgeos-c1, libgeos-dev y libgeos++-dev; las dos primeras ya las tenía instaladas tanto en Xubuntu como en jessie, pero las dos últimas las he tenido que añadir desde Synaptics, según se indica en este enlace de AskUbuntu.
  2. En RStudio, hay que instalar y después cargar los paquetes RPostgreSQL, rgeos y sp.
  3. Después hay que crear la conexión a la base de datos:

    drv <- dbDriver(“PostgreSQL”)

    con<- dbConnect(drv,dbname=’tuBD’,host=’localhost’,port=5432,user=’tuUsuario’,password=’tuPw’)

  4. Para obtener datos que utilicen información extraída de una tabla con datos espaciales, deben usarse las funciones PostGIS habituales de acceso a geometrías:

data <- dbGetQuery(con,”SELECT nongeocolumn, ST_AsText(geocolumn) FROM yourtable”)

Una vez finalizado el trabajo con la BD, se cierran conexión y driver:

dbDisconnect(con)
dbUnloadDriver(drv)

Los pasos 2-4 están explicados en este enlace de R-bloggers. A partir de él he subido a Github un pequeño script R (accessDB.R) que realiza la instalación y carga de paquetes, y la conexión a la base de datos.


[En español]

These are the steps for retrieving data from a PostGIS database using RStudio under Xubuntu 14.04 or under Debian jessie:

  1. Libraries libgeos, libgeos-c1, libgeos-dev y libgeos++-dev must be installed; both Xubuntu and jessie had the first two of them installed, but I had to add the last ones from Synaptics, as it is explained in this link at AskUbuntu.
  2. In RStudio, you have to install and then load RPostgreSQL, rgeos y sp packages.
  3. After that, you have to create the connection to the database:

    drv <- dbDriver(“PostgreSQL”)

    con<- dbConnect(drv,dbname=’yourDB’,host=’localhost’,port=5432,user=’yourUser’,password=’yourPw’)

  4. In order to get  information from tables which store geospatial data, you have to use the usual PostGIS functions for handling geometries:

data <- dbGetQuery(con,”SELECT nongeocolumn, ST_AsText(geocolumn) FROM yourtable”)

Once the work with the DB is finished, connection and driver must be closed:

dbDisconnect(con)
dbUnloadDriver(drv)

Steps 2-4 are explained in this link at R-bloggers. From the content in this post I have uploaded to Github a little R script (accessDB.R) that installs and load the required packages, and then connects to a database.

 

Android Studio + NDK + Windows 7

Facebooktwitterredditpinterestlinkedinmail


[In English]

Estos son los pasos necesarios para instalar Android Studio y NDK sobre Windows 7 (en colaboración con Juan Antonio Fernández Madrigal)

Consideraciones previas

  • No es posible instalarlo en una máquina virtual, ya que el emulador necesita para funcionar virtualización, no disponible dentro de una máquina virtual.
  • Hacen falta bastantes gigas de disco para instalarlo todo, así que hay que asegurarse de tener suficiente espacio.
  • Aquí pueden encontrarse tutoriales para aprender a programar con Android Studio.
  • Bibliografía disponible en Jábega (catálogo de la Biblioteca de la Universidad de Málaga)
    • El Gran libro de Android : [actualizado a la versión KitKat y Android L Preview] / Jesús Tomás Gironés
    • Building Android apps / Mike McGrath
    • Manual imprescindible de desarrollo de aplicaciones para Android. Edición 2015/ Joan Ribas Lequerica
    • Profesional Android open accesory programing with Arduino[Recurso electrónico]/ Andreas Göransson,
    • Android Studio application development [Recurso electrónico] / Belén Cruz Zapata.

Primer paso: instalación de Java

  1. Obtener de el Java jdk 8 (a partir del 7 ya vale), no el jre, que sólo es el entorno de ejecución. En Windows 7 simplemente se baja y ejecuta el instalador .exe. Después es necesario incluir manualmente el path de Java (y de su directorio bin) en la variable de entorno de Windows 7 Path; si alguien no encuentra el path de Java, puede buscar dónde se ha realizado la instalación en Java Mission Control, el programa de configuración de Java que se instala también.

Segundo paso: instalación de Android Studio 

  1. Descargar Android Studio Bundle de la web (para Windows es un ejecutable), ejecutar el .exe y aceptar todo en la Standard Installation.
  2. Una vez instalado, ejecutar Tools -> Android -> SDK Manager  y marcar para instalar las build-tools 21 y la API 21. También es necesario instalar Froyo (2.2. API 8). Esto puede tardar bastante, sobre todo por wifi.
  3. En Configure->Project Defaults->Project structure completar los paths del SDK y de Java. Volver hacia atrás y empezar un nuevo proyecto (Blank Activity) que use la API 8 (Froyo). En el desplegable del rendering de la aplicación, usar la 21 en vez de la 22.
  4. En File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle, activar la casilla Offline work (si no, la compilación y ejecución son lentísimas). El problema de la lentitud de Android Studio en Windows 7 y esta solución se comentan en este enlace de Stackoverflow.
  5. En Tools -> Android -> AVD Manager añadir, al Nexus 5 API 22, un Samsung Galaxy con la cámara trasera emulada. Desactivar la opción Use Host GPU. Es especialmente lento el arranque la primera vez y cuando se crea una nueva aplicación y tiene que empezar el indexado.

Tercer paso: instalación de NDK

  1. Este paso es muy sencillo: en Tools ->  Android -> SDK Manager-> SDK Tools -> Android NDK

Desarrollo de aplicaciones


[En español]

These are the steps to follow in order to install Android Studio and NDK on Windows 7 (post written in collaboration with Juan Antonio Fernández Madrigal)

Preliminary requests

  • This software cannot be installed on a virtual machine, since the emulator requires virtualization tools, which are not available in a virtual machines.
  • Both programs are quite demanding in hard drive space: be sure you have enough before you begin the installation.
  • Here you can find several tutorials to learn how to program with Android Studio.
  • Brief list of suggested readings (all of them available at Jábega, the catalogue of the Library of Málaga University)
    • El Gran libro de Android : [actualizado a la versión KitKat y Android L Preview] / Jesús Tomás Gironés
    • Building Android apps / Mike McGrath
    • Manual imprescindible de desarrollo de aplicaciones para Android. Edición 2015/ Joan Ribas Lequerica
    • Profesional Android open accesory programing with Arduino [Recurso electrónico]/ Andreas Göransson,
    • Android Studio application development [Recurso electrónico] / Belén Cruz Zapata.

First step: installing Java

  1. Get Java jdk 8 (though it works from jdk 7); it is important to choose jdk and not jre (jre is just the running environment). For Windows 7 just download and run the .exe file. After that, you have to manually add the path (and its bin folder) to the Windows 7 environment variable Path; if you do not know which is that Java path, you can check it using Java Mission Control, the Java configuration application that has been installed along with Java.

Second step: installing Android Studio

  1. Download Android Studio Bundel from the web (for Windows is an executable file), run the .exe and accept every default option of the Standard Installation.
  2. After that, go to Tools -> Android -> SDK Manager and check for installing the build-tools 21 and API 21. You also have to install Froyo (2.2. API 8). This can take a long time, especially if you are connected through a wifi.
  3. Go to Configure->Project Defaults->Project structure and add the paths of the SDK and Java. Go back and start a new project (Blank Activity) with API 8 (Froyo).  Choose, in the dropdown control  for rendering, version 21 instead of 22.
  4. In File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle, check the Offline work box (if not, compilation and execution are painfully slow). This issue about Android Studio being so slow under Windows 7 and its solution are explained in this link at Stackoverflow.
  5. Add, using Tools -> Android -> AVD Manager, a new Samsung Galaxy device with emulated back camera. Uncheck the box Use Host GPU. It is especially slow when you run the emulator for the first time, and when a new app is created and Android Studio has to index from scratch.

Third step: installing NDK

  1. This step is a piece of cake:Tools ->  Android -> SDK Manager-> SDK Tools -> Android NDK

Applications development

 

Anne Neville in the politics of the period and the expected role of a medieval queen

Facebooktwitterredditpinterestlinkedinmail


[In English]

Entre mis temas históricos favoritos se encuentra la Guerra de las Rosas, y uno de los motivos es que las mujeres que intervinieron en ella fueron, cada una a su manera, excepcionales. Este es un ensayo corto que preparé para el curso en línea de la Universidad de Oxford “The Wars of the Roses” (un curso durillo pero genial:)), centrado en la vida de una de estas protagonistas: Anne Neville.

Notas:

1. La fuente principal del ensayo es el libro de Hicks referenciado al final.
2. Respecto a los nombres, he mantenido los originales en inglés, salvo en aquellos casos en los que en castellano estamos más habituados a su traducción.
3. La Universidad de Oxford tiene una política muy estricta respecto al plagio, así que recordad que este ensayo ya ha sido enviado al curso.

El papel de Anne Neville en la política del período. ¿Hasta qué punto se ajustó o desafió el papel esperado de una reina medieval?

Este ensayo analiza el papel de Anne Neville, reina consorte de Ricardo III. El ensayo se organiza como sigue: en la primera sección, se establecen los principales aspectos biográficos que influyeron en la vida de Anne Neville como reina. La segunda sección se centra en las características de su reinado. En la tercera sección se fijan las conclusiones sobre su influencia en el período estudiado. La última sección se dedica a las referencias.

1.- Biografía de Anne Neville

Anne Neville fue la segunda hija de Richard Neville, decimosexto conde de Warwick y sexto conde de Salisbury, y de la condesa Anne Beauchamp, heredera de las familias Warwick y Despenser. Nació el 11 de Junio de 1456 en el castillo de Warwick. Pertenecía a una familia antigua y bien situada, y pasó su infancia en Inglaterra y también en Francia, en el destacamento de Calais. Sus primeros años estuvieron marcados por dos factores: en primer lugar, Anne y su hermana mayor Elizabeth eran las únicas descendientes de los Warwick, que habían acumulado una gran fortuna, por lo que se convirtieron en grandes herederas que podían lograr matrimonios ventajosos; en segundo lugar, la actividad política de su padre, el Kingmaker (Fabricareyes, en una traducción muy libre ;)), un destacado partidario de los York hasta que se cambió al bando Lancaster. El resultado final fue que, a los quince años, Anne Neville era la Princesa Viuda de Gales, tras un matrimonio de seis meses con Henry de Lancaster, muerto en la batalla de Tewkesbury.

En ese punto, Anne se encontraba en una situación complicada: su padre, su marido y su suegro estaban muertos, su madre y suegra bajo custodia, y ella no podía reclamar ningún derecho como Princesa de Gales ya que los Lancaster eran considerados traidores, y los York tenían su propio Príncipe de Gales. Era la rica heredera de los Neville, por lo que el Duque de Clarence, casado con su hermana Isabel Neville, intentó controlarla como parte de su propia herencia Neville. Sin embargo, Anne Neville era viuda, y a diferencia de las mujeres solteras, que estaban bajo la tutela de sus padres (o de sus familiares varones), podía tomar sus propias decisiones; la decisión de Anne fue casarse con Ricardo, el Duque de Gloucester, hermano del rey Eduardo IV y del Duque de Clarence.

Esta elección podría considerarse extraña, ya que Ricardo pertenecía a la familia responsable de las muertes o encarcelamientos de la familia más directa de Anne, e incluso puede que tuviera un papel principal en algunas de esas muertes. Hicks [5] establece varias razones posibles que llevaron a Anne a casarse con Ricardo: la necesidad de un marido poderoso que la defendiera de Clarence; los sentimientos de miedo, abandono y supervivencia de una niña de quince años; o simple amor y atracción. No hay registros de la fecha y lugar de la boda, pero se casaron sabiendo que no tenían todas las dispensas requeridas (eran parientes muy cercanos en varios grados, según las estrictas normas de la época) y, por tanto, su matrimonio podía no ser válido.

La vida de Anne como Duquesa de Gloucester está apenas documentada. Dejó la corte de Londres, y se supone que vivió en el castillo de Middleham, donde dio a luz a su único hijo Edward y se dedicó a organizar su hogar, tareas para las que había sido educada. En 1483 Ricardo usurpó el trono, y Anne Neville fue coronada reina junto con Ricardo el 6 de Julio en la Abadía de Westminster; una coronación conjunta no era frecuente, y en [4] se pueden encontrar varias explicaciones: un gesto de afecto de Ricardo hacia Anne; una forma de reforzar el compromiso de Ricardo con la familia norteña de Anne; o, al contrario, una forma de disminuir su autoridad al no permitir una ceremonia exclusiva para ella. El papel de Anne como reina se estudia en la próxima sección.

2.- Anne Neville, reina de Inglaterra

Para analizar el papel de Anne Neville como reina de Inglaterra, debemos establecer primero cuál era ese papel esperado. Hicks [5] define varias características que pueden ayudarnos a comprender sus logros:

  • Una reina debía proporcionar un heredero

    Anne Neville sólo tuvo un hijo. Sin embargo, una reina debía tener muchos niños que pudieran dar lugar a relacionas internacionales beneficiosas (como, por ejemplo, la cuñada de Anne, Margaret de York, cuyo matrimonio con el Duque de Borgoña fue muy útil para Edward IV), y que pudieran asumir el lugar del primogénito en caso de que éste muriera, como desafortunadamente ocurrió a Edward de Middleham. La imposibilidad de Anne para tener más niños podría ser considerada, para los estándares de la época, un inconveniente importante, y llevó a Ricardo a considerar la posiblidad de abandonar a Anne (su matrimonio no era legal, como se comentó previamente) y casarse con su sobrina Elizabeth de York, aunque esta opción se descartó debido a razones políticas, y finalmente fue innecesaria ya que Anne falleció el 16 de Marzo de 1485.

  • Una reina debía supervisar la corte

    Aunque Anne Neville no fue específicamente educada para ser una reina, era la hija del Kingmaker, por lo que estaba acostumbrada a la corte desde niña; además, había sido Princesa de Gales, y pasado un cierto tiempo con la reina Margaret de Anjou, por lo que parece lógico pensar que sabía como comportarse en un entorno real. Organizó su propia casa y corte en vez de mantener la de la reina Elizabeth Woodville, intentando traer a su personal del Norte sin desplazar totalmente al anterior. 

  • Una reina debía facilitar las relaciones internacionales

    Ricardo fue un noble de la familia York que no esperaba ser rey. Sus posibilidades a la hora de casarse abarcaban herederas internacionales, como la princesa Isabel de Castilla [7] o nobles inglesas, como Anne Neville, cuya rica herencia y sus relaciones en el Norte prestaron un enorme servicio a su ducado. Por tanto, cuando él accedió al trono ya estaba casado, algo poco común, ya que se esperaba que los reyes ingleses se casaran con princesas extranjeras solteras y vírgenes, para forjar así una relación internacional. 

Aparte de estos aspectos, que son en su mayoría factuales, no hay registros de situaciones o eventos que puedan proporcionar una visión más cercana del carácter y pensamiento de Anne Neville [5]. Aunque ocupó el trono sólo durante dos años, su huella como reina fue, hasta donde yo conozco, realmente tenue. Pero varias mujeres reales desafiaron ese comportamiento de perfil bajo: 

  • Algunas reinas anteriores tuvieron un papel más participativo en la corte y en política: Matilda de Inglaterra luchó por su derecho al trono; Leonor de Aquitania dirigió el reino mientras su hijo estuvo fuera del país [3]. 

  • Algunas conocidas de Anne Neville intervinieron en política: Margaret de Anjou lideró abiertamente el bando de los Lancaster, defendiendo los derechos de su marido e hijo, e implicándose bastante incluso en campañas militares (estuvo cerca de Tewkesbury durante la batalla). Margaret de York, duquesa de Borgoña, ayudó a su familia York activamente a lo largo de la Guerra de las Rosas. Elizabeth Woodville estableció a su familia en la corte en contra del criterio del padre de Anne, y tras la usurpación de Ricardo y la desaparición de sus dos hijos, protegió los derechos de sus hijas, y finalmente su hija mayor se convirtió en la reina Elizabeth de York. 

  • Otras mujeres que no eran reinas en ese momento demostraron un carácter fuerte. Margaret Beaufort trabajó callada y constantemente durante años hasta que su hijo Henry Tudor alcanzó el trono. Incluso Cecily Neville, duquesa de York y madre de Edward IV, intentó mantener una posición que realmente no ocupaba, usando el título “reina por derecho”. Anne Neville, al contrario, no parecía preocuparse de su propia importancia; por ejemplo, permitía a su sobrina Elizabeth de York vestirse como ella, a pesar del código de vestimenta acorde al rango existente en la corte[4].

También es cierto que, a diferencia de las mujeres anteriormente mencionadas, Anne no tenía una clara motivación o responsabilidad por la que luchar: no tenía familia o derechos que defender. En resumen, no fue muy fértil y no pudo asegurar un heredero y relaciones internacionales, pero su fortuna y relaciones familiares en el norte ayudaron a Ricardo a progresar como Duque de Gloucester y lo apoyaron como rey, y su conducta no fue desafiante. Considerándolo todo, y según los estándares medievales, su labor como reina cumplió todas las expectativas.

3.- Conclusiones

Cuando se intenta analizar el papel de Anne Neville como reina, la principal dificultad radica en la falta de información directa. A pesar de su intensa vida, las conclusiones que se pueden obtener se basan sobre todo en lo que aparentemente no hizo: a diferencia de otras mujeres reales contemporáneas, ella no controló su herencia, no participó en política, no ayudó a su familia, no fue cuestionada. Por supuesto, la ausencia de evidencia no es la evidencia de ausencia y, como expone Hicks, “Richard fue un egotista y no respetaba a las mujeres: si Anne no ejerció influencia política sobre su marido puede no deberse a que ella fuera especialmente inefectiva” [5] (la traducción es mía). Pero esto es sólo una conjetura fundamentada y, puesto que la investigación debe ajustarse a los hechos conocidos, creo que puede concluirse que ella se ajustó a lo que se esperaba de una reina consorte medieval.

4.- Referencias

[1] Carpenter, C., 1997 The Wars of the Roses: Politics and the Constitution in England, c.1437–1509, Cambridge University Press.

[2] Carson, A., 2013 Richard III. The maligned king, The History Press.

[3] Castor, H., 2012 She-Wolves. The women who ruled England before Elizabeth, Harper Perennial.

[4] Gristwood, S., 2013 Blood Sisters. The women behind the Wars of the Roses, Basic Books.

[5] Hicks, M., 2013 Anne Neville. Queen to Richard III, The History Press.

[6] Oxford Dictionary of National Bibliography, 2015 Anne Neville,http://www.oxforddnb.com/view/article/14844?docPos=1

[7] Tremlett, G., 2012 Catalina de Aragón. Reina de Inglaterra, Editorial Crítica.


[En español]

The Wars of the Roses is one of my favourite topics of History, and one of the reasons is that the women that took part in it were, each in its own way, exceptional. This is a short essay that I submitted to the Oxford University’s on line course “The Wars of the Roses” (a slightly demanding but great course :))), which deals with the life of one of these main female characters: Anne Neville.

Notes:

1. The main source I used was the biography by Hicks, which is referenced at the end of the post.
2. Oxford University has a very strict policy about plagiarism, so remember that this essay has been previously submitted to this course.

The role of Anne Neville in the politics of the period. How far did she conform to or challenge the role expected of a medieval queen?

This essay analyses the role of Anne Neville, consort queen to Richard III. The essay is organized as follows: in the first section, the main biographical aspects that have an influence on Anne Neville’s life as a queen are gathered. The second section deals with the issues that characterized her queenship. In the third section the conclusions about her influence in the period are set. The last section is devoted to the references.

1.- Anne Neville’s life

Anne Neville was the second daughter of Richard Neville, sixteenth earl of Warwick and sixth earl of Salisbury, and the countess Anne Beauchamp, heiress of Warwick’s and Despenser’s families. She was born on 11th of June 1456 at Warwick Castle. She belonged to an ancient and well positioned family, spending her childhood in England and also in France, at the Calais garrison. Her early life was determined by two factors: first, Anne and her elder sister Elizabeth were the only children of the Warwicks, which had accumulated a great wealth, so they became great heiresses that could be suitably married; second, the political role of her father, the Kingmaker, a main supporter of the Yorkists until he changed sides to the Lancastrian party. The final result was that, at fifteen, Anne Neville was the dowager Princess of Wales, after a six months marriage to Henry of Lancaster, who was slain at Tewkesbury battle.

At that point, Anne was in a complicated situation: her father, husband and father-in-law were dead, her mother and mother-in-law were confined, and she could not claim any rights as Princess of Wales since Lancasters were traitors, and Yorkists had their own Prince of Wales. She was the wealthy Neville heiress, so the Duke of Clarence, married to her sister Elizabeth Neville, tried to control her as she was a part of his own Neville inheritance. However, Anne Neville was a widow, and unlike single women, which were under their father’s (or male relatives) tutelage, she could take their own decisions; Anne’s decision was to marry Richard Duke of Gloucester, brother of king Edward IV and George Duke of Clarence.

This choice could be considered a strange one, since Richard belonged to the family that was responsible for the deaths or confinement of Anne’s most direct family, and even he could have had a main role in some of these deaths. Hicks [5] states several possible reasons that led Anne to marry Richard: the need of a powerful husband who could defend her against Clarence; the feelings of fear, abandonment and survival of a fifteen years old girl; or simply attraction and love. There are no records of the date and place of the wedding, but they married knowing that they have not collected all the dispensations they needed (they were close relatives in several degrees, as stated by the strict rules of the time) and, therefore, the marriage could not be valid.

The life of Anne as Duchess of Gloucester is scarcely documented. She left the London court, and she is supposed to have lived at Middleham Castle, where she gave birth to her only child Edward and was devoted to the household, the tasks that she was educated for. On 1483 Richard usurped the throne, and Anne Neville was crowned with Richard on 6th of July at Westminster Abbey; a joint coronation was not common, and several explanations can be found in [4]: an act of affection of Richard to Anne; a way of reinforce the commitment of Richard with the northern family of Anne; or, on the contrary, a way of diminish her authority by not allowing an exclusive ceremony for her. The role of Anne as a queen is studied in the next section.

2.- Anne Neville, Queen of England

In order to analyse the performance of Anne Neville as queen of England, it should be stated first which was such expected role. Hicks [5] defines several features that can help to understand her accomplishments:

  • A queen should provide a heir

    Anne Neville had only one child. Nevertheless, a queen should have many children that could create profitable international alliances (like, for example, Anne’s sister-in-law Margaret of York, whose marriage to the Duke of Burgundy proved very helpful for Edward IV), and that could take the place of the firstborn boy in case of his death, like unfortunately happened to Edward of Middleham. Anne’s impossibility of bearing more children could be considered, by the standards of the time, an important flaw, and it led Richard to consider the possibility of leaving Anne (their marriage was not legal, as it was stated before) and marrying his niece Elizabeth of York, but this option was discounted due to political reasons, and in the end it turned to be unnecessary, since Anne died on 16th March 1485.

  • A queen should supervise the court.

    Though Anne Neville was not specifically trained for being a queen, she was the daughter of the Kingmaker, so he was accustomed to the court since childhood; furthermore, she had been Princess of Wales and had spent some time with queen Margaret of Anjou, so it seems reasonable to think that she knew how to develop in a royal environment. She organised her own household and court instead of keeping queen Elizabeth Woodville’s one, trying to bring her own people from the North without totally removing the previous one.

  • A queen should enhance international relationships

    Richard was a Yorkist noble which was not expected to be king. His marriage possibilities covered international heiresses, like princess Isabella of Castille [7] or English noble women, like Anne Neville, whose wealthy inheritance and northern relationships rendered a tremendous service to his Dukedom. Hence, when he accessed the throne, he was married, which was not a common situation, since English kings were expected to marry a single, virgin, foreign princess to establish a international relationship.

Apart from these aspects, that are mostly factual, there are no records of situations or events that can provide a closer view of the character and thinking of Anne Neville [5]. Though she was in the throne only for two years, her footprint as a queen is, up to my knowledge, really tenuous. But this low profile had been challenged by several royal women:

  • Some previous female queens had a more participative role in the court and in politics: Matilda of England fought for her right to the throne; Eleanor of Aquitaine ruled the kingdom while her son was abroad [3].

  • Some other Anne Neville’s acquaintances intervened in politics: Margaret of Anjou openly took the Lancastrian leadership, defending the rights of her husband and son, and getting quite involved even in military campaigns (she was near Tewkesbury at the battle time). Margaret of York, duchess of Burgundy, actively helped her Yorkist family along the Wars of the Roses. Elizabeth Woodville settled her family in the court against Anne’s father opinion, and after Richard’s usurpation and the disappearing of her two sons, she protected the rights of her daughters, and finally her eldest child became queen Elizabeth of York.

  • Other women that were not queens at that moment showed their strong characters. Margaret Beaufort worked quiet and steadily for years until her son Henry Tudor reached the throne. Even Cecily Neville, duchess of York and Edward IV’s mother, tried to keep a position that she not really achieved, using the title “queen by right”. Anne Neville, on the contrary, did not seem to care about her own importance; for example, she allowed her niece Elizabeth of York to dress like her, despite the court dressing code according to the rank [4].

It is also true that, unlike the aforementioned women, Anne had not a strong motivation or responsibility to fight for: she had not family or rights to defend. To sum up, she was not too fertile and could not secure a heir and international relationships, but her wealth and family ties in the North helped Richard to prowess as Duke of Gloucester and supported him as a king, and her conduct was not defiant. All in all, and according to the medieval standards, her performance as a queen came up to all expectations.

3.- Conclusions

When trying to analyse the role of Anne Neville as a queen, the main difficulty lays on the lack of direct information. Despite her intense life, the conclusions that can be obtained are based mostly on what she apparently did not do: unlike other royal contemporary women, she did not control her inheritance, she did not participate in politics, she did not helped her family, she was not questioned. Of course, the absence of evidence is not evidence of absence, and, as Hicks states, “Richard was an egotist and no respecter of woman: if Anne exercised no political influence on her husband it may not have been because she was especially ineffective” [5]. But that is just an educated guess and, since research has to adhere to the known facts, I think that it can be concluded that she conformed to was expected of a medieval consort queen.

4.- References

[1] Carpenter, C., 1997 The Wars of the Roses: Politics and the Constitution in England, c.1437–1509, Cambridge University Press.

[2] Carson, A., 2013 Richard III. The maligned king, The History Press.

[3] Castor, H., 2012 She-Wolves. The women who ruled England before Elizabeth, Harper Perennial.

[4] Gristwood, S., 2013 Blood Sisters. The women behind the Wars of the Roses, Basic Books.

[5] Hicks, M., 2013 Anne Neville. Queen to Richard III, The History Press.

[6] Oxford Dictionary of National Bibliography, 2015 Anne Neville, http://www.oxforddnb.com/view/article/14844?docPos=1

[7] Tremlett, G., 2012 Catalina de Aragón. Reina de Inglaterra, Editorial Crítica.

Vuelta al cole / Back to school

Facebooktwitterredditpinterestlinkedinmail


[In English]

Para plantearme objetivos suelo tener dos momentos al año: el uno de Enero para los personales, y el inicio del curso académico para los profesionales. En ambos casos, muchos se repiten año tras año ;), pero aún así creo que es bueno pensar qué cosas se pueden mejorar, e intentarlo una y otra vez hasta lograrlo (espero).

Este verano he descubierto varios blogs dedicados a la labor docente universitaria. Aunque están orientados al ámbito anglosajón, diferente en muchos aspectos al español, me parece que se pueden sacar muy buenas ideas. En este post de Conditionally Accepted se pueden encontrar los enlaces a los demás; de todos ellos, me han gustado particularmente Get a Life, Ph. D. y Pearls of Wisdom de The Professor is in.

Mezclando ideas tomadas de ellos, y de lo aprendido en varios libros de productividad, mis objetivos para este curso son:

  • Eliminar de una vez por todas la multitarea, ya que los efectos sobre la concentración son muuuuuy malos 🙁
  • Revisar el correo en momentos concretos del día y no conforme llega (me va a costar trabajo).
  • Ésta no la he probado aún: escribir todos los días (artículos, blog, lo que sea) y mantener el hábito.
  • No dispersarme, escogiendo uno/dos temas de docencia, investigación y formación. Esta me va a costar muchíiiiiiisimo: me gustan muchas cosas, y hay mucho libro y blog y curso chulísimo suelto por ahí 😉

Para los que estén interesados en cuestiones de productividad, es muy fácil encontrar libros y blogs sobre el tema. Si alguien extremadamente productivo quiere ahorrarse la lectura :), aquí van los tres trucos básicos que aparecen en todas esas referencias: ejercicio, buena alimentación, y dormir lo necesario. Es así y es verdad. A partir de ahí, ya pueden desarrollarse los demás; podéis encontrar muchos (y muy buenos) en este post de Gabriella Literaria.

Me gusta trabajar escuchando música, pero escogida con cuidadito porque, si no, me resulta imposible concentrarme. En esta entrada de Think Productive y en esta otra de Science Alert pueden encontrarse enlaces a música para mejorar la productividad. Con Noisli se pueden mezclar sonidos de la naturaleza a gusto de cada uno.

Bueno, eso es todo por ahora. Feliz vuelta al cole 😀


[En español]

I usually choose two moments every year for setting new goals: January 1st for personal goals, and the beginning of the academic year (September 1st in Spain) for professional ones. In both cases, many of these goals appear on my list year after year ;), but yet I believe that is a good idea to think about which aspects I could improve, and try and try again until (hopefully) I achieve them.

This summer I have found several blogs devoted to higher education teaching. Though they focus on the anglo saxon realm, which differs in many aspects to the Spanish system, I think that they offer very good ideas. In this post in Conditionally Accepted you can find the links to all those blogs; among them, I really like Get a Life, Ph. D. and Pearls of Wisdom in The Professor is in.

So, I have mixed some of those ideas and some tricks I have learned in several books about productivity, and these are my goals for this academic year:

  • Get rid, once and for all, of multitasking: it has a really really bad influence on concentration 🙁
  • Check the e-mail only at fixed moments of the day and not on the fly (I know this is going to be hard).
  • I have not tried this yet: write everyday (papers, blog, whatever) and keep the habit.
  • Do not disperse my attention. I will choose one/two issues on teaching, research and training. This one is going to be really hard: I like (almost) everything, and there are zillions of cool books and blogs and courses out there 😉

For the interested reader, it is really easy to find books and blogs about productivity. For the extremely productive reader who wants to spare the reading :), here you have the three basic tricks in all that literature: exercise, healthy food, and good sleep habits. Simple and true. From here on, you can develop any other productivity ideas; you can find a lot of (really good) examples in this post in Gabriella Literaria (in Spanish, but includes the link to the English original post by Niall Doherty).

I like listening to music while I work, but it has to be carefully chosen because, if not, I loose my focus. In this post in Think Productive and in this other in Science Alert you can find links to music for improving productivity. With Noisli you can mix and combine different sounds of nature as you like.

Well, that’s all for now. Happy back to school 😀