Nó de Ros do Dockerizado, permitindo o controle de robôs móveis movidos a ERO com o Gamepad da Logitech F710. Joy2twist Node está convertendo sensor_msgs/Joy
Mensagem em geometry_msgs/Twist
para fornecer comandos de velocidade para o robô móvel. Portanto, este pacote é compatível (mas não suportado pela Husarion) com qualquer outro controlador gamepad capaz de publicar a mensagem sensor_msgs/Joy
.
Conecte a alegria via receptor Nano USB e verifique se está no modo DirectInput (alterne na frente o Pad com letras D e X , selecione d ).
Para testar se a alegria funciona, use jstest /dev/input/js0
. Se a saída for:
jstest: No such file or directory
Consulte ls /dev/input | grep js
e encontre seu número de alegria. Se for diferente, aplique alterações no composto.yaml e inicie o arquivo.
Distro Ros2 | Arquiteturas suportadas |
---|---|
galactic | linux/amd64 , linux/arm64 |
humble | linux/amd64 , linux/arm64 |
Disponível no Docker Hub
Flash o firmware certo:
docker stop rosbot-xl microros || true &&
docker run --rm -it --privileged
--mount type=bind,source=/dev/ttyUSBDB,target=/dev/ttyUSBDB
husarion/rosbot-xl:humble-0.8.2-20230913
flash-firmware.py -p /dev/ttyUSBDB
Conecte o Dongle Logitech F710 ao Rosbot XL e Run (no Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbotxl.yaml up
Flash o firmware certo:
docker stop rosbot microros || true && docker run
--rm -it --privileged
husarion/rosbot:humble-0.6.1-20230712
flash-firmware.py /root/firmware.bin
Conecte o Dongle Logitech F710 ao Rosbot 2R e Run (no Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbot2r.yaml up
Conecte um dongle Logitech F710 USB ao seu PC. Clone este repositório para o seu PC e vá ao joy2twist/demo/
Diretório e execute em um terminal separado:
./sync_with_robot.sh < YOUR_ROSBOT_IP >
Altere o espaço para nome no arquivo multiple_robots/.env
:
ROS_NAMESPACE=robot1
Agora ssh para o seu robô:
ssh husarion@ < YOUR_ROSBOT_IP >
Vá para a pasta /home/husarion/demo/multiple_robots
e inicie o contêiner para Rosbot:
docker compose -f compose.rosbot2r.yaml up
Filtragem de tópicos
Se você verificará no PC os nós do Ros 2 disponíveis que você receberá:
$ ros2 topic list /parameter_events /robot1/cmd_vel /rosoutObserve que o tópico único
/robot1/cmd_vel
está disponível fora do robô, graças à configuração do arquivoros2router_config.yaml
.Para controlar o robô usando o Teleop, basta executar:
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
Para executar o contêiner joy2twist
execute o seguinte comando no seu PC no diretório joy2twist/demo/multiple_robots
:
docker compose -f compose.pc.yaml up