3-DOF_Manipulator

O conjunto de pacotes 3-DOF_Manipulator é usado para explorar um robot planar com 3DOF.

É composto pelos seguintes pacotes do ROS

  • three_dof_planar_manipulator
  • three_dof_planar_manipulator_ikfast_arm_plugin
  • three_dof_planar_manipulator_moveit_config

Este conjunto de pacotes tem um repositório com o mesmo nome (3-DOF_Manipulator)

https://github.com/bandasaikrishna/3-DOF_Manipulator

ros_hardware_interfaces

O ros_hardware_interfaces é um conjunto de pacotes com hardware_interfaces para serem usadas com o ros control e  vários ros controllers.

Este conjunto de pacotes é elaborado no ambito da minha aprendizagem do ROS.

É composto pelos seguintes pacotes:

  • arm3dof_all_nofb (não está completamente funcional)
  • arm3dof_jpc_nofb (funcional)
  • arm3dof_jpc_nolim_nofb (funcional)
  • dcmotor_one (completo)
  • diff_drive_base1 (completo)
  • ebamk2_hardware_interface (abandonado a refazer)
  • robotpos1 (investigar o estado do pacote)

Este conjunto de pacotes tem um repositório com o mesmo nome (ros_hardware_interfaces)

ntbd_base

O ntbd_base é um conjunto de pacotes com uma interface genérica para exploração de braços robóticos.

É composto pelos seguintes pacotes:

  • ntbd_core
  • ntbd_msgs

Este conjunto de pacotes tem um repositório com o mesmo nome (ntbd_base)

gc_bridge

O gc_bridge é um conjunto de pacotes destinados a explorar os recursos do google cloud.

É composto pelos seguintes pacotes:

  • gc_dialogflow bridge
  • gc_msgs
  • gc_speech_bridge
  • gc_vision_bridge

Este conjunto de pacotes tem um repositório com o mesmo nome (gc_bridge)

eezybotarm

O pacote do ROS eezybotarm para o braço robotico eezybotarm mk1 é um projecto abandonado. O pacote foi substituido pelos seguintes pacotes:

  • ebamk1_description;
  • ebamk2_description;
  • rosarm_control;

O firmware está incluido no pacote rosarm_firmware.

 

ebamk2_description

O pacote ROS ebamk2_description contem a descrição do braço róbótico EezyBotArm MK2.

O pacote ROS ebamk2_description contem a descrição do braço róbótico EezyBotArm MK2.

Existem três versões base com a descrição do braço robotico nos seguintes  ficheiros urdf.

ebamk2.urdf

Esta versão descreve o robot com os solidos geométricos base e inclui a garra. Reproduz a alteração no angulo entre a haste principal e a horizontal quando a primeira se movimenta, assim como a manutenção da horizontalidade da garra aquando do movimento da haste horizontal.

ebamk2_mesh.urdf

Esta versão descreve o robot com meshes e inclui a garra. Reproduz a alteração no angulo entre a haste principal e a horizontal quando a primeira se movimenta, assim como a manutenção da horizontalidade da garra aquando do movimento da haste horizontal.

ebamk2_web.urdf

Versão original que não reproduz tão bem o movimento do braço robótico e está incluida no repositório ntbd .

Arduino ROS custom messages

Para usar ROS custom messages (mensagens personalizadas) no Arduino com o rosserial, é obrigatório ter instalados no computador os pacotes do ROS:  rosserial e rosserial arduino. Para instalar pode-se usar os seguintes comandos:

sudo apt install ros-melodic-rosserial
sudo apt install ros-melodic-rosserial-arduino

Quando o programa para o Arduino requer mensagens personalizadas do ROS  (ROS custom messages). Como por exemplo quando inclui uma linha como a seguinte:

#include <ntbd_msgs/Motors_Array.h>

Teremos que efectuar um procedimento especial, que envolve a compilação do pacote de ROS que tem as mensagens personalizadas (neste caso o ntbd_msgs), e obter o ficheiro de header necessário (neste caso, o ficheiro Motors_Array.h).

Para obter o ficheiro header , é necessário, antes de mais, colocar o pacote do ROS com a definição da mensagem na pasta adequada do catkin e proceder á sua compilação:

cd ~/catkin_sw/src
git clone https://github.com/HotBlackRobotics/ntbd
cd ~/catkin_sw
catkin_make

De seguida, tem de se usar um dos seguintes comandos (pelos vistos existe a informação de vários devido à evolução das várias versões do ROS):

No ROS Melodic, o comando que funcionou foi  o ultimo dos indicados abaixo.

rosrun rosserial_client make_library.py ~/ ntbd_msgs
rosrun rosserial_arduino make_library.py ~/ ntbd_msgs
rosrun rosserial_arduino make_libraries.py ~/ ntbd_msgs

~/ representa a pasta de destino onde se encontra a ros_lib (biblioteca rosserial para o arduino)

ntbd_msgs, indica o pacote (com as mensagens) a ser compilado

O comando que usei (o último) gerou uma pasta ros_lib na home com toda a biblioteca do rosserial incluindo uma pasta ntbd_msgs que contem o ficheiro pretendido.

Nesta fase, e tendo em consideração o exemplo, podemos optar por uma das duas soluções:

  • Copiar a pasta ~/ros_lib/ntbd_msgs para ~/Arduino/libraries/ros_lib;
  • Copiar a pasta para dentro da pasta do sketch do arduino, e alterar uma linha de include para passar a incluir a biblioteca localmente: #include “ntbd_msgs/Motors_Array.h”

Já podemos compilar e enviar o programa para o Arduino