{"id":547,"date":"2015-10-22T15:53:44","date_gmt":"2015-10-22T15:53:44","guid":{"rendered":"http:\/\/jafma.net\/ana\/theweekendarchaeologist\/?p=547"},"modified":"2015-10-22T15:53:44","modified_gmt":"2015-10-22T15:53:44","slug":"widowx-arbotix-ros-indigo","status":"publish","type":"post","link":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/?p=547","title":{"rendered":"WidowX + Arbotix + ROS Indigo"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-facebook nolightbox\" data-provider=\"facebook\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Facebook\" href=\"http:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fjafma.net%2Fana%2Ftheweekendarchaeologist%2Findex.php%3Frest_route%3D%252Fwp%252Fv2%252Fposts%252F547&#038;t=WidowX%20%2B%20Arbotix%20%2B%20ROS%20Indigo&#038;s=100&#038;p&#091;url&#093;=https%3A%2F%2Fjafma.net%2Fana%2Ftheweekendarchaeologist%2Findex.php%3Frest_route%3D%252Fwp%252Fv2%252Fposts%252F547&#038;p&#091;images&#093;&#091;0&#093;=&#038;p&#091;title&#093;=WidowX%20%2B%20Arbotix%20%2B%20ROS%20Indigo\" style=\"font-size: 0px; width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Facebook\" title=\"Share on Facebook\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline; width:16px;height:16px; margin: 0; padding: 0; border: none; box-shadow: none;\" src=\"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/facebook.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fjafma.net%2Fana%2Ftheweekendarchaeologist%2Findex.php%3Frest_route%3D%252Fwp%252Fv2%252Fposts%252F547&#038;text=Check%20this%20out%20%2F%20Mira%20esto\" style=\"font-size: 0px; width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px;\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline; width:16px;height:16px; margin: 0; padding: 0; border: none; box-shadow: none;\" src=\"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-reddit nolightbox\" data-provider=\"reddit\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Reddit\" href=\"http:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fjafma.net%2Fana%2Ftheweekendarchaeologist%2Findex.php%3Frest_route%3D%252Fwp%252Fv2%252Fposts%252F547&#038;title=WidowX%20%2B%20Arbotix%20%2B%20ROS%20Indigo\" style=\"font-size: 0px; width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px;\"><img loading=\"lazy\" decoding=\"async\" alt=\"reddit\" title=\"Share on Reddit\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline; width:16px;height:16px; margin: 0; padding: 0; border: none; box-shadow: none;\" src=\"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/reddit.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-pinterest nolightbox\" data-provider=\"pinterest\" target=\"_blank\" rel=\"nofollow\" title=\"Pin it with Pinterest\" href=\"http:\/\/pinterest.com\/pin\/create\/button\/?url=https%3A%2F%2Fjafma.net%2Fana%2Ftheweekendarchaeologist%2Findex.php%3Frest_route%3D%252Fwp%252Fv2%252Fposts%252F547&#038;media=&#038;description=WidowX%20%2B%20Arbotix%20%2B%20ROS%20Indigo\" style=\"font-size: 0px; width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px;\"><img loading=\"lazy\" decoding=\"async\" alt=\"pinterest\" title=\"Pin it with Pinterest\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline; width:16px;height:16px; margin: 0; padding: 0; border: none; box-shadow: none;\" src=\"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/pinterest.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"http:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fjafma.net%2Fana%2Ftheweekendarchaeologist%2Findex.php%3Frest_route%3D%252Fwp%252Fv2%252Fposts%252F547&#038;title=WidowX%20%2B%20Arbotix%20%2B%20ROS%20Indigo\" style=\"font-size: 0px; width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px;\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline; width:16px;height:16px; margin: 0; padding: 0; border: none; box-shadow: none;\" src=\"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=WidowX%20%2B%20Arbotix%20%2B%20ROS%20Indigo&#038;body=Check%20this%20out%20%2F%20Mira%20esto:%20https%3A%2F%2Fjafma.net%2Fana%2Ftheweekendarchaeologist%2Findex.php%3Frest_route%3D%252Fwp%252Fv2%252Fposts%252F547\" style=\"font-size: 0px; width:16px;height:16px;margin:0;margin-bottom:5px;\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline; width:16px;height:16px; margin: 0; padding: 0; border: none; box-shadow: none;\" src=\"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/mail.png\" \/><\/a><p style=\"text-align: justify;\"><a id=\"spanish\"><\/a><br \/>\n<a href=\"#english\">[In English]<\/a><\/p>\n<p style=\"text-align: justify;\">Estamos trabajando con <a href=\"http:\/\/www.trossenrobotics.com\/widowxrobotarm\" target=\"_blank\">el brazo WidowX<\/a> instalado\u00a0en nuestro Turtlebot 2. El brazo utiliza <a href=\"http:\/\/wiki.ros.org\/arbotix\" target=\"_blank\">los drivers de Arbotix <\/a>para ROS Indigo. Estas son las diferencias encontradas con la documentaci\u00f3n original de la web:<\/p>\n<ul>\n<li style=\"text-align: justify;\">La instalaci\u00f3n desde <em>apt-get<\/em> no funciona, ya que cuando se crea el paquete aparecen errores. Es mejor descargar los drivers desde el <a href=\"https:\/\/github.com\/vanadiumlabs\/arbotix_ros\" target=\"_blank\">github de Vanadium<\/a>. Si se va a escoger s\u00f3lo una parte de los drivers, es necesario asegurarse que se bajan todos los paquetes ROS necesarios; por ejemplo, no deber\u00eda faltar el paquete de mensajes de arbotix.<\/li>\n<li style=\"text-align: justify;\">El c\u00f3digo fuente se copia al directorio de trabajo de ROS (en mi caso, que uso el directorio t\u00edpico creado por ROS, <em>\/home\/catkin_ws\/src<\/em>). Luego se crea como cualquier otro paquete ROS usando <em>catkin_make<\/em> .<\/li>\n<li style=\"text-align: justify;\">El paquete <em>arbotix_python<\/em> tambi\u00e9n presenta diferencias con la <a href=\"http:\/\/wiki.ros.org\/arbotix_python?distro=indigo\" target=\"_blank\">documentaci\u00f3n de ROS<\/a>. Una vez creado el paquete, en el <em>directorio_de_trabajo\/src\/arbotix_python\/bin<\/em> aparecen tres ficheros: <em>arbotix_driver<\/em>, <em>arbotix_gui<\/em> (en lugar de <em>controllerGUI.py<\/em>) y <em>arbotix_terminal<\/em> (y no <em>terminal.py<\/em>)\n<ul>\n<li><em>arbotix_terminal<\/em> debe lanzarse tal cual, es decir,\u00a0 ejecutando\u00a0 <em>.\/arbotix_terminal<\/em> sin lanzar <em>roscore<\/em>.<\/li>\n<li><em>arbotix_driver<\/em> y <em>arbotix_gui<\/em> necesitan lanzarse en ROS, es decir, con <em>roscore<\/em> ejecut\u00e1ndose.<\/li>\n<li><em>arbotix_gui<\/em>, adem\u00e1s, 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\u00e1fico que se abre, y en la ventana de comandos se muestra el error <em>No URDF defined, proceeding with defaults<\/em>. Bicheando un poco en el c\u00f3digo, he visto que <em>arbotix_gui<\/em> llama a la funci\u00f3n <em>getJointsFromURDF<\/em>, que est\u00e1 en <em>directorio_de_trabajo\/src\/arbotix_python\/joints.py<\/em> y que carga el par\u00e1metro <em>robot_description<\/em> con el modelo URDF que utilizar\u00e1. He intentado modificar este par\u00e1metro <em>robot_description<\/em> con otro modelo llamando a <em>rosparam set \/directorio_del_modelo\/modelo.xacro<\/em> (<em>roscore<\/em> debe estar lanzado), pero, aunque <em>getJointsFromURDF<\/em> s\u00ed encuentra este nuevo modelo, el resto del c\u00f3digo de la funci\u00f3n no est\u00e1, aparentemente, preparado para \u00e9l, as\u00ed que por ahora voy a dejarlo y a centrarme en la programaci\u00f3n del brazo que realmente necesitamos.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a id=\"english\"><\/a><br \/>\n<a href=\"#spanish\">[En espa\u00f1ol]<\/a><\/p>\n<p style=\"text-align: justify;\">We are working with <a href=\"http:\/\/www.trossenrobotics.com\/widowxrobotarm\" target=\"_blank\">the WidowX arm<\/a> set on our Turtlebot 2. This arm uses the <a href=\"http:\/\/wiki.ros.org\/arbotix\" target=\"_blank\">Arbotix drivers<\/a> for ROS Indigo.\u00a0 These are the differences with the documentation in the web:<\/p>\n<ul>\n<li style=\"text-align: justify;\">Installation from <em>apt-get<\/em> does not work: errors arise when the package is created. The best option is to download the drivers from\u00a0<a href=\"https:\/\/github.com\/vanadiumlabs\/arbotix_ros\" target=\"_blank\">the Vanadium repository at github<\/a>. If you download just a subset of the drivers, make sure that you choose all the basic ROS packages; for example, don&#8217;t forget to download de arbotix messages package.<\/li>\n<li style=\"text-align: justify;\">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 <em>\/home\/catkin_ws\/src<\/em>). After that, the package is created like any other ROS package with <em>catkin_make<\/em> .<\/li>\n<li style=\"text-align: justify;\"><em>arbotix_python<\/em> package has also differences with <a href=\"http:\/\/wiki.ros.org\/arbotix_python?distro=indigo\" target=\"_blank\">ROS documentation<\/a>. Once the package is created, three files are stored in <em>your_workspace\/src\/arbotix_python\/bin<\/em> folder: <em>arbotix_driver<\/em>, <em>arbotix_gui<\/em> (instead of <em>controllerGUI.py<\/em>) and <em>arbotix_terminal<\/em> (not <em>terminal.py<\/em>)\n<ul>\n<li><em>arbotix_terminal<\/em> runs &#8220;stand alone&#8221;, i.e.,\u00a0 calling to\u00a0 <em>.\/arbotix_terminal<\/em> without a launched <em>roscore<\/em>.<\/li>\n<li><em>arbotix_driver<\/em> and <em>arbotix_gui<\/em> must be run within ROS, i e., with a running <em>roscore<\/em>.<\/li>\n<li>Furthermore, <em>arbotix_gui<\/em> 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 <em>No URDF defined, proceeding with defaults<\/em>. Tracing the code, I found that <em>arbotix_gui<\/em> calls to function <em>getJointsFromURDF<\/em> in <em>your_workspace\/src\/arbotix_python\/joints.py, <\/em>which in turn loads the <em>robot_description<\/em> parameter, that stores the URDF model used by this function. I tried to set another model in this parameter, running\u00a0\u00a0<em>rosparam set \/model_folder\/model.xacro<\/em> (<em>roscore<\/em> must be running), but, though <em>getJointsFromURDF<\/em> 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.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[In English] Estamos trabajando con el brazo WidowX instalado\u00a0en nuestro Turtlebot 2. El brazo utiliza los drivers de Arbotix para ROS Indigo. Estas son las diferencias encontradas con la documentaci\u00f3n original de la web: La instalaci\u00f3n desde apt-get no funciona, ya que cuando se crea el paquete aparecen errores. Es mejor descargar los drivers desde &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/?p=547\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;WidowX + Arbotix + ROS Indigo&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4,10],"tags":[25,44],"_links":{"self":[{"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=\/wp\/v2\/posts\/547"}],"collection":[{"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=547"}],"version-history":[{"count":14,"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=\/wp\/v2\/posts\/547\/revisions"}],"predecessor-version":[{"id":563,"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=\/wp\/v2\/posts\/547\/revisions\/563"}],"wp:attachment":[{"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jafma.net\/ana\/theweekendarchaeologist\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}