ROS encoders
Os encoders permitem saber a distância percorrida pelas rodas e a velocidade a que elas rodam.
Existem vários tipos de encoders. Para serem usados como fonte para a odometria e stack de navegação do ROS, os encoders necessitam de ser de alta resolução. Normalmente, no ROS, são usados quadrature encoders que permitem resoluções inferiores a meio milímetro.
Nodes para encoders no ROS com Raspberry Pi 3
Na minha aprendizagem de desenvolvimento de robots com ROS escrevi o pacote rosrpibot que tem os seguintes ROS nodes para publicar a leitura dos encoders.
- qencoders1_node (método 1)
- qencoders2_node (método 2)
- qencoders3_node (ros_controllers)
Estes nodes fazem uso do GPIO do Raspberry Pi 3 e não é necessário nenhum micro controlador para efectuar as leituras.
Comandos para execução dos ROS encoders nodes
Execução com ficheiros de lançamento e parâmetros personalizados:
roslaunch rosrpibot qe1.launch roslaunch rosrpibot qe2.launch roslaunch rosrpibot qe3.launch
Execução directa:
rosrun rosrpibot qencoders1_node rosrun rosrpibot qencoders2_node rosrun rosrpibot qencoders3_node
Nodes para encoders no ROS com Banana Pi
No Banana Pi a leitura dos encoders é semelhante à do Raspberry Pi, pois fazem uso das mesmas bibliotecas.
Exemplos de programa para encoders com ROS no Arduino
A desenvolver
Encoders ROS nodes
A implementar
Ver também ROS navigation stack
Ver também ROS odometry
fusao do imu com encoder
http://docs.ros.org/melodic/api/robot_localization/html/index.html
https://answers.ros.org/question/312290/how-to-fuse-encoder-ticks-imu-for-odometry/
http://wiki.ros.org/differential_drive
http://wiki.ros.org/diff_drive_controller