Skip to content

TauraBots/arm-gazebo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

arm-gazebo

Workspace ROS 2 para visualizar e controlar um braço robótico definido em URDF/Xacro no RViz/Gazebo.

Requisitos

  • Ubuntu com ROS 2 Humble instalado
  • make
  • sudo para instalar dependências do sistema

O projeto usa ROS_DISTRO=humble por padrão. Para outra distribuição:

make install ROS_DISTRO=<sua_distro>
make build ROS_DISTRO=<sua_distro>
make run ROS_DISTRO=<sua_distro>

Instalação

Na raiz do repositório:

make install

Esse comando instala as dependências usadas para gerar o URDF, publicar o estado do robô e abrir a visualização no RViz.

Compilar

make build

Rodar

Depois de compilar:

make run

Esse comando abre Gazebo, RViz, a janela de sliders e a ponte RS485 para o robo real:

  • Gazebo Classic
  • RViz ja configurado com Grid, TF e modelo do robo
  • joint_state_publisher_gui
  • ponte RS485 com dry_run:=false

Use a janela do joint_state_publisher_gui para mover as juntas do braço.

Controlar o robo real pelo RViz

Para abrir RViz com a janela de sliders e enviar os mesmos movimentos ao robo real:

make rviz-real

Para usar outra porta:

make rviz-real PORT=/dev/ttyUSB1

Rodar no Gazebo

Depois de compilar:

make gazebo

Esse comando abre:

  • Gazebo Classic
  • joint_state_publisher_gui
  • plugin Gazebo que aplica /joint_states direto nas juntas do modelo
  • ponte joint_states -> RS485 em modo teste (dry_run:=true)

Use esse modo para conferir o movimento no Gazebo sem escrever na serial.

Rodar Gazebo e robo real juntos

Para mover o Gazebo e o robo real ao mesmo tempo:

make real

O mesmo slider alimenta os dois caminhos:

  • Gazebo: /joint_states -> plugin joint_state_gazebo_plugin
  • Robo real: /joint_states -> rs485_joint_bridge.py -> /dev/ttyUSB1

Antes de abrir, make real fecha processos antigos deste projeto. Isso evita dois publicadores diferentes em /joint_states.

Para limpar manualmente:

make stop

Para usar outra porta:

make real PORT=/dev/ttyUSB1

Para ajustar a resposta da serial:

make real SEND_PERIOD=0.001

Com o firmware em 9600, use SEND_PERIOD=0.03. Tentar 0.001 satura a serial e gera timeout de escrita.

make run BAUDRATE=9600 SEND_PERIOD=0.03

O comando atual tambem e reenviado periodicamente. Isso ajuda quando o robo real nao esta sincronizado com a posicao que o ROS esta publicando.

make run RESEND_PERIOD=0.3

Os sliders usam estas juntas:

Slider ROS/Gazebo Campo enviado
base_joint b0
shoulder_joint b1
elbow_joint b2
gripper_joint g abre/fecha a garra

Dimensoes modeladas:

Parte Medida
Base giratoria 60 mm de altura, 95 mm de diametro
Suporte/motor acima da base 50 mm de altura
Primeiro braco 130 mm
Segundo braco 210 mm
Garra 100 mm

Com todos os controles em 0, o comando enviado e a pose do modelo ficam zerados:

b0_0_b1_0_b2_0_g_0

Por seguranca, make gazebo nao escreve na serial. Ele mostra os comandos no terminal em dry_run.

make gazebo

O equivalente manual de make real e:

source /opt/ros/humble/setup.bash
source install/setup.bash
ros2 launch arm_package_description gazebo_control.launch.py dry_run:=false port:=/dev/ttyUSB1

Validar o Xacro/URDF

make xacro

Se o arquivo estiver correto, o comando imprime o URDF gerado no terminal.

Limpar build

make clean

Para limpar e compilar novamente:

make rebuild

Estrutura

src/arm_package_description/
├── launch/   # arquivos de launch do ROS 2
├── urdf/     # descrição do robô em Xacro/URDF
├── meshes/   # malhas 3D
├── config/   # configurações auxiliares
├── scripts/  # pontes ROS 2 para Gazebo e RS485
└── src/      # código fonte do pacote, se necessário

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors