Instale ROS Kinetic, TurtleBot3, Raspicam no Raspberry Pi  4b: 5 etapas
Instale ROS Kinetic, TurtleBot3, Raspicam no Raspberry Pi 4b: 5 etapas
Anonim
Instale ROS Kinetic, TurtleBot3, Raspicam no Raspberry Pi 4b
Instale ROS Kinetic, TurtleBot3, Raspicam no Raspberry Pi 4b

TurtleBot3 Burger vem com Raspberry Pi 3 B / B + e não oferece suporte ao novo (em 9/2019) Raspberry Pi 4b. Siga as etapas abaixo para fazer TurtleBot3 funcionar no Raspberry Pi 4b, incluindo

  • construindo ROS Kinetic a partir de fontes no Raspberry Pi 4b Raspbian Buster
  • adicionar pacotes específicos do TurtleBot3
  • adicionando nó de raspicam a

Etapa 1: instalar o Raspbian e configurar o Raspberry Pi 4b

Instale o Raspbian e configure o Raspberry Pi 4b
Instale o Raspbian e configure o Raspberry Pi 4b

Baixe uma imagem Raspbian. Usei o Raspbian Buster datado de 2019–07–10.

Grave a imagem Raspbian baixada em um cartão SD (pelo menos 8 Gb de tamanho). Conecte um monitor, teclado e mouse ao Raspberry Pi 4b, inicialize e conecte-se ao WiFi. Estenda o sistema de arquivos para ocupar todo o seu cartão SD e, opcionalmente, habilite SSH e VNC executando

sudo raspi-config

Etapa 2: Baixar fontes cinéticas de ROS

Baixar ROS Kinetic Sources
Baixar ROS Kinetic Sources

As instruções abaixo seguem o tutorial oficial do ROS, bem como as instruções do DmitryM8.

Faça login em seu Raspberry Pi 4b e execute esses comandos para adicionar o repositório de pacotes ROS, construir ferramentas e inicializar a ferramenta de dependência ROS.

sudo sh -c 'echo "deb https://packages.ros.org/ros/ubuntu $ (lsb_release -sc) main"> /etc/apt/sources.list.d/ros-latest.list'

sudo apt-key adv --keyserver 'hkp: //keyserver.ubuntu.com: 80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt-get update sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake sudo rosdep atualização do init rosdep

Crie um espaço de trabalho para construir o ROS Kinetic a partir da fonte.

mkdir ~ / ros_catkin_ws

cd ~ / ros_catkin_ws

Baixe o código-fonte do pacote "ros_comm", que contém módulos essenciais destinados a serem executados no computador de bordo do robô. Aqui, rosinstall_generator cria uma lista de repositórios de código-fonte para download. O wstool então procede ao download do código-fonte.

rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar> kinetic-ros_comm-wet.rosinstall

wstool init -j8 src kinetic-ros_comm-wet.rosinstall rosdep install --from-path src --ignore-src --rosdistro kinetic -y

Para executar TurtleBot3 e raspicam, você precisará desses pacotes ROS além de ros_comm: common_msgs, rosserial, image_common, image_transport_plugins e diagnósticos. Para adicionar esses pacotes, execute esses comandos.

rosinstall_generator common_msgs common_msgs rosserial image_common image_transport_plugins diagnostics nodelet_core --rosdistro kinetic --deps --wet-only --tar> kinetic-extra-wet.rosinstall

wstool merge -t src kinetic-extra-wet.rosinstall wstool update -j8 -t src rosdep install --from-path src --ignore-src --rosdistro kinetic -y

Como as versões das dependências mudam com o tempo, pode haver erros como "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): tentando sobrescrever '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py ', que também está no pacote python-rosdistro 0.7.2-1 ". Resolva esses erros de "tentativa de substituição":

sudo dpkg --remove --force-all python-catkin-pkg python-catkin-pkg-modules python-rosdistro python-rosdistro-modules python-rospkg python-rospkg-modules

// ou sudo apt remove sudo apt --fix-broken install

Etapa 3: corrigir manualmente os erros de compilação de ROS

Corrigir Erros de Compilação ROS Manualmente
Corrigir Erros de Compilação ROS Manualmente

Construir ROS neste ponto irá falhar com vários erros. Vamos corrigir esses erros editando manualmente o código-fonte do ROS.

Editar

/home/pi/ros_catkin_ws/src/opencv3/modules/python/src2/cv2.cpp linha 885

Substituir

char * str = PyString_AsString (obj);

com

const char * str = PyString_AsString (obj);

Edite os arquivos abaixo.

/home/pi/ros_catkin_ws/src/rospack/include/rospack/rospack.h /home/pi/ros_catkin_ws/src/rospack/src/rospack.cpp /home/pi/ros_catkin_ws/src/rospack/src/utils.cpp

Remova todas as ocorrências de

/ tr1

e substituir todas as ocorrências de

std:: tr1

com

impulsionar

Edite os arquivos abaixo.

/home/pi/ros_catkin_ws/src/actionlib/include/actionlib/client/simple_action_client.h /home/pi/ros_catkin_ws/src/actionlib/include/actionlib/destruction_guard.h / home / pi / ros_catkin_ws/src/actionlib/include/actionlib/destruction_guard.h / home / pi / ros_catkin_ws / src / action include /actionlib/server/simple_action_server_imp.h /home/pi/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp /home/pi/ros_catkin_ws/src/actionlibws/test/destruction_guard_testcore.cpp / home / pi / ros_catkin / srckin_ /bondcpp/src/bond.cpp /home/pi/ros_catkin_ws/src/ros_comm/roscpp/include/ros/timer_manager.h /home/pi/ros_catkin_ws/src/ros/roslib/test/utest.cpp

Substitua todas as ocorrências de

boost:: posix_time:: milliseconds (…)

com

boost:: posix_time:: milliseconds (int (…))

Edite o arquivo abaixo.

/home/pi/ros_catkin_ws/src/geometry2/tf2/src/buffer_core.cpp

Substitua tudo

logWarn

com

CONSOLE_BRIDGE_logWarn

e

logError

com

CONSOLE_BRIDGE_logError

Etapa 4: construir ROS cinético

Neste ponto, a compilação deve ser bem-sucedida.

cd ~ / ros_catkin_ws

sudo./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE = Liberar --install-space / opt / ros / kinetic

Anexe a ~ /.bashrc e execute também em seu shell:

fonte /opt/ros/kinetic/setup.bash

Etapa 5: construir pacotes TurtleBot3 e Raspicam

Crie pacotes TurtleBot3 e Raspicam
Crie pacotes TurtleBot3 e Raspicam

Estas instruções seguem o tutorial ROBOTIS.

mkdir -p ~ / catkin_ws / src

cd ~ / catkin_ws / catkin_make fonte devel / setup.bash

Edite ~ /.bashrc e anexe

source /home/pi/catkin_ws/devel/setup.bash

Agora, execute

cd ~ / catkin_ws / src

clone git https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git clone git https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git clone git https://github.com/ROBOTIS-GIT/turtlebot3. git git clone https://github.com/UbiquityRobotics/raspicam_node.git cd ~ / catkin_ws / src / turtlebot3 rm -r turtlebot3_description / turtlebot3_teleop / turtlebot3_navigation / turtlebot3_slam / turtlebot3_example / cd ~ / catkin_ws

A compilação deve ser bem-sucedida.

Configure o Raspberry Pi 4b para reconhecer os periféricos USB TurtleBot3.

rosrun turtlebot3_bringup create_udev_rules

Execute ifconfig e anote o IP de Raspbery Pi.

ifconfig

Edite ~ /.bashrc. Adicione as linhas abaixo e execute-as também em seu shell.

exportar ROS_MASTER_URI = https://YOUR. ROS. MASTER. IP: 11311

exportar ROS_HOSTNAME = YOUR. RASPBERRY. PI. IP

Sincronizar Raspberry Pi e hora do PC:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

Neste ponto, sua configuração deve ser concluída. Agora você pode usar seu Raspberry Pi 4b em vez de Raspberry Pi 3/3 + em seu TurtleBot3.

Recomendado: